From 1bb96c916d55452cd7951c48c008aa919331aceb Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期二, 12 八月 2025 11:46:56 +0800
Subject: [PATCH] update

---
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java |   96 +++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 87 insertions(+), 9 deletions(-)

diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
index 72db972..874f0d5 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -16,13 +16,18 @@
 import com.stylefeng.guns.modular.system.dao.RegionMapper;
 import com.stylefeng.guns.modular.system.dao.SysReformistMapper;
 import com.stylefeng.guns.modular.system.model.AdditionalFee;
+import com.stylefeng.guns.modular.system.model.Company;
 import com.stylefeng.guns.modular.system.model.Driver;
 import com.stylefeng.guns.modular.system.model.OrderPosition;
-import com.stylefeng.guns.modular.system.service.IAdditionalFeeService;
-import com.stylefeng.guns.modular.system.service.IDriverService;
-import com.stylefeng.guns.modular.system.service.IOpenCityService;
-import com.stylefeng.guns.modular.system.service.IOrderService;
+import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.*;
+import com.stylefeng.guns.modular.system.util.qianyuntong.EmployeeUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.AddAccountInfoRequest;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.ModifyTravelItineraryRequest;
+import com.stylefeng.guns.modular.system.util.zhenglian.ZhengLianUtil;
+import com.stylefeng.guns.modular.system.util.zhenglian.model.TradeTerminalInfo;
+import com.stylefeng.guns.modular.system.util.zhenglian.model.ZLUserInfo;
 import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
 import com.stylefeng.guns.modular.system.warpper.OrderListWarpper;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
@@ -33,6 +38,8 @@
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.net.InetAddress;
+import java.net.NetworkInterface;
 import java.util.*;
 
 /**
@@ -99,6 +106,9 @@
 //    private RedissonClient redissonClient;
     @Autowired
     private IOpenCityService openCityService;
+    
+    @Autowired
+    private ICompanyService companyService;
 
 
 
@@ -116,6 +126,44 @@
      */
     @Override
     public List<Map<String, Object>> queryOrderList(Integer state, Integer pageNum, Integer size, Integer uid) 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);
+            }
+        }
+    
+    
         Integer page = pageNum;
         pageNum = (pageNum - 1) * size;
         List<Map<String, Object>> datas = new ArrayList<>();
@@ -509,10 +557,10 @@
     public ResultUtil grabOrder(Integer orderId, Integer orderType, Integer uid) throws Exception {
         //专车和出租是批量下单,所以这里需要将两种类型的抢单操作通过一个锁来一起控制
         if(1 == orderType || 2 == orderType){
-//            RLock lock = redissonClient.getLock("grabOrder:" + orderId);
-//            if(!lock.tryLock()){
-//                return ResultUtil.error("抢单失败,请稍后重试");
-//            }
+            Boolean lock = redisTemplate.opsForValue().setIfAbsent("grabOrder:" + orderId, "1");
+            if(!lock){
+                return ResultUtil.error("抢单失败,请稍后重试");
+            }
             try {
                 if(1 == orderType){
                     return orderPrivateCarService.grabOrder(orderId, uid);
@@ -523,7 +571,7 @@
             }catch (Exception e){
                 e.printStackTrace();
             }finally {
-//                lock.unlock();
+                redisTemplate.delete("grabOrder:" + orderId);
             }
         }
         switch (orderType){
@@ -1181,6 +1229,21 @@
                 orderPrivateCar.setPayMoney(orderPrivateCar.getOrderMoney());
                 orderPrivateCar.setState(8);
                 orderPrivateCarService.updateById(orderPrivateCar);
+    
+                Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
+                Company company1 = companyService.selectById(driver.getCompanyId());
+                //中台修改订单状态
+                ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
+                request1.setOrderId(orderPrivateCar.getTravelId());
+                request1.setStatus(orderPrivateCar.getState());
+                request1.setDriverId(driver.getEmpId().toString());
+                if(2 == orderPrivateCar.getPromotion()){
+                    Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+                    request1.setPromoterId(driver1.getEmpId().toString());
+                }
+                request1.setSupplierShopId(company1.getEnterCode());
+                OrderUtil.modifyTravelItinerary(request1);
+                
                 userId = orderPrivateCar.getUserId();
                 driverId = orderPrivateCar.getDriverId();
                 state = orderPrivateCar.getState();
@@ -1210,6 +1273,21 @@
                 orderTaxi.setPayMoney(orderTaxi.getOrderMoney());
                 orderTaxi.setState(8);
                 orderTaxiService.updateById(orderTaxi);
+    
+                Driver driver1 = driverService.selectById(orderTaxi.getDriverId());
+                Company company = companyService.selectById(driver1.getCompanyId());
+                //中台修改订单状态
+                ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+                request.setOrderId(orderTaxi.getTravelId());
+                request.setStatus(orderTaxi.getState());
+                request.setDriverId(driver1.getEmpId().toString());
+                if(2 == orderTaxi.getPromotion()){
+                    Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId());
+                    request.setPromoterId(driver2.getEmpId().toString());
+                }
+                request.setSupplierShopId(company.getEnterCode());
+                OrderUtil.modifyTravelItinerary(request);
+                
                 userId = orderTaxi.getUserId();
                 driverId = orderTaxi.getDriverId();
                 state = orderTaxi.getState();

--
Gitblit v1.7.1