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 | 122 ++++++++++++++++++++-------------------- 1 files changed, 62 insertions(+), 60 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 f5fde46..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 @@ -1,6 +1,5 @@ package com.stylefeng.guns.modular.system.controller.specialTrain; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.stylefeng.guns.core.base.controller.BaseController; @@ -10,14 +9,17 @@ import com.stylefeng.guns.core.util.DateUtil; import com.stylefeng.guns.core.util.SinataUtil; import com.stylefeng.guns.core.util.ToolUtil; -import com.stylefeng.guns.modular.system.controller.general.TDriverController; -import com.stylefeng.guns.modular.system.controller.util.GetOpenBodySig; import com.stylefeng.guns.modular.system.dao.LineShiftDriverMapper; import com.stylefeng.guns.modular.system.dao.OrderCancelMapper; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; -import org.apache.commons.lang.time.DateFormatUtils; +import com.stylefeng.guns.modular.system.util.HttpRequestUtil; +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; + + /** * 跳转到跨城出行订单首页 */ @@ -446,9 +452,6 @@ @Autowired private IIncomeService incomeService; -@Autowired -private TDriverController tDriverController; - /** * 取消跨城出行订单 @@ -495,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()){ @@ -528,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 退款 @@ -551,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); } } //添加取消记录 @@ -606,34 +638,4 @@ return SUCCESS_TIP; } - - public static ResultUtil cancleMoney(BigDecimal amount,String no) throws Exception { - JSONObject json = new JSONObject(); - json.put("requestTimestamp", DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss")); // 报文请求时间 -// json.put("merOrderId", Util.getMerOrderId("34U0")); // 商户订单号 - json.put("merOrderId", no); // 商户订单号 - json.put("mid", "898150841210108"); // 商户号 - json.put("tid", "84UJWSE8"); // 终端号 - json.put("instMid", "QRPAYDEFAULT"); // 业务类型 - BigDecimal multiply = amount.multiply(new BigDecimal(100)); - int money = multiply.intValue(); - json.put("refundAmount",money); // 支付总金额 - System.err.println("请求报文json:\n" + json); - String url = "https://test-api-open.chinaums.com/v1/netpay/refund"; -// String url = "https://api-mop.chinaums.com/v1/netpay/refund"; - //OPEN-BODY-SIG 方式 - String result = GetOpenBodySig.sendOpenBodySig(url, json.toString()); - System.err.println("响应报文json:\n" + result); - JSONObject jsonObject = JSONObject.parseObject(result); - Object appPayRequest = jsonObject.get("appPayRequest"); - System.out.println(appPayRequest); - return ResultUtil.success(appPayRequest); - } - - @Autowired - private ITEnterpriseWithdrawalService tEnterpriseWithdrawalService; - @Autowired - private IUserWithdrawalService userWithdrawalService; - - } -- Gitblit v1.7.1