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/TReassignController.java | 153 ++++++++++++++++++++++++++------------------------- 1 files changed, 78 insertions(+), 75 deletions(-) diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TReassignController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TReassignController.java index b159b28..8a325fd 100644 --- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TReassignController.java +++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TReassignController.java @@ -9,6 +9,7 @@ import com.stylefeng.guns.core.shiro.ShiroUser; import com.stylefeng.guns.core.util.ExcelUtil; import com.stylefeng.guns.core.util.SinataUtil; +import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.system.dao.LineShiftDriverMapper; import com.stylefeng.guns.modular.system.dao.OrderCancelMapper; import com.stylefeng.guns.modular.system.model.*; @@ -16,6 +17,9 @@ import com.stylefeng.guns.modular.system.util.HttpRequestUtil; 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 lombok.extern.slf4j.Slf4j; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -32,10 +36,7 @@ import java.math.BigDecimal; import java.text.DateFormat; import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 快车改派管理控制器 @@ -43,6 +44,7 @@ * @author fengshuonan * @Date 2020-09-03 14:20:27 */ +@Slf4j @Controller @RequestMapping("/tReassign") public class TReassignController extends BaseController { @@ -89,8 +91,12 @@ private ITOrderTaxiService orderTaxiService; @Autowired private ShiroExtUtil shiroExtUtil; - - + @Autowired + private ITCompanyService iTCompanyService; + @Autowired + private IUserService sysUserService; + + /** * 跳转到快车改派管理首页 */ @@ -807,6 +813,7 @@ @ResponseBody public Object optCross(@RequestParam Integer tReassignId,@RequestParam Integer optType) { try { + TReassign tReassign = tReassignService.selectById(tReassignId); ShiroUser user = shiroExtUtil.getUser(); if (1 == optType) { @@ -828,6 +835,23 @@ TOrderCrossCity tOrderCrossCity = itOrderCrossCityService.selectById(tReassign.getOrderId()); tOrderCrossCity.setState(tOrderCrossCity.getOldState()); itOrderCrossCityService.updateById(tOrderCrossCity); + + //中台修改订单状态 + if(ToolUtil.isNotEmpty(tOrderCrossCity.getTravelId())){ + TCompany company = iTCompanyService.selectById(driver.getCompanyId()); + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(tOrderCrossCity.getTravelId()); + request.setStatus(tOrderCrossCity.getState()); + request.setDriverId(driver.getEmpId().toString()); + if (2 == tOrderCrossCity.getPromotion()) { + TDriver driver1 = itDriverService.selectById(tOrderCrossCity.getPromotionDriverId()); + request.setPromoterId(driver1.getEmpId().toString()); + } + request.setSupplierShopId(company.getEnterCode()); + OrderUtil.modifyTravelItinerary(request); + } + }else if (2 == optType){ tReassign.setState(4); tReassign.setReviewer(user.getId()); @@ -885,45 +909,40 @@ //添加交易明细 transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", orderCrossCity.getPayMoney().doubleValue(), 1, 1, 1, 3, tReassign.getOrderId()); }else{ -// PaymentRecord query = paymentRecordService.query(1, null, null, tReassign.getOrderId(), 3, null, 2).get(0); -// if(null == query){ -// return ResultUtil.error("订单还未进行支付"); -// } -// Map<String, Object> merrefund = icbcPayUtil.merrefund(query.getCode(), "", query.getAmount(), tReassign.getOrderId() + "_3", orderCrossCity.getOrderNum()); -// if(Integer.valueOf(merrefund.get("code").toString()) == 0){ -// boolean b = true; -// while (b){ -// Map<String, Object> refundqry = icbcPayUtil.refundqry("", query.getCode(), orderCrossCity.getOrderNum()); -// if(Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 0){//成功 -// //添加交易明细 -// transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", query.getAmount(), 1, 1, 1, 3, tReassign.getOrderId()); -// } -// if(Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 1){//失败 -// return ResultUtil.error("订单取消失败(退款不成功)"); -// } -// if(Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 2){//未知 -// return ResultUtil.error("退款返回未知异常"); -// } -// } -// } - } + //中台订单退款操作 + if(ToolUtil.isNotEmpty(orderCrossCity.getTravelId())){ + User user1 = sysUserService.selectById(user.getId()); + List<PaymentRecord> list = paymentRecordService.query(1, orderCrossCity.getUserId(), 1, orderCrossCity.getId(), 3, 1, 2); + PaymentRecord query = list.get(0); + 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"); - //添加负的收入明细 - List<Income> incomes = incomeService.selectList(new EntityWrapper<Income>().eq("type", 2).eq("incomeId", tReassign.getOrderId()).eq("orderType", 3)); - for(Income income : incomes){ - if(income.getUserType() == 2){//处理司机的收入 - TDriver driver = itDriverService.selectById(income.getObjectId()); - driver.setBalance(driver.getBalance().subtract(new BigDecimal(income.getMoney()))); - driver.setLaveBusinessMoney(new BigDecimal(driver.getLaveBusinessMoney()).subtract(new BigDecimal(income.getMoney())).doubleValue()); - driver.setBusinessMoney(new BigDecimal(driver.getBusinessMoney()).subtract(new BigDecimal(income.getMoney())).doubleValue()); - itDriverService.updateById(driver); + 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 request1 = new OrderRefundNoticeRequest(); + request1.setOrderId(orderCrossCity.getTravelId()); + request1.setRefundPayNum(tradeOrderRefund.getRefundId()); + request1.setRefundType("5"); + request1.setApplyRefundCharge(orderCrossCity.getPayMoney()); + request1.setActualRefundCharge(orderCrossCity.getPayMoney()); + request1.setRefundAccount(user1.getEmpId().toString()); + request1.setRemark("服务商取消订单退款"); + OrderUtil.orderRefundNotice(request1); + + //添加交易明细 + transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", query.getAmount(), 1, 1, 1, 3, tReassign.getOrderId()); } - Income income1 = new Income(); - BeanUtils.copyProperties(income, income1); - income1.setMoney(income.getMoney() * -1); - income1.setId(null); - income1.setInsertTime(new Date()); - incomeService.insert(income1); } } @@ -939,22 +958,6 @@ orderCancel.setUserId(user.getId()); orderCancelMapper.insert(orderCancel); } - - //返回驾驶员处罚金 - TDriver originalDriver = itDriverService.selectById(tReassign.getOriginalDriverId()); - - //增加交易明细 - TPubTransactionDetails details = new TPubTransactionDetails(); - details.setUserId(originalDriver.getId()); - details.setInsertTime(new Date()); - details.setRemark("【跨城改派】:改派失败或订单取消"); - details.setMoney(new BigDecimal(tReassign.getMoney())); - details.setState(1); - details.setType(1); - details.setUserType(2); - details.setOrderType(3); - details.setOrderId(tReassign.getOrderId()); - itPubTransactionDetailsService.insert(details); }catch (Exception e){ e.printStackTrace(); } @@ -1276,6 +1279,7 @@ } if(driver.getState() == 2){ driver.setState(3); + itDriverService.updateById(driver); } //修改订单数据 @@ -1300,24 +1304,23 @@ tReassign.setCompleteTime(new Date()); tReassignService.updateById(tReassign); - //修改收入明细,转给新司机(因为是先支付金额) - List<Income> incomes = incomeService.selectList(new EntityWrapper<Income>().eq("userType", 2).eq("objectId", oldDriver.getId()).eq("type", 2).eq("incomeId", tReassign.getOrderId()).eq("orderType", 3)); - if(incomes.size() > 0){ - Income income = incomes.get(0); - income.setObjectId(driverId); - incomeService.updateById(income); + TCompany company = iTCompanyService.selectById(driver.getCompanyId()); - oldDriver.setBusinessMoney(oldDriver.getBusinessMoney() - income.getMoney()); - oldDriver.setLaveBusinessMoney(oldDriver.getLaveBusinessMoney() - income.getMoney()); - oldDriver.setBalance(oldDriver.getBalance().subtract(new BigDecimal(income.getMoney()))); - - driver.setBusinessMoney(driver.getBusinessMoney() + income.getMoney()); - driver.setLaveBusinessMoney(driver.getLaveBusinessMoney() + income.getMoney()); - driver.setBalance(driver.getBalance().add(new BigDecimal(income.getMoney()))); - + //中台修改订单状态 + if(ToolUtil.isNotEmpty(tOrderCrossCity.getTravelId())){ + ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest(); + request1.setOrderId(tOrderCrossCity.getTravelId()); + request1.setStatus(tOrderCrossCity.getState()); + if (null != tOrderCrossCity.getDriverId()) { + request1.setDriverId(driver.getEmpId().toString()); + request1.setSupplierShopId(company.getEnterCode()); + } + if (2 == tOrderCrossCity.getPromotion()) { + TDriver driver2 = itDriverService.selectById(tOrderCrossCity.getPromotionDriverId()); + request1.setPromoterId(driver2.getEmpId().toString()); + } + OrderUtil.modifyTravelItinerary(request1); } - itDriverService.updateById(oldDriver); - itDriverService.updateById(driver); //增加推送 Map<String,String> map = new HashMap<>(); map.put("orderId", tOrderCrossCity.getId().toString()); -- Gitblit v1.7.1