luofl
2025-03-14 0449a6264819bce3869f47b9e5bd3729f158db54
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;
@@ -261,12 +257,12 @@
   @Override
   public R<LoginVo> registerAccount(RegisterAccount registerAccount) {
      //校验验证码
      String code = redisService.getCacheObject(registerAccount.getPhone());
      if(!"999999".equals(registerAccount.getCode())){
         if(null == code || !code.equals(registerAccount.getCode())){
            return R.fail("验证码错误");
         }
      }
//      String code = redisService.getCacheObject(registerAccount.getPhone());
//      if(!"999999".equals(registerAccount.getCode())){
//         if(null == code || !code.equals(registerAccount.getCode())){
//            return R.fail("验证码错误");
//         }
//      }
      //使用jscode获取微信openid
      Map<String, Object> map = weChatUtil.code2Session(registerAccount.getJscode());
      Integer errcode = Integer.valueOf(map.get("errcode").toString());
@@ -410,6 +406,7 @@
               }
               userCoupon.setStartTime(start);
               userCoupon.setEndTime(end);
               userCoupon.setCouponInfo(JSON.toJSONString(couponInfo));
               userCouponService.save(userCoupon);
            }
         }
@@ -474,7 +471,7 @@
         
         //获取微信推广二维码
         String fileName = UUID.randomUUID() + ".jpg";
         String getwxacodeunlimit = weChatUtil.getwxacodeunlimit("pages/login/login", "id=" + appUser.getId(), EnvVersion.RELEASE, filePath + fileName);
         String getwxacodeunlimit = weChatUtil.getwxacodeunlimit("pages/start/start", "id=" + appUser.getId(), EnvVersion.RELEASE, filePath + fileName);
         appUser.setQrCode(getwxacodeunlimit);
         this.updateById(appUser);
@@ -492,8 +489,8 @@
      loginVo.setFailureTime(Long.valueOf(tokenApplet.get("expires_in").toString()));
      return R.ok(loginVo);
   }
   /**
    * 会员等级变化
    */
@@ -614,6 +611,130 @@
            userChangeLog.setChangeType(1);
            userChangeLogService.save(userChangeLog);
            return;
         }
      }
   }
   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);
         }
      }
   }
@@ -922,7 +1043,7 @@
         Integer online = jsonObject.getInteger("online");
         online += 10;
         //满足一个小时,开始发放积分,计时归0
         if(time >= 3600000L && 60 <= online){
         if(time >= 60000 && 1 <= online){
            jsonObject.put("time", System.currentTimeMillis());
            jsonObject.put("online", 0);
            redisService.setCacheObject("ONLINE_" + userid, jsonObject, 1L, TimeUnit.HOURS);
@@ -1055,4 +1176,9 @@
         }
      }
   }
   @Override
   public List<AppUser> getAppUserByPhoneNoFilter(String phone) {
      return this.baseMapper.getAppUserByPhoneNoFilter(phone);
   }
}