用户注册新增手机号验证码
parent
c8bbdbd979
commit
dcbe25b7de
|
@ -1,7 +1,6 @@
|
|||
package com.muyu.auth.service;
|
||||
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import com.muyu.auth.form.RegisterBody;
|
||||
import com.muyu.auth.util.TelSmsUtils;
|
||||
import com.muyu.common.core.constant.CacheConstants;
|
||||
import com.muyu.common.core.constant.Constants;
|
||||
|
@ -23,9 +22,7 @@ import org.springframework.data.redis.core.RedisTemplate;
|
|||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.Random;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
|
@ -141,6 +138,7 @@ public class SysLoginService {
|
|||
throw new ServiceException("手机号长度必须在11个字符");
|
||||
}
|
||||
|
||||
|
||||
// 注册用户信息
|
||||
SysUser sysUser = new SysUser();
|
||||
sysUser.setUserName(username);
|
||||
|
@ -159,40 +157,25 @@ public class SysLoginService {
|
|||
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);
|
||||
|
||||
|
||||
|
||||
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>() {{
|
||||
put("实训12A项目注册验证码","你正在注册四组服务,您的验证码是:{}"+s);
|
||||
}});
|
||||
|
||||
|
||||
return Result.success("发送成功");
|
||||
return Result.success("发送成功",s);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -41,4 +41,13 @@ public interface RemoteUserService {
|
|||
*/
|
||||
@PostMapping("/user/register")
|
||||
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) {
|
||||
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) {
|
||||
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 结果
|
||||
*/
|
||||
public SysUser checkPhoneUnique (String phonenumber);
|
||||
List<SysUser> sysUserByPhonenumber (@Param("phonenumber") String phonenumber);
|
||||
|
||||
/**
|
||||
* 校验email是否唯一
|
||||
|
@ -142,4 +143,7 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
|
|||
public SysUser checkEmailUnique (String email);
|
||||
|
||||
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.muyu.common.system.domain.SysUser;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
@ -92,6 +93,8 @@ public interface SysUserService extends IService<SysUser> {
|
|||
*/
|
||||
public boolean checkPhoneUnique (SysUser user);
|
||||
|
||||
public List<SysUser> sysUserByPhonenumber ( String phonenumber);
|
||||
|
||||
/**
|
||||
* 校验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;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysUser> sysUserByPhonenumber(String phonenumber) {
|
||||
return userMapper.sysUserByPhonenumber(phonenumber);
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验email是否唯一
|
||||
*
|
||||
|
|
|
@ -197,6 +197,14 @@
|
|||
where user_id = #{userId}
|
||||
</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 into sys_user(
|
||||
<if test="userId != null and userId != 0">user_id,</if>
|
||||
|
|
Loading…
Reference in New Issue