From 46f06aa49b1fd284472ee13a1a8345d0046f33b8 Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期四, 05 九月 2024 12:11:19 +0800
Subject: [PATCH] 完善功能
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java | 102 ++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 92 insertions(+), 10 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 ba052cc..8418b50 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
@@ -3,6 +3,9 @@
import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import com.ruoyi.account.api.feignClient.AppCouponClient;
import com.ruoyi.account.api.feignClient.AppUserClient;
import com.ruoyi.account.api.model.TAppUserAddress;
import com.ruoyi.common.core.domain.R;
@@ -18,6 +21,12 @@
import com.ruoyi.order.service.TShoppingOrderService;
import com.ruoyi.other.api.feignClient.CouponClient;
import com.ruoyi.other.api.feignClient.GoodsClient;
+import com.ruoyi.payment.api.feignClient.AliPaymentClient;
+import com.ruoyi.payment.api.feignClient.WxPaymentClient;
+import com.ruoyi.payment.api.model.RefundReq;
+import com.ruoyi.payment.api.model.RefundResp;
+import com.ruoyi.payment.api.model.WxPaymentRefundModel;
+import com.ruoyi.payment.api.vo.WxRefundNotifyResp;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.feignClient.SysUserClient;
import io.swagger.annotations.Api;
@@ -27,9 +36,8 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
+import javax.servlet.http.HttpServletRequest;
+import java.util.*;
/**
* <p>
@@ -78,7 +86,7 @@
}
@Resource
private SysUserClient sysUserClient;
- @PostMapping("/getShoppingOrderInfoById")
+ @GetMapping("/getShoppingOrderInfoById")
@ApiOperation(value = "根据订单id查看订单详情", tags = {"管理后台-购物订单"})
public AjaxResult<TShoppingOrder> getShoppingOrderList(String id) {
TShoppingOrder byId = shoppingOrderService.getById(id);
@@ -111,6 +119,12 @@
}
@Resource
private TokenService tokenService;
+ @Resource
+ private AliPaymentClient aliPaymentClient;
+ @Resource
+ private WxPaymentClient wxPaymentClient;
+ @Resource
+ private AppCouponClient appCouponClient;
@GetMapping("/cancelShoppingOrder")
@ApiOperation(value = "取消订单", tags = {"管理后台-购物订单"})
public AjaxResult cancelShoppingOrder(String id) {
@@ -123,9 +137,43 @@
switch (byId.getPaymentType()){
case 1:
// 微信
+ WxPaymentRefundModel wxPaymentRefundModel = new WxPaymentRefundModel();
+ wxPaymentRefundModel.setTransaction_id(byId.getSerialNumber());
+ wxPaymentRefundModel.setOut_trade_no(byId.getCode());
+ wxPaymentRefundModel.setOut_refund_no(OrderCodeUtil.getOrderCode("GW"));
+ // todo 部署到线上之后写回调地址
+// wxPaymentRefundModel.setNotify_url("");
+ String string = byId.getPaymentAmount().multiply(new BigDecimal("100")).toString();
+ if (string.contains(".")){
+ string = string.substring(0,string.indexOf("."));
+ }
+ int i = Integer.parseInt(string);
+ WxPaymentRefundModel.RefundAmount refundAmount = new WxPaymentRefundModel.RefundAmount();
+ refundAmount.setTotal(i);
+ refundAmount.setRefund(i);
+ wxPaymentRefundModel.setAmount(refundAmount);
+ wxPaymentClient.refundOrderR(wxPaymentRefundModel);
break;
case 2:
// 支付宝
+ RefundReq refundReq = new RefundReq();
+ refundReq.setOutTradeNo(byId.getSerialNumber());
+ String gw = OrderCodeUtil.getOrderCode("GW");
+ refundReq.setOutRequestNo(gw);
+ refundReq.setRefundAmount(byId.getPaymentAmount().toString());
+ refundReq.setRefundReason("后台退款");
+ RefundResp data = aliPaymentClient.refund(refundReq).getData();
+ if (data!=null){
+ // 退款成功 回退优惠券
+// byId.setStatus(4);
+ if (byId.getAppCouponId()!=null){
+ appCouponClient.refund(byId.getAppCouponId().toString());
+ byId.setRefundCode(gw);
+ byId.setRefundAmount(byId.getPaymentAmount());
+ byId.setRefundStatus(2);
+ byId.setRefundSerialNumber(data.getTradeNo());
+ }
+ }
break;
}
shoppingOrderService.updateById(byId);
@@ -133,8 +181,10 @@
}
@GetMapping("/consignerShoppingOrder")
@ApiOperation(value = "发货", tags = {"管理后台-购物订单"})
- public AjaxResult consignerShoppingOrder(String id) {
+ public AjaxResult consignerShoppingOrder(String id,String companyName,String code) {
TShoppingOrder byId = shoppingOrderService.getById(id);
+ byId.setExpressCompany(companyName);
+ byId.setExpressNumber(code);
Long userid = tokenService.getLoginUser().getUserid();
byId.setConsignerId(userid);
byId.setConsignerTime(LocalDateTime.now());
@@ -144,15 +194,32 @@
}
@GetMapping("/getMyShoppingOrderList")
@ApiOperation(value = "获取购买订单列表", tags = {"小程序-商城购买订单"})
- public AjaxResult<List<MyShoppingOrderList>> getMyShoppingOrderList(GetMyShoppingOrderList query){
- List<MyShoppingOrderList> list = shoppingOrderService.getMyShoppingOrderList(query);
+ public AjaxResult<Map<String, Object>> getMyShoppingOrderList(GetMyShoppingOrderList query){
+ Map<String, Object> list = shoppingOrderService.getMyShoppingOrderList(query);
return AjaxResult.success(list);
}
-
+
+ @GetMapping("/getMyShoppingOrderListNum")
+ @ApiOperation(value = "获取购买订单列表数量", tags = {"小程序-商城购买订单"})
+ public AjaxResult<Map<String, Object>> getMyShoppingOrderListNum(){
+ Long userId = tokenService.getLoginUserApplet().getUserId();
+ long dfh = shoppingOrderService.count(new LambdaQueryWrapper<TShoppingOrder>().eq(TShoppingOrder::getDelFlag, 0)
+ .eq(TShoppingOrder::getStatus, 1).eq(TShoppingOrder::getAppUserId, userId));
+ long dsh = shoppingOrderService.count(new LambdaQueryWrapper<TShoppingOrder>().eq(TShoppingOrder::getDelFlag, 0)
+ .eq(TShoppingOrder::getStatus, 2).eq(TShoppingOrder::getAppUserId, userId));
+ long ywc = shoppingOrderService.count(new LambdaQueryWrapper<TShoppingOrder>().eq(TShoppingOrder::getDelFlag, 0)
+ .eq(TShoppingOrder::getStatus, 3).eq(TShoppingOrder::getAppUserId, userId));
+ Map<String, Object> map = new HashMap<>();
+ map.put("dfh", dfh);
+ map.put("dsh", dsh);
+ map.put("ywc", ywc);
+ return AjaxResult.success(map);
+ }
+
@GetMapping("/getMyShoppingOrderInfo/{id}")
- @ApiOperation(value = "获取购买订单详情", tags = {"小程序-商城购买订单"})
+ @ApiOperation(value = "获取购买订单详情", tags = {"小程序-商城购买订单","管理后台-支付订单-订单信息"})
public AjaxResult<MyShoppingOrderInfo> getMyShoppingOrderInfo(@PathVariable String id){
MyShoppingOrderInfo info = shoppingOrderService.getMyShoppingOrderInfo(id);
return AjaxResult.success(info);
@@ -185,6 +252,21 @@
return shoppingOrderService.cancelOrder(id);
}
+ /**
+ * 商城订单取消微信退款回调
+ */
+ @PostMapping("/cancelShoppingOrderWxRefund")
+ public void cancelShoppingOrderWxRefund(HttpServletRequest request){
+ WxRefundNotifyResp data = wxPaymentClient.refundNotify(request).getData();
+ if(null != data){
+ String out_refund_no = data.getOut_refund_no();
+ String refund_id = data.getRefund_id();
+ String tradeState = data.getTradeState();
+ String success_time = data.getSuccess_time();
+ shoppingOrderService.cancelShoppingOrderWxRefund(out_refund_no, refund_id, tradeState, success_time);
+ }
+ }
+
@ResponseBody
@@ -207,7 +289,7 @@
shoppingOrder.setCouponId(exchangeDto.getGoodId());
}
shoppingOrder.setPurchaseQuantity(exchangeDto.getNum());
- shoppingOrder.setAppUserAddressId(Long.valueOf(exchangeDto.getAddressId()));
+ shoppingOrder.setAppUserAddressId(exchangeDto.getAddressId());
shoppingOrder.setOrderAmount(exchangeDto.getOrderPrice());
if (exchangeDto.getCouponId()!=null) {
shoppingOrder.setAppCouponId(exchangeDto.getCouponId());
--
Gitblit v1.7.1