|
|
@@ -1,11 +1,17 @@
|
|
|
package com.uas.sso.controller;
|
|
|
|
|
|
+import com.uas.message.sms.service.SmsService;
|
|
|
import com.uas.sso.core.Const;
|
|
|
import com.uas.sso.core.Type;
|
|
|
import com.uas.sso.core.PasswordStrength;
|
|
|
+import com.uas.sso.entity.Setting;
|
|
|
+import com.uas.sso.entity.Token;
|
|
|
import com.uas.sso.entity.User;
|
|
|
import com.uas.sso.logging.RegisterBufferedLogger;
|
|
|
+import com.uas.sso.service.SettingService;
|
|
|
+import com.uas.sso.service.TokenService;
|
|
|
import com.uas.sso.service.UserService;
|
|
|
+import com.uas.sso.util.StringUtil;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Controller;
|
|
|
import org.springframework.ui.ModelMap;
|
|
|
@@ -27,11 +33,29 @@ public class PersonalRegisterController extends BaseController {
|
|
|
@Autowired
|
|
|
private UserService userService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private TokenService tokenService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SettingService settingService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SmsService smsService;
|
|
|
+
|
|
|
private RegisterBufferedLogger registerLogger = new RegisterBufferedLogger();
|
|
|
|
|
|
+ /**
|
|
|
+ * 注册个人信息
|
|
|
+ *
|
|
|
+ * @param user 用户信息(需要会员名,手机号,手机号所属区域,密码)
|
|
|
+ * @param appId 注册应用标志
|
|
|
+ * @param code 验证码
|
|
|
+ * @param token 验证码tokenId
|
|
|
+ * @return 成功:success(),失败:error("错误码", "错误信息")
|
|
|
+ */
|
|
|
@RequestMapping(value = "/register", method = RequestMethod.POST)
|
|
|
@ResponseBody
|
|
|
- public ModelMap register(User user, String appId) {
|
|
|
+ public ModelMap register(User user, String appId, String code, String token) {
|
|
|
// 获取参数
|
|
|
String vipName = user.getVipName();
|
|
|
String mobile = user.getMobile();
|
|
|
@@ -49,6 +73,13 @@ public class PersonalRegisterController extends BaseController {
|
|
|
return error("400", "手机号不能为空");
|
|
|
}
|
|
|
|
|
|
+ // 校验验证码
|
|
|
+ ModelMap checkResult = checkCode(code, token);
|
|
|
+ if (checkResult.get(Const.SUCCESS) == null) {
|
|
|
+ // 校验不成功,返回校验的错误信息
|
|
|
+ return checkResult;
|
|
|
+ }
|
|
|
+
|
|
|
// 校验手机号
|
|
|
if (Const.CONTINENT.equals(mobileArea)) {
|
|
|
if (!mobile.matches(Const.REGEXP_MOBILE_CONTINENT)) {
|
|
|
@@ -74,4 +105,61 @@ public class PersonalRegisterController extends BaseController {
|
|
|
|
|
|
return success();
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取验证码
|
|
|
+ *
|
|
|
+ * @param tel 手机号
|
|
|
+ * @return success(tokenId)
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/checkCode", method = RequestMethod.GET)
|
|
|
+ @ResponseBody
|
|
|
+ public ModelMap getCode(String tel) {
|
|
|
+ String code = StringUtil.getRandomNumber(6);
|
|
|
+ Token token = new Token(code, 10*60);
|
|
|
+ tokenService.save(token);
|
|
|
+ ModelMap data = new ModelMap();
|
|
|
+ data.put("checkcode", code);
|
|
|
+ request.getSession().setAttribute("token", token.getId());
|
|
|
+ // 手机短信
|
|
|
+ try {
|
|
|
+ if (!StringUtils.isEmpty(tel)) {
|
|
|
+ Setting smsTplId = settingService.findOne("templateForSendSmsWhenRegister");
|
|
|
+ if (!StringUtils.isEmpty(smsTplId)) {
|
|
|
+ smsService.send(smsTplId.getValue(), tel, new Object[]{code});
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return new ModelMap("token", token.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 校验验证码
|
|
|
+ *
|
|
|
+ * @param code 验证码
|
|
|
+ * @param token 验证码tokenId
|
|
|
+ * @return 验证成功:success(),验证失败:error("错误信息")
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/checkCode", method = RequestMethod.POST)
|
|
|
+ @ResponseBody
|
|
|
+ public ModelMap checkCode(String code, String token) {
|
|
|
+ // 校验参数
|
|
|
+ if (StringUtils.isEmpty(token) || StringUtils.isEmpty(token)) {
|
|
|
+ return error("参数错误");
|
|
|
+ }
|
|
|
+ Token existToken = tokenService.findOne(token);
|
|
|
+ if (existToken == null || existToken.isExpired()) {
|
|
|
+ return error("验证码已经失效,请重新获取");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 校验验证码
|
|
|
+ String existCode = existToken.getBind().toString();
|
|
|
+ if (!code.equals(existCode)) {
|
|
|
+ return error("验证码错误");
|
|
|
+ }
|
|
|
+
|
|
|
+ return success();
|
|
|
+ }
|
|
|
}
|