luofl
2025-03-13 4f97bdbaadcdc19df9dfb0971b930d799c4aeddc
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
@@ -22,18 +22,14 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.redis.annotation.DistributedLock;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.order.feignClient.OrderClient;
import com.ruoyi.other.api.domain.*;
import com.ruoyi.other.api.feignClient.*;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.feignClient.SysUserClient;
import com.ruoyi.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.apache.logging.log4j.core.util.UuidUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
@@ -410,6 +406,7 @@
               }
               userCoupon.setStartTime(start);
               userCoupon.setEndTime(end);
               userCoupon.setCouponInfo(JSON.toJSONString(couponInfo));
               userCouponService.save(userCoupon);
            }
         }
@@ -617,6 +614,130 @@
         }
      }
   }
   public void vipConsumption(Long id){
      System.out.println("1111111111111111111111");
      AppUser appUser = this.getById(id);
      System.out.println("消费积分:"+ appUser.getShopPoint());
      System.out.println("返佣积分:"+ appUser.getSharePoint() );
      Integer vipId = appUser.getVipId();
      //钻石会员
      VipSetting vipSetting3 = vipSettingClient.getVipSetting(3).getData();
      //消费积分满足升级
      if(1 == vipSetting3.getVipLevelUpShopRole() && appUser.getShopPoint() >= vipSetting3.getVipLevelUpShop() && appUser.getVipId() < 3){
         appUser.setVipId(3);
         this.updateById(appUser);
         //添加等级变化记录
         UserChangeLog userChangeLog = new UserChangeLog();
         userChangeLog.setDelFlag(0);
         userChangeLog.setCreateTime(LocalDateTime.now());
         userChangeLog.setAppUserId(appUser.getId());
         userChangeLog.setBeforeVipId(vipId);
         userChangeLog.setAfterVipId(appUser.getVipId());
         userChangeLog.setChangeType(1);
         userChangeLogService.save(userChangeLog);
         return;
      }
      //返佣积分满足升级
      if(1 == vipSetting3.getVipLevelUpShareRole() && appUser.getSharePoint() >= vipSetting3.getVipLevelUpShare() && appUser.getVipId() < 3){
         appUser.setVipId(3);
         this.updateById(appUser);
         //添加等级变化记录
         UserChangeLog userChangeLog = new UserChangeLog();
         userChangeLog.setDelFlag(0);
         userChangeLog.setCreateTime(LocalDateTime.now());
         userChangeLog.setAppUserId(appUser.getId());
         userChangeLog.setBeforeVipId(vipId);
         userChangeLog.setAfterVipId(appUser.getVipId());
         userChangeLog.setChangeType(1);
         userChangeLogService.save(userChangeLog);
         return;
      }
      //下级人数满足升级
      Integer vipLevelUpNumRole = vipSetting3.getVipLevelUpNumRole();
      Integer vipDirectNum = vipSetting3.getVipDirectNum();
      Integer vipTeamNum = vipSetting3.getVipTeamNum();
      if(1 == vipLevelUpNumRole && appUser.getVipId() < 3){
         //查询直推用户达到X人或者团队人数达到X人后,可升级
         //直推用户数
         long count = this.count(new LambdaQueryWrapper<AppUser>().eq(AppUser::getDelFlag, 0).eq(AppUser::getStatus, 1).eq(AppUser::getInviteUserId, id));
         //团队用户数
         List<AppUser> subordinate = getSubordinate(id);
         if(vipDirectNum <= count || vipTeamNum <= subordinate.size()){
            appUser.setVipId(3);
            this.updateById(appUser);
            //添加等级变化记录
            UserChangeLog userChangeLog = new UserChangeLog();
            userChangeLog.setDelFlag(0);
            userChangeLog.setCreateTime(LocalDateTime.now());
            userChangeLog.setAppUserId(appUser.getId());
            userChangeLog.setBeforeVipId(vipId);
            userChangeLog.setAfterVipId(appUser.getVipId());
            userChangeLog.setChangeType(1);
            userChangeLogService.save(userChangeLog);
            return;
         }
      }
      //黄金会员
      VipSetting vipSetting2 = vipSettingClient.getVipSetting(2).getData();
      //消费积分满足升级
      if(1 == vipSetting2.getVipLevelUpShopRole() && appUser.getShopPoint() >= vipSetting2.getVipLevelUpShop() && appUser.getVipId() < 2){
         appUser.setVipId(2);
         this.updateById(appUser);
         //添加等级变化记录
         UserChangeLog userChangeLog = new UserChangeLog();
         userChangeLog.setDelFlag(0);
         userChangeLog.setCreateTime(LocalDateTime.now());
         userChangeLog.setAppUserId(appUser.getId());
         userChangeLog.setBeforeVipId(vipId);
         userChangeLog.setAfterVipId(appUser.getVipId());
         userChangeLog.setChangeType(1);
         userChangeLogService.save(userChangeLog);
         return;
      }
      //返佣积分满足升级
      if(1 == vipSetting2.getVipLevelUpShareRole() && appUser.getSharePoint() >= vipSetting2.getVipLevelUpShare() && appUser.getVipId() < 2){
         appUser.setVipId(2);
         this.updateById(appUser);
         //添加等级变化记录
         UserChangeLog userChangeLog = new UserChangeLog();
         userChangeLog.setDelFlag(0);
         userChangeLog.setCreateTime(LocalDateTime.now());
         userChangeLog.setAppUserId(appUser.getId());
         userChangeLog.setBeforeVipId(vipId);
         userChangeLog.setAfterVipId(appUser.getVipId());
         userChangeLog.setChangeType(1);
         userChangeLogService.save(userChangeLog);
         return;
      }
      //下级人数满足升级
      vipLevelUpNumRole = vipSetting2.getVipLevelUpNumRole();
      vipDirectNum = vipSetting2.getVipDirectNum();
      vipTeamNum = vipSetting2.getVipTeamNum();
      if(1 == vipLevelUpNumRole && appUser.getVipId() < 2){
         //查询直推用户达到X人或者团队人数达到X人后,可升级
         //直推用户数
         long count = this.count(new LambdaQueryWrapper<AppUser>().eq(AppUser::getDelFlag, 0).eq(AppUser::getStatus, 1).eq(AppUser::getInviteUserId, id));
         //团队用户数
         List<AppUser> subordinate = getSubordinate(id);
         if(vipDirectNum <= count || vipTeamNum <= subordinate.size()){
            appUser.setVipId(2);
            this.updateById(appUser);
            //添加等级变化记录
            UserChangeLog userChangeLog = new UserChangeLog();
            userChangeLog.setDelFlag(0);
            userChangeLog.setCreateTime(LocalDateTime.now());
            userChangeLog.setAppUserId(appUser.getId());
            userChangeLog.setBeforeVipId(vipId);
            userChangeLog.setAfterVipId(appUser.getVipId());
            userChangeLog.setChangeType(1);
            userChangeLogService.save(userChangeLog);
         }
      }
   }
   
   /**
    * 处理会员降级