From e0201ae86d66acd7127a9c01080731ee22e4b974 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期一, 08 九月 2025 16:41:24 +0800 Subject: [PATCH] 新增加跨城支付 --- ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java | 81 +++++++++++++++++++++++++++++----------- 1 files changed, 58 insertions(+), 23 deletions(-) diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java index 93ef897..0837007 100644 --- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java +++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java @@ -18,6 +18,8 @@ import com.stylefeng.guns.modular.system.util.PayMoneyUtil; import com.stylefeng.guns.modular.system.util.PushURL; import com.stylefeng.guns.modular.system.util.ResultUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.*; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Sort; @@ -67,8 +69,12 @@ private MongoTemplate mongoTemplate; @Autowired private ShiroExtUtil shiroExtUtil; - - + @Autowired + private IUserService sysUserService; + @Autowired + private ITCompanyService iTCompanyService; + + /** * 跳转到跨城出行订单首页 */ @@ -492,6 +498,26 @@ } } + //中台修改订单状态 + ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest(); + request1.setOrderId(orderCrossCity.getTravelId()); + request1.setStatus(orderCrossCity.getState()); + if (null != orderCrossCity.getDriverId()) { + TDriver driver2 = tDriverService.selectById(orderCrossCity.getDriverId()); + TCompany company = iTCompanyService.selectById(driver2.getCompanyId()); + request1.setDriverId(driver2.getEmpId().toString()); + request1.setSupplierShopId(company.getEnterCode()); + } + if (2 == orderCrossCity.getPromotion() && null != orderCrossCity.getPromotionDriverId()) { + TDriver driver2 = tDriverService.selectById(orderCrossCity.getPromotionDriverId()); + request1.setPromoterId(driver2.getEmpId().toString()); + } + OrderUtil.modifyTravelItinerary(request1); + + //未支付,调取消订单 + if(null == orderCrossCity.getPayType() && ToolUtil.isNotEmpty(orderCrossCity.getTravelId())){ + OrderUtil.tradeOrderCancel(orderCrossCity.getTravelId()); + } //已支付的情况下进行退款操作 if(null != orderCrossCity.getPayType() && null != orderCrossCity.getPayMoney()){ @@ -525,9 +551,36 @@ } if(query.getPayType() == 1){//微信 - Map<String, String> map = payMoneyUtil.wxRefund(query.getCode(), tOrderCrossCityId + "_3", query.getAmount().toString(), query.getAmount().toString(), "/base/cancleOrderWXPay"); - if(!"SUCCESS".equals(map.get("return_code"))){ - return ResultUtil.error(map.get("return_msg")); + //中台订单退款操作 + if(ToolUtil.isNotEmpty(orderCrossCity.getTravelId())){ + User user1 = sysUserService.selectById(user.getId()); + TradeOrderRefundRequest request = new TradeOrderRefundRequest(); + request.setPartnerPayId(orderCrossCity.getTravelId()); + request.setPayId(query.getCode()); + request.setRefundTotalFee(orderCrossCity.getPayMoney().multiply(new BigDecimal(100)).intValue() + ""); + request.setRemark("服务商取消订单退款"); + request.setRefundType("RF"); + + RefundInfoRequest refundInfo = new RefundInfoRequest(); + refundInfo.setPayItemId(orderCrossCity.getTravelId()); + refundInfo.setPayId(query.getCode()); + refundInfo.setTradeFee(orderCrossCity.getPayMoney().multiply(new BigDecimal(100)).intValue() + ""); + request.setRefundInfos(new ArrayList<RefundInfoRequest>(){{ + add(refundInfo); + }}); + TradeOrderRefund tradeOrderRefund = OrderUtil.tradeOrderRefund(request); + //退款通知 + OrderRefundNoticeRequest request2 = new OrderRefundNoticeRequest(); + request2.setOrderId(orderCrossCity.getTravelId()); + request2.setRefundPayNum(tradeOrderRefund.getRefundId()); + request2.setRefundType("5"); + request2.setApplyRefundCharge(orderCrossCity.getPayMoney()); + request2.setActualRefundCharge(orderCrossCity.getPayMoney()); + request2.setRefundAccount(user1.getEnterId().toString()); + request2.setRemark("服务商取消订单退款"); + OrderUtil.orderRefundNotice(request2); + //添加交易明细 + transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城出行取消退款", query.getAmount(), 1, 1, 1, 3, tOrderCrossCityId); } }else if(query.getPayType()==4){ // TODO 退款 @@ -548,24 +601,6 @@ //添加交易明细 transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城出行取消退款", query.getAmount(), 1, 1, 1, 3, tOrderCrossCityId); } - } - - //添加负的收入明细 - List<Income> incomes = incomeService.selectList(new EntityWrapper<Income>().eq("type", 2).eq("incomeId", tOrderCrossCityId).eq("orderType", 3)); - for(Income income : incomes){ - if(income.getUserType() == 2){//处理司机的收入 - TDriver driver = tDriverService.selectById(income.getObjectId()); - driver.setBalance(driver.getBalance().subtract(new BigDecimal(income.getMoney()))); - driver.setBusinessMoney(driver.getBusinessMoney() - income.getMoney()); - driver.setLaveBusinessMoney(driver.getLaveBusinessMoney() - income.getMoney()); - tDriverService.updateById(driver); - } - Income income1 = new Income(); - BeanUtils.copyProperties(income, income1); - income1.setMoney(income.getMoney() * -1); - income1.setId(null); - income1.setInsertTime(new Date()); - incomeService.insert(income1); } } //添加取消记录 -- Gitblit v1.7.1