From b4835ff468ab4a51aa05c4fdc290a667f8802b71 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 17 九月 2025 15:28:39 +0800
Subject: [PATCH] 修改扫码下单

---
 UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java |   82 ++++++++++++++++++++++++++++++++++++----
 1 files changed, 73 insertions(+), 9 deletions(-)

diff --git a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index e60c2c4..de3a3a5 100644
--- a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -35,6 +35,7 @@
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.LinkedMultiValueMap;
 import org.springframework.util.MultiValueMap;
+import org.springframework.util.StringUtils;
 import org.springframework.web.client.RestTemplate;
 
 import javax.annotation.Resource;
@@ -171,7 +172,8 @@
     private IServerCarModelService serverCarModelService;
     @Autowired
     private IAppOpenInfoService appOpenInfoService;
-
+    @Resource
+    private UserInfoMapper userInfoMapper;
     @Value("${filePath}")
     private String filePath;
 
@@ -340,7 +342,25 @@
         // 查询预估价格
         ResultUtil<List<ServerCarModelWarpper>> listResultUtil = serverCarModelService.queryServerCarModel(startLon + "," + startLat, endLon + "," + endLat, 1);
         List<ServerCarModelWarpper> data = listResultUtil.getData();
-        data = data.stream().filter(e -> serverCarModelId.equals(e.getId())).sorted(Comparator.comparing(ServerCarModelWarpper::getAmount)).collect(Collectors.toList());
+        System.out.println("预估价格++++++++++:"+data);
+        System.out.println("服务车型id++++++++++:"+serverCarModelId);
+        if(Objects.isNull(serverCarModelId)){
+            // 查询司机
+            Driver driver2 = driverService.selectById(driverId);
+            //获取经营业务
+            CarService query = new CarService();
+            query.setCarId(driver2.getCarId());
+            CarService service = carServiceMapper.selectOne(query);
+            System.out.println("服务车型========:"+service);
+            if(Objects.nonNull(service)){
+                serverCarModelId = service.getServerCarModelId();
+                System.out.println("服务车型id++++++++++:"+serverCarModelId);
+            }
+        }
+        Integer finalServerCarModelId = serverCarModelId;
+        System.out.println("服务车型id++++++++++:"+finalServerCarModelId);
+        data = data.stream().filter(e -> finalServerCarModelId.equals(e.getId())).sorted(Comparator.comparing(ServerCarModelWarpper::getAmount)).collect(Collectors.toList());
+        System.out.println("匹配出来的车型++++++++++:"+finalServerCarModelId);
         if(Objects.nonNull(openCity) && !CollectionUtils.isEmpty(data) && BigDecimal.valueOf(data.get(0).getAmount()).compareTo(openCity.getOrderMagnitude()) > 0){
             orderPrivateCar.setIsReassign(1);
             orderPrivateCar.setIsDelete(1);
@@ -362,7 +382,9 @@
             return ResultUtil.success(baseWarpper);
         }else {
             if(orderSource == 2){
-                orderPrivateCar.setEstimatedPrice(data.get(0).getAmount());
+                if(!CollectionUtils.isEmpty(data)){
+                    orderPrivateCar.setEstimatedPrice(data.get(0).getAmount());
+                }
             }else {
                 orderPrivateCar.setEstimatedPrice(data.get(carIndex).getAmount());
             }
@@ -904,7 +926,7 @@
         if(null == orderPrivateCar){
             return ResultUtil.error("取消订单失败,订单信息有误");
         }
-        if(orderPrivateCar.getPayMethod() == 0 && orderPrivateCar.getPaymentAdvanceMoney()>0 && orderPrivateCar.getState() > 5 && orderPrivateCar.getState() != 11){
+        if(orderPrivateCar.getPayMethod() == 0 && (Objects.nonNull(orderPrivateCar.getPaymentAdvanceMoney()) && orderPrivateCar.getPaymentAdvanceMoney()>0) && orderPrivateCar.getState() > 5 && orderPrivateCar.getState() != 11){
             return ResultUtil.error("取消订单失败,当前状态无法取消");
         }
         if(orderPrivateCar.getPayMethod() == 1 && orderPrivateCar.getState() > 5 && orderPrivateCar.getState() != 11){
@@ -929,6 +951,26 @@
                 integer = orderCancelService.saveData(id, 1, "无司机接单", "无司机接单", null, null, 2, 1, uid);
                 orderPrivateCar.setState(10);
                 this.updateById(orderPrivateCar);
+                if (orderPrivateCar.getPayMethod() == 0 && (Objects.nonNull(orderPrivateCar.getPaymentAdvanceMoney()) && orderPrivateCar.getPaymentAdvanceMoney()>0)) {
+                    // 退款
+                    if (orderPrivateCar.getPayType() == 1 && orderPrivateCar.getOrderMoney() != 0) {//微信退款
+                        // 微信退款
+                        payMoneyUtil.wxRefund(orderPrivateCar.getTransactionId(), orderPrivateCar.getOrderNum(), String.valueOf(orderPrivateCar.getPaymentAdvanceMoney()), String.valueOf(new BigDecimal(orderPrivateCar.getPaymentAdvanceMoney())), "/base/transferWXNotify");
+//                        orderPrivateCar.setPayMoney(new BigDecimal(orderPrivateCar.getOrderMoney()).doubleValue());
+                    }
+                    if (orderPrivateCar.getPayType() == 2 && orderPrivateCar.getOrderMoney() != 0) {//支付宝退款
+                        // 支付宝退款
+                        payMoneyUtil.aliRefund(orderPrivateCar.getTransactionId(), String.valueOf(new BigDecimal(orderPrivateCar.getPaymentAdvanceMoney()).multiply(new BigDecimal(100))));
+//                        orderPrivateCar.setPayMoney(new BigDecimal(orderPrivateCar.getOrderMoney()).doubleValue());
+                    }
+                    if (orderPrivateCar.getPayType() == 3 && orderPrivateCar.getOrderMoney() != 0) {//余额支付
+                        BigDecimal refundMoney = new BigDecimal(orderPrivateCar.getPaymentAdvanceMoney());
+                        // 余额退款
+                        UserInfo userInfo = userInfoMapper.selectById(orderPrivateCar.getUserId());
+                        userInfo.setBalance(new BigDecimal(userInfo.getBalance()).add(refundMoney).doubleValue());
+                        userInfoMapper.updateById(userInfo);
+                    }
+                }
             }
         }else {
             CancleOrder query = cancleOrderService.query(orderPrivateCar.getOrderType(), 1, orderPrivateCar.getCompanyId());
@@ -942,6 +984,26 @@
 
                     orderPrivateCar.setState(10);
                     this.updateById(orderPrivateCar);
+                    if (orderPrivateCar.getPayMethod() == 0 && (Objects.nonNull(orderPrivateCar.getPaymentAdvanceMoney()) && orderPrivateCar.getPaymentAdvanceMoney()>0)) {
+                        // 退款
+                        if (orderPrivateCar.getPayType() == 1 && orderPrivateCar.getOrderMoney() != 0) {//微信退款
+                            // 微信退款
+                            payMoneyUtil.wxRefund(orderPrivateCar.getTransactionId(), orderPrivateCar.getOrderNum(), String.valueOf(orderPrivateCar.getPaymentAdvanceMoney()), String.valueOf(new BigDecimal(orderPrivateCar.getPaymentAdvanceMoney())), "/base/transferWXNotify");
+//                            orderPrivateCar.setPayMoney(new BigDecimal(orderPrivateCar.getOrderMoney()).doubleValue());
+                        }
+                        if (orderPrivateCar.getPayType() == 2 && orderPrivateCar.getOrderMoney() != 0) {//支付宝退款
+                            // 支付宝退款
+                            payMoneyUtil.aliRefund(orderPrivateCar.getTransactionId(), String.valueOf(new BigDecimal(orderPrivateCar.getPaymentAdvanceMoney()).multiply(new BigDecimal(100))));
+//                            orderPrivateCar.setPayMoney(new BigDecimal(orderPrivateCar.getOrderMoney()).doubleValue());
+                        }
+                        if (orderPrivateCar.getPayType() == 3 && orderPrivateCar.getOrderMoney() != 0) {//余额支付
+                            BigDecimal refundMoney = new BigDecimal(orderPrivateCar.getPaymentAdvanceMoney());
+                            // 余额退款
+                            UserInfo userInfo = userInfoMapper.selectById(orderPrivateCar.getUserId());
+                            userInfo.setBalance(new BigDecimal(userInfo.getBalance()).add(refundMoney).doubleValue());
+                            userInfoMapper.updateById(userInfo);
+                        }
+                    }
                 }
                 this.deleteTask(id);//删除定时任务
 
@@ -1883,13 +1945,15 @@
                 transactionDetailsService.saveData(orderPrivateCar.getUserId(), "完成订单", query.getAmount(), 2, 1, 1, 1, query.getOrderId());
 //                orderPrivateCar.setState(8);
                 orderPrivateCar.setPayType(type);
-                orderPrivateCar.setTransactionId(order_id);
+                if(!StringUtils.hasLength(orderPrivateCar.getTransactionId())){
+                    orderPrivateCar.setTransactionId(order_id);
+                }
                 this.updateById(orderPrivateCar);
         
-                UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId());
-                SysIntegral query1 = sysIntegralMapper.query(orderPrivateCar.getCompanyId());
-                userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分
-                userInfoService.updateById(userInfo);
+//                UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId());
+//                SysIntegral query1 = sysIntegralMapper.query(orderPrivateCar.getCompanyId());
+//                userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分
+//                userInfoService.updateById(userInfo);
         
                 //处理优惠券和红包
                 if(null != orderPrivateCar.getCouponId()){

--
Gitblit v1.7.1