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