From a8d2cb07f6440dc54dc4005b0b06d5a47cb1517d Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期一, 16 十二月 2024 13:34:03 +0800
Subject: [PATCH] 12.16

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/VipSettingServiceImpl.java |   91 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 91 insertions(+), 0 deletions(-)

diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/VipSettingServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/VipSettingServiceImpl.java
index c770692..cd509c3 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/VipSettingServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/VipSettingServiceImpl.java
@@ -2,14 +2,22 @@
 
 import com.ruoyi.account.api.feignClient.AppUserClient;
 import com.ruoyi.account.api.model.AppUser;
+import com.ruoyi.account.api.model.UserPoint;
+import com.ruoyi.account.service.AppUserService;
+import com.ruoyi.account.service.UserPointService;
 import com.ruoyi.account.service.VipSettingService;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.other.api.domain.VipSetting;
 import com.ruoyi.other.api.feignClient.RemoteVipSettingClient;
+import com.ruoyi.other.api.feignClient.VipSettingClient;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
 
 @Service
 public class VipSettingServiceImpl implements VipSettingService {
@@ -18,6 +26,14 @@
     private RemoteVipSettingClient remoteVipSettingClient;
     @Resource
     private AppUserClient appUserClient;
+    @Resource
+    private AppUserService appUserService;
+    @Resource
+    private VipSettingClient vipSettingClient;
+    @Resource
+    private UserPointService userPointService;
+    @Autowired
+    private PointSettingServiceImpl pointSettingServiceImpl;
 
 
     @Override
@@ -37,4 +53,79 @@
         }
         return getVipSettingById(appUser.getVipId());
     }
+
+    @Override
+    public void downUsers() {
+                //查出可能需要降级的人员
+        List<Integer> vipIds =  new ArrayList<>();
+        vipIds.add(5);
+        vipIds.add(6);
+        vipIds.add(7);
+        List<AppUser> list = appUserService.lambdaQuery().in(AppUser::getVipId, vipIds).list();
+        VipSetting vipSetting5 = vipSettingClient.getVipSetting(5).getData();
+        VipSetting vipSetting6 = vipSettingClient.getVipSetting(6).getData();
+        VipSetting vipSetting7 = vipSettingClient.getVipSetting(7).getData();
+        LocalDate now = LocalDate.now();
+        //循环判断是否要展示
+        if (list.size()>0){
+            for (AppUser appUser : list){
+                boolean danger = false;
+                if (appUser.getVipId()==5){
+                    extracted(vipSetting5, now,danger);
+                }
+                if (appUser.getVipId()==6){
+                    extracted(vipSetting6, now,danger);
+                }
+                if (appUser.getVipId()==7){
+                    extracted(vipSetting7, now,danger);
+                }
+                if (danger){
+                    appUser.setIsDanger(1);
+                }else {
+                    appUser.setIsDanger(0);
+                }
+            }
+            appUserService.updateBatchById(list);
+        }
+    }
+
+    private void extracted(VipSetting vipSetting5, LocalDate now,boolean danger) {
+
+        if (vipSetting5.getKeepBuyPoint()!=null){
+            //如果消费不为空,查找对应天数的消费积分
+            List<UserPoint> list1 = userPointService.lambdaQuery().eq(UserPoint::getType,1).ge(UserPoint::getCreateTime, now.minusDays(vipSetting5.getKeepBuyDay())).list();
+            //如果消费积分小于保级积分,设置用户降级标志并将降级信息
+            Integer point = 0;
+            for (UserPoint userPoint : list1) {
+                point = point+userPoint.getVariablePoint();
+            }
+            if (point<= vipSetting5.getKeepBuyPoint()){
+                danger = true;
+            }
+        }
+        if (vipSetting5.getKeepSharePoint()!=null){
+            //如果消费不为空,查找对应天数的消费积分
+            List<UserPoint> list1 = userPointService.lambdaQuery().eq(UserPoint::getType,2).ge(UserPoint::getCreateTime, now.minusDays(vipSetting5.getKeepBuyDay())).list();
+            //如果消费积分小于保级积分,设置用户降级标志并将降级信息
+            Integer point = 0;
+            for (UserPoint userPoint : list1) {
+                point = point+userPoint.getVariablePoint();
+            }
+            if (point<= vipSetting5.getKeepBuyPoint()){
+                danger = true;
+            }
+        }
+        if (vipSetting5.getKeepShopPoint()!=null){
+            //如果消费不为空,查找对应天数的消费积分
+            List<UserPoint> list1 = userPointService.lambdaQuery().eq(UserPoint::getType,5).ge(UserPoint::getCreateTime, now.minusDays(vipSetting5.getKeepBuyDay())).list();
+            //如果消费积分小于保级积分,设置用户降级标志并将降级信息
+            Integer point = 0;
+            for (UserPoint userPoint : list1) {
+                point = point+userPoint.getVariablePoint();
+            }
+            if (point<= vipSetting5.getKeepBuyPoint()){
+                danger = true;
+            }
+        }
+    }
 }

--
Gitblit v1.7.1