From 06dad2095dbe4c465025e5bc6e0220521636e2c2 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 15 十一月 2024 18:20:59 +0800
Subject: [PATCH] 代码提交

---
 xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/service/impl/AppUserServiceImpl.java |   64 ++++++++++++++++++++++++--------
 1 files changed, 48 insertions(+), 16 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 1f52b20..a19e79e 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
@@ -101,6 +101,12 @@
                         dto.getWxOpenId())
                 .ne(AppUser::getUserStatus, AppUserStatusEnum.LOGOUT.getCode()).oneOpt();
     }
+    @Override
+    public Optional<AppUser> getUserByCondition1(AppUserDTO dto) {
+        return this.lambdaQuery()
+                .eq(AppUser::getCellPhone,dto.getCellPhone())
+                .ne(AppUser::getUserStatus,3).oneOpt();
+    }
 
     /**
      * app用户注册
@@ -303,6 +309,7 @@
                     appUser.setLevelSettingId(TreeLevelEnum.SEED.getCode());
                     SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
                     String format = simpleDateFormat.format(new Date());
+                    appLoginUser.setBindStatus(DisabledEnum.YES.getCode());
                     // 生成四位随机数字
                     String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000));
                     appUser.setCode("YH" + format + randomCode);
@@ -310,6 +317,42 @@
                     // 初始化用户树苗
                     initUserTree(appUser.getId());
                 }
+            }else{
+                // 不存在账户,创建账户
+                // 注册用户信息
+                sysUser = new SysUser();
+                String nickname = "用户" + IdUtil.fastSimpleUUID().substring(0, 6);
+                sysUser.setNickName(nickname);
+                sysUser.setAvatar("https://xqgwzh.obs.cn-south-1.myhuaweicloud.com/Logo%E7%A1%AE%E8%AE%A4%E7%89%88%281%29.jpg");
+                sysUser.setUserName(nickname);
+                sysUser.setUserType("01"); // app用户
+                R<SysUser> registerResult = remoteUserService.registerAppUserInfo(sysUser,
+                        SecurityConstants.INNER);
+                if (registerResult.getCode() == Constants.FAIL) {
+                    throw new ServiceException(registerResult.getMsg());
+                }
+                SysUser sysUserRes = registerResult.getData();
+                appUser = new AppUser();
+                appUser.setAppleId(appleId);
+                appUser.setUserId(sysUserRes.getUserId());
+                appUser.setNickname(nickname);
+                appUser.setAvatar("https://xqgwzh.obs.cn-south-1.myhuaweicloud.com/Logo%E7%A1%AE%E8%AE%A4%E7%89%88%281%29.jpg"); // TODO 待完善默认头像
+                appUser.setBalance(BigDecimal.ZERO);
+                appUser.setSanskritFlag(DisabledEnum.NO.getCode());
+                appUser.setBalance(BigDecimal.ZERO);
+                appUser.setIncome(BigDecimal.ZERO);
+                appUser.setTotalEnergyValue(0);
+                appUser.setRegisterTime(LocalDateTime.now());
+                appUser.setLevelSettingId(TreeLevelEnum.SEED.getCode());
+                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
+                String format = simpleDateFormat.format(new Date());
+                appLoginUser.setBindStatus(DisabledEnum.YES.getCode());
+                // 生成四位随机数字
+                String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000));
+                appUser.setCode("YH" + format + randomCode);
+                this.save(appUser);
+                // 初始化用户树苗
+                initUserTree(appUser.getId());
             }
         }
             appLoginUser.setUserid(sysUser.getUserId());
@@ -629,25 +672,14 @@
             List<AppUserQuestion> appUserQuestionList = BeanUtils.copyList(
                     dto.getUserAnswerOneDTOList(), AppUserQuestion.class);
             // 查询用户已填写的答案
-            List<AppUserQuestion> baseAppUserQuestionList = appUserQuestionService.lambdaQuery()
-                    .eq(AppUserQuestion::getAppUserId, appUser.getUserId())
-                    .list();
-            if (CollUtils.isNotEmpty(baseAppUserQuestionList)) {
-                // 根据类型更新答案
-                for (AppUserQuestion appUserQuestion : appUserQuestionList) {
+            // 删除之前答案
+            appUserQuestionService.lambdaUpdate().eq(AppUserQuestion::getAppUserId,userId).remove();
 
-                    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);
+                    appUserQuestion.setAppUserId(userId);
             }
-            appUserQuestionService.saveOrUpdateBatch(appUserQuestionList);
+            appUserQuestionService.saveBatch(appUserQuestionList);
             // 筛选答案为是和偶尔有的问题,为用户设置对应的标签
             List<AppUserQuestion> appUserQuestionYesList = appUserQuestionList.stream()
                     .filter(appUserQuestion -> appUserQuestion.getAnswer().equals("1")

--
Gitblit v1.7.1