From c5857a50d688d0c42b3893854e6f30dc45e61ca9 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 11 十一月 2024 22:32:12 +0800
Subject: [PATCH] 代码提交
---
xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/service/impl/AppUserServiceImpl.java | 612 +++++++++++++++++++++++++++++++++++++------------------
1 files changed, 410 insertions(+), 202 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 90bf7d5..b80cdde 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
@@ -2,8 +2,8 @@
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.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;
@@ -44,6 +44,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.StringUtils;
/**
* <p>
@@ -70,20 +71,43 @@
*/
@Override
public Optional<AppUser> getUserByCondition(AppUserDTO dto) {
+ String device = dto.getDevice();
+ if (StringUtils.hasLength(dto.getDevice())) {
+ Optional<AppUser> one = this.lambdaQuery()
+ .eq(AppUser::getDevice, device)
+ .isNull(AppUser::getCellPhone).oneOpt();
+ if (one.isPresent()) {
+ initUserTree(one.get().getId());
+ this.updateById(one.get());
+ return one;
+ } else {
+
+ return this.lambdaQuery()
+ .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,
+ dto.getCellPhone())
+ .eq(com.alibaba.nacos.common.utils.StringUtils.isNotBlank(dto.getWxOpenId()), AppUser::getWxOpenId,
+ dto.getWxOpenId())
+ .ne(AppUser::getUserStatus, AppUserStatusEnum.LOGOUT.getCode()).oneOpt();
+ }
+ }
return this.lambdaQuery()
.eq(Objects.nonNull(dto.getId()), AppUser::getId, dto.getId())
- .eq(StringUtils.isNotBlank(dto.getAppleId()), AppUser::getAppleId, dto.getAppleId())
- .eq(StringUtils.isNotBlank(dto.getCellPhone()), AppUser::getCellPhone,
+ .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,
dto.getCellPhone())
- .eq(StringUtils.isNotBlank(dto.getWxOpenId()), AppUser::getWxOpenId,
+ .eq(com.alibaba.nacos.common.utils.StringUtils.isNotBlank(dto.getWxOpenId()), AppUser::getWxOpenId,
dto.getWxOpenId())
.ne(AppUser::getUserStatus, AppUserStatusEnum.LOGOUT.getCode()).oneOpt();
}
-
- public static void main(String[] args) {
- String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000));
- System.err.println(randomCode);
+ @Override
+ public Optional<AppUser> getUserByCondition1(AppUserDTO dto) {
+ return this.lambdaQuery()
+ .eq(AppUser::getCellPhone,dto.getCellPhone())
+ .ne(AppUser::getUserStatus,3).oneOpt();
}
+
/**
* app用户注册
* @param appUserDTO
@@ -98,6 +122,7 @@
String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000));
appUser.setCode("YH"+format+randomCode);
this.save(appUser);
+ initUserTree(appUser.getId());
return appUser;
}
@@ -112,8 +137,8 @@
AppLoginUser appLoginUser = new AppLoginUser();
Optional<AppUser> optionalAppUser = this.getUserByCondition(
AppUserDTO.builder().wxOpenId(body.getWxOpenId()).build());
- AppUser appUser;
- SysUser sysUser;
+ AppUser appUser = new AppUser();
+ SysUser sysUser = new SysUser();
// 存在账户,查询关联系统用户
if (optionalAppUser.isPresent()) {
appUser = optionalAppUser.get();
@@ -121,175 +146,294 @@
throw new ServiceException("账号已被冻结");
}
sysUser = sysUserClient.getSysUser(appUser.getUserId()).getData();
- } else {
- // 不存在账户,创建账户
- // 注册用户信息
- sysUser = new SysUser();
- sysUser.setNickName(body.getNickname());
- sysUser.setAvatar(body.getHeadImgUrl());
- sysUser.setUserName(body.getNickname());
- 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.setUserId(sysUserRes.getUserId());
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
- String format = simpleDateFormat.format(new Date());
- // 生成四位随机数字
- String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000));
- appUser.setCode("YH"+format+randomCode);
- appUser.setWxOpenId(body.getWxOpenId());
- String nickname = "用户" + IdUtil.fastSimpleUUID().substring(0, 6);
- sysUser.setNickName(nickname);
appUser.setAvatar(body.getHeadImgUrl());
- appUser.setGender(body.getSex());
- 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());
- this.save(appUser);
- // 初始化用户树苗
- initUserTree(appUser.getId());
+ appUser.setWxName(body.getNickname());
+ if (appUser.getCellPhone()!=null){
+ appLoginUser.setBindStatus(DisabledEnum.NO.getCode());
+ appLoginUser.setCellPhone(appUser.getCellPhone());
+ }
+ } else {
+ if (org.springframework.util.StringUtils.hasLength(body.getDevice())){
+ AppUser one = this.getOne(new LambdaQueryWrapper<>(AppUser.class)
+ .eq(AppUser::getDevice, body.getDevice())
+ .isNull(AppUser::getCellPhone));
+ if (one!=null){
+ initUserTree(appUser.getId());
+ appUser = one;
+ }else{
+ // 不存在账户,创建账户
+ // 注册用户信息
+ sysUser = new SysUser();
+ sysUser.setNickName(body.getNickname());
+ sysUser.setAvatar(body.getHeadImgUrl());
+ sysUser.setUserName(body.getNickname());
+ 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.setUserId(sysUserRes.getUserId());
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
+ String format = simpleDateFormat.format(new Date());
+ // 生成四位随机数字
+ String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000));
+ appUser.setCode("YH"+format+randomCode);
+ appUser.setWxOpenId(body.getWxOpenId());
+ String nickname = "用户" + IdUtil.fastSimpleUUID().substring(0, 6);
+ sysUser.setNickName(nickname);
+ appUser.setNickname(nickname);
+ appUser.setWxName(body.getNickname());
+ appUser.setAvatar(body.getHeadImgUrl());
+ appUser.setGender(3);
+ 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());
+ appLoginUser.setBindStatus(DisabledEnum.YES.getCode());
+ this.save(appUser);
+ // 初始化用户树苗
+ initUserTree(appUser.getId());
+ }
+ }else{
+ // 不存在账户,创建账户
+ // 注册用户信息
+ sysUser = new SysUser();
+ sysUser.setNickName(body.getNickname());
+ sysUser.setAvatar(body.getHeadImgUrl());
+ sysUser.setUserName(body.getNickname());
+ 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.setUserId(sysUserRes.getUserId());
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
+ String format = simpleDateFormat.format(new Date());
+ // 生成四位随机数字
+ String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000));
+ appUser.setCode("YH"+format+randomCode);
+ appUser.setWxOpenId(body.getWxOpenId());
+ String nickname = "用户" + IdUtil.fastSimpleUUID().substring(0, 6);
+ sysUser.setNickName(nickname);
+ appUser.setNickname(nickname);
+ appUser.setWxName(body.getNickname());
+ appUser.setAvatar(body.getHeadImgUrl());
+ appUser.setGender(3);
+ 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());
+ appLoginUser.setBindStatus(DisabledEnum.YES.getCode());
+ this.save(appUser);
+ // 初始化用户树苗
+ initUserTree(appUser.getId());
+ }
}
appLoginUser.setUserid(sysUser.getUserId());
appLoginUser.setUsername(appUser.getNickname());
appLoginUser.setAppUserId(appUser.getId());
appLoginUser.setSysUser(sysUser);
- if (Objects.nonNull(sysUser.getUserName())) {
- appLoginUser.setBindStatus(DisabledEnum.YES.getCode());
- appLoginUser.setCellPhone(appUser.getCellPhone());
- }
+ this.updateById(appUser);
+// if (Objects.nonNull(sysUser.getUserName())) {
+// appLoginUser.setCellPhone(appUser.getCellPhone());
+// }
return appLoginUser;
}
@Override
- public AppLoginUser appleLogin(String appleId) {
+ public AppLoginUser appleLogin(String appleId,String device) {
AppLoginUser appLoginUser = new AppLoginUser();
Optional<AppUser> optionalAppUser = this.getUserByCondition(
AppUserDTO.builder().appleId(appleId).build());
- SysUser sysUser;
- AppUser appUser;
+ SysUser sysUser = new SysUser();
+ AppUser appUser = new AppUser();
// 存在账户,查询关联系统用户
if (optionalAppUser.isPresent()) {
appUser = optionalAppUser.get();
- sysUser = sysUserClient.getSysUser(appUser.getUserId()).getData();
- } else {
- // 不存在账户,创建账户
- // 注册用户信息
- sysUser = new SysUser();
- String nickname = "用户" + IdUtil.fastSimpleUUID().substring(0, 6);
- sysUser.setNickName(nickname);
- sysUser.setAvatar("qwer");
- 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());
+ if (appUser.getUserStatus().equals(AppUserStatusEnum.FROZEN.getCode())) {
+ throw new ServiceException("账号已被冻结");
}
- SysUser sysUserRes = registerResult.getData();
- appUser = new AppUser();
- appUser.setAppleId(appleId);
- appUser.setUserId(sysUserRes.getUserId());
- appUser.setNickname(nickname);
- appUser.setAvatar("qwer"); // 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());
- // 生成四位随机数字
- String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000));
- appUser.setCode("YH"+format+randomCode);
- this.save(appUser);
- // 初始化用户树苗
- initUserTree(appUser.getId());
+ sysUser = sysUserClient.getSysUser(appUser.getUserId()).getData();
+ if (appUser.getCellPhone() != null) {
+ appLoginUser.setBindStatus(DisabledEnum.NO.getCode());
+ appLoginUser.setCellPhone(appUser.getCellPhone());
+ }
+ } else {
+ if (org.springframework.util.StringUtils.hasLength(device)) {
+ AppUser one = this.getOne(new LambdaQueryWrapper<>(AppUser.class)
+ .eq(AppUser::getDevice, device)
+ .isNull(AppUser::getCellPhone));
+ if (one != null) {
+ initUserTree(one.getId());
+ appUser.setAppleId(appleId);
+ appUser = one;
+ this.updateById(appUser);
+ } 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());
+ // 生成四位随机数字
+ 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());
- appLoginUser.setUsername(appUser.getNickname());
- appLoginUser.setAppUserId(appUser.getId());
- appLoginUser.setSysUser(sysUser);
- if (Objects.nonNull(sysUser.getUserName())) {
- appLoginUser.setBindStatus(DisabledEnum.YES.getCode());
+ appLoginUser.setUserid(sysUser.getUserId());
+ appLoginUser.setUsername(appUser.getNickname());
+ appLoginUser.setAppUserId(appUser.getId());
+ appLoginUser.setSysUser(sysUser);
+ return appLoginUser;
+ }
+
+ /**
+ * 验证码登录
+ *
+ * @param body
+ * @return
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public AppLoginUser appCaptchaLogin (AppCaptchaBody body){
+ AppLoginUser appLoginUser = new AppLoginUser();
+ Optional<AppUser> optionalAppUser = this.getUserByCondition(
+ AppUserDTO.builder().cellPhone(body.getCellPhone()).build());
+ AppUser appUser = new AppUser();
+ SysUser sysUser = new SysUser();
+ if (optionalAppUser.isPresent()) {
+ appUser = optionalAppUser.get();
+ sysUser = sysUserClient.getSysUser(appUser.getUserId()).getData();
+ } else {
+ if (org.springframework.util.StringUtils.hasLength(body.getDevice())) {
+ AppUser one = this.getOne(new LambdaQueryWrapper<>(AppUser.class)
+ .eq(AppUser::getDevice, body.getDevice())
+ .isNull(AppUser::getCellPhone));
+ if (one != null) {
+ initUserTree(appUser.getId());
+ appUser = one;
+ } 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(body.getCellPhone());
+ sysUser.setUserType("01"); // app用户
+ // 设置默认密码123456
+ sysUser.setPassword(SecurityUtils.encryptPassword(Constants.DEFAULT_PASSWORD));
+
+ 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.setUserId(sysUserRes.getUserId());
+ appUser.setNickname(nickname);
+ appUser.setCellPhone(body.getCellPhone());
+ 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());
+ // 生成四位随机数字
+ String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000));
+ appUser.setCode("YH" + format + randomCode);
+ this.save(appUser);
+ // 初始化用户树苗
+ 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(body.getCellPhone());
+ sysUser.setUserType("01"); // app用户
+ // 设置默认密码123456
+ sysUser.setPassword(SecurityUtils.encryptPassword(Constants.DEFAULT_PASSWORD));
+
+ 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.setUserId(sysUserRes.getUserId());
+ appUser.setNickname(nickname);
+ appUser.setCellPhone(body.getCellPhone());
+ 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());
+ // 生成四位随机数字
+ 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());
+ appLoginUser.setUsername(appUser.getNickname());
+ appLoginUser.setAppUserId(appUser.getId());
+ appLoginUser.setSysUser(sysUser);
appLoginUser.setCellPhone(appUser.getCellPhone());
+ return appLoginUser;
}
- return appLoginUser;
- }
-
- /**
- * 验证码登录
- *
- * @param body
- * @return
- */
- @Override
- @Transactional(rollbackFor = Exception.class)
- public AppLoginUser appCaptchaLogin(AppCaptchaBody body) {
- AppLoginUser appLoginUser = new AppLoginUser();
- Optional<AppUser> optionalAppUser = this.getUserByCondition(
- AppUserDTO.builder().cellPhone(body.getCellPhone()).build());
- AppUser appUser;
- SysUser sysUser;
- if (optionalAppUser.isPresent()) {
- appUser = optionalAppUser.get();
- sysUser = sysUserClient.getSysUser(appUser.getUserId()).getData();
- } else {
- // 注册用户信息
- sysUser = new SysUser();
- String nickname = "用户" + IdUtil.fastSimpleUUID().substring(0, 6);
- sysUser.setNickName(nickname);
- sysUser.setAvatar("qwer");
- sysUser.setUserName(body.getCellPhone());
- sysUser.setUserType("01"); // app用户
- // 设置默认密码123456
- sysUser.setPassword(SecurityUtils.encryptPassword(Constants.DEFAULT_PASSWORD));
-
- 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.setUserId(sysUserRes.getUserId());
- appUser.setNickname(nickname);
- appUser.setCellPhone(body.getCellPhone());
- appUser.setAvatar("qwer"); // 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());
- // 生成四位随机数字
- 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());
- appLoginUser.setUsername(appUser.getNickname());
- appLoginUser.setAppUserId(appUser.getId());
- appLoginUser.setSysUser(sysUser);
- appLoginUser.setCellPhone(appUser.getCellPhone());
- return appLoginUser;
- }
/**
* 初始化用户树苗
@@ -302,6 +446,7 @@
appUserTree.setTreeLevelType(TreeLevelEnum.SEED.getCode());
appUserTree.setGrowthValue(0);
appUserTree.setSowAgain(2);
+ appUserTree.setTime(LocalDateTime.now());
appUserTreeService.save(appUserTree);
}
@@ -323,6 +468,12 @@
// 如果存在 更新wxOpenId 或appleId
if (baseOptionalAppUser.isPresent()) {
appUser = baseOptionalAppUser.get();
+ if (appUser.getWxOpenId() !=null){
+ throw new ServiceException("该手机号已绑定其他微信号,请更换手机号重新绑定");
+ }
+ if (appUser.getAppleId() !=null){
+ throw new ServiceException("该手机号已绑定其他苹果号,请更换手机号重新绑定");
+ }
switch (body.getLoginType()){
case 1:
this.remove(new LambdaQueryWrapper<AppUser>()
@@ -368,10 +519,8 @@
}
sysUser.setUserName(body.getCellPhone());
sysUser.setPassword(
- SecurityUtils.encryptPassword(
- SecureUtil.md5(Constants.DEFAULT_PASSWORD).toUpperCase(
- Locale.ROOT)))
- ; // 默认密码为123456
+ SecurityUtils.encryptPassword(Constants.DEFAULT_PASSWORD))
+ ; // 默认密码为a12345678
sysUser.setPhonenumber(body.getCellPhone());
sysUserClient.updateSysUser(sysUser);
}
@@ -412,49 +561,108 @@
*/
@Override
public void saveUserAnswers(UserAnswerDTO dto) {
- // 获取当前登录用户
- Long userId = tokenService.getLoginUser().getUserid();
- AppUser appUser = this.getById(userId);
- 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) {
+ if (tokenService.getLoginUser()==null){
+ // 获取当前登录用户
+ if (org.springframework.util.StringUtils.hasLength(dto.getDevice())){
+ SysUser sysUser = new SysUser();
+ AppUser appUser = new AppUser();
+ // 注册用户信息
+ 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(dto.getDevice());
+ sysUser.setUserType("01"); // app用户
+ // 设置默认密码123456
+ sysUser.setPassword(SecurityUtils.encryptPassword(Constants.DEFAULT_PASSWORD));
- Optional<AppUserQuestion> baseAppUserQuestionOptional = baseAppUserQuestionList.stream()
- .filter(baseAppUserQuestion -> baseAppUserQuestion.getType()
- .equals(appUserQuestion.getType())).findFirst();
- baseAppUserQuestionOptional.ifPresent(
- userQuestion -> appUserQuestion.setId(userQuestion.getId()));
+ 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.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());
+ // 生成四位随机数字
+ String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000));
+ appUser.setCode("YH"+format+randomCode);
+ this.save(appUser);
+ Long userId = appUser.getId();
+ 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) {
+
+ 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);
+ // 筛选答案为是和偶尔有的问题,为用户设置对应的标签
+ List<AppUserQuestion> appUserQuestionYesList = appUserQuestionList.stream()
+ .filter(appUserQuestion -> appUserQuestion.getAnswer().equals("1")
+ || appUserQuestion.getAnswer().equals("3")).collect(Collectors.toList());
+ appUser.setTagId(dto.getTagIds());
+ this.updateById(appUser);
+ }
+ }else{
+ Long userId = tokenService.getLoginUser().getUserid();
+ AppUser appUser = this.getById(userId);
+ 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) {
+
+ 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);
+ // 筛选答案为是和偶尔有的问题,为用户设置对应的标签
+ List<AppUserQuestion> appUserQuestionYesList = appUserQuestionList.stream()
+ .filter(appUserQuestion -> appUserQuestion.getAnswer().equals("1")
+ || appUserQuestion.getAnswer().equals("3")).collect(Collectors.toList());
+ appUser.setTagId(dto.getTagIds());
+ this.updateById(appUser);
}
- for (AppUserQuestion appUserQuestion : appUserQuestionList) {
- appUserQuestion.setAppUserId(userId);
- }
- appUserQuestionService.saveOrUpdateBatch(appUserQuestionList);
- // 筛选答案为是和偶尔有的问题,为用户设置对应的标签
- List<AppUserQuestion> appUserQuestionYesList = appUserQuestionList.stream()
- .filter(appUserQuestion -> appUserQuestion.getAnswer().equals("1")
- || appUserQuestion.getAnswer().equals("3")).collect(Collectors.toList());
- StringBuilder sb = new StringBuilder();
- // 使用 StringBuilder 提高字符串拼接效率
- if (CollUtils.isNotEmpty(appUserQuestionYesList)) {
- List<Long> tagIdList = appUserQuestionYesList.stream()
- .map(appUserQuestion -> Objects.requireNonNull(AnswerTagEnum.getEnumByCode(appUserQuestion.getType()))
- .getTagId()).collect(Collectors.toList());
- if (CollUtils.isNotEmpty(tagIdList)) {
- sb.append(CollUtils.join(tagIdList, ","));
- }
- }
- sb.append(",");
- sb.append(dto.getTagIds());
- appUser.setTagId(sb.toString());
- this.updateById(appUser);
+
+
}
/**
--
Gitblit v1.7.1