Przeglądaj źródła

手机验证码模板修改并返回验证码到前端,去除发送短信方法
其他bug修改

wangmh 7 lat temu
rodzic
commit
266949ab8d

+ 7 - 17
sso-server/src/main/java/com/uas/sso/controller/AppealController.java

@@ -41,7 +41,7 @@ public class AppealController extends BaseController {
      */
     @RequestMapping(value = "/check/mobile", method = RequestMethod.GET)
     public ModelMap checkMobile(String mobile) {
-        String token = getMobileCode(mobile);
+        String token = getMobileToken(mobile);
         ModelMap data = new ModelMap("token", token);
         data.put("code", request.getSession().getAttribute("code"));
         return success(data);
@@ -80,6 +80,10 @@ public class AppealController extends BaseController {
      */
     @RequestMapping(value = "/resetPwd", method = RequestMethod.POST)
     public ModelMap resetPwd(Appeal appeal, @RequestParam String token, String code, String password) {
+        // 获取申述人
+        UserAccount loginUser = SystemSession.getUserAccount();
+        Long submitterUU = loginUser == null ? (Long) request.getSession().getAttribute("userUU") : loginUser.getUserUU();
+
         // 校验token
         Token existToken = tokenService.findOne(token);
         if (existToken == null || existToken.isExpired()) {
@@ -92,12 +96,13 @@ public class AppealController extends BaseController {
         checkMobileCode(token, appeal.getMobile(), code);
 
         // 保存申述信息
+        appeal.setSubmitterUU(submitterUU);
         appealService.submitResetPwd(appeal, password);
         return success();
     }
 
     @RequestMapping(value = "/changeAdmin", method = RequestMethod.POST)
-    public ModelMap changeAdmin(Appeal appeal, @RequestParam String token, String code, MultipartFile businessImage, Userspace userspace) throws Exception {
+    public ModelMap changeAdmin(Appeal appeal, @RequestParam String token, String code, Userspace userspace) throws Exception {
         // 校验用户是否登录
         UserAccount userAccount = SystemSession.getUserAccount();
         if (userAccount == null) {
@@ -115,21 +120,6 @@ public class AppealController extends BaseController {
         // 校验验证码
         checkMobileCode(token, appeal.getMobile(), code);
 
-        // 上传营业执照
-        if (!(businessImage == null || businessImage.isEmpty())) {
-            if (businessImage.getSize() > IMAGE_MAX_SIZE) {
-                return error("营业执照附件大小不要超过5M");
-            }
-            HttpUtils.Response response = HttpUtils.upload(FileUrl.FILE_UPLOAD, businessImage, null);
-            JSONObject obj = FastjsonUtils.parseObject(response.getResponseText());
-            String path = (String) obj.get("path");
-            if (path != null) {
-                userspace.setBusinessCodeImage(path);
-            } else {
-                return error("请检查您的营业执照附件");
-            }
-        }
-
         // 保存申述信息
         appeal.setSubmitterUU(userAccount.getUserUU());
         appealService.submitChangeAdmin(appeal, userspace);

+ 24 - 19
sso-server/src/main/java/com/uas/sso/controller/BaseController.java

@@ -146,13 +146,13 @@ public class BaseController {
     }
 
     /**
-     * 获取验证码
+     * 获取验证码tokenId
      *
      * @param mobile 手机号
      * @param email 邮箱
      * @return tokenId
      */
-    protected String getValidCode(String mobile, String email) {
+    protected String getValidToken(String mobile, String email) {
         // 随机获得验证码
         String code = StringUtil.getRandomNumber(6);
         Token token = new Token(code, 10 * 60);
@@ -168,17 +168,22 @@ public class BaseController {
         // 将验证码发送到手机上
         ModelMap data = new ModelMap();
         data.put("checkcode", code);
+
+        // 测试时方便获取验证码
+        request.getSession().setAttribute("code", code);
+
         // 手机短信
-        try {
-            if (!StringUtils.isEmpty(mobile)) {
-                Setting smsTplId = settingService.findOne("templateForSendSmsWhenRegister");
-                if (!StringUtils.isEmpty(smsTplId)) {
-                    smsService.send(smsTplId.getValue(), mobile, new Object[]{code});
-                }
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        /// 测试不发送短信
+//        try {
+//            if (!StringUtils.isEmpty(mobile)) {
+//                Setting smsTplId = settingService.findOne("templateForSendSmsAboutValidAllCode");
+//                if (!StringUtils.isEmpty(smsTplId)) {
+//                    smsService.send(smsTplId.getValue(), mobile, new Object[]{code});
+//                }
+//            }
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
 
         // 邮件
         try {
@@ -197,23 +202,23 @@ public class BaseController {
     }
 
     /**
-     * 获取手机号验证码
+     * 获取手机号验证码tokenId
      *
      * @param mobile 手机号
      * @return tokenId
      */
-    protected String getMobileCode(String mobile) {
-        return getValidCode(mobile, null);
+    protected String getMobileToken(String mobile) {
+        return getValidToken(mobile, null);
     }
 
     /**
-     * 获取邮箱验证码
+     * 获取邮箱验证码tokenId
      *
      * @param email 邮箱
      * @return
      */
-    protected String getEmailCode(String email) {
-        return getValidCode(null, email);
+    protected String getEmailToken(String email) {
+        return getValidToken(null, email);
     }
 
     /**
@@ -240,7 +245,7 @@ public class BaseController {
             throw new VisibleError("手机号被修改,请重新获取验证码");
         }
         if (!StringUtils.isEmpty(existToken.getEmail()) && !existToken.getEmail().equals(email)) {
-            throw new VisibleError("手机号被修改,请重新获取验证码");
+            throw new VisibleError("邮箱被修改,请重新获取验证码");
         }
 
         // 校验验证码

+ 9 - 3
sso-server/src/main/java/com/uas/sso/controller/ChangeAdminController.java

@@ -78,10 +78,13 @@ public class ChangeAdminController extends BaseController {
         UserAccount userAccount = SystemSession.getUserAccount();
 
         // 获取验证码
-        String token = getMobileCode(userAccount.getMobile());
+        String token = getMobileToken(userAccount.getMobile());
 
         // 设置返回值
-        return success(new ModelMap("token", token));
+        ModelMap data = new ModelMap();
+        data.put("token", token);
+        data.put("code", request.getSession().getAttribute("code"));
+        return success(data);
     }
 
     /**
@@ -228,7 +231,10 @@ public class ChangeAdminController extends BaseController {
         checkToken(token);
 
         // 获取token并返回
-        return success(new ModelMap("token", getMobileCode(mobile)));
+        ModelMap data = new ModelMap();
+        data.put("token", getMobileToken(mobile));
+        data.put("code", request.getSession().getAttribute("code"));
+        return success(data);
     }
 
     /**

+ 2 - 1
sso-server/src/main/java/com/uas/sso/controller/PersonalRegisterController.java

@@ -97,11 +97,12 @@ public class PersonalRegisterController extends BaseController {
         }
 
         // 获取验证码
-        String token = getMobileCode(mobile);
+        String token = getMobileToken(mobile);
 
         // 设置返回数据
         ModelMap data = new ModelMap();
         data.put("token", token);
+        data.put("code", request.getSession().getAttribute("code"));
         request.getSession().setAttribute("token", token);
         return data;
     }

+ 3 - 1
sso-server/src/main/java/com/uas/sso/controller/ResetPasswordController.java

@@ -126,6 +126,7 @@ public class ResetPasswordController extends BaseController {
         data.put("mobile", Status.AUTHENTICATED.getCode() == user.getMobileValidCode() ? user.getMobile() : null);
         data.put("email", Status.AUTHENTICATED.getCode() == user.getEmailValidCode() ? user.getEmail() : null);
         request.getSession().setAttribute("user", user);
+        request.getSession().setAttribute("userUU", user.getUserUU());
         return success(data);
     }
 
@@ -177,11 +178,12 @@ public class ResetPasswordController extends BaseController {
         }
 
         // 获取验证码
-        String token = getMobileCode(user.getMobile());
+        String token = getMobileToken(user.getMobile());
 
         // 设置返回数据
         ModelMap data = new ModelMap();
         data.put("token", token);
+        data.put("code", request.getSession().getAttribute("code"));
         request.getSession().setAttribute("token", token);
         return success(data);
     }

+ 32 - 15
sso-server/src/main/java/com/uas/sso/controller/UpdateUserController.java

@@ -1,5 +1,6 @@
 package com.uas.sso.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.uas.sso.core.Status;
 import com.uas.sso.entity.*;
 import com.uas.sso.service.UserService;
@@ -13,6 +14,9 @@ import org.springframework.web.bind.annotation.*;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
+
+import static com.alibaba.fastjson.JSON.parseArray;
 
 /**
  * @author wangmh
@@ -62,11 +66,12 @@ public class UpdateUserController extends BaseController {
     @RequestMapping(value = "/check/mobile", method = RequestMethod.GET)
     public ModelMap checkByMobile(String mobile) {
         // 获取验证码
-        String token = getMobileCode(mobile);
+        String token = getMobileToken(mobile);
 
         // 设置返回数据
         ModelMap data = new ModelMap();
         data.put("token", token);
+        data.put("code", request.getSession().getAttribute("code"));
         request.getSession().setAttribute("token", token);
         return success(data);
     }
@@ -104,6 +109,7 @@ public class UpdateUserController extends BaseController {
         // 设置返回数据
         User user = userService.findByMobile(mobile);
         existToken = new Token(user, EXPIRES);
+        tokenService.save(existToken);
         return success(existToken.getId());
     }
 
@@ -125,6 +131,7 @@ public class UpdateUserController extends BaseController {
 
         // 设置发送邮件信息
         Token token = new Token(user, EXPIRES);
+        tokenService.save(token);
         ModelMap data = new ModelMap();
         data.put("vipName", user.getVipName());
         // TODO 邮件认证地址
@@ -133,7 +140,7 @@ public class UpdateUserController extends BaseController {
         } else if ("email".equals(operate)) {
             data.put("url", "http://192.168.253.66:8081/update/user/setMail?token=" + token);
         } else if ("question".equals(operate)) {
-            data.put("url", "http://192.168.253.66:8081/update/user//setQuestion?token=" + token);
+            data.put("url", "http://192.168.253.66:8081/update/user/setQuestion?token=" + token);
         }
 
         // 发送邮件
@@ -153,23 +160,25 @@ public class UpdateUserController extends BaseController {
      * @return
      */
     @RequestMapping(value = "/check/question", method = RequestMethod.POST)
-    public ModelMap checkByQuestion(List<Map<String, Object>> answers) {
+    public ModelMap checkByQuestion(String answers) {
+        List<Map> answersArray = JSON.parseArray(answers, Map.class);
 
         // 校验密保答案
         User user = (User) request.getSession().getAttribute("user");
         List<UserQuestion> questions = user.getQuestions();
-        Map<Long, String> userAnswer = new HashMap<>(questions.size());
+        Map<String, String> userAnswer = new HashMap<>(questions.size());
         for (UserQuestion question : questions) {
-            userAnswer.put(question.getId(), question.getAnswer());
+            userAnswer.put(question.getSort(), question.getAnswer());
         }
-        for (Map<String, Object> answer : answers) {
-            if (!answer.get("answer").equals(userAnswer.get(answer.get("id")))){
+        for (Map<String, Object> answer : answersArray) {
+            if (!answer.get("answer").equals(userAnswer.get(answer.get("sort")))){
                 return error("答案错误");
             }
         }
 
         // 返回token
         Token expireToken = new Token(user, EXPIRES);
+        tokenService.save(expireToken);
         ModelMap data = new ModelMap();
         data.put("token", expireToken.getId());
         return success(data);
@@ -195,13 +204,14 @@ public class UpdateUserController extends BaseController {
         if (user == null) {
             return error("请求错误");
         }
-        tokenService.delete(token);
 
         // 获取验证码
-        token = getMobileCode(mobile);
+        token = getMobileToken(mobile);
 
         request.getSession().setAttribute("user", user);
-        return success(new ModelMap("token", token));
+        ModelMap data = new ModelMap("token", token);
+        data.put("code", request.getSession().getAttribute("code"));
+        return success(data);
     }
 
     /**
@@ -274,7 +284,7 @@ public class UpdateUserController extends BaseController {
         tokenService.delete(token);
 
         // 获取验证码
-        token = getEmailCode(email);
+        token = getEmailToken(email);
 
         request.getSession().setAttribute("user", user);
         return success(new ModelMap("token", token));
@@ -350,16 +360,23 @@ public class UpdateUserController extends BaseController {
      * @param type 校验接收验证码类型(mobile or email)
      * @param token 验证码token
      * @param code 验证码
-     * @param account 接收验证码账号
+     * @param mobile 接收验证码手机号
+     * @param email 接收验证码邮箱
      * @return
      */
     @RequestMapping(value = "/checkCode/{type}", method = RequestMethod.POST)
-    public ModelMap checkCode(@PathVariable String type, @RequestParam String token, String code, String account) {
+    public ModelMap checkCode(@PathVariable String type, @RequestParam String token, String code, String mobile, String email) {
         // 校验验证码
         if ("mobile".equals(type)) {
-            checkMobileCode(token, account, code);
+            if (StringUtils.isEmpty(mobile)) {
+                return error("手机号不能为空");
+            }
+            checkMobileCode(token, mobile, code);
         } else if ("email".equals(type)) {
-            checkEmailCode(token, account, code);
+            if (StringUtils.isEmpty(email)) {
+                return error("邮箱不能为空");
+            }
+            checkEmailCode(token, email, code);
         }
 
         return success();

+ 6 - 2
sso-server/src/main/java/com/uas/sso/controller/UserspaceRegisterController.java

@@ -1,5 +1,6 @@
 package com.uas.sso.controller;
 
+import com.uas.sso.AccountConfig;
 import com.uas.sso.core.PasswordStrength;
 import com.uas.sso.core.Status;
 import com.uas.sso.core.Step;
@@ -65,6 +66,7 @@ public class UserspaceRegisterController extends BaseController {
         tokenService.delete(token);
 
         // 添加日志
+        appId = StringUtils.isEmpty(appId) ? AccountConfig.ACCOUNT_CENTER : appId;
         registerLogger.info(Type.REGISTER_USERSPACE.getValue(), Step.FIRST.getValue(), "企业注册", mobile, appId);
 
         return success(data);
@@ -87,6 +89,7 @@ public class UserspaceRegisterController extends BaseController {
         String adminEmail = user.getEmail();
 
         // 校验参数
+        appId = StringUtils.isEmpty(appId) ? AccountConfig.ACCOUNT_CENTER : appId;
         String mobile = (String) request.getSession().getAttribute("mobile");
         if (StringUtils.isEmpty(mobile)) {
             return error("请刷新后重试");
@@ -137,7 +140,7 @@ public class UserspaceRegisterController extends BaseController {
         }
 
         // 企业注册
-        userspaceService.register(userspace, admin);
+        userspace = userspaceService.register(userspace, admin);
 
         // 添加日志
         registerLogger.info(Type.REGISTER_USERSPACE.getValue(), Step.SECOND.getValue(), "企业注册", userspace, appId);
@@ -159,11 +162,12 @@ public class UserspaceRegisterController extends BaseController {
         checkMobile(mobile, mobileArea);
 
         // 获取验证码
-        String token = getMobileCode(mobile);
+        String token = getMobileToken(mobile);
 
         // 设置返回数据
         ModelMap data = new ModelMap();
         data.put("token", token);
+        data.put("code", request.getSession().getAttribute("code"));
         request.getSession().setAttribute("token", token);
         return data;
     }