注册手机号校验、代码优化

pull/1/head
chuzhichao 2 years ago
parent d7ee61b113
commit 387fadce70

@ -1,31 +1,30 @@
package com.cyl.h5.controller;
import com.cyl.h5.pojo.dto.LoginDTO;
import com.cyl.h5.pojo.request.RegisterRequest;
import com.cyl.h5.pojo.response.RegisterResponse;
import com.cyl.h5.pojo.vo.LoginResVO;
import com.cyl.h5.pojo.response.ValidatePhoneResponse;
import com.cyl.h5.service.H5MemberService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
/**
* @Author: czc
* @Description: TODO
* @DateTime: 2023/6/16 14:52
**/
@RestController
@RequestMapping()
@RequestMapping("/no-auth/h5/member")
public class H5MemberController {
@Autowired
private H5MemberService service;
@PostMapping("/no-auth/h5/member/register")
@ApiOperation("会员注册")
@PostMapping("/register")
public ResponseEntity<RegisterResponse> register(@RequestBody RegisterRequest request){
return ResponseEntity.ok(service.register(request));
}
@ApiOperation("注册验证码校验手机号")
@GetMapping("/validate/{phone}")
public ResponseEntity<ValidatePhoneResponse> validate(@PathVariable String phone){
return ResponseEntity.ok(service.validate(phone));
}
}

@ -3,24 +3,25 @@ package com.cyl.h5.pojo.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author: czc
* @Description: TODO
* @DateTime: 2023/6/19 16:31
**/
import javax.validation.constraints.NotBlank;
@Data
public class RegisterRequest {
@ApiModelProperty("手机号")
@NotBlank
private String mobile;
@ApiModelProperty("密码")
@NotBlank
private String password;
@ApiModelProperty("uuid")
@NotBlank
private String uuid;
@ApiModelProperty("验证码")
@NotBlank
private String code;
}

@ -3,15 +3,10 @@ package com.cyl.h5.pojo.response;
import com.cyl.ums.domain.Member;
import lombok.Data;
/**
* @Author: czc
* @Description: TODO
* @DateTime: 2023/6/19 16:38
**/
@Data
public class RegisterResponse {
private boolean result;
private boolean ifSuccess;
private String message;

@ -0,0 +1,11 @@
package com.cyl.h5.pojo.response;
import lombok.Data;
@Data
public class ValidatePhoneResponse {
/** 是否成功 */
private boolean ifSuccess;
/** 消息 */
private String message;
}

@ -1,7 +1,9 @@
package com.cyl.h5.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.cyl.h5.pojo.request.RegisterRequest;
import com.cyl.h5.pojo.response.RegisterResponse;
import com.cyl.h5.pojo.response.ValidatePhoneResponse;
import com.cyl.ums.domain.Member;
import com.cyl.ums.mapper.MemberMapper;
import com.ruoyi.common.core.redis.RedisCache;
@ -9,15 +11,12 @@ import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.Base64;
/**
* @Author: czc
* @Description: TODO
* @DateTime: 2023/6/16 15:01
**/
@Service
@Slf4j
public class H5MemberService {
@ -36,20 +35,7 @@ public class H5MemberService {
public RegisterResponse register(RegisterRequest request){
log.info("request:{}", request);
RegisterResponse response = new RegisterResponse();
response.setResult(false);
if (StringUtils.isEmpty(request.getMobile())){
response.setMessage("手机号不能为空");
return response;
}
if (StringUtils.isEmpty(request.getPassword())){
response.setMessage("密码不能为空");
return response;
}
int len = request.getPassword().length();
if (len < 8 || len > 20){
response.setMessage("密码长度为8-20位");
return response;
}
response.setIfSuccess(false);
//校验 验证码
String key = request.getUuid() + "_" + request.getMobile();
String code = redisCache.getCacheObject(key);
@ -70,8 +56,25 @@ public class H5MemberService {
member.setNickname("用户" + request.getMobile());
member.setCreateTime(LocalDateTime.now());
memberMapper.insert(member);
response.setResult(true);
response.setIfSuccess(true);
response.setMessage("注册成功");
return response;
}
public ValidatePhoneResponse validate(String phone) {
ValidatePhoneResponse response = new ValidatePhoneResponse();
response.setIfSuccess(false);
byte[] decodedBytes = Base64.getDecoder().decode(phone);
phone = new String(decodedBytes);
QueryWrapper<Member> qw = new QueryWrapper<>();
qw.eq("phone", phone);
Member member = memberMapper.selectOne(qw);
if (member != null){
response.setMessage("该手机号已被占用");
return response;
}
response.setIfSuccess(true);
response.setMessage("该手机号可用");
return response;
}
}

@ -7,11 +7,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
/**
* @Author: czc
* @Description: TODO
* @DateTime: 2023/6/19 15:39
**/
@RestController
@RequestMapping("/no-auth/sms")
public class SmsController {

@ -6,7 +6,6 @@ import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.core.sms.AliyunSmsTemplate;
import com.ruoyi.common.core.sms.SmsTemplate;
import com.ruoyi.common.utils.SmsUtils;
import com.ruoyi.common.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
@ -18,11 +17,6 @@ import java.util.Map;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
/**
* @Author: czc
* @Description: TODO
* @DateTime: 2023/6/19 16:28
**/
@Service
@Slf4j
public class SmsService {
@ -45,17 +39,8 @@ public class SmsService {
);
}
if (StringUtils.isEmpty(phones)){
return ResponseEntity.ok(
SmsResult.builder()
.isSuccess(false)
.message("手机号不能为空")
.build()
);
}
byte[] decodedBytes = Base64.getDecoder().decode(phones);
phones = new String(decodedBytes);
log.info("base64解码后的手机号为{}", phones);
String code = SmsUtils.createRandom(true, 4);
Map<String, String> map = new HashMap<>();
map.put("code", code);

Loading…
Cancel
Save