Browse Source

签到功能调整

shuzhan 2 years ago
parent
commit
879029d868

+ 45 - 0
web/src/main/java/com/jpsoft/education/modules/mobile/controller/RegUserApiController.java

@@ -254,6 +254,51 @@ public class RegUserApiController {
         return messageResult;
     }
 
+    @PostMapping("getVerifyCodeByTeacher")
+    @ApiOperation(value = "获取短信验证码教师端(公开接口)")
+    public MessageResult<Map> getVerifyCodeByTeacher(String telephone) {
+        MessageResult<Map> messageResult = new MessageResult<>();
+
+        try {
+            String key = "SMS_" + telephone;
+
+            RegUser regUser = regUserService.findByPhone(telephone);
+
+            if (regUser != null && regUser.getUserType().contains("2")) {
+                //教师
+            } else {
+                throw new Exception("该手机号未注册!");
+            }
+
+            //1分钟限制
+            boolean repeat = valueOperations.setIfAbsent("out_" + telephone,true,1, TimeUnit.MINUTES);
+            if(!repeat){
+                throw new Exception("操作过于频繁!");
+            }
+
+            String verifyCode = (String) valueOperations.get(key);
+
+            if (StringUtils.isEmpty(verifyCode)) {
+                verifyCode = SMSUtil.generateNumberString(6);
+                JSONObject verifyCodeJSON = new JSONObject();
+                verifyCodeJSON.put("code", verifyCode);
+
+                messageResult = SMSUtil.send(telephone, "SMS_49390047", verifyCodeJSON.toString());
+
+                //设置当前用户的验证码,5分钟内有效
+                valueOperations.set(key, verifyCode, 10, TimeUnit.MINUTES);
+            }
+
+            messageResult.setResult(true);
+            messageResult.setCode(200);
+        } catch (Exception ex) {
+            log.error(ex.getMessage());
+            messageResult.setResult(false);
+            messageResult.setMessage(ex.getMessage());
+        }
+
+        return messageResult;
+    }
 
     @PostMapping("validateCode")
     @ApiOperation(value = "验证短信验证码(公开接口)")