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 | 172 ++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 116 insertions(+), 56 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 5f51f98..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;
@@ -34,6 +34,7 @@
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;
@@ -41,10 +42,8 @@
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.PrintWriter;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
@@ -76,6 +75,8 @@
@Resource
private UserInfoMapper userInfoMapper;
+ @Autowired
+ private IOpenCityService openCityService;
@Autowired
private DateUtil dateUtil;
@@ -109,55 +110,62 @@
@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 RedisTemplate redisTemplate;
-
+ @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;
+ @Autowired
+ private ICompanyService companyService;
/**
@@ -236,7 +244,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));
@@ -256,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);
@@ -285,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()
@@ -302,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);
@@ -371,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() {
@@ -386,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
@@ -545,16 +617,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());
@@ -857,7 +929,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);
@@ -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,20 +1019,7 @@
if(b){
//先计算里程,在存储最新位置
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(orderPosition);
}
}
return false;//上层不需要处理
--
Gitblit v1.7.1