admin
2025-02-25 30d8e227e8d823b6c38c3b9c90ac2df03b63befe
fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/UserInviteServiceImpl.java
@@ -1,39 +1,114 @@
package com.yeshi.fanli.service.impl.user.invite;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.yeshi.fanli.dto.user.UserInviteLevelEnum;
import com.yeshi.fanli.entity.bus.user.vip.UserVIPInfo;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.service.inter.user.invite.UserInviteService;
import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService;
import com.yeshi.fanli.util.StringUtil;
@Service
public class UserInviteServiceImpl implements UserInviteService {
   @Resource
   private UserInfoExtraService userInfoExtraService;
   @Resource
   private UserVIPInfoService userVIPInfoService;
   @Override
   public UserInviteLevelEnum getUserInviteLevel(Long uid) {
      String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
      if (StringUtil.isNullOrEmpty(inviteCode)) {
         return UserInviteLevelEnum.noActive;
      }
      UserVIPInfo info = userVIPInfoService.selectByUid(uid);
      if (info == null || info.getState() == UserVIPInfo.STATE_INVALID)
         return UserInviteLevelEnum.actived;
      if (info.getState() == UserVIPInfo.STATE_VERIFING)
         return UserInviteLevelEnum.vipApply;
      // TODO 没有判断导师
      return UserInviteLevelEnum.vip;
   }
}
package com.yeshi.fanli.service.impl.user.invite;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.yeshi.fanli.dao.mybatis.user.vip.UserVIPLevelMapper;
import com.yeshi.fanli.dto.user.UserInviteLevelEnum;
import com.yeshi.fanli.dto.vip.UserVIPLevel;
import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
import com.yeshi.fanli.entity.bus.user.vip.UserVIPInfo;
import com.yeshi.fanli.entity.bus.user.vip.UserVIPPreInfo;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.service.inter.user.invite.UserInviteService;
import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService;
import com.yeshi.fanli.service.inter.user.vip.UserVIPPreInfoService;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.user.UserLevelUtil;
@Service
public class UserInviteServiceImpl implements UserInviteService {
   @Resource
   private UserInfoExtraService userInfoExtraService;
   @Resource
   private UserVIPInfoService userVIPInfoService;
   @Resource
   private UserVIPPreInfoService userVIPPreInfoService;
   @Resource
   private UserVIPLevelMapper userVIPLevelMapper;
   @Override
   public UserInviteLevelEnum getUserInviteLevel(Long uid) {
      String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
      if (StringUtil.isNullOrEmpty(inviteCode)) {
         return UserInviteLevelEnum.noActive;
      }
      UserVIPInfo info = userVIPInfoService.selectByUid(uid);
      if (info == null || info.getState() == UserVIPInfo.STATE_INVALID)
         return UserInviteLevelEnum.actived;
      if (info.getState() == UserVIPInfo.STATE_VERIFING)
         return UserInviteLevelEnum.vipApply;
      // TODO 没有判断导师
      return UserInviteLevelEnum.vip;
   }
   @Override
   public UserInviteLevelEnum getUserInviteLevelNew(Long uid) {
      String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
      if (StringUtil.isNullOrEmpty(inviteCode)) {
         return UserInviteLevelEnum.noActive;
      }
      UserVIPPreInfo userVIPPreInfo = userVIPPreInfoService.getLatestProcessInfo(uid);
      if (userVIPPreInfo != null) {
         Integer process = userVIPPreInfo.getProcess();
         UserLevelEnum levelEnum = UserLevelUtil.getByLevel(process);
         levelEnum = UserLevelUtil.getShowLevel(levelEnum);
         if (levelEnum == null || levelEnum == UserLevelEnum.daRen) {
            return UserInviteLevelEnum.actived;
         }
         if (levelEnum == UserLevelEnum.highVIP) {
            UserVIPInfo info = userVIPInfoService.selectByUid(uid);
            if (info != null && info.getState() == UserVIPInfo.STATE_VERIFING) {
               return UserInviteLevelEnum.vipApply;
            }
            return UserInviteLevelEnum.highVIP;
         }
         if (levelEnum == UserLevelEnum.superVIP) {
            return UserInviteLevelEnum.vip;
         }
         if (levelEnum == UserLevelEnum.tearcher) {
            return UserInviteLevelEnum.tearcher;
         }
      }
      return UserInviteLevelEnum.actived;
   }
   @Override
   public boolean verifyVIP(Long uid) {
      String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
      if (StringUtil.isNullOrEmpty(inviteCode)) {
         return false;
      }
      UserVIPInfo info = userVIPInfoService.selectByUid(uid);
      if (info != null && info.getState() == UserVIPInfo.STATE_SUCCESS) {
         return true;
      }
      UserVIPPreInfo userVIPPreInfo = userVIPPreInfoService.getLatestProcessInfo(uid);
      if (userVIPPreInfo != null) {
         if (userVIPPreInfo.getProcess() == UserVIPPreInfo.PROCESS_1) {
            return false;
         }
         return true;
      }
      return false;
   }
   @Override
   public UserVIPLevel getVIPLevelByUid(Long uid) {
      return userVIPLevelMapper.getLevelByUid(uid);
   }
}