From c8d8d2b62f6d6fe7359d26bdd28ae13df69b1439 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期一, 08 九月 2025 16:41:48 +0800 Subject: [PATCH] 新增加跨城支付 --- DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderCrossCityServiceImpl.java | 63 ++++++++++++++++++++----------- 1 files changed, 40 insertions(+), 23 deletions(-) diff --git a/DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderCrossCityServiceImpl.java b/DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderCrossCityServiceImpl.java index 0559021..3bccfe7 100644 --- a/DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderCrossCityServiceImpl.java +++ b/DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderCrossCityServiceImpl.java @@ -10,6 +10,11 @@ import com.stylefeng.guns.modular.system.model.*; 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.OrderRefundNoticeRequest; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.RefundInfoRequest; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.TradeOrderRefund; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.TradeOrderRefundRequest; import com.stylefeng.guns.modular.system.warpper.BaseWarpper; import com.stylefeng.guns.modular.system.warpper.OrderCrossCityWarpper; import org.springframework.beans.BeanUtils; @@ -154,7 +159,7 @@ * @throws Exception */ @Override - public ResultUtil cancelOrder(Integer orderId) throws Exception { + public ResultUtil cancelOrder(Integer orderId, Integer uid) throws Exception { OrderCrossCity orderCrossCity = this.selectById(orderId); if(orderCrossCity.getState() == 10 || orderCrossCity.getState() == 12){ return ResultUtil.error("不允许重复取消"); @@ -193,7 +198,10 @@ driver.setState(2); driverService.updateById(driver); } - + //未支付,调取消订单 + if(null == orderCrossCity.getPayType() && ToolUtil.isNotEmpty(orderCrossCity.getTravelId())){ + OrderUtil.tradeOrderCancel(orderCrossCity.getTravelId()); + } //已支付的情况下进行退款操作 if(null != orderCrossCity.getPayType() && null != orderCrossCity.getPayMoney()){ if(orderCrossCity.getPayType() == 3){//余额支付 @@ -214,9 +222,36 @@ } if(query.getPayType() == 1){//微信 - Map<String, String> map = payMoneyUtil.wxRefund(query.getCode(), orderId + "_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())){ + Dispatch dispatch = dispatchService.selectById(uid); + TradeOrderRefundRequest request = new TradeOrderRefundRequest(); + request.setPartnerPayId(orderCrossCity.getTravelId()); + request.setPayId(query.getCode()); + request.setRefundTotalFee(Double.valueOf(orderCrossCity.getPayMoney() * 100).intValue() + ""); + request.setRemark("调度取消订单退款"); + request.setRefundType("RF"); + + RefundInfoRequest refundInfo = new RefundInfoRequest(); + refundInfo.setPayItemId(orderCrossCity.getTravelId()); + refundInfo.setPayId(query.getCode()); + refundInfo.setTradeFee(Double.valueOf(orderCrossCity.getPayMoney() * 100).intValue() + ""); + request.setRefundInfos(new ArrayList<RefundInfoRequest>(){{ + add(refundInfo); + }}); + TradeOrderRefund tradeOrderRefund = OrderUtil.tradeOrderRefund(request); + //退款通知 + OrderRefundNoticeRequest request1 = new OrderRefundNoticeRequest(); + request1.setOrderId(orderCrossCity.getTravelId()); + request1.setRefundPayNum(tradeOrderRefund.getRefundId()); + request1.setRefundType("5"); + request1.setApplyRefundCharge(new BigDecimal(orderCrossCity.getPayMoney())); + request1.setActualRefundCharge(new BigDecimal(orderCrossCity.getPayMoney())); + request1.setRefundAccount(dispatch.getEnterId().toString()); + request1.setRemark("调度取消订单退款"); + OrderUtil.orderRefundNotice(request1); + //添加交易明细 + transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城出行取消退款", query.getAmount(), 1, 1, 1, 3, orderId); } }else{//支付宝 Map<String, String> map = payMoneyUtil.aliRefund(query.getCode(), query.getAmount().toString()); @@ -226,24 +261,6 @@ //添加交易明细 transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城出行取消退款", query.getAmount(), 1, 1, 1, 3, orderId); } - } - - //添加负的收入明细 - List<Income> incomes = incomeService.selectList(new EntityWrapper<Income>().eq("type", 2).eq("incomeId", orderId).eq("orderType", 3)); - for(Income income : incomes){ - if(income.getUserType() == 2){//处理司机的收入 - Driver driver = driverService.selectById(income.getObjectId()); - driver.setBalance(driver.getBalance() - income.getMoney()); - driver.setBusinessMoney(driver.getBusinessMoney() - income.getMoney()); - driver.setLaveBusinessMoney(driver.getLaveBusinessMoney() - income.getMoney()); - driverService.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