From 64f7ccb9ef8b5a0618e65cddc14b981c1f108ba3 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期一, 04 十一月 2024 09:01:59 +0800 Subject: [PATCH] 代码提交 --- xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/service/impl/AppUserServiceImpl.java | 44 ++++++++++++++++++++++++++++++++++---------- 1 files changed, 34 insertions(+), 10 deletions(-) diff --git a/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/service/impl/AppUserServiceImpl.java b/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/service/impl/AppUserServiceImpl.java index 9562d59..90bf7d5 100644 --- a/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/service/impl/AppUserServiceImpl.java +++ b/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/service/impl/AppUserServiceImpl.java @@ -3,6 +3,7 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.crypto.SecureUtil; import com.alibaba.nacos.common.utils.StringUtils; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xinquan.common.core.constant.Constants; @@ -15,14 +16,12 @@ 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.security.service.TokenService; import com.xinquan.common.security.utils.SecurityUtils; import com.xinquan.system.api.RemoteUserService; import com.xinquan.system.api.domain.SysUser; import com.xinquan.system.api.feignClient.SysUserClient; -import com.xinquan.system.api.model.AppCaptchaBody; -import com.xinquan.system.api.model.AppLoginUser; -import com.xinquan.system.api.model.AppVerifyCellPhoneBody; -import com.xinquan.system.api.model.AppWXLoginBody; +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; @@ -42,6 +41,7 @@ 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; @@ -143,7 +143,8 @@ String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000)); appUser.setCode("YH"+format+randomCode); appUser.setWxOpenId(body.getWxOpenId()); - appUser.setNickname(body.getNickname()); + String nickname = "用户" + IdUtil.fastSimpleUUID().substring(0, 6); + sysUser.setNickName(nickname); appUser.setAvatar(body.getHeadImgUrl()); appUser.setGender(body.getSex()); appUser.setBalance(BigDecimal.ZERO); @@ -195,6 +196,7 @@ } SysUser sysUserRes = registerResult.getData(); appUser = new AppUser(); + appUser.setAppleId(appleId); appUser.setUserId(sysUserRes.getUserId()); appUser.setNickname(nickname); appUser.setAvatar("qwer"); // TODO 待完善默认头像 @@ -321,6 +323,19 @@ // 如果存在 更新wxOpenId 或appleId if (baseOptionalAppUser.isPresent()) { appUser = baseOptionalAppUser.get(); + switch (body.getLoginType()){ + case 1: + this.remove(new LambdaQueryWrapper<AppUser>() + .eq(AppUser::getWxOpenId,body.getWxOrAppleId()) + .ne(AppUser::getId,appUser.getId())); + break; + case 2: + this.remove(new LambdaQueryWrapper<AppUser>() + .eq(AppUser::getAppleId,body.getWxOrAppleId()) + .ne(AppUser::getId,appUser.getId())); + break; + } + if (loginType.equals(1)) { appUser.setWxOpenId(wxOrAppleId); } else { @@ -335,7 +350,6 @@ } } else { Optional<AppUser> userOptional = getAppUserByThirdId(loginType, wxOrAppleId); - if (loginType.equals(1)) { // 微信登录 handleUserNotPresent(userOptional, "该用户不存在,请重新进行微信授权登录"); @@ -399,8 +413,8 @@ @Override public void saveUserAnswers(UserAnswerDTO dto) { // 获取当前登录用户 - Long userId = SecurityUtils.getUserId(); - AppUser appUser = this.getUserBySysUserId(userId); + Long userId = tokenService.getLoginUser().getUserid(); + AppUser appUser = this.getById(userId); List<AppUserQuestion> appUserQuestionList = BeanUtils.copyList( dto.getUserAnswerOneDTOList(), AppUserQuestion.class); // 查询用户已填写的答案 @@ -410,12 +424,17 @@ if (CollUtils.isNotEmpty(baseAppUserQuestionList)) { // 根据类型更新答案 for (AppUserQuestion appUserQuestion : appUserQuestionList) { + Optional<AppUserQuestion> baseAppUserQuestionOptional = baseAppUserQuestionList.stream() .filter(baseAppUserQuestion -> baseAppUserQuestion.getType() .equals(appUserQuestion.getType())).findFirst(); baseAppUserQuestionOptional.ifPresent( userQuestion -> appUserQuestion.setId(userQuestion.getId())); + appUserQuestion.setAppUserId(userId); } + } + for (AppUserQuestion appUserQuestion : appUserQuestionList) { + appUserQuestion.setAppUserId(userId); } appUserQuestionService.saveOrUpdateBatch(appUserQuestionList); // 筛选答案为是和偶尔有的问题,为用户设置对应的标签 @@ -426,7 +445,7 @@ // 使用 StringBuilder 提高字符串拼接效率 if (CollUtils.isNotEmpty(appUserQuestionYesList)) { List<Long> tagIdList = appUserQuestionYesList.stream() - .map(appUserQuestion -> AnswerTagEnum.getEnumByCode(appUserQuestion.getType()) + .map(appUserQuestion -> Objects.requireNonNull(AnswerTagEnum.getEnumByCode(appUserQuestion.getType())) .getTagId()).collect(Collectors.toList()); if (CollUtils.isNotEmpty(tagIdList)) { sb.append(CollUtils.join(tagIdList, ",")); @@ -476,6 +495,8 @@ this.updateById(appUser); } + @Autowired + private TokenService tokenService; /** * 获取当前登录用户信息 * @@ -484,7 +505,10 @@ */ @Override public AppUserVO getCurrentUser() { - AppUser appUser = this.getById(SecurityUtils.getUserId()); + LoginUser loginUser = tokenService.getLoginUser(); + + Long userId = loginUser.getUserid(); + AppUser appUser = this.getById(userId); return BeanUtils.copyBean(appUser, AppUserVO.class); } } -- Gitblit v1.7.1