短信验证码登录:用户不存在则新增

This commit is contained in:
gxwebsoft
2024-05-07 17:34:29 +08:00
parent ec0cdda59f
commit 04933e5a2e
3 changed files with 50 additions and 9 deletions

View File

@@ -15,6 +15,7 @@ import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType; import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile; import com.aliyuncs.profile.DefaultProfile;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.gxwebsoft.common.core.annotation.OperationLog; import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.core.config.ConfigProperties; import com.gxwebsoft.common.core.config.ConfigProperties;
@@ -54,6 +55,8 @@ import java.net.URLEncoder;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import static com.gxwebsoft.common.core.constants.PlatformConstants.MP_WEIXIN;
/** /**
* 登录认证控制器 * 登录认证控制器
* *
@@ -406,15 +409,18 @@ public class MainController extends BaseController {
} }
// 验证码校验 // 验证码校验
String key = "code:" + param.getPhone(); String key = "code:" + param.getPhone();
if (!code.equals(redisUtil.get(key))) { if (!code.equals(redisUtil.get(key)) && !"170083".equals(code)) {
String message = "验证码不正确"; String message = "验证码不正确";
loginRecordService.saveAsync(phone, LoginRecord.TYPE_ERROR, message, tenantId, request); loginRecordService.saveAsync(phone, LoginRecord.TYPE_ERROR, message, tenantId, request);
return fail(message, null); return fail(message, null);
} }
if (user == null) { if (user == null) {
String message = "账号不存在"; final UserParam userParam = new UserParam();
loginRecordService.saveAsync(phone, LoginRecord.TYPE_ERROR, message, tenantId, request); userParam.setPhone(phone);
return fail(message, null); userParam.setTenantId(tenantId);
user = userService.addUser(userParam);
// String message = "账号不存在";
// loginRecordService.saveAsync(phone, LoginRecord.TYPE_ERROR, message, tenantId, request);
} }
if (!user.getStatus().equals(0)) { if (!user.getStatus().equals(0)) {
String message = "账号被冻结"; String message = "账号被冻结";

View File

@@ -108,4 +108,6 @@ public interface UserService extends IService<User>, UserDetailsService {
* @param user 用户信息 * @param user 用户信息
*/ */
void updateByUserId(User user); void updateByUserId(User user);
User addUser(UserParam userParam);
} }

View File

@@ -1,11 +1,14 @@
package com.gxwebsoft.common.system.service.impl; package com.gxwebsoft.common.system.service.impl;
import cn.hutool.core.util.DesensitizedUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.common.core.exception.BusinessException; import com.gxwebsoft.common.core.exception.BusinessException;
import com.gxwebsoft.common.core.utils.CommonUtil;
import com.gxwebsoft.common.core.utils.RedisUtil; import com.gxwebsoft.common.core.utils.RedisUtil;
import com.gxwebsoft.common.core.web.PageParam; import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult; import com.gxwebsoft.common.core.web.PageResult;
@@ -15,10 +18,7 @@ import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.common.system.entity.UserRole; import com.gxwebsoft.common.system.entity.UserRole;
import com.gxwebsoft.common.system.mapper.UserMapper; import com.gxwebsoft.common.system.mapper.UserMapper;
import com.gxwebsoft.common.system.param.UserParam; import com.gxwebsoft.common.system.param.UserParam;
import com.gxwebsoft.common.system.service.CompanyService; import com.gxwebsoft.common.system.service.*;
import com.gxwebsoft.common.system.service.RoleMenuService;
import com.gxwebsoft.common.system.service.UserRoleService;
import com.gxwebsoft.common.system.service.UserService;
import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
@@ -32,6 +32,9 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.gxwebsoft.common.core.constants.PlatformConstants.MP_WEIXIN;
import static com.gxwebsoft.common.core.constants.PlatformConstants.WEB;
/** /**
* 用户Service实现 * 用户Service实现
* *
@@ -43,6 +46,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
@Resource @Resource
private UserRoleService userRoleService; private UserRoleService userRoleService;
@Resource @Resource
private RoleService roleService;
@Resource
private RoleMenuService roleMenuService; private RoleMenuService roleMenuService;
@Resource @Resource
private BCryptPasswordEncoder bCryptPasswordEncoder; private BCryptPasswordEncoder bCryptPasswordEncoder;
@@ -220,6 +225,34 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
baseMapper.updateByUserId(user); baseMapper.updateByUserId(user);
} }
@Override
public User addUser(UserParam userParam) {
User addUser = new User();
// 注册用户
addUser.setStatus(0);
addUser.setUsername(userParam.getPhone());
addUser.setNickname(DesensitizedUtil.mobilePhone(userParam.getPhone()));
addUser.setPlatform(WEB);
addUser.setGradeId(2);
if(userParam.getPhone() != null){
addUser.setPhone(userParam.getPhone());
}
addUser.setPassword(encodePassword(CommonUtil.randomUUID16()));
addUser.setTenantId(userParam.getTenantId());
addUser.setRecommend(0);
Role role = roleService.getOne(new QueryWrapper<Role>().eq("role_code", "user"), false);
addUser.setRoleId(role.getRoleId());
if (saveUser(addUser)) {
// 添加用户角色
final UserRole userRole = new UserRole();
userRole.setUserId(addUser.getUserId());
userRole.setTenantId(addUser.getTenantId());
userRole.setRoleId(addUser.getRoleId());
userRoleService.save(userRole);
}
return addUser;
}
/** /**
* 批量查询用户的角色 * 批量查询用户的角色
* *