无关风月
2025-03-28 1e12b2abcaa1bdbdb57d3694446337126168bef1
xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/service/impl/AppUserServiceImpl.java
@@ -1,50 +1,53 @@
package com.xinquan.user.service.impl;
import cn.hutool.core.util.IdUtil;
import cn.hutool.crypto.SecureUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xinquan.common.core.constant.Constants;
import com.xinquan.common.core.constant.SecurityConstants;
import com.xinquan.common.core.domain.R;
import com.xinquan.common.core.enums.AnswerTagEnum;
import com.xinquan.common.core.enums.AppUserStatusEnum;
import com.xinquan.common.core.enums.DisabledEnum;
import com.xinquan.common.core.enums.TreeLevelEnum;
import com.xinquan.common.core.exception.ServiceException;
import com.xinquan.common.core.utils.page.BeanUtils;
import com.xinquan.common.core.utils.page.CollUtils;
import com.xinquan.common.core.web.page.PageInfo;
import com.xinquan.common.security.service.TokenService;
import com.xinquan.common.security.utils.SecurityUtils;
import com.xinquan.meditation.api.feign.RemoteMeditationService;
import com.xinquan.system.api.RemoteUserService;
import com.xinquan.system.api.domain.SysUser;
import com.xinquan.system.api.domain.*;
import com.xinquan.system.api.domain.vo.AppUserVO;
import com.xinquan.system.api.domain.vo.InviteRankListVO;
import com.xinquan.system.api.feignClient.SysUserClient;
import com.xinquan.system.api.model.*;
import com.xinquan.system.api.domain.AppUser;
import com.xinquan.user.api.domain.dto.AppUserDTO;
import com.xinquan.system.api.domain.AppUserQuestion;
import com.xinquan.system.api.domain.AppUserTree;
import com.xinquan.system.api.domain.Tag;
import com.xinquan.user.domain.dto.UserAnswerDTO;
import com.xinquan.system.api.domain.vo.AppUserVO;
import com.xinquan.user.domain.vo.TagVO;
import com.xinquan.user.mapper.AppUserMapper;
import com.xinquan.user.service.AppUserQuestionService;
import com.xinquan.user.service.AppUserService;
import com.xinquan.user.service.AppUserTreeService;
import com.xinquan.user.service.TagService;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
/**
 * <p>
@@ -63,6 +66,8 @@
    private final AppUserTreeService appUserTreeService;
    private final AppUserQuestionService appUserQuestionService;
    private final TagService tagService;
    @Resource
    private RemoteMeditationService remoteMeditationService;
    /**
     * 获取用户信息
     *
@@ -74,9 +79,13 @@
        String device = dto.getDevice();
        if (StringUtils.hasLength(dto.getDevice())) {
            Optional<AppUser> one = this.lambdaQuery()
                    .ne(AppUser::getUserStatus,3)
                    .eq(AppUser::getDevice, device)
                    .isNull(AppUser::getWxOpenId)
                    .isNull(AppUser::getAppleId)
                    .isNull(AppUser::getCellPhone).oneOpt();
            Optional<AppUser> appUser = this.lambdaQuery()
                    .ne(AppUser::getUserStatus,3)
                    .eq(Objects.nonNull(dto.getId()), AppUser::getId, dto.getId())
                    .eq(com.alibaba.nacos.common.utils.StringUtils.isNotBlank(dto.getAppleId()), AppUser::getAppleId, dto.getAppleId())
                    .eq(com.alibaba.nacos.common.utils.StringUtils.isNotBlank(dto.getCellPhone()), AppUser::getCellPhone,
@@ -119,6 +128,7 @@
                .ne(AppUser::getUserStatus,3).oneOpt();
    }
    /**
     * app用户注册
     * @param appUserDTO
@@ -137,6 +147,7 @@
                String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000));
                appUser.setCode("YH"+format+randomCode);
                this.save(appUser);
                remoteMeditationService.addHomeBackgroundMusicDefault(appUser.getId());
                initUserTree(appUser.getId());
                return appUser;
            }else{
@@ -157,6 +168,8 @@
        String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000));
        appUser.setCode("YH"+format+randomCode);
        this.save(appUser);
        remoteMeditationService.addHomeBackgroundMusicDefault(appUser.getId());
        initUserTree(appUser.getId());
        return appUser;
    }
@@ -186,6 +199,8 @@
            if (appUser.getCellPhone()!=null){
                appLoginUser.setBindStatus(DisabledEnum.NO.getCode());
                appLoginUser.setCellPhone(appUser.getCellPhone());
            }else{
                appLoginUser.setBindStatus(DisabledEnum.YES.getCode());
            }
        } else {
            if (org.springframework.util.StringUtils.hasLength(body.getDevice())){
@@ -233,6 +248,8 @@
                    appUser.setLevelSettingId(TreeLevelEnum.SEED.getCode());
                    appLoginUser.setBindStatus(DisabledEnum.YES.getCode());
                    this.save(appUser);
                    remoteMeditationService.addHomeBackgroundMusicDefault(appUser.getId());
                    // 初始化用户树苗
                    initUserTree(appUser.getId());
                }
@@ -274,6 +291,8 @@
                appUser.setLevelSettingId(TreeLevelEnum.SEED.getCode());
                appLoginUser.setBindStatus(DisabledEnum.YES.getCode());
                this.save(appUser);
                remoteMeditationService.addHomeBackgroundMusicDefault(appUser.getId());
                // 初始化用户树苗
                initUserTree(appUser.getId());
            }
@@ -352,6 +371,8 @@
                    String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000));
                    appUser.setCode("YH" + format + randomCode);
                    this.save(appUser);
                    remoteMeditationService.addHomeBackgroundMusicDefault(appUser.getId());
                    // 初始化用户树苗
                    initUserTree(appUser.getId());
                }
@@ -391,6 +412,8 @@
                String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000));
                appUser.setCode("YH" + format + randomCode);
                this.save(appUser);
                remoteMeditationService.addHomeBackgroundMusicDefault(appUser.getId());
                // 初始化用户树苗
                initUserTree(appUser.getId());
            }
@@ -462,6 +485,7 @@
                        String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000));
                        appUser.setCode("YH" + format + randomCode);
                        this.save(appUser);
                        remoteMeditationService.addHomeBackgroundMusicDefault(appUser.getId());
                        // 初始化用户树苗
                        initUserTree(appUser.getId());
                    }
@@ -500,6 +524,8 @@
                    String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000));
                    appUser.setCode("YH" + format + randomCode);
                    this.save(appUser);
                    remoteMeditationService.addHomeBackgroundMusicDefault(appUser.getId());
                    // 初始化用户树苗
                    initUserTree(appUser.getId());
                }
@@ -518,6 +544,9 @@
     * @param appUserId 用户id
     */
    private void initUserTree(Long appUserId) {
        if (appUserTreeService.lambdaQuery().eq(AppUserTree::getSowAgain,2).eq(AppUserTree::getAppUserId,appUserId).one()!=null){
            return;
        }
        AppUserTree appUserTree = new AppUserTree();
        appUserTree.setAppUserId(appUserId);
        appUserTree.setTreeLevelType(TreeLevelEnum.SEED.getCode());
@@ -810,4 +839,15 @@
        AppUser appUser = this.getById(userId);
        return BeanUtils.copyBean(appUser, AppUserVO.class);
    }
    @Override
    public List<InviteRankListVO> inviteRankList(Integer pageCurr,Integer pageSize) {
        List<InviteRankListVO> list = this.baseMapper.inviteRankList(pageCurr,pageSize);
        return list;
    }
    @Override
    public List<InviteRankListVO> inviteRankListNolimit() {
        List<InviteRankListVO> list = this.baseMapper.inviteRankListNolimit();
        return list;
    }
}