Эх сурвалжийг харах

Merge remote-tracking branch 'origin/feature/asyncOrder' into feature/asyncOrder

Mechrevo 1 жил өмнө
parent
commit
4cb5c67f0c

+ 3 - 3
sp-core/sp-api/src/main/java/com/pj/api/dto/OrderDto.java

@@ -126,7 +126,7 @@ public class OrderDto {
     /**
      * 支付方式(0=金融互助,1=现金刷卡)
      */
-    private String payType;
+    private Integer payType;
 
     /**
      * 结算时间
@@ -483,11 +483,11 @@ public class OrderDto {
         this.tradeStatus = tradeStatus;
     }
 
-    public String getPayType() {
+    public Integer getPayType() {
         return payType;
     }
 
-    public void setPayType(String payType) {
+    public void setPayType(Integer payType) {
         this.payType = payType;
     }
 

+ 1 - 1
sp-service/level-one-server/src/main/java/com/pj/tb_order/TbOrder.java

@@ -138,7 +138,7 @@ public class TbOrder extends Model<TbOrder> implements Serializable {
 	/**
 	 * 支付方式(0=金融互助,1=现金刷卡)
 	 */
-	private String payType;
+	private Integer payType;
 
 	/**
 	 * 结算时间

+ 40 - 9
sp-service/level-one-server/src/main/java/com/pj/tb_order/TbOrderService.java

@@ -410,18 +410,22 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
 		//获取登录人
 		APPLoginUserInfo appLoginInfo = StpAPPUserUtil.getAPPLoginInfo();
 
+		// TODO: 2023/8/29 更新状态保存交易记录
 		LambdaUpdateWrapper<TbOrder> wrapper = new LambdaUpdateWrapper<>();
 		wrapper.set(TbOrder::getPeopleConfirmStatus, ConfirmStatus.CONFIRM_STATUS_ONE.getCode());//边民确认:1=确认
 		wrapper.set(TbOrder::getPeopleConfirmType, confirmType);//边民确认类型[1=刷脸,2=指纹]
 		wrapper.set(TbOrder::getPeopleConfirmTime, new Date());
-
 		wrapper.set(TbOrder::getUpdateBy, appLoginInfo.getLoginId());
 		wrapper.set(TbOrder::getUpdateName, appLoginInfo.getLoginName());
 		wrapper.set(TbOrder::getUpdateTime, new Date());
-
 		wrapper.eq(TbOrder::getId, orderId);
+		boolean result = update(wrapper);
+
+		// TODO: 2023/8/29 同步交易信息(由于目前未知航通传过来的订单数据形式,暂未做)
+		// TODO: 2023/8/29 监听航通传过来的大订单里的所有边民订单,当所有边民都进行订单确认后,调用航通接口发送信息
 
-		return update(wrapper);
+
+		return result;
 	}
 
 	/**
@@ -441,22 +445,49 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
 		wrapper.set(TbOrder::getUpdateTime, new Date());
 
 		wrapper.eq(TbOrder::getId, orderId);
+		boolean result = update(wrapper);
+
+		// TODO: 2023/8/29 发送信息(由于目前未知航通传过来的订单数据形式,暂未做)
+		// TODO: 2023/8/29 监听航通传过来的大订单里的所有边民订单,当所有边民都进行进口申报确认后,调用航通接口发送信息
 
-		return update(wrapper);
+
+		return result;
 	}
 
 	// TODO: 2023/8/28 系统接收到航通接口信息:车辆已出一级市场
-	void orderFinish(){
+	public void orderFinish(Long[] ids){
 		//1、todo: 调用银行接口发起划扣:将边民划扣至银行第三方账户的货款,支付至外籍商户的账户
 		//收到划扣成功回执后,方法往下制行
 
-		//2、修改一级市场订单支付状态为已支付
+		//2、修改一级市场订单支付状态为已支付,修改一级市场订单完成状态为已完成
+		//获取登录人
+		APPLoginUserInfo appLoginInfo = StpAPPUserUtil.getAPPLoginInfo();
+		TbOrder order = new TbOrder();
+		for (Long id : ids) {
+			order.setId(id);
+			order.setTradeStatus(TradeStatus.TRADE_STATUS_ONE.getCode()); //已支付
+			order.setTradeTime(new Date()); //支付时间
+			order.setPayType(0); //支付类型
+			order.setFinishStatus(FinishStatus.FINISH_STATUS_ONE.getCode()); //已完成
+
+			order.setUpdateBy(appLoginInfo.getLoginId());
+			order.setUpdateName(appLoginInfo.getLoginName());
+			order.setUpdateTime(new Date());
+
+			boolean result = updateById(order);
+			if(!result) throw new RuntimeException("当前订单状态修改失败,请联系管理员!");
+
+			//todo:通知边民转售已经采购的商品;边民上架商品,初步定价
+			TbOrder t = getById(id);
+			MessageDto dto = new MessageDto();
+			dto.setUrl("/pages/market/one/leader/order");
+			dto.setUserId(t.getBuyUserId());
+			dto.setContents("你采购的《" + t.getGoodsNames() + "》订单已完成。请及时上架商品到二级市场。");
+			adminInterface.messageSave(dto);
+		}
 
 		//3、todo: 调用航通接口,发送划扣成功回执信息给航通(只发送)
 
-		//4、修改一级市场订单完成状态为已完成
-
-		//5、发送消息提醒边民,订单可以转售到二级市场
 	}
 
 	/** 远程调用  查订单 */

+ 1 - 1
sp-service/level-two-server/src/main/java/com/pj/tb_orders/TbOrdersApiController.java

@@ -71,7 +71,7 @@ public class TbOrdersApiController {
 		return AjaxJson.getPageData(so.getDataCount(), list);
 	}
 
-	/** 二级市场订单 组长角色入口*/
+	/** 二级市场订单 组长/边民角色入口*/
 	@RequestMapping("getLeaderOrderList")
 	public AjaxJson getLeaderOrderList() {
 		SoMap so = SoMap.getRequestSoMap();

+ 4 - 1
sp-service/level-two-server/src/main/java/com/pj/tb_orders/TbOrdersService.java

@@ -216,7 +216,7 @@ public class TbOrdersService extends ServiceImpl<TbOrdersMapper, TbOrders> imple
     }
 
     /**
-     * 二级市场订单 组长角色入口
+     * 二级市场订单 组长/边民角色入口
      * 管理购买的商品订单(包括已支付、运输中、售后)
      */
     List<TbOrders> getLeaderOrderList(SoMap so) {
@@ -272,6 +272,9 @@ public class TbOrdersService extends ServiceImpl<TbOrdersMapper, TbOrders> imple
         orders.setOrderFinish(OrderStatus.ORDER_STATUS_ZERO.getCode());
         //删除状态(0=禁用,1=启用)
         orders.setDeleteStatus(DeleteStatus.DELETE_STATUS_ON.getCode());
+
+        //转售订单的边民id
+        orders.setLeaderId(appLoginInfo.getFk());
         //创建人
         orders.setCreateBy(appLoginInfo.getLoginId());
         orders.setCreateName(appLoginInfo.getLoginName());