diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberController.java index 72e94dc..f730e1e 100644 --- a/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberController.java +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberController.java @@ -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 register(@RequestBody RegisterRequest request){ return ResponseEntity.ok(service.register(request)); } + + @ApiOperation("注册验证码校验手机号") + @GetMapping("/validate/{phone}") + public ResponseEntity validate(@PathVariable String phone){ + return ResponseEntity.ok(service.validate(phone)); + } } diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/RegisterRequest.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/RegisterRequest.java index 38a4eca..2d90442 100644 --- a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/RegisterRequest.java +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/request/RegisterRequest.java @@ -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; } diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/response/RegisterResponse.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/response/RegisterResponse.java index a4e630f..1b18391 100644 --- a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/response/RegisterResponse.java +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/response/RegisterResponse.java @@ -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; diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/response/ValidatePhoneResponse.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/response/ValidatePhoneResponse.java new file mode 100644 index 0000000..523de06 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/response/ValidatePhoneResponse.java @@ -0,0 +1,11 @@ +package com.cyl.h5.pojo.response; + +import lombok.Data; + +@Data +public class ValidatePhoneResponse { + /** 是否成功 */ + private boolean ifSuccess; + /** 消息 */ + private String message; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberService.java b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberService.java index 39fc824..2e97d68 100644 --- a/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberService.java +++ b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberService.java @@ -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 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; + } } diff --git a/ruoyi-mall/src/main/java/com/cyl/sms/SmsController.java b/ruoyi-mall/src/main/java/com/cyl/sms/SmsController.java index 6c26ab1..1e32169 100644 --- a/ruoyi-mall/src/main/java/com/cyl/sms/SmsController.java +++ b/ruoyi-mall/src/main/java/com/cyl/sms/SmsController.java @@ -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 { diff --git a/ruoyi-mall/src/main/java/com/cyl/sms/service/SmsService.java b/ruoyi-mall/src/main/java/com/cyl/sms/service/SmsService.java index c43c5b2..ec3885d 100644 --- a/ruoyi-mall/src/main/java/com/cyl/sms/service/SmsService.java +++ b/ruoyi-mall/src/main/java/com/cyl/sms/service/SmsService.java @@ -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 map = new HashMap<>(); map.put("code", code);