From 1c40baaf9ca0183945b9881d11ceed5aeebc8290 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 23 十月 2025 11:35:44 +0800
Subject: [PATCH] 修改bug
---
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java | 100 ++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 85 insertions(+), 15 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 2da4352..44f0e75 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
@@ -20,13 +20,13 @@
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.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.util.qianyuntong.OrderUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.ModifyTravelItineraryRequest;
import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
import com.stylefeng.guns.modular.system.warpper.MerchantCouponListWarpper;
import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper;
@@ -43,6 +43,7 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
@@ -151,11 +152,20 @@
@Autowired
private QrCodeConfiguration qrCodeConfiguration;
+ @Autowired
+ private TDriverPromotionActivityService driverPromotionActivityService;
+
@Value("${pushMinistryOfTransport}")
private boolean pushMinistryOfTransport;
@Value("${callbackPath}")
private String callbackPath;
+ @Autowired
+ private CarModelMapper carModelMapper;
+ @Autowired
+ private CarServiceImpl carServiceImpl;
+ @Autowired
+ private ICompanyService companyService;
/**
@@ -255,7 +265,12 @@
@Override
public ResultUtil process(Integer orderId, Integer state, Double lon, Double lat, String address) throws Exception {
OrderCrossCity orderCrossCity = this.selectById(orderId);
+ if(10 == orderCrossCity.getState()){
+ return ResultUtil.error("订单已被取消,不能继续操作");
+ }
UserInfo userInfo = userInfoMapper.selectById(orderCrossCity.getUserId());
+ Driver driver = driverService.selectById(orderCrossCity.getDriverId());
+ Company company = companyService.selectById(driver.getCompanyId());
switch (state){
case 3://出发前往预约点
orderCrossCity.setState(3);
@@ -284,15 +299,33 @@
orderCrossCity.setGetoffTime(new Date());
orderCrossCity.setState(8);//跨城直接到待评价
orderCrossCity.setEndServiceTime(new Date());
-
- Driver driver = driverService.selectById(orderCrossCity.getDriverId());
+ this.updateById(orderCrossCity);
//添加抽成及收入记录
- Map<String, Object> map = incomeService.saveIncome(orderCrossCity.getId(), 3, orderCrossCity.getOrderMoney());
- orderCrossCity.setSplitAllocation(JSON.toJSONString(map));
+
+ //非追缴单才需要记录收入
+ if(0 == orderCrossCity.getRecoveryOrder()){
+ //添加收入
+ Double orderMoney = (2 == orderCrossCity.getAbnormal() && 2 == orderCrossCity.getAbnormalStatus() ? orderCrossCity.getResponsibilityMoney().doubleValue() : orderCrossCity.getOrderMoney());
+ Map<String, Object> map = incomeService.saveIncome(orderCrossCity.getId(), 3, orderMoney);
+ orderCrossCity.setSplitAllocation(JSON.toJSONString(map));
+ }
+ //待审核的异常单修改状态为已关闭
+ if(2 == orderCrossCity.getAbnormal() && 1 == orderCrossCity.getAbnormalStatus()){
+ orderCrossCity.setAbnormalStatus(3);
+ orderCrossCity.setResponsibilityMoney(new BigDecimal(orderCrossCity.getOrderMoney()));
+ orderCrossCity.setResponsibilityType(3);
+ orderCrossCity.setAbnormalRemark("乘客已支付订单,申诉已自动关闭");
+ }
//还原座位数
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()
@@ -301,7 +334,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);
@@ -370,9 +403,27 @@
pushUtil.removeTask(orderId, 3);//删除定时任务,结束推送数据
systemNoticeService.addSystemNotice(1, "司机已结束本次行程,谢谢使用", orderCrossCity.getUserId(), 1);
+ promotion(orderId);
break;
}
this.updateById(orderCrossCity);
+
+ if(ToolUtil.isNotEmpty(orderCrossCity.getTravelId())){
+ //中台修改订单状态
+ ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
+ request1.setOrderId(orderCrossCity.getTravelId());
+ request1.setStatus(orderCrossCity.getState());
+ if (null != orderCrossCity.getDriverId()) {
+ request1.setDriverId(driver.getEmpId().toString());
+ request1.setSupplierShopId(company.getEnterCode());
+ }
+ if (2 == orderCrossCity.getPromotion()) {
+ Driver driver2 = driverService.selectById(orderCrossCity.getPromotionDriverId());
+ request1.setPromoterId(driver2.getEmpId().toString());
+ }
+ OrderUtil.modifyTravelItinerary(request1);
+ }
+
// TODO: 2020/6/5 推送状态
new Thread(new Runnable() {
@@ -385,7 +436,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
@@ -915,7 +988,7 @@
String lat = orderPosition.getLat();
OrderCrossCity order = this.selectById(orderId);
if(null == order){
- System.err.println("订单数据异常:" + orderId);
+ System.err.println("跨城订单数据异常:" + orderId);
return false;
}
@@ -946,10 +1019,7 @@
if(b){
//先计算里程,在存储最新位置
orderPosition.setInsertTime(new Date());
- //将数据存储到文件中
- List<OrderPosition> orderPositions = orderPositionService.queryPosition(orderCrossCity.getId(), 3);
- orderPositions.add(orderPosition);
- mongoTemplate.save(orderPositions);
+ mongoTemplate.save(orderPosition);
}
}
return false;//上层不需要处理
--
Gitblit v1.7.1