From e59d2141bc8f9bee8b569deaa54158b3759c431e Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 29 八月 2025 10:42:40 +0800
Subject: [PATCH] bug修改

---
 UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java |   78 ++++++++++++++++++++++++++++----------
 1 files changed, 57 insertions(+), 21 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 0fc2013..77e3a99 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
@@ -169,9 +169,8 @@
     private IOpenCityService openCityService;
     @Autowired
     private IServerCarModelService serverCarModelService;
-//    @Autowired
-//    private ALiSendSms aLiSendSms;
-
+    @Autowired
+    private IAppOpenInfoService appOpenInfoService;
 
     @Value("${filePath}")
     private String filePath;
@@ -287,7 +286,6 @@
         orderPrivateCar.setTravelTime(travelTime);
         orderPrivateCar.setOrderType(reservation);
         orderPrivateCar.setOrderSource(orderSource);
-        orderPrivateCar.setEstimatedPrice(estimatedPrice);
         if(orderSource == 2){//扫码下单
             Driver driver = driverService.selectById(driverId);
             if(null == driver){
@@ -349,8 +347,10 @@
             orderPrivateCar.setState(7);
             if(orderSource == 2){
                 orderPrivateCar.setOrderMoney(data.get(0).getAmount());
+                orderPrivateCar.setEstimatedPrice(data.get(0).getAmount());
             }else {
                 orderPrivateCar.setOrderMoney(data.get(carIndex).getAmount());
+                orderPrivateCar.setEstimatedPrice(data.get(carIndex).getAmount());
             }
             orderPrivateCar.setPayMethod(0);
             this.insert(orderPrivateCar);
@@ -361,6 +361,11 @@
             baseWarpper.setAmount(orderPrivateCar.getOrderMoney());
             return ResultUtil.success(baseWarpper);
         }else {
+            if(orderSource == 2){
+                orderPrivateCar.setEstimatedPrice(data.get(0).getAmount());
+            }else {
+                orderPrivateCar.setEstimatedPrice(data.get(carIndex).getAmount());
+            }
             orderPrivateCar.setIsReassign(1);
             orderPrivateCar.setIsDelete(1);
             orderPrivateCar.setPayMethod(1);
@@ -1116,13 +1121,13 @@
                     Company company = companyService.selectById(orderPrivateCar.getCompanyId());
                     Double taxi = company.getSpeMoney();
                     BigDecimal c =new BigDecimal(query.getMoney());//司机收入
-                    incomeService.saveData(2, orderPrivateCar.getDriverId(), 3, orderPrivateCar.getId(), 1, c.doubleValue());
                     Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
                     driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                     driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                     driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                     driverService.updateById(driver);
-            
+                    incomeService.saveDriverData(2, orderPrivateCar.getDriverId(), 3, orderPrivateCar.getId(), 1, c.doubleValue(),driver.getBalance());
+
                     this.deleteTask(id);//删除定时任务
 
 //                new Thread(new Runnable() {
@@ -1166,7 +1171,11 @@
                     for(int i = 1; i <= querys.size(); i++){
                         PushOrder pushOrder = pushOrderService.querys(i, 1, query.getId()).get(0);
                         //获取空闲司机
+//                        List<Driver> list = driverService.queryIdleDriver(1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
                         List<Driver> list = driverService.queryIdleDriver(1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
+                        List<Driver> list1 = driverService.queryIdleDriver_(1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), 2.0D, null);//所有附近空闲司机
+                        list.addAll(list1);
+                        list = list.stream().distinct().collect(Collectors.toList());
                         if(list.size() > 0){
                             // 查询预约单
                             List<Integer> driverIds = list.stream().map(Driver::getId).collect(Collectors.toList());
@@ -1211,10 +1220,26 @@
                             // 第三轮取消订单
                             orderPrivateCar.setState(10);
                             orderPrivateCarMapper.updateById(orderPrivateCar);
+                            pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0);
                             // 添加站内信
                             systemNoticeService.addSystemNotice(1, "当前区域未能及时为您匹配到合适车辆。为避免耽误您的行程,系统已自动取消订单,建议您稍后重新尝试。", orderPrivateCar.getUserId(), 1);
-                            // TODO 0731 添加短信发送
-
+                            // 查询是否开启短信通知
+                            AppOpenInfo appOpenInfo = appOpenInfoService.selectOne(new EntityWrapper<AppOpenInfo>()
+                                    .eq("type", 3));
+                            if(Objects.nonNull(appOpenInfo) && appOpenInfo.getIsOpen() == 1){
+                                // 添加短信发送
+                                //发送记录集合
+                                JSONArray records = new JSONArray();
+                                JSONObject record = new JSONObject();
+                                UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId());
+                                //手机号
+                                record.put("mobile", userInfo.getPhone());
+                                //替换变量
+                                JSONObject param = new JSONObject();
+                                record.put("tpContent", param);
+                                records.add(record);
+                                SMSUtil.sendSmsTp(380702L, records);
+                            }
                         }
                     }
                 } catch (Exception e) {
@@ -1546,7 +1571,6 @@
                         if(Objects.nonNull(query1)){
                             userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分
                         }
-                        userInfoService.updateById(userInfo);
                         //添加已收入明细
                         Company company = companyService.selectById(orderPrivateCar.getCompanyId());
                         Double speMoney = company.getSpeMoney();
@@ -1565,12 +1589,12 @@
                             c = new BigDecimal(orderPrivateCar.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);
                         }
                         incomeService.saveData(1, orderPrivateCar.getCompanyId(), 2, orderPrivateCar.getId(), 1, d.doubleValue());
-                        incomeService.saveData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue());
                         Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
                         driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                         driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                         driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                         driverService.updateById(driver);
+                        incomeService.saveDriverData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue(), driver.getBalance());
                         orderPrivateCar.setState(8);
                     }else {
                         if(orderPrivateCar.getOrderSource() == 2){
@@ -1582,13 +1606,14 @@
                         orderPrivateCar.setOrderMoney(orderMoney);
                         orderPrivateCar.setPayMoney(orderMoney);
                     }
-                    new Thread(new Runnable() {
-                        @Override
-                        public void run() {
-                            pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0);
-                            pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0);
-                        }
-                    }).start();
+//                    new Thread(new Runnable() {
+//                        @Override
+//                        public void run() {
+//                            pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0);
+//                            pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0);
+//                        }
+//                    }).start();
+                    userInfoService.updateById(userInfo);
                     systemNoticeService.addSystemNotice(1, "您已使用余额成功完成出行订单支付,谢谢使用!", uid, 1);
                     if(orderPrivateCar.getState() == 1){
                         this.pushOrder(orderPrivateCar);
@@ -1596,6 +1621,7 @@
                 }else {
                     // 后付
                     orderPrivateCar.setPayMoney(orderMoney);
+                    orderPrivateCar.setState(8);
                     if(orderPrivateCar.getIsplatPay()==1){
                         //添加已收入明细
                         Company company = companyService.selectById(orderPrivateCar.getCompanyId());
@@ -1615,12 +1641,12 @@
                             c = new BigDecimal(orderPrivateCar.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);
                         }
                         incomeService.saveData(1, orderPrivateCar.getCompanyId(), 2, orderPrivateCar.getId(), 1, d.doubleValue());
-                        incomeService.saveData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue());
                         Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
                         driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                         driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                         driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                         driverService.updateById(driver);
+                        incomeService.saveDriverData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue(), driver.getBalance());
                     }
 
 
@@ -1803,12 +1829,12 @@
             Company company = companyService.selectById(orderPrivateCar.getCompanyId());
             Double taxi = company.getSpeMoney();
             BigDecimal c =new BigDecimal(query.getAmount());//司机收入
-            incomeService.saveData(2, orderPrivateCar.getDriverId(), 3, orderPrivateCar.getId(), 1, c.doubleValue());
             Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
             driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
             driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
             driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
             driverService.updateById(driver);
+            incomeService.saveDriverData(2, orderPrivateCar.getDriverId(), 3, orderPrivateCar.getId(), 1, c.doubleValue(), driver.getBalance());
             this.deleteTask(orderPrivateCar.getId());//删除定时任务
 
             // TODO: 2020/5/24 这里需要给司机和用户推送订单状态
@@ -1906,12 +1932,12 @@
                             c = new BigDecimal(orderPrivateCar.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);
                         }
                         incomeService.saveData(1, orderPrivateCar.getCompanyId(), 2, orderPrivateCar.getId(), 1, d.doubleValue());
-                        incomeService.saveData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue());
                         Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
                         driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                         driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                         driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                         driverService.updateById(driver);
+                        incomeService.saveDriverData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue(), driver.getBalance());
                     }else {
                         if(orderPrivateCar.getOrderSource() == 2){
                             orderPrivateCar.setState(2);
@@ -1944,12 +1970,12 @@
                             c = new BigDecimal(orderPrivateCar.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);
                         }
                         incomeService.saveData(1, orderPrivateCar.getCompanyId(), 2, orderPrivateCar.getId(), 1, d.doubleValue());
-                        incomeService.saveData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue());
                         Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
                         driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                         driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                         driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                         driverService.updateById(driver);
+                        incomeService.saveDriverData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue(), driver.getBalance());
                     }
                 }
                 // TODO: 2020/5/24 这里需要给司机和用户推送订单状态
@@ -2121,6 +2147,16 @@
             List<OrderPosition> list = JSONArray.parseArray(sb.toString(), OrderPosition.class);
             orderServerWarpper.setOrderPositionList(JSONObject.toJSONString(list));
         }
+        // 查询司机服务中的订单
+        OrderPrivateCar one = this.selectOne(new EntityWrapper<OrderPrivateCar>()
+                .eq("driverId", orderPrivateCar.getDriverId())
+                .eq("state", 5)
+                .orderBy("insertTime", false)
+                .last("LIMIT 1"));
+        if(Objects.nonNull(one)){
+            orderServerWarpper.setLastLon(one.getEndLon()+"");
+            orderServerWarpper.setLastLat(one.getEndLat()+"");
+        }
         return orderServerWarpper;
     }
 

--
Gitblit v1.7.1