From f604df04d1f9fe90ee543a1772a3a8cdb50d3d66 Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期五, 08 八月 2025 15:19:07 +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 | 165 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 135 insertions(+), 30 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 39a7c06..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,12 +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.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; @@ -32,6 +38,8 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.net.InetAddress; +import java.net.NetworkInterface; import java.util.*; /** @@ -93,6 +101,14 @@ @Autowired private IAdditionalFeeService additionalFeeService; + +// @Autowired +// private RedissonClient redissonClient; + @Autowired + private IOpenCityService openCityService; + + @Autowired + private ICompanyService companyService; @@ -110,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<>(); @@ -500,12 +554,27 @@ * @throws Exception */ @Override - public synchronized ResultUtil grabOrder(Integer orderId, Integer orderType, Integer uid) throws Exception { + public ResultUtil grabOrder(Integer orderId, Integer orderType, Integer uid) throws Exception { + //专车和出租是批量下单,所以这里需要将两种类型的抢单操作通过一个锁来一起控制 + if(1 == orderType || 2 == orderType){ + Boolean lock = redisTemplate.opsForValue().setIfAbsent("grabOrder:" + orderId, "1"); + if(!lock){ + return ResultUtil.error("抢单失败,请稍后重试"); + } + try { + if(1 == orderType){ + return orderPrivateCarService.grabOrder(orderId, uid); + } + if(2 == orderType){ + return orderTaxiService.grabOrder(orderId, uid); + } + }catch (Exception e){ + e.printStackTrace(); + }finally { + redisTemplate.delete("grabOrder:" + orderId); + } + } switch (orderType){ - case 1://专车 - return orderPrivateCarService.grabOrder(orderId, uid); - case 2://出租 - return orderTaxiService.grabOrder(orderId, uid); case 3://城际 return ResultUtil.success();//不作任何操作,跨城默认选择的司机 case 4://同城小件 @@ -611,27 +680,33 @@ */ @Override public Double queryReassignMoney(Integer orderId, Integer orderType) throws Exception { - Integer companyId = null; + Integer openCityId = null; switch (orderType){ case 1://专车 - companyId = orderPrivateCarService.selectById(orderId).getCompanyId(); + OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId); + openCityId = openCityService.openCity1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString()).getId(); break; case 2://出租 - companyId = orderTaxiService.selectById(orderId).getCompanyId(); + OrderTaxi orderTaxi = orderTaxiService.selectById(orderId); + openCityId = openCityService.openCity1(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString()).getId(); break; case 3://城际 - companyId = orderCrossCityService.selectById(orderId).getCompanyId(); + OrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId); + openCityId = openCityService.openCity1(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString()).getId(); break; case 4://同城小件 - companyId = orderLogisticsService.selectById(orderId).getCompanyId(); + OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId); + openCityId = openCityService.openCity1(orderLogistics.getStartLon().toString(), orderLogistics.getStartLat().toString()).getId(); break; case 5://跨城小件 - companyId = orderLogisticsService.selectById(orderId).getCompanyId(); + OrderLogistics orderLogistics1 = orderLogisticsService.selectById(orderId); + openCityId = openCityService.openCity1(orderLogistics1.getStartLon().toString(), orderLogistics1.getStartLat().toString()).getId(); + break; case 6: break; } - return sysReformistMapper.queryMoney(companyId); + return sysReformistMapper.queryMoney(openCityId); } @@ -1008,11 +1083,11 @@ } //调用移动的小号接口 Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); - Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderPrivateCar.getPassengersPhone(), driver.getPhone(), (System.currentTimeMillis() + 86400000)); - if(String.valueOf(map.get("code")).equals("200")){ - orderPrivateCar.setTelX(map.get("telX")); - orderPrivateCar.setBindId(map.get("bindId")); - } +// Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderPrivateCar.getPassengersPhone(), driver.getPhone(), (System.currentTimeMillis() + 86400000)); +// if(String.valueOf(map.get("code")).equals("200")){ +// orderPrivateCar.setTelX(map.get("telX")); +// orderPrivateCar.setBindId(map.get("bindId")); +// } orderPrivateCarService.updateById(orderPrivateCar); } break; @@ -1025,11 +1100,11 @@ } //调用移动的小号接口 Driver driver = driverService.selectById(orderTaxi.getDriverId()); - Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderTaxi.getPassengersPhone(), driver.getPhone(), (System.currentTimeMillis() + 86400000)); - if(String.valueOf(map.get("code")).equals("200")){ - orderTaxi.setTelX(map.get("telX")); - orderTaxi.setBindId(map.get("bindId")); - } +// Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderTaxi.getPassengersPhone(), driver.getPhone(), (System.currentTimeMillis() + 86400000)); +// if(String.valueOf(map.get("code")).equals("200")){ +// orderTaxi.setTelX(map.get("telX")); +// orderTaxi.setBindId(map.get("bindId")); +// } orderTaxiService.updateById(orderTaxi); } break; @@ -1042,11 +1117,11 @@ } //调用移动的小号接口 Driver driver = driverService.selectById(orderCrossCity.getDriverId()); - Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderCrossCity.getPassengersPhone(), driver.getPhone(), (System.currentTimeMillis() + 86400000)); - if(String.valueOf(map.get("code")).equals("200")){ - orderCrossCity.setTelX(map.get("telX")); - orderCrossCity.setBindId(map.get("bindId")); - } +// Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderCrossCity.getPassengersPhone(), driver.getPhone(), (System.currentTimeMillis() + 86400000)); +// if(String.valueOf(map.get("code")).equals("200")){ +// orderCrossCity.setTelX(map.get("telX")); +// orderCrossCity.setBindId(map.get("bindId")); +// } orderCrossCityService.updateById(orderCrossCity); } break; @@ -1154,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(); @@ -1183,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