From f3c03252d8f8a99013e10c1b898ce9af401e2e10 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 25 Aug 2022 17:40:08 +0800
Subject: [PATCH] 20220822
---
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java | 27 +++++++++++++++++++++++++++
1 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java
index 203a7bd..326cfa4 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java
@@ -4,6 +4,7 @@
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
+import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.mall.dto.*;
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.mapper.*;
@@ -162,6 +163,19 @@
iApiMallMemberWalletService.addBalance(amount, mallOrderInfo.getMemberId());
mallMoneyFlowService.addMoneyFlow(mallOrderRefund.getMemberId(), amount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue());
+
+ //积分池减少对应的数值
+ String redisKey = "scorePool";
+ String scorePoolRedis = redisUtils.getString(redisKey);
+ if(StrUtil.isBlank(scorePoolRedis)){
+ redisUtils.set(redisKey,0,0L);
+ }
+ BigDecimal scorePoolOld = new BigDecimal(redisUtils.getString(redisKey));
+ if(scorePoolOld.compareTo(amount) < 0){
+ redisUtils.set(redisKey,0,0L);
+ }else{
+ redisUtils.set(redisKey,scorePoolOld.subtract(amount).intValue(),0L);
+ }
}
MallOrderRefundOperation mallOrderRefundOperation = new MallOrderRefundOperation();
@@ -199,6 +213,7 @@
return new FebsResponse().success();
}
+ private final RedisUtils redisUtils;
@Override
public FebsResponse refundConfirm(Long id) {
MallOrderRefund mallOrderRefund = mallOrderRefundMapper.selectById(id);
@@ -228,6 +243,18 @@
BigDecimal refundAmount = mallOrderRefund.getAmount();
//用户钱包增加对应的余额
iApiMallMemberWalletService.addBalance(refundAmount, mallOrderInfo.getMemberId());
+ //积分池减少对应的数值
+ String redisKey = "scorePool";
+ String scorePoolRedis = redisUtils.getString(redisKey);
+ if(StrUtil.isBlank(scorePoolRedis)){
+ redisUtils.set(redisKey,0,0L);
+ }
+ BigDecimal scorePoolOld = new BigDecimal(redisUtils.getString(redisKey));
+ if(scorePoolOld.compareTo(refundAmount) < 0){
+ redisUtils.set(redisKey,0,0L);
+ }else{
+ redisUtils.set(redisKey,scorePoolOld.subtract(refundAmount).intValue(),0L);
+ }
//新增一条资金流水
mallMoneyFlowService.addMoneyFlow(mallOrderRefund.getMemberId(), refundAmount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue());
--
Gitblit v1.9.1