From ca73af429b960124ab9b32ccfd5572e3f1df2bc2 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 22 十月 2025 18:10:04 +0800
Subject: [PATCH] 添加后台改派司机校验
---
DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java | 302 ++++++++++++++++++++++++++-----------------------
1 files changed, 161 insertions(+), 141 deletions(-)
diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
index 7d6f9f5..bacc537 100644
--- a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
+++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
@@ -1,6 +1,8 @@
package com.stylefeng.guns.modular.system.service.impl;
+import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.shiro.ShiroKit;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
@@ -84,6 +86,11 @@
@Value("${callbackPath}")
private String callbackPath;
+ @Autowired
+ private RedisUtil redisUtil;
+
+ @Autowired
+ private IAppOperationLogService appOperationLogService;
/**
@@ -94,142 +101,154 @@
*/
@Override
public ResultUtil saveData(Reassign reassign, Integer uid, Integer type) throws Exception {
- type = null == type ? 2 : type;//现目前微信只支持小程序支付
- String content = reassign.getRemark();
- if(ToolUtil.isNotEmpty(content)){
- List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
- for(SensitiveWords s : sensitiveWords){
- content = content.replaceAll(s.getContent(), "***");
- }
+ boolean lock = redisUtil.lock(reassign.getOrderId() + "_reassign", 10, 30);
+ if(!lock){
+ return ResultUtil.error("系统繁忙,请稍后重试");
}
- reassign.setRemark(content);
+
ResultUtil resultUtil = ResultUtil.success();
- Driver driver = driverService.selectById(uid);
- // TODO: 2020/11/12 司机端不控制重复提交(如果重复提交且未支付,直接将之前的数据删除)
+ try {
+ type = null == type ? 2 : type;//现目前微信只支持小程序支付
+ String content = reassign.getRemark();
+ if(ToolUtil.isNotEmpty(content)){
+ List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
+ for(SensitiveWords s : sensitiveWords){
+ content = content.replaceAll(s.getContent(), "***");
+ }
+ }
+ reassign.setRemark(content);
+ Driver driver = driverService.selectById(uid);
+ // TODO: 2020/11/12 司机端不控制重复提交(如果重复提交且未支付,直接将之前的数据删除)
// Reassign query = reassignMapper.query(uid, null, null, null, 1);
// if(null != query){
// return ResultUtil.error("有未完成支付的改派申请");
// }
- Reassign query = reassignMapper.query(uid, null, reassign.getOrderId(), reassign.getOrderType(), 1);
- if(null != query){
+ Reassign query = reassignMapper.query(uid, null, reassign.getOrderId(), reassign.getOrderType(), 1);
+ if(null != query){
// return ResultUtil.error("不能重复提交申请");
- reassignMapper.deleteById(query.getId());
- }
- query = reassignMapper.query(uid, null, reassign.getOrderId(), reassign.getOrderType(), 2);
- if(null != query){
- return ResultUtil.error("您提交的申请正在处理中");
- }
-
- //获取支付金额
- Double aDouble = orderService.queryReassignMoney(reassign.getOrderId(), reassign.getOrderType());
- reassign.setMoney(aDouble);
- reassign.setOriginalDriverId(uid);
- reassign.setOriginalCarId(driver.getCarId());
- reassign.setInsertTime(new Date());
- this.insert(reassign);
-
- systemNoticeService.addSystemNotice(2, "您的改派申请已成功提交,我们会尽快为你处理!", uid);
-
- //开始支付
- if(null != reassign.getPayType()){
- if(reassign.getPayType() == 1){//微信支付
- reassign.setState(1);
- ResultUtil resultUtil1 = payMoneyUtil.weixinpay("改派订单",reassign.getId()+"",reassign.getId() + "_" + reassign.getOrderType(),aDouble+"","/base/wxReassign","APP", "");
- //Map<String, String> map = icbcPayUtil.placeAnOrder(reassign.getId() + "_" + reassign.getOrderType(), 9, 5, uid.toString(), "改派订单", aDouble, callbackPath + "/base/wxReassign", "", type, driver.getAppletsOpenId());
- if(resultUtil1.getCode()==200){
- paymentRecordService.saveData(1, null, null, reassign.getOrderId(), reassign.getOrderType(), 1, aDouble, null, 1);//添加预支付数据
- resultUtil = resultUtil1;
- }else{
- resultUtil = ResultUtil.error("获取支付信息失败", "");
+ reassignMapper.deleteById(query.getId());
+ }
+ query = reassignMapper.query(uid, null, reassign.getOrderId(), reassign.getOrderType(), 2);
+ if(null != query){
+ return ResultUtil.error("您提交的申请正在处理中");
+ }
+
+ //获取支付金额
+ Double aDouble = orderService.queryReassignMoney(reassign.getOrderId(), reassign.getOrderType());
+ reassign.setMoney(aDouble);
+ reassign.setOriginalDriverId(uid);
+ reassign.setOriginalCarId(driver.getCarId());
+ reassign.setInsertTime(new Date());
+ this.insert(reassign);
+
+ systemNoticeService.addSystemNotice(2, "您的改派申请已成功提交,我们会尽快为你处理!", uid);
+
+ //开始支付
+ if(null != reassign.getPayType()){
+ if(reassign.getPayType() == 1){//微信支付
+ reassign.setState(1);
+ ResultUtil resultUtil1 = payMoneyUtil.weixinpay("改派订单",reassign.getId()+"",reassign.getId() + "_" + reassign.getOrderType(),aDouble+"","/base/wxReassign","APP", "");
+ //Map<String, String> map = icbcPayUtil.placeAnOrder(reassign.getId() + "_" + reassign.getOrderType(), 9, 5, uid.toString(), "改派订单", aDouble, callbackPath + "/base/wxReassign", "", type, driver.getAppletsOpenId());
+ if(resultUtil1.getCode()==200){
+ paymentRecordService.saveData(1, null, null, reassign.getOrderId(), reassign.getOrderType(), 1, aDouble, null, 1);//添加预支付数据
+ resultUtil = resultUtil1;
+ }else{
+ resultUtil = ResultUtil.error("获取支付信息失败", "");
+ }
+ }
+ if(reassign.getPayType() == 2){//支付宝
+ reassign.setState(1);
+ ResultUtil resultUtil1 = payMoneyUtil.alipay("改派订单","改派订单",reassign.getId() + "_" + reassign.getOrderType(),aDouble+"","/base/aliReassign", "");
+ //Map<String, String> map = icbcPayUtil.placeAnOrder(reassign.getId() + "_" + reassign.getOrderType(), 10, 5, uid.toString(), "改派订单", aDouble, callbackPath + "/base/aliReassign", "", 2, "");
+ if(resultUtil1.getCode()==200){
+ paymentRecordService.saveData(1, null, null, reassign.getOrderId(), reassign.getOrderType(), 2, aDouble, null, 1);//添加预支付数据
+ resultUtil = resultUtil1;
+ }else{
+ resultUtil = ResultUtil.error("获取支付信息失败", "");
+ }
+ }
+ if(reassign.getPayType() == 3){//余额
+ reassign.setState(2);
+ reassign.setPayTime(new Date());
+ reassignMapper.updateById(reassign);
+
+ Double balance = driver.getBalance();
+ Double laveBusinessMoney = driver.getLaveBusinessMoney();
+ Double laveActivityMoney = driver.getLaveActivityMoney();
+ if(null == balance || balance < aDouble){
+ throw new SystemException("账户余额不足");
+ }
+ if(null != laveBusinessMoney && laveBusinessMoney.compareTo(aDouble) >= 0){
+ driver.setLaveBusinessMoney(new BigDecimal(laveBusinessMoney).subtract(new BigDecimal(aDouble)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+ }else if(null != laveActivityMoney && laveActivityMoney.compareTo(aDouble) >= 0){
+ driver.setLaveActivityMoney(new BigDecimal(laveActivityMoney).subtract(new BigDecimal(aDouble)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+ }
+ driver.setBalance(new BigDecimal(balance).subtract(new BigDecimal(aDouble)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+ driverService.updateById(driver);
+ //添加交易明细
+ transactionDetailsService.saveDriverData(uid, "司机改派支付", aDouble, 2, 1, 2, reassign.getOrderType(), reassign.getOrderId(), driver.getLaveBusinessMoney());
+
+
+ //修改改派通知状态
+ switch (reassign.getOrderType()){
+ case 1:
+ OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(reassign.getOrderId());
+ orderPrivateCar.setOldState(orderPrivateCar.getState());
+ orderPrivateCar.setState(11);
+ orderPrivateCar.setReassignNotice(2);
+ orderPrivateCarService.updateById(orderPrivateCar);
+ appOperationLogService.addAppOperationLog(uid, "{\"type\":\"司机申请改派\",\"orderId\":\"" + orderPrivateCar.getId() + "\",\"driver\":\"" + JSON.toJSONString(orderPrivateCar) + "\"}");
+
+ //添加已收入明细
+ incomeService.saveData(1, orderPrivateCar.getCompanyId(), 4, orderPrivateCar.getId(), 1, reassign.getMoney());
+ break;
+ case 2:
+ OrderTaxi orderTaxi = orderTaxiService.selectById(reassign.getOrderId());
+ orderTaxi.setOldState(orderTaxi.getState());
+ orderTaxi.setState(11);
+ orderTaxi.setReassignNotice(2);
+ orderTaxiService.updateById(orderTaxi);
+
+ //添加已收入明细
+ incomeService.saveData(1, orderTaxi.getCompanyId(), 4, orderTaxi.getId(), 2, reassign.getMoney());
+ break;
+ case 4:
+ OrderLogistics orderLogistics = orderLogisticsService.selectById(reassign.getOrderId());
+ orderLogistics.setOldState(orderLogistics.getState());
+ orderLogistics.setState(11);
+ orderLogistics.setReassignNotice(2);
+ orderLogisticsService.updateById(orderLogistics);
+
+ //添加已收入明细
+ incomeService.saveData(1, orderLogistics.getCompanyId(), 4, orderLogistics.getId(), orderLogistics.getType(), reassign.getMoney());
+ break;
+ case 5:
+ OrderLogistics orderLogistics1 = orderLogisticsService.selectById(reassign.getOrderId());
+ orderLogistics1.setOldState(orderLogistics1.getState());
+ orderLogistics1.setState(11);
+ orderLogistics1.setReassignNotice(2);
+ orderLogisticsService.updateById(orderLogistics1);
+
+ //添加已收入明细
+ incomeService.saveData(1, orderLogistics1.getCompanyId(), 4, orderLogistics1.getId(), orderLogistics1.getType(), reassign.getMoney());
+ break;
+ }
+
+ systemNoticeService.addSystemNotice(2, "您已使用余额成功支付改派申请费用!", uid);
+ //开始推送调度单
+ Map<String, String> map = new HashMap<>();
+ map.put("orderId", reassign.getOrderId().toString());
+ map.put("orderType", reassign.getOrderType().toString());
+ List<Dispatch> dispatches = dispatchMapper.queryDispatchs(driver.getFranchiseeId() == null ? driver.getCompanyId() : driver.getFranchiseeId(), 1);
+// for(Dispatch dispatch : dispatches){
+// jgPushUtil.push(2,"有新的改派订单需要处理,请及时处理!", "订单改派", map, "DISPATCH" + dispatch.getId());
+// }
}
}
- if(reassign.getPayType() == 2){//支付宝
- reassign.setState(1);
- ResultUtil resultUtil1 = payMoneyUtil.alipay("改派订单","改派订单",reassign.getId() + "_" + reassign.getOrderType(),aDouble+"","/base/aliReassign", "");
- //Map<String, String> map = icbcPayUtil.placeAnOrder(reassign.getId() + "_" + reassign.getOrderType(), 10, 5, uid.toString(), "改派订单", aDouble, callbackPath + "/base/aliReassign", "", 2, "");
- if(resultUtil1.getCode()==200){
- paymentRecordService.saveData(1, null, null, reassign.getOrderId(), reassign.getOrderType(), 2, aDouble, null, 1);//添加预支付数据
- resultUtil = resultUtil1;
- }else{
- resultUtil = ResultUtil.error("获取支付信息失败", "");
- }
- }
- if(reassign.getPayType() == 3){//余额
- reassign.setState(2);
- reassign.setPayTime(new Date());
- reassignMapper.updateById(reassign);
-
- Double balance = driver.getBalance();
- Double laveBusinessMoney = driver.getLaveBusinessMoney();
- Double laveActivityMoney = driver.getLaveActivityMoney();
- if(null == balance || balance < aDouble){
- throw new SystemException("账户余额不足");
- }
- if(null != laveBusinessMoney && laveBusinessMoney.compareTo(aDouble) >= 0){
- driver.setLaveBusinessMoney(new BigDecimal(laveBusinessMoney).subtract(new BigDecimal(aDouble)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
- }else if(null != laveActivityMoney && laveActivityMoney.compareTo(aDouble) >= 0){
- driver.setLaveActivityMoney(new BigDecimal(laveActivityMoney).subtract(new BigDecimal(aDouble)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
- }
- driver.setBalance(new BigDecimal(balance).subtract(new BigDecimal(aDouble)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
- driverService.updateById(driver);
- //添加交易明细
- transactionDetailsService.saveData(uid, "司机改派支付", aDouble, 2, 1, 2, reassign.getOrderType(), reassign.getOrderId());
-
-
- //修改改派通知状态
- switch (reassign.getOrderType()){
- case 1:
- OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(reassign.getOrderId());
- orderPrivateCar.setOldState(orderPrivateCar.getState());
- orderPrivateCar.setState(11);
- orderPrivateCar.setReassignNotice(2);
- orderPrivateCarService.updateById(orderPrivateCar);
-
- //添加已收入明细
- incomeService.saveData(1, orderPrivateCar.getCompanyId(), 4, orderPrivateCar.getId(), 1, reassign.getMoney());
- break;
- case 2:
- OrderTaxi orderTaxi = orderTaxiService.selectById(reassign.getOrderId());
- orderTaxi.setOldState(orderTaxi.getState());
- orderTaxi.setState(11);
- orderTaxi.setReassignNotice(2);
- orderTaxiService.updateById(orderTaxi);
-
- //添加已收入明细
- incomeService.saveData(1, orderTaxi.getCompanyId(), 4, orderTaxi.getId(), 2, reassign.getMoney());
- break;
- case 4:
- OrderLogistics orderLogistics = orderLogisticsService.selectById(reassign.getOrderId());
- orderLogistics.setOldState(orderLogistics.getState());
- orderLogistics.setState(11);
- orderLogistics.setReassignNotice(2);
- orderLogisticsService.updateById(orderLogistics);
-
- //添加已收入明细
- incomeService.saveData(1, orderLogistics.getCompanyId(), 4, orderLogistics.getId(), orderLogistics.getType(), reassign.getMoney());
- break;
- case 5:
- OrderLogistics orderLogistics1 = orderLogisticsService.selectById(reassign.getOrderId());
- orderLogistics1.setOldState(orderLogistics1.getState());
- orderLogistics1.setState(11);
- orderLogistics1.setReassignNotice(2);
- orderLogisticsService.updateById(orderLogistics1);
-
- //添加已收入明细
- incomeService.saveData(1, orderLogistics1.getCompanyId(), 4, orderLogistics1.getId(), orderLogistics1.getType(), reassign.getMoney());
- break;
- }
-
- systemNoticeService.addSystemNotice(2, "您已使用余额成功支付改派申请费用!", uid);
- //开始推送调度单
- Map<String, String> map = new HashMap<>();
- map.put("orderId", reassign.getOrderId().toString());
- map.put("orderType", reassign.getOrderType().toString());
- List<Dispatch> dispatches = dispatchMapper.queryDispatchs(driver.getFranchiseeId() == null ? driver.getCompanyId() : driver.getFranchiseeId(), 1);
- for(Dispatch dispatch : dispatches){
- jgPushUtil.push(2,"有新的改派订单需要处理,请及时处理!", "订单改派", map, "DISPATCH" + dispatch.getId());
- }
- }
+ }catch (Exception e){
+ e.printStackTrace();
+ }finally {
+ redisUtil.unlock(reassign.getOrderId() + "_reassign");
}
return resultUtil;
}
@@ -323,8 +342,6 @@
query.setState(2);
query.setPayTime(new Date());
reassignMapper.updateById(query);
- //添加交易明细
- transactionDetailsService.saveData(uid, "司机改派支付", aDouble, 2, 1, 2, 3, Integer.valueOf(id));
}
Double balance = driver.getBalance();
if(null == balance || balance < totalMoney){
@@ -332,7 +349,10 @@
}
driver.setBalance(new BigDecimal(balance).subtract(new BigDecimal(totalMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
driverService.updateById(driver);
-
+ for(String id : split){
+ //添加交易明细
+ transactionDetailsService.saveDriverData(uid, "司机改派支付", aDouble, 2, 1, 2, 3, Integer.valueOf(id),driver.getLaveBusinessMoney());
+ }
//修改改派通知状态
for(String id : split){
@@ -351,9 +371,9 @@
map.put("orderId", reassign.getOrderId().toString());
map.put("orderType", reassign.getOrderType().toString());
List<Dispatch> dispatches = dispatchMapper.queryDispatchs(driver.getFranchiseeId() == null ? driver.getCompanyId() : driver.getFranchiseeId(), 1);
- for(Dispatch dispatch : dispatches){
- jgPushUtil.push(2,"有新的改派订单需要处理,请及时处理!", "订单改派", map, "DISPATCH" + dispatch.getId());
- }
+// for(Dispatch dispatch : dispatches){
+// jgPushUtil.push(2,"有新的改派订单需要处理,请及时处理!", "订单改派", map, "DISPATCH" + dispatch.getId());
+// }
}
}
return resultUtil;
@@ -395,7 +415,7 @@
PaymentRecord query = paymentRecordService.query(1, null, null, Integer.valueOf(key), 3, type, 1);
if(null != query){
//添加交易明细
- transactionDetailsService.saveData(reassigns.get(0).getOriginalDriverId(), "司机改派支付", reassigns.get(0).getMoney(), 2, 1, 2, 3, Integer.valueOf(key));
+ transactionDetailsService.saveDriverData(reassigns.get(0).getOriginalDriverId(), "司机改派支付", reassigns.get(0).getMoney(), 2, 1, 2, 3, Integer.valueOf(key),driver.getLaveBusinessMoney());
for(Reassign reassign : reassigns){
reassign.setState(2);
reassign.setPayOrder(order_id);
@@ -406,9 +426,9 @@
map.put("orderId", reassign.getOrderId().toString());
map.put("orderType", reassign.getOrderType().toString());
List<Dispatch> dispatches = dispatchMapper.queryDispatchs(driver.getFranchiseeId() == null ? driver.getCompanyId() : driver.getFranchiseeId(), 1);
- for(Dispatch dispatch : dispatches){
- jgPushUtil.push(2,"有新的改派订单需要处理,请及时处理!", "订单改派", map, "DISPATCH" + dispatch.getId());
- }
+// for(Dispatch dispatch : dispatches){
+// jgPushUtil.push(2,"有新的改派订单需要处理,请及时处理!", "订单改派", map, "DISPATCH" + dispatch.getId());
+// }
}
query.setState(2);
query.setCode(order_id);
@@ -439,7 +459,7 @@
PaymentRecord query = paymentRecordService.query(1, null, null, reassign.getOrderId(), reassign.getOrderType(), type, 1);
if(null != query){
//添加交易明细
- transactionDetailsService.saveData(reassign.getOriginalDriverId(), "司机改派支付", reassign.getMoney(), 2, 1, 2, reassign.getOrderType(), reassign.getOrderId());
+ transactionDetailsService.saveDriverData(reassign.getOriginalDriverId(), "司机改派支付", reassign.getMoney(), 2, 1, 2, reassign.getOrderType(), reassign.getOrderId(),driver.getLaveBusinessMoney());
reassign.setState(2);
reassign.setPayOrder(order_id);
reassign.setPayTime(new Date());
@@ -498,9 +518,9 @@
map.put("orderId", reassign.getOrderId().toString());
map.put("orderType", reassign.getOrderType().toString());
List<Dispatch> dispatches = dispatchMapper.queryDispatchs(driver.getFranchiseeId() == null ? driver.getCompanyId() : driver.getFranchiseeId(), 1);
- for(Dispatch dispatch : dispatches){
- jgPushUtil.push(2,"有新的改派订单需要处理,请及时处理!", "订单改派", map, "DISPATCH" + dispatch.getId());
- }
+// for(Dispatch dispatch : dispatches){
+// jgPushUtil.push(2,"有新的改派订单需要处理,请及时处理!", "订单改派", map, "DISPATCH" + dispatch.getId());
+// }
}else{
System.err.println("预支付数据异常(orderId = " + id + ")");
}
--
Gitblit v1.7.1