From bf783845bb71eadbd85ddef9a7c1ae14d5aebc4b Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Thu, 06 Feb 2025 16:55:29 +0800
Subject: [PATCH] feat(payment): 集成 FIUU 支付方式并优化退款流程
---
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java | 45 ++++++++++++++++++++++++++++++---------------
1 files changed, 30 insertions(+), 15 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java
index 7c79417..d1257d8 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java
@@ -17,6 +17,7 @@
import cc.mrbird.febs.mall.vo.*;
import cc.mrbird.febs.pay.model.OrderStateDto;
import cc.mrbird.febs.pay.service.IXcxPayService;
+import cc.mrbird.febs.pay.util.FiuuUtil;
import cc.mrbird.febs.pay.util.WeixinServiceUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
@@ -57,6 +58,8 @@
private final MallRefundMapper mallRefundMapper;
@Autowired
private WeixinServiceUtil weixinServiceUtil;
+ @Autowired
+ private FiuuUtil fiuuUtil;
private final XcxProperties xcxProperties = SpringContextHolder.getBean(XcxProperties.class);
private final IMallMoneyFlowService mallMoneyFlowService;
private final IApiMallMemberWalletService memberWalletService;
@@ -388,6 +391,10 @@
//获取退款订单信息
Long orderId = apiLeaderRefundOrderDto.getOrderId();
Long itemId = apiLeaderRefundOrderDto.getItemId();
+ Integer agreeType = apiLeaderRefundOrderDto.getAgreeType();
+ if(!(1 == agreeType || 2 == agreeType)){
+ return new FebsResponse().fail().message("退款失败,请联系客服人员");
+ }
MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(orderId);
MallOrderItem mallOrderItem = mallOrderItemMapper.selectById(itemId);
@@ -417,27 +424,35 @@
String refundNo = mallRefundEntity.getRefundNo();
//退款订单金额
BigDecimal orderAmount = mallOrderInfo.getAmount();
- BigDecimal aa = new BigDecimal(100);
- int orderMoney = orderAmount.multiply(aa).intValue();
//退款退款金额
- BigDecimal refundAmount = mallRefundEntity.getAmount();
- List<MallOrderItem> mallOrderItemListOnly = mallOrderItemMapper.selectListByStateAndOrderId(1,orderId);
- if(CollUtil.isNotEmpty(mallOrderItemListOnly)){
- if(1==mallOrderItemListOnly.size()){
- refundAmount = refundAmount.add(mallOrderInfo.getCarriage());
- log.info("退款订单编号为{},订单金额:{},待退款订单:{},退款金额:{}", refundNo,orderAmount,mallOrderItemListOnly.size(),refundAmount);
- }
- }
// BigDecimal refundAmount = mallRefundEntity.getAmount();
// List<MallOrderItem> mallOrderItemListOnly = mallOrderItemMapper.selectListByStateAndOrderId(1,orderId);
-// List<MallOrderItem> mallOrderItemListIng = mallOrderItemMapper.selectListByStateAndOrderId(2,orderId);
-// if(CollUtil.isEmpty(mallOrderItemListOnly) && CollUtil.isNotEmpty(mallOrderItemListIng) ){
-// if(1 == mallOrderItemListIng.size() ){
+// if(CollUtil.isNotEmpty(mallOrderItemListOnly)){
+// if(1==mallOrderItemListOnly.size()){
// refundAmount = refundAmount.add(mallOrderInfo.getCarriage());
// log.info("退款订单编号为{},订单金额:{},待退款订单:{},退款金额:{}", refundNo,orderAmount,mallOrderItemListOnly.size(),refundAmount);
// }
// }
+ BigDecimal refundAmount = mallRefundEntity.getAmount();
+ if(agreeType == 1){
+ List<MallOrderItem> mallOrderItemListOnly = mallOrderItemMapper.selectListByStateAndOrderId(1,orderId);
+ if(CollUtil.isNotEmpty(mallOrderItemListOnly)){
+ if(1==mallOrderItemListOnly.size()){
+ refundAmount = refundAmount.add(mallOrderInfo.getCarriage());
+ log.info("退款订单编号为{},订单金额:{},待退款订单:{},退款金额:{}", refundNo,orderAmount,mallOrderItemListOnly.size(),refundAmount);
+ }
+ }
+ }else if(agreeType == 2){
+ List<MallOrderItem> mallOrderItemListOnly = mallOrderItemMapper.selectListByStateAndOrderId(1,orderId);
+ List<MallOrderItem> mallOrderItemListIng = mallOrderItemMapper.selectListByStateAndOrderId(2,orderId);
+ if(CollUtil.isEmpty(mallOrderItemListOnly) && CollUtil.isNotEmpty(mallOrderItemListIng) ){
+ if(1 == mallOrderItemListIng.size() ){
+ refundAmount = refundAmount.add(mallOrderInfo.getCarriage());
+ log.info("退款订单编号为{},订单金额:{},待退款订单:{},退款金额:{}", refundNo,orderAmount,mallOrderItemListOnly.size(),refundAmount);
+ }
+ }
+ }
// refundAmount = refundAmount.add(mallOrderInfo.getCarriage());
BigDecimal bb = new BigDecimal(100);
int refundMoney = refundAmount.multiply(bb).intValue();
@@ -474,11 +489,11 @@
Boolean flag = false;
Boolean debug = xcxProperties.getDebug();
if (debug) {
- boolean b = weixinServiceUtil.comRefund(orderNo, refundNo, 1, 1, null);
+ boolean b = fiuuUtil.comRefund(mallOrderInfo.getPayOrderNo(), refundNo, "1");
flag = b;
} else {
log.info("开始调用退款接口。。。退款编号为{}", refundNo);
- boolean b = weixinServiceUtil.comRefund(orderNo, refundNo, orderMoney, refundMoney, null);
+ boolean b = fiuuUtil.comRefund(mallOrderInfo.getPayOrderNo(), refundNo, orderAmount.toString());
flag = b;
}
--
Gitblit v1.9.1