UserRegisterController.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. package com.goafanti.user.controller;
  2. import java.util.Calendar;
  3. import java.util.UUID;
  4. import javax.annotation.Resource;
  5. import javax.validation.Valid;
  6. import org.apache.commons.lang3.StringUtils;
  7. import org.apache.log4j.Logger;
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.validation.BindingResult;
  10. import org.springframework.web.bind.annotation.RequestMapping;
  11. import org.springframework.web.bind.annotation.RequestMethod;
  12. import org.springframework.web.bind.annotation.ResponseBody;
  13. import com.goafanti.admin.service.AdminService;
  14. import com.goafanti.common.bo.Result;
  15. import com.goafanti.common.constant.AFTConstants;
  16. import com.goafanti.common.constant.ErrorConstants;
  17. import com.goafanti.common.controller.BaseController;
  18. import com.goafanti.common.enums.UserFields;
  19. import com.goafanti.common.model.User;
  20. import com.goafanti.common.utils.PasswordUtil;
  21. import com.goafanti.common.utils.TimeUtils;
  22. import com.goafanti.common.utils.VerifyCodeUtils;
  23. import com.goafanti.core.shiro.token.TokenManager;
  24. import com.goafanti.user.bo.InputUser;
  25. import com.goafanti.user.service.UserService;
  26. @Controller
  27. public class UserRegisterController extends BaseController {
  28. @Resource
  29. private UserService userService;
  30. @Resource(name = "passwordUtil")
  31. private PasswordUtil passwordUtil;
  32. Logger logger = Logger.getLogger(UserRegisterController.class);
  33. @Resource
  34. private AdminService adminService;
  35. /**
  36. * 用户注册
  37. *
  38. * @param user
  39. * @return
  40. */
  41. @RequestMapping(value = "/register", method = RequestMethod.POST)
  42. @ResponseBody
  43. public Result register(@Valid InputUser user, String companyName, String contacts, String mobileCode,
  44. BindingResult bindingResult) {
  45. Result res = new Result();
  46. if (bindingResult.hasErrors()) {
  47. res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
  48. UserFields.getFieldDesc(bindingResult.getFieldError().getField())));
  49. return res;
  50. }
  51. // 验证码15分钟有效
  52. if (TimeUtils.checkOverTime("register")) {
  53. res.getError().add(buildError(ErrorConstants.MCODE_OVERTIME_ERROR, "手机验证码超时失效"));
  54. return res;
  55. }
  56. if (!TokenManager.getSession().getAttribute(VerifyCodeUtils.M_CODE).equals(mobileCode.toLowerCase())) {
  57. res.getError().add(buildError(ErrorConstants.MCODE_ERROR, "手机验证码错误"));
  58. return res;
  59. }
  60. if (bindingResult.hasErrors()) {
  61. res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
  62. bindingResult.getFieldError().getField()));
  63. return res;
  64. }
  65. if (StringUtils.isBlank(user.getMobile())) {
  66. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "必须指定", "用户名"));
  67. } else if (StringUtils.isBlank(user.getPassword())) {
  68. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "必须指定", "密码"));
  69. } else {
  70. User u = userService.selectByMobieAndType(user.getMobile().trim(), user.getType());
  71. if (null != u) {
  72. res.getError().add(buildError(ErrorConstants.USER_ALREADY_EXIST, "用户名已存在"));
  73. }
  74. }
  75. if (res.getError().isEmpty()) {
  76. User us = new User();
  77. us.setId(UUID.randomUUID().toString());
  78. us.setMobile(user.getMobile().trim());
  79. us.setType(user.getType());
  80. us.setPassword(user.getPassword());
  81. Calendar now = Calendar.getInstance();
  82. now.set(Calendar.MILLISECOND, 0);
  83. us.setCreateTime(now.getTime());
  84. us.setPassword(passwordUtil.getEncryptPwd(us));
  85. us.setLvl(0);
  86. us.setSource(AFTConstants.USER_SOURCE_REGISTER);
  87. /*
  88. List<Admin> admins = adminService.selectAllAdmin();
  89. if (!admins.isEmpty()) {
  90. Collections.shuffle(admins);
  91. user.setAid(admins.get(0).getId());// 随机分配管理员
  92. }
  93. */
  94. us.setAid("2");//ID为"2"的管理员
  95. userService.insertRegister(us, contacts, companyName, user.getUsername());
  96. }
  97. return res;
  98. }
  99. }