From 61b2d479bf4887902d21c5c99d9b65bf9cc8d27a Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期二, 14 十月 2025 11:56:08 +0800
Subject: [PATCH] 提交代码
---
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java | 191 ++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 179 insertions(+), 12 deletions(-)
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java
index 854ddc9..f74b4e8 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java
@@ -5,22 +5,25 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.supersavedriving.driver.core.util.ToolUtil;
import com.supersavedriving.driver.modular.system.dao.OrderMapper;
import com.supersavedriving.driver.modular.system.model.*;
import com.supersavedriving.driver.modular.system.service.*;
import com.supersavedriving.driver.modular.system.util.*;
import com.supersavedriving.driver.modular.system.util.GaoDe.MapUtil;
+import com.supersavedriving.driver.modular.system.util.GaoDe.model.District;
import com.supersavedriving.driver.modular.system.util.MallBook.model.*;
import com.supersavedriving.driver.modular.system.util.MallBook.util.TrhRequest;
import com.supersavedriving.driver.modular.system.util.mongodb.model.Location;
+import com.supersavedriving.driver.modular.system.util.qianyuntong.EmployeeUtil;
+import com.supersavedriving.driver.modular.system.util.qianyuntong.OrderUtil;
+import com.supersavedriving.driver.modular.system.util.qianyuntong.model.AddAccountInfoRequest;
+import com.supersavedriving.driver.modular.system.util.qianyuntong.model.CreateTravelItineraryRequest;
+import com.supersavedriving.driver.modular.system.util.qianyuntong.model.ModifyTravelItineraryRequest;
+import com.supersavedriving.driver.modular.system.util.zhenglian.ZhengLianUtil;
+import com.supersavedriving.driver.modular.system.util.zhenglian.model.TradeTerminalInfo;
+import com.supersavedriving.driver.modular.system.util.zhenglian.model.ZLUserInfo;
import com.supersavedriving.driver.modular.system.warpper.*;
-import com.supersavedriving.driver.core.util.ToolUtil;
-import com.supersavedriving.driver.modular.system.util.GaoDe.model.District;
-import com.supersavedriving.driver.modular.system.util.juhe.WeatherUtil;
-import com.supersavedriving.driver.modular.system.util.PushUtil;
-import com.supersavedriving.driver.modular.system.warpper.AddOrderWarpper;
-import com.supersavedriving.driver.modular.system.warpper.HallOrderList;
-import com.supersavedriving.driver.modular.system.warpper.OrderInfoWarpper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
@@ -37,6 +40,8 @@
import java.math.BigDecimal;
import java.math.RoundingMode;
+import java.net.InetAddress;
+import java.net.NetworkInterface;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
@@ -246,9 +251,23 @@
order.setState(null == order.getDriverId() ? 101 : 102);
}
order.setStatus(1);
-
this.insert(order);
driverService.updateById(driver);
+ if(null != appUser && null != order.getDriverId()){
+ BranchOffice branchOffice = branchOfficeService.selectById(driver.getBranchOfficeId());
+ //调三方订单中心创建行程单
+ CreateTravelItineraryRequest request = new CreateTravelItineraryRequest();
+ request.setOrderNo("DJ" + order.getId());
+ request.setCustomerId(appUser.getOnconUUID());
+ request.setDriverId(driver.getEmpId().toString());
+ request.setSupplierShopId(branchOffice.getEnterCode());
+ request.setServiceType(5);
+ String travelItinerary = OrderUtil.createTravelItinerary(request);
+ order.setTravelId(travelItinerary);
+ this.updateById(order);
+ }
+
+
//推送状态
if(null != order.getDriverId()){
//推动订单数据
@@ -751,6 +770,43 @@
*/
@Override
public List<HallOrderList> queryOrderHall(Integer uid, Integer pageNum, Integer pageSize) throws Exception {
+ Driver driver = driverService.selectById(uid);
+ //获取证联数据
+ if(null == driver.getCustId() || 0 == driver.getAccOpenFlag()){
+ TradeTerminalInfo tradeTerminalInfo = new TradeTerminalInfo();
+ tradeTerminalInfo.setTerminal("1");
+ InetAddress inetAddress = InetAddress.getLocalHost();
+ String ip = inetAddress.getHostAddress();
+ tradeTerminalInfo.setIp(ip);
+ NetworkInterface networkInterface = NetworkInterface.getByInetAddress(inetAddress);
+ byte[] mac = networkInterface.getHardwareAddress();
+ StringBuilder macAddress = new StringBuilder();
+ for (int i = 0; i < mac.length; i++) {
+ macAddress.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
+ }
+
+ tradeTerminalInfo.setMac(macAddress.toString());
+ ZLUserInfo userInfo = ZhengLianUtil.getUserInfo(driver.getEmpId().toString(), tradeTerminalInfo);
+ if(null != userInfo){
+ driver.setCustId(userInfo.getCustId());
+ driver.setAccOpenFlag(userInfo.getAccOpenFlag());
+ driverService.updateById(driver);
+ }
+ }
+ //同步到中台
+ if(null != driver.getAccOpenFlag() && 1 == driver.getAccOpenFlag() && 0 == driver.getIsSynchronous()){
+ AddAccountInfoRequest request = new AddAccountInfoRequest();
+ request.setCustId(driver.getCustId());
+ request.setAccountNo(driver.getEmpId().toString());
+ request.setAccountName(driver.getName());
+ request.setMobile(driver.getPhone());
+ Integer status = EmployeeUtil.addAccountInfo(request);
+ if(0 == status){
+ driver.setIsSynchronous(1);
+ driverService.updateById(driver);
+ }
+ }
+
pageNum = (pageNum - 1) * pageSize;
String value = redisUtil.getValue("daijia:DRIVER" + uid);
List<HallOrderList> hallOrderLists = this.baseMapper.queryOrderHall(pageNum, pageSize);
@@ -894,6 +950,7 @@
order.setState(102);
order.setOrderTakingTime(new Date());
this.updateById(order);
+
redisUtil.unlock(orderId.toString());
if(null != order.getUserId()){
@@ -901,6 +958,27 @@
appUser.setCancelCount(0);
appUser.setIsException(1);
appUserService.updateById(appUser);
+ BranchOffice branchOffice = branchOfficeService.selectById(driver.getBranchOfficeId());
+ if(null == order.getTravelId()){
+ //调三方订单中心创建行程单
+ CreateTravelItineraryRequest request = new CreateTravelItineraryRequest();
+ request.setOrderNo("DJ" + order.getId());
+ request.setCustomerId(appUser.getOnconUUID());
+ request.setDriverId(driver.getEmpId().toString());
+ request.setSupplierShopId(branchOffice.getEnterCode());
+ request.setServiceType(5);
+ String travelItinerary = OrderUtil.createTravelItinerary(request);
+ order.setTravelId(travelItinerary);
+ this.updateById(order);
+ }else{
+ //中台修改订单状态
+ ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+ request.setOrderId(order.getTravelId());
+ request.setStatus(getState(order.getState()));
+ request.setDriverId(driver.getEmpId().toString());
+ request.setSupplierShopId(branchOffice.getEnterCode());
+ OrderUtil.modifyTravelItinerary(request);
+ }
}
driver.setServerStatus(2);
@@ -1133,6 +1211,18 @@
}
this.updateAllColumnById(order);
+ if(null != order.getTravelId()){
+ Driver driver = driverService.selectById(order.getDriverId());
+ //中台修改订单状态
+ ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+ request.setOrderId(order.getTravelId());
+ request.setStatus(getState(order.getState()));
+ BranchOffice branchOffice = branchOfficeService.selectById(driver.getBranchOfficeId());
+ request.setDriverId(driver.getEmpId().toString());
+ request.setSupplierShopId(branchOffice.getEnterCode());
+ OrderUtil.modifyTravelItinerary(request);
+ }
+
//推送订单状态
pushUtil.pushOrderStatus(order.getDriverId(), 2, order.getId(), order.getState());
if(null != order.getUserId()){
@@ -1179,7 +1269,8 @@
.where("'" + geocode.getCity() + "' like CONCAT('%', city, '%') and '" + geocode.getDistrict() + "' like CONCAT('%', district, '%') "));
city = null != weatherCity ? weatherCity.getId().toString() : "";
}
- boolean badWeather = WeatherUtil.isBadWeather(city);
+// boolean badWeather = WeatherUtil.isBadWeather(city);
+ boolean badWeather = false;
if(badWeather){
Integer num8 = JSON.parseObject(systemConfig.getContent()).getInteger("num8");
if(num8 > 0){
@@ -1334,6 +1425,17 @@
}
this.updateById(order);
+ if(null != order.getTravelId()){
+ //中台修改订单状态
+ ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+ request.setOrderId(order.getTravelId());
+ request.setStatus(getState(order.getState()));
+ BranchOffice branchOffice = branchOfficeService.selectById(driver.getBranchOfficeId());
+ request.setDriverId(driver.getEmpId().toString());
+ request.setSupplierShopId(branchOffice.getEnterCode());
+ OrderUtil.modifyTravelItinerary(request);
+ }
+
orderTransfer.setOrderId(orderId);
orderTransfer.setOldDriverId(order.getDriverId());
@@ -1360,6 +1462,35 @@
}
return ResultUtil.success();
+ }
+
+
+ private Integer getState(Integer state){
+ switch (state){
+ case 101://待接单
+ return 1;
+ case 102://已接单
+ return 2;
+ case 103://前往预约点
+ return 3;
+ case 104://到达预约点
+ return 4;
+ case 105://开始服务
+ return 5;
+ case 106://到达目的地
+ return 6;
+ case 107://待支付
+ return 7;
+ case 108://待评价
+ return 8;
+ case 109://已完成
+ return 9;
+ case 201://转单中
+ return 11;
+ case 301://已取消
+ return 10;
+ }
+ return null;
}
@@ -1430,6 +1561,18 @@
order.setState(order.getOldState());
order.setOldState(null);
this.updateAllColumnById(order);
+ Driver driver = driverService.selectById(order.getDriverId());
+
+ if(null != order.getTravelId()){
+ //中台修改订单状态
+ ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+ request.setOrderId(order.getTravelId());
+ request.setStatus(getState(order.getState()));
+ BranchOffice branchOffice = branchOfficeService.selectById(driver.getBranchOfficeId());
+ request.setDriverId(driver.getEmpId().toString());
+ request.setSupplierShopId(branchOffice.getEnterCode());
+ OrderUtil.modifyTravelItinerary(request);
+ }
OrderTransfer orderTransfer = orderTransferService.selectOne(new EntityWrapper<OrderTransfer>().eq("orderId", orderId)
.eq("status", 1).isNull("successTime").orderBy("createTime desc limit 0, 1"));
@@ -1464,6 +1607,20 @@
order.setState(301);
this.updateById(order);
+
+ Driver driver = driverService.selectById(order.getDriverId());
+ if(null != order.getTravelId()){
+ //中台修改订单状态
+ ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+ request.setOrderId(order.getTravelId());
+ request.setStatus(getState(order.getState()));
+ BranchOffice branchOffice = branchOfficeService.selectById(driver.getBranchOfficeId());
+ request.setDriverId(driver.getEmpId().toString());
+ request.setSupplierShopId(branchOffice.getEnterCode());
+ OrderUtil.modifyTravelItinerary(request);
+ }
+
+
redisUtil.delSetValue("orderService", orderId.toString());
CancelOrder cancelOrder = new CancelOrder();
@@ -1474,7 +1631,6 @@
cancelOrder.setStatus(1);
cancelOrder.setCreateTime(new Date());
cancelOrderService.insert(cancelOrder);
- Driver driver = driverService.selectById(order.getDriverId());
if(null != driver){
driver.setServerStatus(1);
driverService.updateById(driver);
@@ -1582,13 +1738,14 @@
order.setPayType(3);
}
+ Driver driver = driverService.selectById(order.getDriverId());
if(payType == 2 && state == 108){
order.setPayTime(new Date());
if(null != order.getCouponId()){
UserToCoupon userToCoupon = userToCouponService.selectById(order.getCouponId());
Coupon coupon = couponService.selectById(userToCoupon.getCouponId());
- Driver driver = driverService.selectById(order.getDriverId());
+
AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(5));
accountChangeDetail.setUserType(2);
@@ -1646,9 +1803,19 @@
}
this.updateById(order);
+ if(null != order.getTravelId()){
+ //中台修改订单状态
+ ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+ request.setOrderId(order.getTravelId());
+ request.setStatus(getState(order.getState()));
+ BranchOffice branchOffice = branchOfficeService.selectById(driver.getBranchOfficeId());
+ request.setDriverId(driver.getEmpId().toString());
+ request.setSupplierShopId(branchOffice.getEnterCode());
+ OrderUtil.modifyTravelItinerary(request);
+ }
+
if((payType == 1 && state == 107) || (payType == 2 && state == 108)){
//修改司机状态和积分
- Driver driver = driverService.selectById(order.getDriverId());
driver.setServerStatus(1);
driverService.updateById(driver);
}
--
Gitblit v1.7.1