From 85e1acac71016eb752b39e741d7b4b5704fa7e66 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期四, 21 八月 2025 01:55:53 +0800
Subject: [PATCH] update

---
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java |  136 +++++++++++++++++++++++++-------------------
 1 files changed, 77 insertions(+), 59 deletions(-)

diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
index e91b015..2efbc8a 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -6,7 +6,6 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.stylefeng.guns.core.util.ToolUtil;
-import com.stylefeng.guns.modular.account.controller.AppOrderController;
 import com.stylefeng.guns.modular.account.unionpay.GetOpenBodySig;
 import com.stylefeng.guns.modular.account.unionpay.QrCodeConfiguration;
 import com.stylefeng.guns.modular.account.unionpay.Util;
@@ -21,37 +20,28 @@
 import com.stylefeng.guns.modular.crossCity.warpper.OrderCrossCityWarpper;
 import com.stylefeng.guns.modular.specialTrain.dao.OrderPrivateCarMapper;
 import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
-import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
-import com.stylefeng.guns.modular.system.dao.PhoneMapper;
-import com.stylefeng.guns.modular.system.dao.RegionMapper;
-import com.stylefeng.guns.modular.system.dao.SysIntegralMapper;
-import com.stylefeng.guns.modular.system.dao.UserInfoMapper;
+import com.stylefeng.guns.modular.system.dao.*;
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
+import com.stylefeng.guns.modular.system.service.impl.CarServiceImpl;
 import com.stylefeng.guns.modular.system.util.*;
 import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
 import com.stylefeng.guns.modular.system.warpper.MerchantCouponListWarpper;
 import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
-import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
-import io.swagger.models.auth.In;
 import org.apache.commons.lang.time.DateFormatUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.PrintWriter;
 import java.math.BigDecimal;
-import java.math.MathContext;
 import java.math.RoundingMode;
-import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -83,6 +73,8 @@
 
     @Resource
     private UserInfoMapper userInfoMapper;
+    @Autowired
+    private IOpenCityService openCityService;
 
     @Autowired
     private DateUtil dateUtil;
@@ -116,55 +108,60 @@
 
     @Resource
     private OrderPrivateCarMapper orderPrivateCarMapper;
-
+    
     @Resource
     private OrderTaxiMapper orderTaxiMapper;
-
+    
     @Resource
     private PhoneMapper phoneMapper;
-
+    
     @Autowired
     private IOrderPositionService orderPositionService;
-
-    @Autowired
-    private PushMinistryOfTransportUtil pushMinistryOfTransportUtil;
-
+    
+    @Resource
+    private MongoTemplate mongoTemplate;
+    
     @Autowired
     private IOrderCancelService orderCancelService;
-
+    
     @Autowired
     private GeodesyUtil geodesyUtil;
-
+    
     @Autowired
     private PayMoneyUtil payMoneyUtil;
-
+    
     @Autowired
     private IOrderAdditionalFeeService orderAdditionalFeeService;
-
-    @Autowired
-    private RedisUtil redisUtil;
-
+    
+    @Resource
+    private RedisTemplate<String, Object> redisTemplate;
+    
     @Autowired
     private IMerchantActivityService merchantActivityService;
-
+    
     @Autowired
     private IMerchantActivitySlaveService merchantActivitySlaveService;
-
+    
     @Autowired
     private IUserMerchantCouponService userMerchantCouponService;
-
+    
     @Autowired
     private IMerchantCouponService merchantCouponService;
     @Autowired
     private QrCodeConfiguration qrCodeConfiguration;
-    @Value("${filePath}")
-    private String filePath;
+
+    @Autowired
+    private TDriverPromotionActivityService driverPromotionActivityService;
 
     @Value("${pushMinistryOfTransport}")
     private boolean pushMinistryOfTransport;
 
     @Value("${callbackPath}")
     private String callbackPath;
+    @Autowired
+    private CarModelMapper carModelMapper;
+    @Autowired
+    private CarServiceImpl carServiceImpl;
 
 
     /**
@@ -243,7 +240,8 @@
         map.put("orderNumber", orderCrossCity.getOrderNum());
         map.put("totalMoney", new BigDecimal(totalMoney).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
         map.put("serverMoney", new BigDecimal(serverMoney).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
-        Phone phone = phoneMapper.queryInfo(orderCrossCity.getCompanyId(), 1);
+        OpenCity openCity = openCityService.openCity1(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString());
+        Phone phone = phoneMapper.queryInfo(openCity.getId(), 1, 1);
         map.put("emergencyCall", null != phone ? phone.getPhone() : "110");
         map.put("orders", JSON.toJSONString(order));
 
@@ -300,7 +298,13 @@
 
                 //还原座位数
                 LineShiftDriver lineShiftDriver = lineShiftDriverMapper.selectById(orderCrossCity.getLineShiftDriverId());
-                lineShiftDriver.setLaveSeat(lineShiftDriver.getLaveSeat() + orderCrossCity.getPeopleNumber());
+                if(1 == orderCrossCity.getTravelMode()){
+                    lineShiftDriver.setLaveSeat(lineShiftDriver.getLaveSeat() + orderCrossCity.getPeopleNumber());
+                }else{
+                    Car car = carServiceImpl.selectById(driver.getCarId());
+                    CarModel carModel = carModelMapper.selectById(car.getCarModelId());
+                    lineShiftDriver.setLaveSeat(carModel.getSeat() - 1);
+                }
                 lineShiftDriver.setLaveSeatNumber(
                         (ToolUtil.isNotEmpty(lineShiftDriver.getLaveSeatNumber()) ? lineShiftDriver.getLaveSeatNumber() + ","  : "") +
                                 orderCrossCity.getSeatNumber()
@@ -309,7 +313,7 @@
 
                 //修改司机空闲状态
                 List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.queryWithin30Minutes(orderCrossCity.getDriverId(), 2, 3, 4, 5, 11);
-                if(orderCrossCities.size() == 0){
+                if(orderCrossCities.size() <= 1){
                     driver = driverService.selectById(orderCrossCity.getDriverId());
                     driver.setState(2);
                     driverService.updateById(driver);
@@ -368,16 +372,17 @@
                     }
                     merchantActivityService.updateBatchById(merchantActivities);
                 }
-                String value = redisUtil.getValue("merchantVoucher");
+                String value = (String) redisTemplate.opsForValue().get("merchantVoucher");
                 JSONObject jsonObject = JSON.parseObject(value);
                 if(null == jsonObject){
                     jsonObject = new JSONObject();
                 }
                 jsonObject.put(userInfo.getPhone(), listWarppers);
-                redisUtil.setStrValue("merchantVoucher", jsonObject.toJSONString());
+                redisTemplate.opsForValue().set("merchantVoucher", jsonObject.toJSONString());
 
                 pushUtil.removeTask(orderId, 3);//删除定时任务,结束推送数据
                 systemNoticeService.addSystemNotice(1, "司机已结束本次行程,谢谢使用", orderCrossCity.getUserId(), 1);
+                promotion(orderId);
                 break;
         }
         this.updateById(orderCrossCity);
@@ -393,7 +398,29 @@
         return ResultUtil.success();
     }
 
+    public void promotion(Integer orderId) {
+        OrderCrossCity orderCrossCity = this.baseMapper.selectById(orderId);
+        UserInfo userInfo = userInfoMapper.selectById(orderCrossCity.getUserId());
+        if(orderCrossCity.getPromotionDriverId()!=null ){
+            String registAreaCode = userInfo.getRegistAreaCode();
+            TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("districtCode", registAreaCode).le("startTime", new Date()).ge("endTime", new Date()).last("AND FIND_IN_SET(" + 3 + ", bizType) limit 1"));
+            System.out.println("ddddd"+tDriverPromotionActivity);
+            if(tDriverPromotionActivity!=null){
+                Double payMoney = orderCrossCity.getPayMoney();
+                System.out.println(payMoney);
+                BigDecimal bigDecimal = tDriverPromotionActivity.getCommissionRatio().divide(new BigDecimal(100), 2, RoundingMode.HALF_UP).multiply(new BigDecimal(payMoney)).setScale(2, RoundingMode.HALF_UP);
+                System.out.println(bigDecimal);
+                orderCrossCity.setPromotionDriverId(userInfo.getBindDriverId());
+                orderCrossCity.setPromotionMoney(bigDecimal);
+                orderCrossCity.setPromotionActivityId(tDriverPromotionActivity.getId());
+                orderCrossCity.setSuccessTime(new Date());
+                this.baseMapper.updateById(orderCrossCity);
+            }
+        }
 
+
+
+    }
     /**
      * 获取订单明细
      * @param orderId
@@ -552,16 +579,16 @@
         orderCrossCity.setIsReassign(1);
         orderCrossCity.setLineShiftDriverId(orderCrossCityWarpper.getLineShiftDriverId());
         //调用高德创建轨迹
-        String s = gdFalconUtil.selectTerminal(driver.getPhone());
-        String track = gdFalconUtil.createTrack(s);
-        orderCrossCity.setTrackId(track);
+//        String s = gdFalconUtil.selectTerminal(driver.getPhone());
+//        String track = gdFalconUtil.createTrack(s);
+//        orderCrossCity.setTrackId(track);
 
         //调用移动的小号接口
-        Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderCrossCity.getPassengersPhone(), driver.getPhone(), (System.currentTimeMillis() + 86400000));
-        if(String.valueOf(map.get("code")).equals("200")){
-            orderCrossCity.setTelX(map.get("telX"));
-            orderCrossCity.setBindId(map.get("bindId"));
-        }
+//        Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderCrossCity.getPassengersPhone(), driver.getPhone(), (System.currentTimeMillis() + 86400000));
+//        if(String.valueOf(map.get("code")).equals("200")){
+//            orderCrossCity.setTelX(map.get("telX"));
+//            orderCrossCity.setBindId(map.get("bindId"));
+//        }
         if(orderCrossCityWarpper.getTravelMode() == 2){//包车
 //            orderCrossCity.setSeatNumber(lineShiftDriver.getLaveSeatNumber());
 //            orderCrossCity.setPeopleNumber(lineShiftDriver.getLaveSeat());
@@ -864,7 +891,8 @@
 
 
                 UserInfo userInfo = userInfoMapper.selectById(orderCrossCity.getUserId());
-                SysIntegral query1 = sysIntegralMapper.query(orderCrossCity.getCompanyId());
+                OpenCity openCity = openCityService.openCity1(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString());
+                SysIntegral query1 = sysIntegralMapper.query(openCity.getId());
                 userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分
                 userInfoMapper.updateById(userInfo);
                 System.out.println("==============userInfo修改完毕==================="+userInfo);
@@ -922,7 +950,7 @@
         String lat = orderPosition.getLat();
         OrderCrossCity order = this.selectById(orderId);
         if(null == order){
-            System.err.println("订单数据异常:" + orderId);
+            System.err.println("跨城订单数据异常:" + orderId);
             return false;
         }
 
@@ -955,18 +983,8 @@
                 orderPosition.setInsertTime(new Date());
                 //将数据存储到文件中
                 List<OrderPosition> orderPositions = orderPositionService.queryPosition(orderCrossCity.getId(), 3);
-                File file = new File(filePath + orderCrossCity.getId() + "_3" + ".txt");
-                if(!file.exists()){
-                    file.getParentFile().mkdirs();
-                    file.createNewFile();
-                }
-                //写入相应的文件
-                PrintWriter out = new PrintWriter(new FileWriter(file));
                 orderPositions.add(orderPosition);
-                System.err.println("存储新数据:" + JSON.toJSONString(orderPositions));
-                out.write(JSON.toJSONString(orderPositions));
-                out.flush();
-                out.close();
+                mongoTemplate.save(orderPositions);
             }
         }
         return false;//上层不需要处理

--
Gitblit v1.7.1