From e0201ae86d66acd7127a9c01080731ee22e4b974 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 08 九月 2025 16:41:24 +0800
Subject: [PATCH] 新增加跨城支付

---
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java |   81 +++++++++++++++++++++++++++++-----------
 1 files changed, 58 insertions(+), 23 deletions(-)

diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java
index 93ef897..0837007 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java
@@ -18,6 +18,8 @@
 import com.stylefeng.guns.modular.system.util.PayMoneyUtil;
 import com.stylefeng.guns.modular.system.util.PushURL;
 import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Sort;
@@ -67,8 +69,12 @@
     private MongoTemplate mongoTemplate;
     @Autowired
     private ShiroExtUtil shiroExtUtil;
-    
-    
+    @Autowired
+    private IUserService sysUserService;
+    @Autowired
+    private ITCompanyService iTCompanyService;
+
+
     /**
      * 跳转到跨城出行订单首页
      */
@@ -492,6 +498,26 @@
             }
         }
 
+        //中台修改订单状态
+        ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
+        request1.setOrderId(orderCrossCity.getTravelId());
+        request1.setStatus(orderCrossCity.getState());
+        if (null != orderCrossCity.getDriverId()) {
+            TDriver driver2 = tDriverService.selectById(orderCrossCity.getDriverId());
+            TCompany company = iTCompanyService.selectById(driver2.getCompanyId());
+            request1.setDriverId(driver2.getEmpId().toString());
+            request1.setSupplierShopId(company.getEnterCode());
+        }
+        if (2 == orderCrossCity.getPromotion() && null != orderCrossCity.getPromotionDriverId()) {
+            TDriver driver2 = tDriverService.selectById(orderCrossCity.getPromotionDriverId());
+            request1.setPromoterId(driver2.getEmpId().toString());
+        }
+        OrderUtil.modifyTravelItinerary(request1);
+
+        //未支付,调取消订单
+        if(null == orderCrossCity.getPayType() && ToolUtil.isNotEmpty(orderCrossCity.getTravelId())){
+            OrderUtil.tradeOrderCancel(orderCrossCity.getTravelId());
+        }
 
         //已支付的情况下进行退款操作
         if(null != orderCrossCity.getPayType() && null != orderCrossCity.getPayMoney()){
@@ -525,9 +551,36 @@
                 }
 
                 if(query.getPayType() == 1){//微信
-                    Map<String, String> map = payMoneyUtil.wxRefund(query.getCode(), tOrderCrossCityId + "_3", query.getAmount().toString(), query.getAmount().toString(), "/base/cancleOrderWXPay");
-                    if(!"SUCCESS".equals(map.get("return_code"))){
-                        return ResultUtil.error(map.get("return_msg"));
+                    //中台订单退款操作
+                    if(ToolUtil.isNotEmpty(orderCrossCity.getTravelId())){
+                        User user1 = sysUserService.selectById(user.getId());
+                        TradeOrderRefundRequest request = new TradeOrderRefundRequest();
+                        request.setPartnerPayId(orderCrossCity.getTravelId());
+                        request.setPayId(query.getCode());
+                        request.setRefundTotalFee(orderCrossCity.getPayMoney().multiply(new BigDecimal(100)).intValue() + "");
+                        request.setRemark("服务商取消订单退款");
+                        request.setRefundType("RF");
+
+                        RefundInfoRequest refundInfo = new RefundInfoRequest();
+                        refundInfo.setPayItemId(orderCrossCity.getTravelId());
+                        refundInfo.setPayId(query.getCode());
+                        refundInfo.setTradeFee(orderCrossCity.getPayMoney().multiply(new BigDecimal(100)).intValue() + "");
+                        request.setRefundInfos(new ArrayList<RefundInfoRequest>(){{
+                            add(refundInfo);
+                        }});
+                        TradeOrderRefund tradeOrderRefund = OrderUtil.tradeOrderRefund(request);
+                        //退款通知
+                        OrderRefundNoticeRequest request2 = new OrderRefundNoticeRequest();
+                        request2.setOrderId(orderCrossCity.getTravelId());
+                        request2.setRefundPayNum(tradeOrderRefund.getRefundId());
+                        request2.setRefundType("5");
+                        request2.setApplyRefundCharge(orderCrossCity.getPayMoney());
+                        request2.setActualRefundCharge(orderCrossCity.getPayMoney());
+                        request2.setRefundAccount(user1.getEnterId().toString());
+                        request2.setRemark("服务商取消订单退款");
+                        OrderUtil.orderRefundNotice(request2);
+                        //添加交易明细
+                        transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城出行取消退款", query.getAmount(), 1, 1, 1, 3, tOrderCrossCityId);
                     }
                 }else if(query.getPayType()==4){
                     // TODO 退款
@@ -548,24 +601,6 @@
                     //添加交易明细
                     transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城出行取消退款", query.getAmount(), 1, 1, 1, 3, tOrderCrossCityId);
                 }
-            }
-
-            //添加负的收入明细
-            List<Income> incomes = incomeService.selectList(new EntityWrapper<Income>().eq("type", 2).eq("incomeId", tOrderCrossCityId).eq("orderType", 3));
-            for(Income income : incomes){
-                if(income.getUserType() == 2){//处理司机的收入
-                    TDriver driver = tDriverService.selectById(income.getObjectId());
-                    driver.setBalance(driver.getBalance().subtract(new BigDecimal(income.getMoney())));
-                    driver.setBusinessMoney(driver.getBusinessMoney() - income.getMoney());
-                    driver.setLaveBusinessMoney(driver.getLaveBusinessMoney() - income.getMoney());
-                    tDriverService.updateById(driver);
-                }
-                Income income1 = new Income();
-                BeanUtils.copyProperties(income, income1);
-                income1.setMoney(income.getMoney() * -1);
-                income1.setId(null);
-                income1.setInsertTime(new Date());
-                incomeService.insert(income1);
             }
         }
         //添加取消记录

--
Gitblit v1.7.1