|
@@ -1,6 +1,7 @@
|
|
|
package com.qmth.sop.server.api;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.google.gson.reflect.TypeToken;
|
|
@@ -110,7 +111,6 @@ public class SysController {
|
|
|
throw ExceptionResultEnum.ERROR.exception("查出多个用户");
|
|
|
}
|
|
|
sysUser = sysUserList.get(0);
|
|
|
- Optional.ofNullable(sysUser).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未查询到用户"));
|
|
|
|
|
|
if (!Objects.equals(sysUser.getPassword(), login.getPassword())) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("用户名或密码错误");
|
|
@@ -130,7 +130,6 @@ public class SysController {
|
|
|
throw ExceptionResultEnum.ERROR.exception("查出多个用户");
|
|
|
}
|
|
|
sysUser = sysUserList.get(0);
|
|
|
- Optional.ofNullable(sysUser).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未查询到用户"));
|
|
|
|
|
|
// 校验验证码
|
|
|
sysUserService.checkSmsCode(sysUser.getId(), sysUser.getMobileNumber(), login.getCode());
|
|
@@ -220,12 +219,12 @@ public class SysController {
|
|
|
@RequestMapping(value = "/get_verify_code", method = RequestMethod.POST)
|
|
|
@ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = Object.class)})
|
|
|
@Aac(auth = BOOL.FALSE)
|
|
|
- public Result getVerifyCode(@RequestBody LoginParam loginParam) {
|
|
|
- Optional.ofNullable(loginParam.getMobileNumber()).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("手机号不能为空"));
|
|
|
- List<SysUser> userList = sysUserService.list(new QueryWrapper<SysUser>().lambda().eq(SysUser::getMobileNumber, loginParam.getMobileNumber()));
|
|
|
+ public Result getVerifyCode(@RequestBody LoginParam login) {
|
|
|
+ Optional.ofNullable(login.getMobileNumber()).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("手机号不能为空"));
|
|
|
+ List<SysUser> userList = sysUserService.list(new QueryWrapper<SysUser>().lambda().eq(SysUser::getMobileNumber, login.getMobileNumber()));
|
|
|
|
|
|
- if (!loginParam.getMobileNumber().matches(SystemConstant.REGULAR_EXPRESSION_OF_PHONE)) {
|
|
|
- throw ExceptionResultEnum.ERROR.exception("手机号[" + loginParam.getMobileNumber() + "]不符合输入规范");
|
|
|
+ if (!login.getMobileNumber().matches(SystemConstant.REGULAR_EXPRESSION_OF_PHONE)) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("手机号[" + login.getMobileNumber() + "]不符合输入规范");
|
|
|
}
|
|
|
|
|
|
//用户不存在
|
|
@@ -240,7 +239,7 @@ public class SysController {
|
|
|
if (!sysUser.getEnable()) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("手机号被禁用");
|
|
|
}
|
|
|
- return ResultUtil.ok(basicVerifyCodeService.sendVeirfyCode(loginParam.getMobileNumber(), sysUser));
|
|
|
+ return ResultUtil.ok(basicVerifyCodeService.sendVeirfyCode(login.getMobileNumber(), sysUser));
|
|
|
}
|
|
|
|
|
|
@ApiOperation(value = "查询用户权限")
|
|
@@ -289,4 +288,55 @@ public class SysController {
|
|
|
}.getType());
|
|
|
return ResultUtil.ok(orgDtoNotTreeList);
|
|
|
}
|
|
|
+
|
|
|
+ @ApiOperation(value = "忘记密码")
|
|
|
+ @RequestMapping(value = "/forget_password", method = RequestMethod.POST)
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = Object.class)})
|
|
|
+ @Aac(auth = BOOL.FALSE)
|
|
|
+ @Transactional
|
|
|
+ public Result forgetPassword(@RequestBody LoginParam login) throws NoSuchAlgorithmException {
|
|
|
+ Optional.ofNullable(login.getMobileNumber()).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("手机号不能为空"));
|
|
|
+ Optional.ofNullable(login.getCode()).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("验证码不能为空"));
|
|
|
+ Optional.ofNullable(login.getPassword()).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("密码不能为空"));
|
|
|
+
|
|
|
+ SysConfig sysConfig = commonCacheService.addSysConfigCache(SystemConstant.SMS_NORMAL_CODE);
|
|
|
+ Optional.ofNullable(sysConfig).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置万能短信验证码"));
|
|
|
+
|
|
|
+ List<SysUser> sysUserList = sysUserService.list(new QueryWrapper<SysUser>().lambda().eq(SysUser::getMobileNumber, login.getMobileNumber()));
|
|
|
+ if (CollectionUtils.isEmpty(sysUserList)) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("用户不存在");
|
|
|
+ }
|
|
|
+ if (sysUserList.size() > 1) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("查出多个用户");
|
|
|
+ }
|
|
|
+ SysUser sysUser = sysUserList.get(0);
|
|
|
+
|
|
|
+ // 校验验证码
|
|
|
+ sysUserService.checkSmsCode(sysUser.getId(), sysUser.getMobileNumber(), login.getCode());
|
|
|
+
|
|
|
+ if (!Objects.equals(sysConfig.getConfigValue().trim(), login.getCode().trim())) {
|
|
|
+ sysUserService.expiredVerifyCode(sysUser.getId(), sysUser.getMobileNumber());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!Objects.equals(sysUser.getPassword(), login.getPassword())) {
|
|
|
+ boolean success = sysUserService.update(new UpdateWrapper<SysUser>().lambda().eq(SysUser::getId, sysUser.getId())
|
|
|
+ .set(SysUser::getPassword, login.getPassword())
|
|
|
+ .set(SysUser::getUpdateTime, System.currentTimeMillis()));
|
|
|
+ if (success) {
|
|
|
+ commonCacheService.updateUserCache(sysUser.getId());
|
|
|
+ //修改密码后,需要踢下线重新登录
|
|
|
+ sysUserService.removeUserInfo(sysUser.getId(), true);
|
|
|
+ }
|
|
|
+ return ResultUtil.ok(success);
|
|
|
+ } else {
|
|
|
+ return ResultUtil.ok(true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation(value = "修改密码")
|
|
|
+ @RequestMapping(value = "/update_password", method = RequestMethod.POST)
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = Object.class)})
|
|
|
+ public Result updatePassword(@RequestBody SysUser sysUser) throws NoSuchAlgorithmException {
|
|
|
+ return ResultUtil.ok(sysUserService.updatePassword(sysUser));
|
|
|
+ }
|
|
|
}
|