From a3e122e288fcdcb7b65a0d2e5e6b72044a9f7af4 Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期三, 13 八月 2025 15:56:54 +0800 Subject: [PATCH] 修改bug --- UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java | 239 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 220 insertions(+), 19 deletions(-) diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java index 8a82d94..057776a 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java @@ -20,6 +20,8 @@ import com.stylefeng.guns.modular.system.model.vo.UnPayOrderVO; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; +import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.*; import com.stylefeng.guns.modular.system.warpper.*; import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; @@ -146,7 +148,7 @@ @Autowired private IDriverServiceService driverServiceService; - + @Autowired private TAbnormalPayOrderMapper abnormalPayOrderMapper; @@ -168,9 +170,7 @@ @Autowired private ITaxiCardService taxiCardService; - @Autowired - private ITaxiCardPaymentService taxiCardPaymentService; - + @Autowired private IUserUserService userUserService; @@ -185,10 +185,11 @@ @Value("${callbackPath}") private String callbackPath; - - + + @Autowired private TDriverPromotionActivityService driverPromotionActivityService; + /** * 出租车下单操作 * @@ -496,17 +497,71 @@ orderCancelService.saveData(orderPrivateCar1.getId(), 1, "无司机接单", "无司机接单", null, null, 2, 1, uid); orderPrivateCar1.setState(10); orderPrivateCarService.updateById(orderPrivateCar1); + + Driver driver1 = null; + Company company = null; + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(orderPrivateCar1.getTravelId()); + request.setStatus(orderPrivateCar1.getState()); + if (null != orderPrivateCar1.getDriverId()) { + driver1 = driverService.selectById(orderPrivateCar1.getDriverId()); + company = companyService.selectById(driver1.getCompanyId()); + request.setDriverId(driver1.getEmpId().toString()); + request.setSupplierShopId(company.getEnterCode()); + } + if (2 == orderPrivateCar1.getPromotion()) { + Driver driver2 = driverService.selectById(orderPrivateCar1.getPromotionDriverId()); + request.setPromoterId(driver2.getEmpId().toString()); + } + OrderUtil.modifyTravelItinerary(request); } List<OrderTaxi> list1 = this.selectList(new EntityWrapper<OrderTaxi>().eq("type", 2).eq("crossCityOrderId", orderTaxi.getCrossCityOrderId()).eq("place", orderTaxi.getPlace())); for (OrderTaxi orderTaxi1 : list1) { orderCancelService.saveData(orderTaxi1.getId(), 2, "无司机接单", "无司机接单", null, null, 2, 1, uid); orderTaxi1.setState(10); this.updateById(orderTaxi1); + + Driver driver1 = null; + Company company = null; + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(orderTaxi1.getTravelId()); + request.setStatus(orderTaxi1.getState()); + if (null != orderTaxi1.getDriverId()) { + driver1 = driverService.selectById(orderTaxi1.getDriverId()); + company = companyService.selectById(driver1.getCompanyId()); + request.setDriverId(driver1.getEmpId().toString()); + request.setSupplierShopId(company.getEnterCode()); + } + if (2 == orderTaxi1.getPromotion()) { + Driver driver2 = driverService.selectById(orderTaxi1.getPromotionDriverId()); + request.setPromoterId(driver2.getEmpId().toString()); + } + OrderUtil.modifyTravelItinerary(request); } } else { integer = orderCancelService.saveData(id, 2, "无司机接单", "无司机接单", null, null, 2, 1, uid); orderTaxi.setState(10); this.updateById(orderTaxi); + + Driver driver1 = null; + Company company = null; + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(orderTaxi.getTravelId()); + request.setStatus(orderTaxi.getState()); + if (null != orderTaxi.getDriverId()) { + driver1 = driverService.selectById(orderTaxi.getDriverId()); + company = companyService.selectById(driver1.getCompanyId()); + request.setDriverId(driver1.getEmpId().toString()); + request.setSupplierShopId(company.getEnterCode()); + } + if (2 == orderTaxi.getPromotion()) { + Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId()); + request.setPromoterId(driver2.getEmpId().toString()); + } + OrderUtil.modifyTravelItinerary(request); } } else { OpenCity openCity = openCityService.openCity1(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString()); @@ -523,6 +578,24 @@ this.updateById(orderTaxi); } this.deleteTask(id);//删除定时任务 + + Driver driver1 = null; + Company company = null; + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(orderTaxi.getTravelId()); + request.setStatus(orderTaxi.getState()); + if (null != orderTaxi.getDriverId()) { + driver1 = driverService.selectById(orderTaxi.getDriverId()); + company = companyService.selectById(driver1.getCompanyId()); + request.setDriverId(driver1.getEmpId().toString()); + request.setSupplierShopId(company.getEnterCode()); + } + if (2 == orderTaxi.getPromotion()) { + Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId()); + request.setPromoterId(driver2.getEmpId().toString()); + } + OrderUtil.modifyTravelItinerary(request); new Thread(new Runnable() { @Override @@ -642,6 +715,24 @@ orderTaxi.setTelX(""); orderTaxi.setBindId(""); this.updateById(orderTaxi); + + Driver driver = null; + Company company = null; + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(orderTaxi.getTravelId()); + request.setStatus(orderTaxi.getState()); + if (null != orderTaxi.getDriverId()) { + driver = driverService.selectById(orderTaxi.getDriverId()); + company = companyService.selectById(driver.getCompanyId()); + request.setDriverId(driver.getEmpId().toString()); + request.setSupplierShopId(company.getEnterCode()); + } + if (2 == orderTaxi.getPromotion()) { + Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId()); + request.setPromoterId(driver1.getEmpId().toString()); + } + OrderUtil.modifyTravelItinerary(request); orderCancel.setState(2); orderCancel.setPayType(3); @@ -1343,7 +1434,7 @@ @Override @Transactional(propagation = Propagation.REQUIRES_NEW) - public ResultUtil payTaxiOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type) throws Exception { + public ResultUtil payTaxiOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type, String path, String ip) throws Exception { OrderTaxi orderTaxi = this.selectById(orderId); if (orderTaxi.getState() == 8 || orderTaxi.getState() == 9) { return ResultUtil.error("订单已完成支付,不允许重复支付", ""); @@ -1514,8 +1605,72 @@ if (orderMoney == 0) { return ResultUtil.error("请使用余额支付"); } - String app = type == 1 ? "APP" : "JSAPI"; - resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_2_" + UUIDUtil.getRandomCode(5), orderMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId()); +// String app = type == 1 ? "APP" : "JSAPI"; +// resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_2_" + UUIDUtil.getRandomCode(5), orderMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId()); + + Driver driver = driverService.selectById(orderTaxi.getDriverId()); + if(null == orderTaxi.getIsCreated() || 0 == orderTaxi.getIsCreated()){ + //调用中台创建订单及拉起支付接口 + TradeOrderCreateData tradeOrderCreateData = new TradeOrderCreateData(); + tradeOrderCreateData.setTreatShopId(driver.getEmpId().toString()); + //追缴单不要分账 + if(0 == orderTaxi.getRecoveryOrder()){ + tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"" + (orderTaxi.getPromotion() == 2 ? 1 : 0) + "\"}"); + }else{ + tradeOrderCreateData.setField1("{\"profitSharing\":\"0\",\"isPromote\":\"0\"}"); + } + tradeOrderCreateData.setCharge(new BigDecimal(orderMoney)); + tradeOrderCreateData.setOrderId(orderTaxi.getTravelId()); + tradeOrderCreateData.setOrderNo("TA" + orderTaxi.getId()); + tradeOrderCreateData.setCustomerId(userInfo.getOnconUUID()); + tradeOrderCreateData.setPartnerPayId(orderTaxi.getTravelId()); + tradeOrderCreateData.setTotalFee(Double.valueOf(orderMoney * 100).intValue() + ""); + tradeOrderCreateData.setOrderDesc("完成订单"); + tradeOrderCreateData.setRetUrl(path); + tradeOrderCreateData.setClientIp(ip); + + List<GoodsInfoRequest> goodsInfo = new ArrayList<>(); + GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest(); + goodsInfoRequest.setSubOpenId(userInfo.getAppletsOpenId()); + if(0 == orderTaxi.getRecoveryOrder()){ + goodsInfoRequest.setProfitSharing("1"); + }else{ + goodsInfoRequest.setProfitSharing("0"); + } + goodsInfo.add(goodsInfoRequest); + tradeOrderCreateData.setGoodsInfo(goodsInfo); + TradeOrderCreate tradeOrderCreate = OrderUtil.tradeOrderCreate1(tradeOrderCreateData); + PayInfo payInfo = tradeOrderCreate.getPayInfo(); + if(!"000000".equals(payInfo.getRetCode())){ + return ResultUtil.error(payInfo.getRetMsg()); + } + orderTaxi.setIsCreated(1); + resultUtil = ResultUtil.success(payInfo.getData().getRedirectUrl()); + }else{ + //拉起支付 + TradePayOff1Data tradePayOff1Data = new TradePayOff1Data(); + tradePayOff1Data.setPartnerPayId(orderTaxi.getTravelId()); + tradePayOff1Data.setTotalFee(Double.valueOf(orderMoney * 100).intValue() + ""); + tradePayOff1Data.setRetUrl(path); + tradePayOff1Data.setClientIp(ip); + tradePayOff1Data.setOrderDesc("完成订单"); + List<GoodsInfoRequest> goodsInfo = new ArrayList<>(); + GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest(); + goodsInfoRequest.setSubOpenId(userInfo.getAppletsOpenId()); + if(0 == orderTaxi.getRecoveryOrder()){ + goodsInfoRequest.setProfitSharing("1"); + }else{ + goodsInfoRequest.setProfitSharing("0"); + } + goodsInfo.add(goodsInfoRequest); + tradePayOff1Data.setGoodsInfo(goodsInfo); + PayInfo payInfo = OrderUtil.tradePayOff1(tradePayOff1Data); + if(!"000000".equals(payInfo.getRetCode())){ + return ResultUtil.error(payInfo.getRetMsg()); + } + resultUtil = ResultUtil.success(payInfo.getData().getRedirectUrl()); + } + paymentRecordService.saveData(1, orderTaxi.getUserId(), 1, orderId, 2, 1, orderMoney, "", 1);//添加预支付数据 } if (payType == 2) {//支付宝支付 @@ -1571,6 +1726,8 @@ //添加收入 Map<String, Object> map = incomeService.saveIncome(orderTaxi.getId(), 2, orderTaxi.getOrderMoney()); orderTaxi.setSplitAllocation(JSON.toJSONString(map)); + + promotion(orderTaxi.getId()); // TODO: 2020/5/24 这里需要给司机和用户推送订单状态 new Thread(new Runnable() { @@ -1737,10 +1894,10 @@ map.put("state", map.get("oldState")); } - if(Integer.valueOf(String.valueOf(map.get("state"))) ==7 && (map.get("responsibilityType")==null || Integer.valueOf(String.valueOf(map.get("responsibilityType")))<4)){ + if (Integer.valueOf(String.valueOf(map.get("state"))) == 7 && (map.get("responsibilityType") == null || Integer.valueOf(String.valueOf(map.get("responsibilityType"))) < 4)) { map.put("appealButton", 1); } - if(map.get("abnormalIntro")!=null){ + if (map.get("abnormalIntro") != null) { map.put("appealStatus", 1); } String driverId = (String) redisTemplate.opsForValue().get("DEVICE_" + map.get("driverId")); @@ -1802,7 +1959,7 @@ //计算预计距离和剩余时间 String value = null; if (null != orderTaxi.getDriverId()) { - value = (String) redisTemplate.opsForValue().get("DRIVER" + orderTaxi.getDriverId()); + value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + orderTaxi.getDriverId()); if (null == value || "".equals(value)) { System.err.println("司机没有上传位置信息"); @@ -2082,6 +2239,24 @@ orderTaxi.setTelX(""); this.updateById(orderTaxi); + Driver driver = null; + Company company = null; + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(orderTaxi.getTravelId()); + request.setStatus(orderTaxi.getState()); + if (null != orderTaxi.getDriverId()) { + driver = driverService.selectById(orderTaxi.getDriverId()); + company = companyService.selectById(driver.getCompanyId()); + request.setDriverId(driver.getEmpId().toString()); + request.setSupplierShopId(company.getEnterCode()); + } + if (2 == orderTaxi.getPromotion()) { + Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId()); + request.setPromoterId(driver1.getEmpId().toString()); + } + OrderUtil.modifyTravelItinerary(request); + query.setState(2); query.setCode(order_id); paymentRecordService.updateById(query); @@ -2162,7 +2337,7 @@ } } Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间 - OrderTaxi orderTaxi1 = OrderTaxiServiceImpl.this.selectById(orderTaxi.getId()); + OrderPrivateCar orderTaxi1 = orderPrivateCarService.selectById(orderTaxi.getId()); Integer state = orderTaxi1.getState(); if (state != 1) { break; @@ -2297,32 +2472,33 @@ @Override public void addAppeal(Integer uid, Integer orderId, String abnormalIntro, String abnormalImg) { OrderTaxi orderTaxi = this.selectById(orderId); - if(orderTaxi.getState()!=7 || orderTaxi.getAbnormalIntro()!=null){ + if (orderTaxi.getState() != 7 || orderTaxi.getAbnormalIntro() != null) { throw new RuntimeException("此订单无法申诉"); } orderTaxi.setAbnormalIntro(abnormalIntro); orderTaxi.setAbnormalImg(abnormalImg); - orderTaxi.setAbnormal(1); + orderTaxi.setAbnormal(2); this.baseMapper.updateById(orderTaxi); } - + @Override public void promotion(Integer orderId) { OrderTaxi orderTaxi = this.baseMapper.selectById(orderId); UserInfo userInfo = userInfoService.selectById(orderTaxi.getUserId()); - if(userInfo.getBindDriverId()!=null && userInfo.getBindExpireDate().getTime()<=System.currentTimeMillis()){ + if (orderTaxi.getPromotionDriverId() != null) { String registAreaCode = userInfo.getRegistAreaCode(); TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("districtCode", registAreaCode).ge("startTime", new Date()).lt("endTime", new Date()).last("AND FIND_IN_SET(" + 2 + ", bizType) limit 1")); - if(tDriverPromotionActivity!=null){ + if (tDriverPromotionActivity != null) { Double payMoney = orderTaxi.getPayMoney(); BigDecimal bigDecimal = tDriverPromotionActivity.getCommissionRatio().divide(new BigDecimal(100), 2, RoundingMode.HALF_UP).multiply(new BigDecimal(payMoney)).setScale(2, RoundingMode.HALF_UP); orderTaxi.setPromotionDriverId(userInfo.getBindDriverId()); orderTaxi.setPromotionMoney(bigDecimal); + orderTaxi.setPromotionActivityId(tDriverPromotionActivity.getId()); this.baseMapper.updateById(orderTaxi); } } // 是否异常订单 - if (orderTaxi.getResponsibilityType() !=null && orderTaxi.getResponsibilityType() >2) { + if (orderTaxi.getResponsibilityType() != null && orderTaxi.getResponsibilityType() > 2) { TAbnormalPayOrder tAbnormalPayOrder = abnormalPayOrderMapper.selectList(new EntityWrapper<TAbnormalPayOrder>().eq("type", 2).eq("orderNum", orderTaxi.getOrderNum())).stream().findFirst().orElse(null); if (tAbnormalPayOrder != null) { tAbnormalPayOrder.setPayStatus(2); @@ -2331,4 +2507,29 @@ } } } + + @Override + public List<Map<String, Object>> queryMyTripList(Integer uid, Integer pageNum, Integer size) throws Exception { + pageNum = (pageNum - 1) * size; + List<Map<String, Object>> maps = orderTaxiMapper.queryMyTripList(uid, pageNum, size); + for (Map<String, Object> map : maps) { + if (Integer.valueOf(String.valueOf(map.get("state"))) == 11) { + map.put("state", map.get("oldState")); + } + } + return maps; + } + + @Override + public List<Map<String, Object>> queryMyTripListAll(Integer uid) throws Exception { + + List<Map<String, Object>> maps = orderTaxiMapper.queryMyTripListAll(uid); + for (Map<String, Object> map : maps) { + if (Integer.valueOf(String.valueOf(map.get("state"))) == 11) { + map.put("state", map.get("oldState")); + } + } + return maps; + } + } -- Gitblit v1.7.1