|
@@ -967,4 +967,179 @@ public class SysUserController extends BaseController
|
|
|
return AjaxResult.success();
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 用户注册
|
|
|
+ */
|
|
|
+ @Transactional(rollbackFor=Exception.class)
|
|
|
+ @GetMapping("/registerUser")
|
|
|
+ @Log(title = "用户注册", businessType = BusinessType.INSERT)
|
|
|
+ public R registerUser(@RequestParam(required = false) String company,
|
|
|
+ @RequestParam(required = false) String username,
|
|
|
+ @RequestParam(required = false) String phone,
|
|
|
+ @RequestParam(required = false) String code,
|
|
|
+ @RequestParam(required = false) String shortMessageCode,
|
|
|
+ @RequestParam(required = false) String password,
|
|
|
+ @RequestParam(required = false) String again,
|
|
|
+ HttpServletResponse resp)
|
|
|
+ {
|
|
|
+
|
|
|
+ SysUser checkUser = userService.selectUserByUserName(phone);
|
|
|
+ if(checkUser != null){
|
|
|
+ return R.fail("当前手机号已注册,请检查后重试!");
|
|
|
+ }
|
|
|
+ String checkPassword = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$";
|
|
|
+ Pattern regePassword = Pattern.compile(checkPassword);
|
|
|
+ Matcher matcherPassword = regePassword.matcher(password);
|
|
|
+ boolean isMatPassword = matcherPassword.matches();
|
|
|
+ if (!isMatPassword) {
|
|
|
+ return R.fail("密码请包含数字,英文,字符中的两种以上,长度6-20位");
|
|
|
+ }
|
|
|
+ if(!password.equals(again)){
|
|
|
+ return R.fail("两次输入密码不一致,请重新输入!");
|
|
|
+ }
|
|
|
+ Map<String, Object> resMap = new HashMap<>();
|
|
|
+ // 验证短信验证码
|
|
|
+ if(CommonUtil.isNotEmpty(shortMessageCode)){
|
|
|
+ LambdaQueryWrapper<PubVerifyCode> pubVerifyCode = new LambdaQueryWrapper<>();
|
|
|
+ pubVerifyCode.eq(PubVerifyCode::getPvcPhone,phone);
|
|
|
+ pubVerifyCode.eq(PubVerifyCode::getPvcCode,shortMessageCode);
|
|
|
+ pubVerifyCode.orderByDesc(PubVerifyCode::getPvcLastTime);
|
|
|
+ List<PubVerifyCode> staffInf = iPubVerifyCodeService.findPubVerifyCodes(pubVerifyCode);
|
|
|
+ if(staffInf.size()>0){
|
|
|
+ if("01".equals(staffInf.get(0).getPvcState())){
|
|
|
+ return R.fail("验证码已失效,请重新获取!");
|
|
|
+ }
|
|
|
+ //取得指定时间间隔后的系统时间
|
|
|
+ GregorianCalendar calendar = (GregorianCalendar) Calendar.getInstance();
|
|
|
+ calendar.add( Calendar.MINUTE, -5);
|
|
|
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
|
|
|
+ if(formatter.format(calendar.getTime()).compareTo(formatter.format(staffInf.get(0).getPvcLastTime()))>0){
|
|
|
+ return R.fail("验证码已失效,请重新获取!");
|
|
|
+ }
|
|
|
+
|
|
|
+ staffInf.get(0).setPvcState("01");
|
|
|
+ iPubVerifyCodeService.updatePubVerifyCode(staffInf.get(0));
|
|
|
+
|
|
|
+ }else{
|
|
|
+ return R.fail("验证码错误,请重新输入!");
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ return R.fail("请填写验证码");
|
|
|
+ }
|
|
|
+ //创建企业
|
|
|
+ SysCompany sysCompany = new SysCompany();
|
|
|
+ String id = IdUtils.fastSimpleUUID();
|
|
|
+ sysCompany.setScyId(id);
|
|
|
+ sysCompany.setScyType("02");
|
|
|
+ sysCompany.setScyName(company);
|
|
|
+ sysCompany.setCreateTime(DateUtils.getNowDate());
|
|
|
+ companyService.save(sysCompany);
|
|
|
+ // 创建用户
|
|
|
+ SysUser sysUser = new SysUser();
|
|
|
+ sysUser.setUserName(phone);
|
|
|
+ sysUser.setNickName(username);
|
|
|
+ sysUser.setPassword(SecurityUtils.encryptPassword(password));
|
|
|
+ sysUser.setCompanyId(id);
|
|
|
+ userService.insertUser(sysUser);
|
|
|
+ sysUser = userService.selectUserByUserName(phone);
|
|
|
+ //创建企业用户关联
|
|
|
+ SysUserCompanyRel userCompanyRel = new SysUserCompanyRel();
|
|
|
+ userCompanyRel.setSucrUserId(sysUser.getUserId());
|
|
|
+ userCompanyRel.setSucrCompanyId(id);
|
|
|
+ userCompanyRel.setSucrHandler("0");
|
|
|
+ userCompanyRel.setSucrDeptId(sysUser.getDeptId());
|
|
|
+ userCompanyRel.setCreateTime(DateUtils.getNowDate());
|
|
|
+ userCompanyRel.setCreateBy(CommonUtil.objToString(sysUser.getUserId()));
|
|
|
+ userCompanyRelService.createSysUserCompanyRel(userCompanyRel);
|
|
|
+
|
|
|
+ LoginUser sysUserVo = new LoginUser();
|
|
|
+ sysUserVo.setSysUser(sysUser);
|
|
|
+ resMap.put("code", "0");
|
|
|
+ resMap.put("message", "用户未绑定企业");
|
|
|
+ resMap.put("loginUser", sysUserVo);
|
|
|
+ return R.ok(resMap);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 忘记密码
|
|
|
+ */
|
|
|
+ @GetMapping("/forgetUser")
|
|
|
+ @Log(title = "忘记密码验证", businessType = BusinessType.UPDATE)
|
|
|
+ public R forgetUser(@RequestParam(value = "phone", required = false) String phone,
|
|
|
+ @RequestParam(value = "code", required = false) String code,
|
|
|
+ @RequestParam(value = "shortMessageCode", required = false) String shortMessageCode)
|
|
|
+ {
|
|
|
+
|
|
|
+ SysUser checkUser = userService.selectUserByUserName(phone);
|
|
|
+ if(checkUser == null){
|
|
|
+ return R.fail("当前手机号未注册,请检查后重试!");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 验证短信验证码
|
|
|
+ if(CommonUtil.isNotEmpty(shortMessageCode)){
|
|
|
+ LambdaQueryWrapper<PubVerifyCode> pubVerifyCode = new LambdaQueryWrapper<>();
|
|
|
+ pubVerifyCode.eq(PubVerifyCode::getPvcPhone,phone);
|
|
|
+ pubVerifyCode.eq(PubVerifyCode::getPvcCode,shortMessageCode);
|
|
|
+ pubVerifyCode.orderByDesc(PubVerifyCode::getPvcLastTime);
|
|
|
+ List<PubVerifyCode> staffInf = iPubVerifyCodeService.findPubVerifyCodes(pubVerifyCode);
|
|
|
+ if(staffInf.size()>0){
|
|
|
+ if("01".equals(staffInf.get(0).getPvcState())){
|
|
|
+ return R.fail("验证码已失效,请重新获取!");
|
|
|
+ }
|
|
|
+ //取得指定时间间隔后的系统时间
|
|
|
+ GregorianCalendar calendar = (GregorianCalendar) Calendar.getInstance();
|
|
|
+ calendar.add( Calendar.MINUTE, -5);
|
|
|
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
|
|
|
+ if(formatter.format(calendar.getTime()).compareTo(formatter.format(staffInf.get(0).getPvcLastTime()))>0){
|
|
|
+ return R.fail("验证码已失效,请重新获取!");
|
|
|
+ }
|
|
|
+
|
|
|
+ staffInf.get(0).setPvcState("01");
|
|
|
+ iPubVerifyCodeService.updatePubVerifyCode(staffInf.get(0));
|
|
|
+
|
|
|
+ }else{
|
|
|
+ return R.fail("验证码错误,请重新输入!");
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ return R.fail("请填写验证码");
|
|
|
+ }
|
|
|
+
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改密码
|
|
|
+ */
|
|
|
+ @GetMapping("/updateUser")
|
|
|
+ @Log(title = "忘记密码修改", businessType = BusinessType.UPDATE)
|
|
|
+ public R updateUser(@RequestParam(value = "phone", required = false) String phone,
|
|
|
+ @RequestParam(value = "code", required = false) String code,
|
|
|
+ @RequestParam(value = "shortMessageCode", required = false) String shortMessageCode,
|
|
|
+ @RequestParam(value = "password", required = false) String password,
|
|
|
+ @RequestParam(value = "again", required = false) String again)
|
|
|
+ {
|
|
|
+
|
|
|
+ SysUser checkUser = userService.selectUserByUserName(phone);
|
|
|
+ if(checkUser == null){
|
|
|
+ return R.fail("当前手机号未注册,请检查后重试!");
|
|
|
+ }
|
|
|
+
|
|
|
+ String checkPassword = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$";
|
|
|
+ Pattern regePassword = Pattern.compile(checkPassword);
|
|
|
+ Matcher matcherPassword = regePassword.matcher(password);
|
|
|
+ boolean isMatPassword = matcherPassword.matches();
|
|
|
+ if (!isMatPassword) {
|
|
|
+ return R.fail("密码请包含数字,英文,字符中的两种以上,长度6-20位");
|
|
|
+ }
|
|
|
+ if(!password.equals(again)){
|
|
|
+ return R.fail("两次输入密码不一致,请重新输入!");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 修改密码
|
|
|
+ checkUser.setPassword(SecurityUtils.encryptPassword(password));
|
|
|
+ userService.updateUserLogin(checkUser);
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+
|
|
|
}
|