From 759b602542a22cbb93202e233c42ac4a466b586e Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Fri, 20 Dec 2024 10:54:51 +0800
Subject: [PATCH] feat(mall): 更新会员等级和积分

---
 src/main/java/cc/mrbird/febs/mall/service/impl/RunVipServiceImpl.java |   19 ++++++++++++++-----
 1 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/RunVipServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/RunVipServiceImpl.java
index 2b15086..87fe1bf 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/RunVipServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/RunVipServiceImpl.java
@@ -61,7 +61,7 @@
         //获取大于当前用户等级序号的所有的VIP等级
         LambdaQueryWrapper<RunVip> runVipLambdaQueryWrapper = new LambdaQueryWrapper<>();
         runVipLambdaQueryWrapper.eq(RunVip::getState, YesOrNoEnum.YES.getValue());
-        runVipLambdaQueryWrapper.gt(RunVip::getOrderNumber, runVip.getOrderNumber());
+        runVipLambdaQueryWrapper.ge(RunVip::getOrderNumber, runVip.getOrderNumber());
         List<RunVip> runVips = this.baseMapper.selectList(runVipLambdaQueryWrapper);
         apiRunVipVos = RunVipConversion.INSTANCE.entityToVos(runVips);
 
@@ -304,10 +304,19 @@
         );
         if(CollUtil.isNotEmpty(mallMoneyFlows)){
             BigDecimal reduce = mallMoneyFlows.stream().map(MallMoneyFlow::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-            if(reduce.intValue() > realScore){
-                apiRunHealthVo.setScoreUsed(reduce.intValue() - realScore);
-                apiRunHealthVo.setScoreTotal(reduce.intValue());
-            }
+            apiRunHealthVo.setScoreTotal(reduce.intValue());
+        }
+        List<MallMoneyFlow> mallMoneyFlowScoreOuts = mallMoneyFlowMapper.selectList(
+                new LambdaQueryWrapper<MallMoneyFlow>()
+                        .eq(MallMoneyFlow::getMemberId, memberId)
+                        .eq(MallMoneyFlow::getFlowType, FlowTypeEnum.SCORE.getValue())
+                        .eq(MallMoneyFlow::getType, RunVipMoneyFlowTypeEnum.SCORE_OUT_BALANCE.getValue())
+                        .ge(MallMoneyFlow::getCreatedTime, DateUtil.beginOfDay(DateUtil.date()))
+                        .le(MallMoneyFlow::getCreatedTime, DateUtil.endOfDay(DateUtil.date()))
+        );
+        if(CollUtil.isNotEmpty(mallMoneyFlowScoreOuts)){
+            BigDecimal reduce = mallMoneyFlowScoreOuts.stream().map(MallMoneyFlow::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add).abs();
+            apiRunHealthVo.setScoreUsed(reduce.intValue());
         }
         return apiRunHealthVo;
     }

--
Gitblit v1.9.1