用户注册新增手机号验证码
parent
c8bbdbd979
commit
dcbe25b7de
|
@ -1,7 +1,6 @@
|
||||||
package com.muyu.auth.service;
|
package com.muyu.auth.service;
|
||||||
|
|
||||||
import cn.hutool.core.util.RandomUtil;
|
import cn.hutool.core.util.RandomUtil;
|
||||||
import com.muyu.auth.form.RegisterBody;
|
|
||||||
import com.muyu.auth.util.TelSmsUtils;
|
import com.muyu.auth.util.TelSmsUtils;
|
||||||
import com.muyu.common.core.constant.CacheConstants;
|
import com.muyu.common.core.constant.CacheConstants;
|
||||||
import com.muyu.common.core.constant.Constants;
|
import com.muyu.common.core.constant.Constants;
|
||||||
|
@ -23,9 +22,7 @@ import org.springframework.data.redis.core.RedisTemplate;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.Random;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -141,6 +138,7 @@ public class SysLoginService {
|
||||||
throw new ServiceException("手机号长度必须在11个字符");
|
throw new ServiceException("手机号长度必须在11个字符");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 注册用户信息
|
// 注册用户信息
|
||||||
SysUser sysUser = new SysUser();
|
SysUser sysUser = new SysUser();
|
||||||
sysUser.setUserName(username);
|
sysUser.setUserName(username);
|
||||||
|
@ -159,40 +157,25 @@ public class SysLoginService {
|
||||||
public Result getPhoneCode(String phonenumber) {
|
public Result getPhoneCode(String phonenumber) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// if (StringUtils.isBlank(phonenumber) || !StringUtils.isMatch(phonenumber, "^\\d{11}$")) {
|
|
||||||
// return Result.error("手机号为空或无效");
|
|
||||||
// }
|
|
||||||
|
|
||||||
// String cachedPhonenumber = redisTemplate.opsForValue().get("phonenumber");
|
|
||||||
//
|
|
||||||
// if (cachedPhonenumber == null || cachedPhonenumber.isEmpty()) {
|
|
||||||
//
|
|
||||||
// return Result.error("手机号为空");
|
|
||||||
// }
|
|
||||||
|
|
||||||
//
|
|
||||||
// if (redisService.hasKey(phonenumber.length()==11?phonenumber:"0"+phonenumber)){
|
|
||||||
// return Result.error("请勿频繁发送验证码");
|
|
||||||
// }
|
|
||||||
|
|
||||||
if (StringUtils.isBlank(phonenumber)){
|
|
||||||
return Result.error("手机号不能为空");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
String s = RandomUtil.randomNumbers(4);
|
String s = RandomUtil.randomNumbers(4);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
redisTemplate.opsForValue().set(phonenumber,phonenumber,1,TimeUnit.DAYS);
|
redisTemplate.opsForValue().set(phonenumber,phonenumber,1,TimeUnit.DAYS);
|
||||||
|
|
||||||
|
Result<List<SysUser>> listResult = remoteUserService.sysUserByPhonenumber(phonenumber);
|
||||||
|
listResult.getData().forEach(sysUser -> {
|
||||||
|
if (sysUser.getPhonenumber().equals(phonenumber)){
|
||||||
|
throw new ServiceException("手机号已存在");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
TelSmsUtils.sendSms(phonenumber, new HashMap<String, String>() {{
|
TelSmsUtils.sendSms(phonenumber, new HashMap<String, String>() {{
|
||||||
put("实训12A项目注册验证码","你正在注册四组服务,您的验证码是:{}"+s);
|
put("实训12A项目注册验证码","你正在注册四组服务,您的验证码是:{}"+s);
|
||||||
}});
|
}});
|
||||||
|
|
||||||
|
|
||||||
return Result.success("发送成功");
|
return Result.success("发送成功",s);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,4 +41,13 @@ public interface RemoteUserService {
|
||||||
*/
|
*/
|
||||||
@PostMapping("/user/register")
|
@PostMapping("/user/register")
|
||||||
public Result<Boolean> registerUserInfo (@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
public Result<Boolean> registerUserInfo (@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户手机号校验
|
||||||
|
* @param phonenumber
|
||||||
|
* @return 查询结果
|
||||||
|
*/
|
||||||
|
@PostMapping("/user/sysUserByPhonenumber/{phonenumber}")
|
||||||
|
public Result<List<SysUser>> sysUserByPhonenumber(@PathVariable("phonenumber") String phonenumber);
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,6 +38,11 @@ public class RemoteUserFallbackFactory implements FallbackFactory<RemoteUserServ
|
||||||
public Result<Boolean> registerUserInfo (SysUser sysUser, String source) {
|
public Result<Boolean> registerUserInfo (SysUser sysUser, String source) {
|
||||||
return Result.error("注册用户失败:" + throwable.getMessage());
|
return Result.error("注册用户失败:" + throwable.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Result<List<SysUser>> sysUserByPhonenumber(String phonenumber) {
|
||||||
|
return Result.error("获取用户手机号失败"+throwable.getMessage());
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -290,4 +290,16 @@ public class SysUserController extends BaseController {
|
||||||
public Result deptTree (SysDept dept) {
|
public Result deptTree (SysDept dept) {
|
||||||
return success(deptService.selectDeptTreeList(dept));
|
return success(deptService.selectDeptTreeList(dept));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户手机号校验
|
||||||
|
* @param phonenumber
|
||||||
|
* @return 查询结果
|
||||||
|
*/
|
||||||
|
@PostMapping("/sysUserByPhonenumber/{phonenumber}")
|
||||||
|
public Result<List<SysUser>> sysUserByPhonenumber(@PathVariable("phonenumber") String phonenumber) {
|
||||||
|
List<SysUser> sysUsers = userService.sysUserByPhonenumber(phonenumber);
|
||||||
|
return Result.success(sysUsers);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
package com.muyu.system.controller;
|
||||||
|
|
||||||
|
import com.muyu.common.core.domain.Result;
|
||||||
|
import com.muyu.common.system.domain.SysUser;
|
||||||
|
|
||||||
|
import com.muyu.system.service.impl.SysUserPhonenumberServerImpl;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.extern.log4j.Log4j2;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ClassDescription:
|
||||||
|
* @JdkVersion: 1.8
|
||||||
|
* @Author: YZL
|
||||||
|
* @Created: 2024/8/22 16:10
|
||||||
|
*/
|
||||||
|
@Log4j2
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("customer")
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class SysUserPhonenumberController {
|
||||||
|
private final SysUserPhonenumberServerImpl sysUserPhonenumberServer;
|
||||||
|
|
||||||
|
@GetMapping("/{phonenumber}")
|
||||||
|
@Operation(summary = "根据手机号查询用户", description = "用户信息")
|
||||||
|
public Result<SysUser> getUserByPhonenumber(@PathVariable("phonenumber")String phonenumber) {
|
||||||
|
return Result.success((SysUser) sysUserPhonenumberServer.sysUserByphonenumber(phonenumber));
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
package com.muyu.system.domain.req;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ClassDescription:
|
||||||
|
* @JdkVersion: 1.8
|
||||||
|
* @Author: YZL
|
||||||
|
* @Created: 2024/8/22 16:24
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Tag(name = "用户查询手机号", description = "根据入参进行用户手机号查询")
|
||||||
|
public class SysUserphonenumber {
|
||||||
|
private String phonenumber;
|
||||||
|
}
|
|
@ -131,6 +131,7 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public SysUser checkPhoneUnique (String phonenumber);
|
public SysUser checkPhoneUnique (String phonenumber);
|
||||||
|
List<SysUser> sysUserByPhonenumber (@Param("phonenumber") String phonenumber);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验email是否唯一
|
* 校验email是否唯一
|
||||||
|
@ -142,4 +143,7 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
|
||||||
public SysUser checkEmailUnique (String email);
|
public SysUser checkEmailUnique (String email);
|
||||||
|
|
||||||
List<Long> selectDtptUser(@Param("sectionIds") List<Long> sectionIds);
|
List<Long> selectDtptUser(@Param("sectionIds") List<Long> sectionIds);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
package com.muyu.system.mapper;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.muyu.common.system.domain.SysUser;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ClassDescription:
|
||||||
|
* @JdkVersion: 1.8
|
||||||
|
* @Author: YZL
|
||||||
|
* @Created: 2024/8/22 16:02
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface SysUserPhonenumberMapper extends BaseMapper<SysUser> {
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
package com.muyu.system.service;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.muyu.common.system.domain.SysUser;
|
||||||
|
import com.muyu.system.domain.req.SysUserphonenumber;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ClassDescription:
|
||||||
|
* @JdkVersion: 1.8
|
||||||
|
* @Author: YZL
|
||||||
|
* @Created: 2024/8/22 16:03
|
||||||
|
*/
|
||||||
|
public interface SysUserPhonenumberServer extends IService<SysUser> {
|
||||||
|
|
||||||
|
List<SysUserphonenumber>sysUserByphonenumber(String phonenumber);
|
||||||
|
|
||||||
|
}
|
|
@ -2,6 +2,7 @@ package com.muyu.system.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.muyu.common.system.domain.SysUser;
|
import com.muyu.common.system.domain.SysUser;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -92,6 +93,8 @@ public interface SysUserService extends IService<SysUser> {
|
||||||
*/
|
*/
|
||||||
public boolean checkPhoneUnique (SysUser user);
|
public boolean checkPhoneUnique (SysUser user);
|
||||||
|
|
||||||
|
public List<SysUser> sysUserByPhonenumber ( String phonenumber);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验email是否唯一
|
* 校验email是否唯一
|
||||||
*
|
*
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
package com.muyu.system.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
|
||||||
|
|
||||||
|
import com.muyu.common.system.domain.SysUser;
|
||||||
|
import com.muyu.system.domain.req.SysUserphonenumber;
|
||||||
|
import com.muyu.system.mapper.SysUserPhonenumberMapper;
|
||||||
|
import com.muyu.system.service.SysUserPhonenumberServer;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ClassDescription:
|
||||||
|
* @JdkVersion: 1.8
|
||||||
|
* @Author: YZL
|
||||||
|
* @Created: 2024/8/22 16:04
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class SysUserPhonenumberServerImpl extends ServiceImpl<SysUserPhonenumberMapper, SysUser> implements SysUserPhonenumberServer {
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SysUserphonenumber> sysUserByphonenumber(String phonenumber) {
|
||||||
|
LambdaQueryWrapper<SysUser> sysUserLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
sysUserLambdaQueryWrapper.eq(SysUser::getPhonenumber,phonenumber);
|
||||||
|
List<SysUser> list = this.list(sysUserLambdaQueryWrapper);
|
||||||
|
return list.stream()
|
||||||
|
.map(sysUser -> SysUserphonenumber.builder()
|
||||||
|
.phonenumber(sysUser.getPhonenumber())
|
||||||
|
.build())
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
}
|
|
@ -180,6 +180,11 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||||
return UserConstants.UNIQUE;
|
return UserConstants.UNIQUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SysUser> sysUserByPhonenumber(String phonenumber) {
|
||||||
|
return userMapper.sysUserByPhonenumber(phonenumber);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验email是否唯一
|
* 校验email是否唯一
|
||||||
*
|
*
|
||||||
|
|
|
@ -197,6 +197,14 @@
|
||||||
where user_id = #{userId}
|
where user_id = #{userId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="sysUserByPhonenumber" resultType="com.muyu.common.system.domain.SysUser" >
|
||||||
|
select user_id, phonenumber
|
||||||
|
from sys_user
|
||||||
|
where phonenumber = #{phonenumber}
|
||||||
|
and del_flag = '0'
|
||||||
|
limit 1
|
||||||
|
</select>
|
||||||
|
|
||||||
<insert id="insertUser" parameterType="com.muyu.common.system.domain.SysUser" useGeneratedKeys="true" keyProperty="userId">
|
<insert id="insertUser" parameterType="com.muyu.common.system.domain.SysUser" useGeneratedKeys="true" keyProperty="userId">
|
||||||
insert into sys_user(
|
insert into sys_user(
|
||||||
<if test="userId != null and userId != 0">user_id,</if>
|
<if test="userId != null and userId != 0">user_id,</if>
|
||||||
|
|
Loading…
Reference in New Issue