|
|
@@ -120,6 +120,81 @@ public class AppLoginController extends AppBaseController{
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @PostMapping("/registerSendCode")
|
|
|
+ public R registerSendCode(@RequestBody Map<String, String> body){
|
|
|
+ String phone = body.get("phone");
|
|
|
+ String encryptPhone = encryptPhone(phone);
|
|
|
+ List<FsUser> user = userService.selectFsUserListByPhone(encryptPhone);
|
|
|
+ if(CollectionUtil.isEmpty(user)){
|
|
|
+ user = userService.selectFsUserListByPhone(encryptPhoneOldKey(phone));
|
|
|
+ }
|
|
|
+ if (!CollectionUtil.isEmpty(user)){
|
|
|
+ return R.error("此电话号码已注册");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 验证码 key(存验证码,3分钟有效)
|
|
|
+ String smsCodeKey = "sms:code:" + phone;
|
|
|
+ // 发送冷却 key(限制60秒内不能再次发送)
|
|
|
+ String smsCooldownKey = "sms:cooldown:" + phone;
|
|
|
+
|
|
|
+ // 判断是否在60秒冷却时间内
|
|
|
+ if (redisCache.getCacheObject(smsCooldownKey) != null) {
|
|
|
+ return R.error("验证码已发送,请稍后再试");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 生成新的验证码
|
|
|
+ String smsCode = VerifyCodeUtil.generateCode();
|
|
|
+
|
|
|
+ // 发送短信
|
|
|
+ smsService.sendCaptcha(phone, smsCode, "验证码");
|
|
|
+
|
|
|
+ // 缓存验证码(3分钟有效)
|
|
|
+ redisCache.setCacheObject(smsCodeKey, smsCode, 180, TimeUnit.SECONDS);
|
|
|
+ // 设置冷却时间(60秒内不能再发)
|
|
|
+ redisCache.setCacheObject(smsCooldownKey, "1", 60, TimeUnit.SECONDS);
|
|
|
+
|
|
|
+ return R.ok("验证码已发送");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @PostMapping("/registerByPhone")
|
|
|
+ public R registerByPhone(@RequestBody Map<String,String> map){
|
|
|
+ String phone = map.get("phone");
|
|
|
+ String code = map.get("code");
|
|
|
+ String password = map.get("password");
|
|
|
+ String encryptPhone = encryptPhone(phone);
|
|
|
+ List<FsUser> users = userService.selectFsUserListByPhone(encryptPhone);
|
|
|
+ if (users == null || CollectionUtil.isEmpty(users)){
|
|
|
+ String s = encryptPhoneOldKey(phone);
|
|
|
+ users = userService.selectFsUserListByPhone(s);
|
|
|
+ }
|
|
|
+ if (!CollectionUtil.isEmpty(users)){
|
|
|
+ return R.error("此账号已经注册");
|
|
|
+ }
|
|
|
+ String redisCode = redisCache.getCacheObject("sms:code:" + phone);
|
|
|
+ if (StringUtils.isEmpty(redisCode)){
|
|
|
+ return R.error("验证码已过期,请重新发送");
|
|
|
+ }
|
|
|
+ if (!redisCode.equals(code)) {
|
|
|
+ return R.error("验证码错误");
|
|
|
+ }
|
|
|
+ FsUser user = new FsUser();
|
|
|
+ // 创建新用户
|
|
|
+ user.setPhone(phone);
|
|
|
+ user.setJpushId(map.get("jpushId"));
|
|
|
+ user.setSource(map.get("source"));
|
|
|
+ user.setNickName("app用户" + phone.substring(phone.length() - 4));
|
|
|
+ user.setStatus(1);
|
|
|
+ user.setAvatar("https://cos.his.cdwjyyh.com/fs/20240926/420728ee06e54575ba82665dedb4756b.png");
|
|
|
+ user.setPassword(Md5Utils.hash(password));
|
|
|
+ user.setCreateTime(new Date());
|
|
|
+ if (userService.insertFsUser(user) > 0) {
|
|
|
+ return R.ok("注册成功");
|
|
|
+ } else {
|
|
|
+ return R.error("注册失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
|
|
|
|