Ver Fonte

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

linbl há 11 meses atrás
pai
commit
f60c860156

+ 1 - 1
sp-core/sp-api/src/main/java/com/pj/api/client/level_one_server/LevelOneServerInterface.java

@@ -146,7 +146,7 @@ public interface LevelOneServerInterface {
 
     /** (一级市场)订单扣款回执 */
     @PostMapping("/app/TbOrder/rpc/confirmOrderFromBank")
-    public boolean confirmOrderFromBank(@RequestParam("tradeNo")String tradeNo,@RequestParam("SXB010Status")Integer SXB010Status);
+    public boolean confirmOrderFromBank(@RequestParam("tradeNo")String tradeNo,@RequestParam("note")String note,@RequestParam("SXB010Status")Integer SXB010Status);
 
     /** 收到(一级市场-通车批信息)订单打款回执 */
     @PostMapping("/app/TbOrder/rpc/orderFinishFromBank")

+ 2 - 1
sp-core/sp-api/src/main/java/com/pj/api/client/level_one_server/LevelOneServerInterfaceFallback.java

@@ -6,6 +6,7 @@ import feign.hystrix.FallbackFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -218,7 +219,7 @@ public class LevelOneServerInterfaceFallback implements FallbackFactory<LevelOne
             }
 
             @Override
-            public boolean confirmOrderFromBank(String tradeNo, Integer SXB010Status) {
+            public boolean confirmOrderFromBank(String tradeNo, String note, Integer SXB010Status) {
                 return false;
             }
 

+ 2 - 0
sp-service/level-one-server/src/main/java/com/pj/ht_trade_settlement/HtTradeSettlementMapper.xml

@@ -54,6 +54,8 @@
 			<if test=' this.has("bordersList") '> and borders_list = #{bordersList} </if>
 			<if test=' this.has("borderBuyGoodsList") '> and border_buy_goods_list = #{borderBuyGoodsList} </if>
 			<if test=' this.has("enterpriseId") '> and enterprise_id = #{enterpriseId} </if>
+			<if test=' this.has("returns") '> and returns = #{returns} </if>
+			<if test=' this.has("chargebacks") '> and chargebacks = #{chargebacks} </if>
 			<if test=' this.has("id") '> and id = #{id} </if>
 		</where>
 		order by

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

@@ -518,6 +518,10 @@ public class TbOrder extends Model<TbOrder> implements Serializable {
 	 */
 	private Integer Sxb010Status;
 	/**
+	 * 回执内容
+	 */
+	private String sxbNote;
+	/**
 	 * (一级市场)订单扣款回执时间
 	 */
 	private Date Sxb010StatusTime;
@@ -547,7 +551,7 @@ public class TbOrder extends Model<TbOrder> implements Serializable {
 	 */
 	private Date returnsTime;
 	/**
-	 * 退单 0正常 1 退
+	 * 退单 0正常 1 退
 	 */
 	private Integer chargebacks;
 	/**

+ 2 - 2
sp-service/level-one-server/src/main/java/com/pj/tb_order/TbOrderAppController.java

@@ -186,8 +186,8 @@ public class TbOrderAppController {
 
 	/** 边民订单确认-收到银行扣款回执 */
 	@PostMapping("rpc/confirmOrderFromBank")
-	public boolean confirmOrderFromBank(@RequestParam("tradeNo")String tradeNo, @RequestParam("SXB010Status")Integer SXB010Status) {
-		boolean result = tbOrderService.confirmOrderFromBank(tradeNo, SXB010Status);
+	public boolean confirmOrderFromBank(@RequestParam("tradeNo")String tradeNo,@RequestParam("note")String note, @RequestParam("SXB010Status")Integer SXB010Status) {
+		boolean result = tbOrderService.confirmOrderFromBank(tradeNo,note, SXB010Status);
 		return result;
 	}
 

+ 2 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_order/TbOrderMapper.xml

@@ -116,6 +116,8 @@
 			<if test=' this.has("declareType") '> and declare_type = #{declareType} </if>
 			<if test=' this.has("upStatus") '> and up_status = #{upStatus} </if>
 			<if test=' this.has("Sxb010Status") '> and sxb010_status = #{Sxb010Status} </if>
+			<if test=' this.has("returns") '> and returns = #{returns} </if>
+			<if test=' this.has("chargebacks") '> and chargebacks = #{chargebacks} </if>
 
 			<if test='confirmType == "people_confirm_time" and this.has("dateBegin")'> and people_confirm_time &gt;= #{dateBegin} </if>
 			<if test='confirmType == "people_confirm_time" and this.has("dateEnd")'> and people_confirm_time &lt;= #{dateEnd} </if>

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

@@ -146,6 +146,7 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
      *
      * @param orderId 一级市场订单ID
      */
+    @Deprecated
     public boolean cancelOrder(Long orderId) {
         //获取登录用户
         APPLoginUserInfo appLoginInfo = StpAPPUserUtil.getAPPLoginInfo();
@@ -204,10 +205,10 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
     List<OrderVo> getPeopleOrderList(SoMap so) {
         //获取登录用户,登录的用户也许边民,互市组组长,一级市场商家
         APPLoginUserInfo appLoginInfo = StpAPPUserUtil.getAPPLoginInfo();
-        if(appLoginInfo.getUserType() != 2) throw new RuntimeException("当前登陆用户不是边民组长!");
+        if (appLoginInfo.getUserType() != 2) throw new RuntimeException("当前登陆用户不是边民组长!");
 
         TbPeople tbPeople = tbPeopleMapper.selectById(appLoginInfo.getFk());
-        if(tbPeople.getGroupId() == null) throw new RuntimeException("当前登陆用户不在互助组内!");
+        if (tbPeople.getGroupId() == null) throw new RuntimeException("当前登陆用户不在互助组内!");
 
         List<TbPeople> peopleList = tbPeopleService.lambdaQuery().eq(TbPeople::getGroupId, tbPeople.getGroupId()).list();
         List<Long> idList = peopleList.stream().map(people -> people.getId()).collect(Collectors.toList());
@@ -520,17 +521,19 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
      * 边民订单确认-收到银行扣款回执——SXB011——SXB012
      *
      * @param tradeNo      一级市场边民订单-订单编号
+     * @param note         回执内容
      * @param SXB010Status 回执状态-1=扣款成功 2=扣款失败
      */
-    public boolean confirmOrderFromBank(String tradeNo, Integer SXB010Status) {
+    public boolean confirmOrderFromBank(String tradeNo, String note, Integer SXB010Status) {
         LambdaQueryWrapper<TbOrder> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(TbOrder::getTradeNo, tradeNo);
         List<TbOrder> tbOrderList = this.list(wrapper);
         if (tbOrderList.size() <= 0) {
-            throw new RuntimeException("边民订单确认-收到银行扣款回执:订单不存在");
+            log.error("收到银行回执:{},{},{},订单不存在", tradeNo, note, SXB010Status);
+            return false;
         }
         TbOrder tbOrder = tbOrderList.get(0);
-
+        tbOrder.setSxbNote(note);
         // TODO: 2023/8/29 更新状态保存交易记录
         if (2 == SXB010Status) {//扣款失败
             tbOrder.setSxb010Status(2)
@@ -628,7 +631,7 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
         List<TbOrder> orderList = findByBuyUserId(appLoginInfo.getFk());
         OrderVo orderVo = new OrderVo();
         //被委托订单,并且三个状态中有一个未确认
-        List<TbOrder> declareList2 = orderList.stream().filter(item ->item.getApplyConfirmStatus() == 0).collect(Collectors.toList());
+        List<TbOrder> declareList2 = orderList.stream().filter(item -> item.getApplyConfirmStatus() == 0).collect(Collectors.toList());
         if (declareList2.size() > 0) {
             if (1 == cooper_entrust) {
                 List<Long> removeList = new ArrayList<>();
@@ -690,11 +693,14 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
         return update;
     }
 
-    /** 订单补扣款 */
-    public boolean deduction(Long id){
+    /**
+     * 订单补扣款
+     */
+    public boolean deduction(Long id) {
         TbOrder tbOrder = getById(id);
         if (tbOrder == null) {
-            throw new AjaxError("订单不存在");
+            log.error("补扣款失败:{}不存在", id);
+            return false;
         }
 
         PaymentDto paymentDto = this.getPaymentData(tbOrder);
@@ -704,21 +710,27 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
         tbOrder.setDeductionCount(tbOrder.getDeductionCount() + 1);
         tbOrder.setDeductionTime(new Date());
 
-        boolean update = super.updateById(tbOrder);
-        return update;
+        return super.updateById(tbOrder);
     }
 
     /*-----           正常业务逻辑👆👆    rpc远程调用👇👇 -----*/
 
+    /**
+     * 航通发起的退单
+     * @param htDeclareChargebackDto
+     * @return
+     */
     //进出口申报单退单-逻辑处理
     public boolean chargeback(HtDeclareChargebackDto htDeclareChargebackDto) {
         //查询出被退单的所有边民订单
         LambdaQueryWrapper<TbOrder> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(TbOrder::getTradeAreaId, htDeclareChargebackDto.getFieldCode());
         wrapper.eq(TbOrder::getPreNo, htDeclareChargebackDto.getBillNo());
+        wrapper.eq(TbOrder::getChargebacks, 0);
         List<TbOrder> tbOrderList = this.list(wrapper);
 
         if (tbOrderList.size() <= 0) {
+            log.error("进出口申报单退单:{}不存在", JSONUtil.toJsonStr(htDeclareChargebackDto));
             return false;
         }
         // TODO: 2023/11/27 查验不通过,车辆不通过卡3,调用银行退款划扣申请,从银行第三方账户,退回至边民借记卡账户
@@ -727,23 +739,27 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
             StaticLog.info("\nsendSXB013(进出口申报单退单)——PaymentDto——:{}", JSONUtil.toJsonStr(paymentDto));
             paymentServerInterface.sendSXB013(paymentDto);
         });
-
+        Date now=new Date();
         //修改交易结算单(大订单)的查验结果
         LambdaUpdateWrapper<HtTradeSettlement> updateWrapper = new LambdaUpdateWrapper<>();
-        updateWrapper.set(HtTradeSettlement::getCheckPassStatus, 2);//查验结果[1=查验通过 2=查验不通过]
-        updateWrapper.set(HtTradeSettlement::getCheckPassTime, new Date());//查验时间(不通过)
+        updateWrapper.set(HtTradeSettlement::getChargebacks, 1);
+        updateWrapper.set(HtTradeSettlement::getChargebacksTime, now);
         updateWrapper.eq(HtTradeSettlement::getFieldCode, htDeclareChargebackDto.getFieldCode());
         updateWrapper.eq(HtTradeSettlement::getDeclareId, htDeclareChargebackDto.getDeclareId());
+        updateWrapper.eq(HtTradeSettlement::getCheckPassStatus,0);
         boolean update = htTradeSettlementService.update(updateWrapper);
 
         //修改边民订单的查验结果
         LambdaUpdateWrapper<TbOrder> updateWrapper1 = new LambdaUpdateWrapper<>();
         updateWrapper1.set(TbOrder::getRefundStatus, 3);//退款中
-        updateWrapper1.set(TbOrder::getRefundTime, new Date());//退款时间
-        updateWrapper1.set(TbOrder::getCheckPassStatus, 2);//查验结果[1=查验通过 2=查验不通过]
-        updateWrapper1.set(TbOrder::getCheckPassTime, new Date());//查验时间(不通过)
+        updateWrapper1.set(TbOrder::getRefundTime, now);//退款时间
+        updateWrapper1.set(TbOrder::getCheckPassTime, now);//查验时间(不通过)
+        updateWrapper1.set(TbOrder::getChargebacks, 1);
+        updateWrapper1.set(TbOrder::getChargebacksTime, now);
+
         updateWrapper1.eq(TbOrder::getTradeAreaId, htDeclareChargebackDto.getFieldCode());
         updateWrapper1.eq(TbOrder::getPreNo, htDeclareChargebackDto.getBillNo());
+        updateWrapper1.eq(TbOrder::getChargebacks, 0);
         boolean update1 = this.update(updateWrapper1);
 
         return update && update1;
@@ -755,7 +771,8 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
         wrapper.eq(TbOrder::getTradeNo, tradeNo);
         List<TbOrder> tbOrderList = this.list(wrapper);
         if (tbOrderList.size() <= 0) {
-            throw new RuntimeException("收到银行退款回执:订单不存在");
+            log.error("收到银行退款回执:{}不存在", tradeNo);
+            return false;
         }
         TbOrder tbOrder = tbOrderList.get(0);
 
@@ -930,11 +947,11 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
         if (htTradeSettlement == null) {
             return false;
         }
-        Integer orderCount=htTradeSettlement.getOrderCount();
+        Integer orderCount = htTradeSettlement.getOrderCount();
         Integer beOrderCount = htTradeSettlement.getBeOrderCount();
-        orderCount=  orderCount == null ? 0 : orderCount;
-        beOrderCount=  beOrderCount == null ? 0 : beOrderCount;
-        if (beOrderCount>=orderCount){
+        orderCount = orderCount == null ? 0 : orderCount;
+        beOrderCount = beOrderCount == null ? 0 : beOrderCount;
+        if (beOrderCount >= orderCount) {
             return false;
         }
         htTradeSettlement.setBeOrderCount(beOrderCount + 1);
@@ -966,13 +983,13 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
 
     public List<OrderDto> getOrderListByMainIds(String mainIds) {
         List<Long> idList = Arrays.stream(mainIds.split(",")).mapToLong(Long::parseLong).boxed().collect(Collectors.toList());
-        QueryWrapper<TbOrder>ew=new QueryWrapper<>();
-        ew.in("sale_main_id",idList);
-        List<TbOrder>list=list(ew);
-        List<OrderDto>dtos=new ArrayList<>();
+        QueryWrapper<TbOrder> ew = new QueryWrapper<>();
+        ew.in("sale_main_id", idList);
+        List<TbOrder> list = list(ew);
+        List<OrderDto> dtos = new ArrayList<>();
         for (TbOrder tbOrder : list) {
-            OrderDto orderDto=new OrderDto();
-            BeanUtils.copyProperties(tbOrder,orderDto);
+            OrderDto orderDto = new OrderDto();
+            BeanUtils.copyProperties(tbOrder, orderDto);
             dtos.add(orderDto);
         }
         return dtos;

+ 2 - 2
sp-service/payment-server/src/main/java/com/pj/task/BankByteTask.java

@@ -320,11 +320,11 @@ public class BankByteTask {
             //(一级市场)订单扣款-成功
             else if(bankInfo.getOperation().equalsIgnoreCase("SXB011")) {
                 //参数:一级市场边民订单-订单编号
-                result = levelOneServerInterface.confirmOrderFromBank(bankInfo.getSource(),1);
+                result = levelOneServerInterface.confirmOrderFromBank(bankInfo.getSource(),bankInfo.getNote(),1);
             }
             //(一级市场)订单扣款-失败
             else if(bankInfo.getOperation().equalsIgnoreCase("SXB012")) {
-                result = levelOneServerInterface.confirmOrderFromBank(bankInfo.getSource(),2);
+                result = levelOneServerInterface.confirmOrderFromBank(bankInfo.getSource(),bankInfo.getNote(),2);
             }
             //(一级市场)订单退款-成功
             else if(bankInfo.getOperation().equalsIgnoreCase("SXB014")) {