From 8db855719710fc5e33a51d1f30050c007b38b65d Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期一, 30 九月 2024 14:15:35 +0800 Subject: [PATCH] bug修改 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java | 75 +++++++++++++++++++++++++++++++------ 1 files changed, 63 insertions(+), 12 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java index 0ab6cd7..397c94d 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java @@ -1,6 +1,7 @@ package com.ruoyi.order.controller; import java.math.BigDecimal; +import java.text.SimpleDateFormat; import java.time.LocalDateTime; @@ -15,10 +16,13 @@ import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.security.service.TokenService; +import com.ruoyi.order.api.model.TChargingOrderRefund; import com.ruoyi.order.api.model.TExchangeOrder; import com.ruoyi.order.api.model.TShoppingOrder; +import com.ruoyi.order.api.model.TShoppingOrderRefund; import com.ruoyi.order.api.query.ShoppingOrderQuery; import com.ruoyi.order.dto.*; +import com.ruoyi.order.service.TShoppingOrderRefundService; import com.ruoyi.order.service.TShoppingOrderService; import com.ruoyi.other.api.domain.TCoupon; import com.ruoyi.other.api.domain.TGoods; @@ -40,6 +44,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.time.format.DateTimeFormatter; import java.util.*; /** @@ -73,7 +78,31 @@ private AppCouponClient appCouponClient; @Resource private SysUserClient sysUserClient; - + @Resource + private TShoppingOrderRefundService shoppingOrderRefundService; + /** + * 远程管理后台取消订单后退款回调 + */ + @ResponseBody + @PostMapping(value = "/shoppingOrderWxRefund") + public void shoppingOrderWxRefund(@RequestParam("out_trade_no") String out_refund_no, + @RequestParam("out_trade_no") String refund_id, + @RequestParam("out_trade_no") String tradeState, + @RequestParam("out_trade_no") String success_time){ + if("SUCCESS".equals(tradeState)){ + TShoppingOrderRefund one = shoppingOrderRefundService.getOne(new LambdaQueryWrapper<TShoppingOrderRefund>().eq(TShoppingOrderRefund::getRefundCode, out_refund_no)); + one.setRefundSerialNumber(refund_id); + one.setRefundStatus(2); + one.setRefundTime(LocalDateTime.parse(success_time, DateTimeFormatter.ofPattern("yyyy-MM-DDTHH:mm:ss+TIMEZONE"))); + shoppingOrderRefundService.updateById(one); + TShoppingOrder byId = shoppingOrderService.getById(one.getShoppingOrderId()); + byId.setStatus(4); + shoppingOrderService.updateById(byId); + if (byId.getAppCouponId() != null) { + appCouponClient.refund(byId.getAppCouponId().toString()); + } + } + } @PostMapping("/getShoppingOrderList") @ApiOperation(value = "列表查询", tags = {"管理后台-购物订单"}) @@ -144,7 +173,7 @@ shoppingOrderService.removeBatchByIds(Arrays.asList(ids.split(","))); return AjaxResult.success(); } - + @GetMapping("/cancelShoppingOrder") @ApiOperation(value = "取消订单", tags = {"管理后台-购物订单"}) public AjaxResult cancelShoppingOrder(String id) { @@ -154,6 +183,21 @@ byId.setCancellationId(userid); byId.setCancellationTime(LocalDateTime.now()); byId.setStatus(4); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); + TShoppingOrderRefund tShoppingOrderRefund = new TShoppingOrderRefund(); + tShoppingOrderRefund.setPayTime(byId.getPayTime()); + tShoppingOrderRefund.setPayCode(byId.getSerialNumber()); + tShoppingOrderRefund.setPayAmount(byId.getPaymentAmount()); + tShoppingOrderRefund.setPayType(1); + tShoppingOrderRefund.setShoppingOrderId(byId.getId()); + tShoppingOrderRefund.setRefundAmount(byId.getPaymentAmount()); + tShoppingOrderRefund.setRefundStatus(1); + tShoppingOrderRefund.setCode("GWF" + sdf.format(new Date()) + Double.valueOf(Math.random() * 1000).intValue()); + tShoppingOrderRefund.setRefundTitle("后台取消订单"); + tShoppingOrderRefund.setRefundContent("后台取消订单"); + tShoppingOrderRefund.setRefundReason("后台取消订单"); + tShoppingOrderRefund.setRefundRemark("全额退款"); + tShoppingOrderRefund.setRefundTotalAmount(byId.getPaymentAmount()); switch (byId.getPaymentType()) { case 1: // 微信 @@ -163,8 +207,6 @@ wxPaymentRefundModel.setOut_refund_no(OrderCodeUtil.getOrderCode("GWTK")); wxPaymentRefundModel.setReason("后台购物订单退款"); wxPaymentRefundModel.setNotify_url("/payment/wx/refund/notify"); - - // todo 部署到线上之后写回调地址 String string = byId.getPaymentAmount().multiply(new BigDecimal("100")).toString(); if (string.contains(".")) { string = string.substring(0, string.indexOf(".")); @@ -175,28 +217,37 @@ refundAmount.setCurrency("CNY"); refundAmount.setRefund(i); wxPaymentRefundModel.setAmount(refundAmount); - wxPaymentClient.refundOrderR(wxPaymentRefundModel); + R<String> stringR = wxPaymentClient.refundOrderR(wxPaymentRefundModel); + if(200 == stringR.getCode()){ + shoppingOrderRefundService.save(tShoppingOrderRefund); + } break; case 2: // 支付宝 RefundReq refundReq = new RefundReq(); refundReq.setOutTradeNo(byId.getSerialNumber()); - String gw = OrderCodeUtil.getOrderCode("GWTK"); + String gw = OrderCodeUtil.getOrderCode("GWF"); refundReq.setOutRequestNo(gw); refundReq.setRefundAmount(byId.getPaymentAmount().toString()); refundReq.setRefundReason("后台购物订单退款"); RefundResp data = aliPaymentClient.refund(refundReq).getData(); if (data != null) { - // 退款成功 回退优惠券 byId.setStatus(4); + SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-DDTHH:mm:ss+TIMEZONE"); + TShoppingOrderRefund one = shoppingOrderRefundService.getOne(new LambdaQueryWrapper<TShoppingOrderRefund>().eq(TShoppingOrderRefund::getRefundCode, data.getOutTradeNo())); + one.setRefundSerialNumber(data.getTradeNo()); + one.setRefundStatus(2); + one.setRefundTime(LocalDateTime.parse(sdf1.format(new Date()), DateTimeFormatter.ofPattern("yyyy-MM-DDTHH:mm:ss+TIMEZONE"))); + shoppingOrderRefundService.updateById(one); if (byId.getAppCouponId() != null) { + // 退款成功 回退优惠券 appCouponClient.refund(byId.getAppCouponId().toString()); - byId.setRefundCode(gw); - byId.setRefundAmount(byId.getPaymentAmount()); - byId.setRefundStatus(2); - byId.setRefundSerialNumber(data.getTradeNo()); - shoppingOrderService.updateById(byId); } + byId.setRefundCode(gw); + byId.setRefundAmount(byId.getPaymentAmount()); + byId.setRefundStatus(2); + byId.setRefundSerialNumber(data.getTradeNo()); + shoppingOrderService.updateById(byId); } break; } -- Gitblit v1.7.1