luodangjia
2025-02-07 8ffeb751b3a694e8d1cb6a21bec855f6c49b31b6
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
@@ -25,6 +25,7 @@
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;
@@ -111,6 +112,9 @@
   private RedisTemplate redisTemplate;
   @Resource
   private BalancePaymentService balancePaymentService;
   @Resource
   private OrderClient orderClient;
   /**
@@ -282,6 +286,12 @@
      if(null != appUser1 && appUser1.getStatus() == 2){
         return R.fail("手机号已注册,请直接登录!");
      }
      String avatar = registerAccount.getAvatar();
      if (StringUtils.isEmpty(avatar)){
         avatar = "http://qijishenghuiyuan.obs.cn-southwest-2.myhuaweicloud.com/admin/aedfbbb41280471f8d9fa7905298b65f.png";
      }
      //如果手机号已注册,但是没有微信号,则将微信号添加到已有账户上
      if(null != appUser1 && StringUtils.isEmpty(appUser1.getWxOpenid())){
         appUser1.setWxOpenid(openid);
@@ -289,7 +299,7 @@
         appUser = appUser1;
      }else if(null == appUser){
         appUser = new AppUser();
         appUser.setAvatar(registerAccount.getAvatar());
         appUser.setAvatar(avatar);
         appUser.setName(registerAccount.getName());
         appUser.setPhone(registerAccount.getPhone());
         appUser.setWxOpenid(openid);
@@ -865,7 +875,6 @@
   @Override
   public void unbindThePromoter() {
      //注册X天后没有升级成黄金会员则自动解绑推广人
      //解绑推广人
      Set<Long> unbind_promoter = redisTemplate.opsForZSet().rangeByScore("unbind_promoter", 0, LocalDateTime.now().toEpochSecond(ZoneOffset.UTC));
      if(unbind_promoter.size() > 0){
@@ -876,16 +885,21 @@
            updateWrapper.set("invite_user_id", null).set("shop_id", null).eq("id", appUser.getId());
            this.update(updateWrapper);
         }
         redisTemplate.opsForZSet().remove("unbind_promoter", unbind_promoter.toArray());
      }
      //可更换推广人
      Set<Long> replaceable = redisTemplate.opsForZSet().rangeByScore("replaceable", 0, LocalDateTime.now().toEpochSecond(ZoneOffset.UTC));
      if(replaceable.size() > 0){
         List<AppUser> list = this.list(new LambdaQueryWrapper<AppUser>().eq(AppUser::getDelFlag, 0).eq(AppUser::getChangePromoter, 0)
               .eq(AppUser::getStatus, 1).in(AppUser::getId, unbind_promoter));
               .eq(AppUser::getStatus, 1).in(AppUser::getId, replaceable));
         for (AppUser appUser : list) {
            appUser.setChangePromoter(1);
            this.updateById(appUser);
            Long data = orderClient.getOrderCountByAppUserId(appUser.getId()).getData();
            if(data == 0L){
               appUser.setChangePromoter(1);
               this.updateById(appUser);
            }
         }
         redisTemplate.opsForZSet().remove("replaceable", replaceable.toArray());
      }
   }
   
@@ -959,6 +973,8 @@
            Set<Integer> shopIds = shopR.getData();
            if (!CollectionUtils.isEmpty(shopIds)){
               appUser.setShopIds(shopIds);
            }else {
               return new Page<>();
            }
         }
      }
@@ -1039,4 +1055,9 @@
         }
      }
   }
   @Override
   public List<AppUser> getAppUserByPhoneNoFilter(String phone) {
      return this.baseMapper.getAppUserByPhoneNoFilter(phone);
   }
}