From 1fc8fde81cbf79ebe95e927f9099cf94c2ccc6e5 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Thu, 15 May 2025 17:39:04 +0800
Subject: [PATCH] refactor(mall): 优化退款流程和逻辑
---
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 65 ++++++++++++++++++++------------
1 files changed, 40 insertions(+), 25 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index 65239cf..4af16f4 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -208,13 +208,13 @@
}
MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId());
- // 零撸专区购买
- if (new BigDecimal(mallGoods.getPresentPrice()).compareTo(BigDecimal.ZERO) == 0) {
- List<MallOrderItem> items = mallOrderItemMapper.selectItemByGoodsIdUnCancel(mallGoods.getId(), member.getId());
- if (CollUtil.isNotEmpty(items)) {
- throw new FebsException("无法重复领取同一个商品");
- }
- }
+ // todo 纯积分商品一个账号限制购买一次
+// if (new BigDecimal(mallGoods.getPresentPrice()).compareTo(BigDecimal.ZERO) == 0) {
+// List<MallOrderItem> items = mallOrderItemMapper.selectItemByGoodsIdUnCancel(mallGoods.getId(), member.getId());
+// if (CollUtil.isNotEmpty(items)) {
+// throw new FebsException("积分商品一个账号只能购买一次");
+// }
+// }
if (MallGoods.ISSALE_STATUS_DISABLED.equals(mallGoods.getIsSale())) {
throw new FebsException(mallGoods.getGoodsName() + "已下架");
@@ -543,23 +543,23 @@
if (OrderStatusEnum.WAIT_PAY.getValue() != orderInfo.getStatus()) {
throw new FebsException("订单状态不能支付");
}
- //先支付积分部分
- if(orderInfo.getScoreAmount().compareTo(BigDecimal.ZERO) > 0){
- balanceScorePay(orderInfo, payOrderDto.getTradePwd(), "prizeScore");
- mallMoneyFlowService.addMoneyFlow(
- member.getId(),
- orderInfo.getAmount().negate(),
- ScoreFlowTypeEnum.PAY.getValue(),
- orderInfo.getOrderNo(),
- FlowTypeEnum.PRIZE_SCORE.getValue(),
- StrUtil.format(ScoreFlowTypeEnum.PAY.getDesc(),orderInfo.getScoreAmount()),
- 2
- );
- }
String payResultStr = "";
String wxResultStr = "";
if(orderInfo.getAmount().compareTo(BigDecimal.ZERO) <= 0){
+ //先支付积分部分
+ if(orderInfo.getScoreAmount().compareTo(BigDecimal.ZERO) > 0){
+ balanceScorePay(orderInfo, payOrderDto.getTradePwd(), "prizeScore");
+ mallMoneyFlowService.addMoneyFlow(
+ member.getId(),
+ orderInfo.getScoreAmount().negate(),
+ ScoreFlowTypeEnum.PAY.getValue(),
+ orderInfo.getOrderNo(),
+ FlowTypeEnum.PRIZE_SCORE.getValue(),
+ StrUtil.format(ScoreFlowTypeEnum.PAY.getDesc(),orderInfo.getScoreAmount()),
+ 2
+ );
+ }
orderInfo.setPayOrderNo(orderInfo.getOrderNo());
orderInfo.setPayMethod("积分支付");
orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue());
@@ -591,7 +591,22 @@
agentProducer.sendOrderReturn(orderInfo.getId());
break;
case "3":
+
payResultStr = balancePay(orderInfo, payOrderDto.getTradePwd(), "balance");
+
+ //先支付积分部分
+ if(orderInfo.getScoreAmount().compareTo(BigDecimal.ZERO) > 0){
+ balanceScorePay(orderInfo, payOrderDto.getTradePwd(), "prizeScore");
+ mallMoneyFlowService.addMoneyFlow(
+ member.getId(),
+ orderInfo.getScoreAmount().negate(),
+ ScoreFlowTypeEnum.PAY.getValue(),
+ orderInfo.getOrderNo(),
+ FlowTypeEnum.PRIZE_SCORE.getValue(),
+ StrUtil.format(ScoreFlowTypeEnum.PAY.getDesc(),orderInfo.getScoreAmount()),
+ 2
+ );
+ }
orderInfo.setPayOrderNo(orderInfo.getOrderNo());
orderInfo.setPayMethod("余额支付");
@@ -694,11 +709,11 @@
orderListDto.setMemberId(member.getId());
// IPage<MallOrderInfo> mallOrderInfos = this.baseMapper.selectApiOrderListInPage(page, orderListDto);
IPage<MallOrderInfo> mallOrderInfos = this.baseMapper.selectNewApiOrderListInPage(page, orderListDto);
- if (CollUtil.isNotEmpty(mallOrderInfos.getRecords())) {
- mallOrderInfos.getRecords().forEach(item -> {
- item.setItems(mallOrderItemMapper.selectListByOrderId(item.getId()));
- });
- }
+// if (CollUtil.isNotEmpty(mallOrderInfos.getRecords())) {
+// mallOrderInfos.getRecords().forEach(item -> {
+// item.setItems(mallOrderItemMapper.selectListByOrderId(item.getId()));
+// });
+// }
return MallOrderInfoConversion.INSTANCE.entitysToVos(mallOrderInfos.getRecords());
}
--
Gitblit v1.9.1