From b8dd269fc4a0824db2dbf8ab1b6fffbcfc9ba199 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期二, 12 八月 2025 10:44:25 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/QianYunTong --- 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