From b4c371a3049be8a53a5cad6b6ba499ebaf438232 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 13 八月 2025 15:25:14 +0800
Subject: [PATCH] 修改bug
---
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java | 219 +++++++++++++++++++++++++++++++++++-------------------
1 files changed, 141 insertions(+), 78 deletions(-)
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
index bb1de00..ff6c116 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -20,10 +20,7 @@
import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
import com.stylefeng.guns.modular.specialTrain.server.impl.OrderPrivateCarServiceImpl;
-import com.stylefeng.guns.modular.system.dao.RegionMapper;
-import com.stylefeng.guns.modular.system.dao.SensitiveWordsMapper;
-import com.stylefeng.guns.modular.system.dao.SysIntegralMapper;
-import com.stylefeng.guns.modular.system.dao.UserActivityDiscount1Mapper;
+import com.stylefeng.guns.modular.system.dao.*;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.model.vo.UnPayOrderVO;
import com.stylefeng.guns.modular.system.service.*;
@@ -85,9 +82,7 @@
@Resource
private OrderTaxiMapper orderTaxiMapper;
- @Resource
- private RegionMapper regionMapper;
-
+
@Resource
private SensitiveWordsMapper sensitiveWordsMapper;
@@ -111,10 +106,7 @@
@Autowired
private IOrderPrivateCarService orderPrivateCarService;
-
- @Autowired
- private ILineService lineService;
-
+
@Autowired
private IIncomeService incomeService;
@@ -136,9 +128,7 @@
@Autowired
private ChinaMobileUtil chinaMobileUtil;
- @Autowired
- private GDFalconUtil gdFalconUtil;
-
+
@Resource
private RedisTemplate<String, Object> redisTemplate;
@@ -171,13 +161,7 @@
@Autowired
private PayMoneyUtil payMoneyUtil;
-
- @Autowired
- private IOrderLogisticsService orderLogisticsService;
-
- @Autowired
- private ITaxiCardPaymentService taxiCardPaymentService;
-
+
@Autowired
private ICompanyService companyService;
@@ -192,6 +176,14 @@
@Autowired
private IRegionService regionService;
+
+ @Autowired
+ private TAbnormalPayOrderMapper abnormalPayOrderMapper;
+
+
+
+ @Autowired
+ private TDriverPromotionActivityService driverPromotionActivityService;
@Value("${callbackPath}")
@@ -1294,6 +1286,11 @@
// orderCrossCity.setTelX(map.get("telX"));
// orderCrossCity.setBindId(map.get("bindId"));
// }
+
+ // 是否推广订单
+ Integer promotion = isPromotion(uid);
+ orderCrossCity.setPromotion(promotion);
+
this.insert(orderCrossCity);
if (driver.getState() == 2) {
@@ -1386,8 +1383,19 @@
return ResultUtil.success(baseWarpper);
}
-
-
+
+ private Integer isPromotion(Integer userId){
+ UserInfo userInfo = userInfoService.selectById(userId);
+ if(userInfo.getBindDriverId()!=null && userInfo.getBindExpireDate().getTime()<=System.currentTimeMillis()){
+ String registAreaCode = userInfo.getRegistAreaCode();
+ TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("districtCode", registAreaCode).ge("startTime", new Date()).lt("endTime", new Date()).last("AND FIND_IN_SET(" + 3 + ", bizType) limit 1"));
+ if(tDriverPromotionActivity!=null){
+ return 2;
+ }
+ }
+ return null;
+
+ }
/**
* 获取订单
*
@@ -2092,64 +2100,67 @@
@Override
public OrderServerWarpper queryOrderServer(Integer orderId, Integer uid) throws Exception {
OrderCrossCity orderCrossCity = this.selectById(orderId);
- //计算预计距离和剩余时间
- String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderCrossCity.getDriverId()));
- if (null == value || "".equals(value)) {
- System.err.println("司机没有上传位置信息");
+ if(null != orderCrossCity){
+ //计算预计距离和剩余时间
+ String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(orderCrossCity.getDriverId()));
+ if (null == value || "".equals(value)) {
+ System.err.println("司机没有上传位置信息");
+
+ //调用获取轨迹中的数据
+ List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, 3);
+ if (list.size() > 0) {
+ Map<String, Object> map = list.get(list.size() - 1);
+ value = map.get("lon") + "," + map.get("lat");
+ }
+ }
- //调用获取轨迹中的数据
- List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, 3);
- if (list.size() > 0) {
- Map<String, Object> map = list.get(list.size() - 1);
- value = map.get("lon") + "," + map.get("lat");
+ OrderServerWarpper orderServerWarpper = new OrderServerWarpper();
+ orderServerWarpper.setOrderId(orderCrossCity.getId());
+ orderServerWarpper.setOrderType(3);
+ orderServerWarpper.setState(orderCrossCity.getState());
+ orderServerWarpper.setLon(null != value ? value.split(",")[0] : "0.0");
+ orderServerWarpper.setLat(null != value ? value.split(",")[1] : "0.0");
+ orderServerWarpper.setReassignNotice(orderCrossCity.getReassignNotice());
+ if (orderCrossCity.getState() == 2 || orderCrossCity.getState() == 3) {//前往预约地
+ // TODO: 2023/11/4 无法修改
+ Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, orderCrossCity.getStartLon() + "," + orderCrossCity.getStartLat(), 1);
+ String d = "0";
+ String t = "0";
+ if (null == distance) {
+ System.err.println("查询距离出错了");
+ } else {
+ d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString();
+ t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + "";
+ }
+ orderServerWarpper.setReservationMileage(d);
+ orderServerWarpper.setReservationTime(t);
+ orderServerWarpper.setServedMileage("0");
+ orderServerWarpper.setServedTime("0");
+ orderServerWarpper.setLaveMileage("0");
+ orderServerWarpper.setLaveTime("0");
}
- }
-
- OrderServerWarpper orderServerWarpper = new OrderServerWarpper();
- orderServerWarpper.setOrderId(orderCrossCity.getId());
- orderServerWarpper.setOrderType(3);
- orderServerWarpper.setState(orderCrossCity.getState());
- orderServerWarpper.setLon(null != value ? value.split(",")[0] : "0.0");
- orderServerWarpper.setLat(null != value ? value.split(",")[1] : "0.0");
- orderServerWarpper.setReassignNotice(orderCrossCity.getReassignNotice());
- if (orderCrossCity.getState() == 2 || orderCrossCity.getState() == 3) {//前往预约地
- // TODO: 2023/11/4 无法修改
- Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, orderCrossCity.getStartLon() + "," + orderCrossCity.getStartLat(), 1);
- String d = "0";
- String t = "0";
- if (null == distance) {
- System.err.println("查询距离出错了");
- } else {
- d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString();
- t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + "";
+ if (orderCrossCity.getState() == 5 || orderCrossCity.getState() == 6) {//服务中
+ // TODO: 2023/11/4 无法修改
+ Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, orderCrossCity.getEndLon() + "," + orderCrossCity.getEndLat(), 1);
+ String d = "0";
+ String t = "0";
+ if (null == distance) {
+ System.err.println("查询距离出错了");
+ } else {
+ d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString();
+ t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + "";
+ }
+ orderServerWarpper.setReservationMileage("0");
+ orderServerWarpper.setReservationTime("0");
+ orderServerWarpper.setServedMileage(String.valueOf(orderCrossCity.getMileage() / 1000));
+ orderServerWarpper.setServedTime(Long.valueOf((new Date().getTime() - orderCrossCity.getStartServiceTime().getTime()) / 60000).intValue() + "");
+ orderServerWarpper.setLaveMileage(d);
+ orderServerWarpper.setLaveTime(t);
}
- orderServerWarpper.setReservationMileage(d);
- orderServerWarpper.setReservationTime(t);
- orderServerWarpper.setServedMileage("0");
- orderServerWarpper.setServedTime("0");
- orderServerWarpper.setLaveMileage("0");
- orderServerWarpper.setLaveTime("0");
+
+ return orderServerWarpper;
}
- if (orderCrossCity.getState() == 5 || orderCrossCity.getState() == 6) {//服务中
- // TODO: 2023/11/4 无法修改
- Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, orderCrossCity.getEndLon() + "," + orderCrossCity.getEndLat(), 1);
- String d = "0";
- String t = "0";
- if (null == distance) {
- System.err.println("查询距离出错了");
- } else {
- d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString();
- t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + "";
- }
- orderServerWarpper.setReservationMileage("0");
- orderServerWarpper.setReservationTime("0");
- orderServerWarpper.setServedMileage(String.valueOf(orderCrossCity.getMileage() / 1000));
- orderServerWarpper.setServedTime(Long.valueOf((new Date().getTime() - orderCrossCity.getStartServiceTime().getTime()) / 60000).intValue() + "");
- orderServerWarpper.setLaveMileage(d);
- orderServerWarpper.setLaveTime(t);
- }
-
- return orderServerWarpper;
+ return new OrderServerWarpper();
}
@@ -2698,7 +2709,59 @@
}
orderCrossCity.setAbnormalIntro(abnormalIntro);
orderCrossCity.setAbnormalImg(abnormalImg);
- orderCrossCity.setAbnormal(1);
+ orderCrossCity.setAbnormal(2);
this.baseMapper.updateById(orderCrossCity);
}
+
+ @Override
+ public void promotion(Integer orderId) {
+ OrderCrossCity orderCrossCity = this.baseMapper.selectById(orderId);
+ UserInfo userInfo = userInfoService.selectById(orderCrossCity.getUserId());
+ if(userInfo.getBindDriverId()!=null && userInfo.getBindExpireDate().getTime()<=System.currentTimeMillis()){
+ String registAreaCode = userInfo.getRegistAreaCode();
+ TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("districtCode", registAreaCode).ge("startTime", new Date()).lt("endTime", new Date()).last("AND FIND_IN_SET(" + 3 + ", bizType) limit 1"));
+ if(tDriverPromotionActivity!=null){
+ Double payMoney = orderCrossCity.getPayMoney();
+ BigDecimal bigDecimal = tDriverPromotionActivity.getCommissionRatio().divide(new BigDecimal(100), 2, RoundingMode.HALF_UP).multiply(new BigDecimal(payMoney)).setScale(2, RoundingMode.HALF_UP);
+ orderCrossCity.setPromotionDriverId(userInfo.getBindDriverId());
+ orderCrossCity.setPromotionMoney(bigDecimal);
+ orderCrossCity.setPromotionActivityId(tDriverPromotionActivity.getId());
+ this.baseMapper.updateById(orderCrossCity);
+ }
+ }
+
+ // 是否异常订单
+ if (orderCrossCity.getResponsibilityType() !=null && orderCrossCity.getResponsibilityType() >2) {
+ TAbnormalPayOrder tAbnormalPayOrder = abnormalPayOrderMapper.selectList(new EntityWrapper<TAbnormalPayOrder>().eq("type", 3).eq("orderNum", orderCrossCity.getOrderNum())).stream().findFirst().orElse(null);
+ if (tAbnormalPayOrder != null) {
+ tAbnormalPayOrder.setPayStatus(2);
+ tAbnormalPayOrder.setPayTime(new Date());
+ abnormalPayOrderMapper.updateById(tAbnormalPayOrder);
+ }
+ }
+ }
+
+ @Override
+ public List<Map<String, Object>> queryMyTripList(Integer uid, Integer pageNum, Integer size) throws Exception {
+ pageNum = (pageNum - 1) * size;
+ List<Map<String, Object>> maps = orderCrossCityMapper.queryMyTripList(uid, pageNum, size);
+ for (Map<String, Object> map : maps) {
+ if (Integer.valueOf(String.valueOf(map.get("state"))) == 11) {
+ map.put("state", map.get("oldState"));
+ }
+ }
+ return maps;
+ }
+
+ @Override
+ public List<Map<String, Object>> queryMyTripListAll(Integer uid) throws Exception {
+
+ List<Map<String, Object>> maps = orderCrossCityMapper.queryMyTripListAll(uid);
+ for (Map<String, Object> map : maps) {
+ if (Integer.valueOf(String.valueOf(map.get("state"))) == 11) {
+ map.put("state", map.get("oldState"));
+ }
+ }
+ return maps;
+ }
}
--
Gitblit v1.7.1