Browse Source

fix: 填报端修改密码

new-ays
wzz 3 months ago
parent
commit
9860ba4d56
  1. 50
      acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/DmsLoginController.java
  2. 1
      acupuncture-framework/src/main/java/com/acupuncture/framework/web/service/UserDetailsServiceImpl.java
  3. 2
      acupuncture-system/src/main/java/com/acupuncture/system/domain/vo/DmsLoginUserVo.java
  4. 5
      acupuncture-system/src/main/java/com/acupuncture/system/service/DmsLoginService.java
  5. 6
      acupuncture-system/src/main/java/com/acupuncture/system/service/impl/DmsLoginServiceImpl.java

50
acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/DmsLoginController.java

@ -1,5 +1,6 @@
package com.acupuncture.web.controller.web;
import com.acupuncture.common.annotation.DataSource;
import com.acupuncture.common.annotation.Log;
import com.acupuncture.common.constant.Constants;
import com.acupuncture.common.core.domain.AjaxResult;
@ -8,6 +9,7 @@ import com.acupuncture.common.core.domain.entity.SysUser;
import com.acupuncture.common.core.domain.model.LoginBody;
import com.acupuncture.common.core.domain.model.LoginUser;
import com.acupuncture.common.enums.BusinessType;
import com.acupuncture.common.enums.DataSourceType;
import com.acupuncture.common.utils.SecurityUtils;
import com.acupuncture.framework.web.service.SysPermissionService;
import com.acupuncture.framework.web.service.TokenService;
@ -23,6 +25,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Map;
import java.util.Set;
/**
@ -53,6 +56,7 @@ public class DmsLoginController {
* @return 结果
*/
@PostMapping("/login")
@DataSource(DataSourceType.MASTER)
public AjaxResult login(@RequestBody LoginBody loginBody) {
AjaxResult ajax = AjaxResult.success();
// 生成令牌
@ -81,14 +85,48 @@ public class DmsLoginController {
return ajax;
}
@PutMapping("/resetPwd")
public JsonResponse<Integer> resetPwd(@RequestBody DmsLoginUserVo.DmsUserVo user) {
// webDmsLoginService.checkUserAllowed(user);
// webDmsLoginService.checkUserDataScope(user.getUserId());
user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
return JsonResponse.ok(dmsLoginService.resetPwd(user));
/**
* 重置密码
*/
@Log(title = "个人信息", businessType = BusinessType.UPDATE)
@PutMapping("/updatePwd")
@DataSource(DataSourceType.MASTER)
public AjaxResult updatePwd(@RequestBody Map<String, String> params)
{
String oldPassword = params.get("oldPassword");
String newPassword = params.get("newPassword");
LoginUser loginUser = SecurityUtils.getLoginUser();
Long userId = loginUser.getUserId();
String userName = loginUser.getUsername();
String password = loginUser.getPassword();
if (!SecurityUtils.matchesPassword(oldPassword, password))
{
return AjaxResult.error("修改密码失败,旧密码错误");
}
if (SecurityUtils.matchesPassword(newPassword, password))
{
return AjaxResult.error("新密码不能与旧密码相同");
}
newPassword = SecurityUtils.encryptPassword(newPassword);
if (dmsLoginService.resetPwd(userId, userName, newPassword) > 0)
{
// 更新缓存用户密码
loginUser.getUser().setPassword(newPassword);
tokenService.setLoginUser(loginUser);
return AjaxResult.success("操作成功");
}
return AjaxResult.error("修改密码异常,请联系管理员");
}
// @PutMapping("/resetPwd")
// public JsonResponse<Integer> resetPwd(@RequestBody DmsLoginUserVo.DmsUserVo user) {
//// webDmsLoginService.checkUserAllowed(user);
//// webDmsLoginService.checkUserDataScope(user.getUserId());
// user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
// return JsonResponse.ok(dmsLoginService.resetPwd(user));
// }
@PostMapping("/queryTenantById")
public JsonResponse<DmsTenant> queryTenantById(@RequestBody DmsLoginUserVo.Query dto){
return JsonResponse.ok(dmsLoginService.queryById(dto.getId()));

1
acupuncture-framework/src/main/java/com/acupuncture/framework/web/service/UserDetailsServiceImpl.java

@ -100,6 +100,7 @@ public class UserDetailsServiceImpl implements UserDetailsService
{
SysUser sysUser = new SysUser();
sysUser.setUserName(user.getUsername());
sysUser.setPassword(user.getPassword());
sysUser.setUserId(user.getDmsUserId());
return new LoginUser(user.getDmsUserId(), user.getHospitalId(), sysUser, CollUtil.newHashSet(), user.getTenantId() ,user.getScoreId());
}

2
acupuncture-system/src/main/java/com/acupuncture/system/domain/vo/DmsLoginUserVo.java

@ -22,7 +22,7 @@ public class DmsLoginUserVo {
}
@Data
public static class DmsUserVo {
private Integer id;
private Long id;
private Long tenantId;
private String userName;

5
acupuncture-system/src/main/java/com/acupuncture/system/service/DmsLoginService.java

@ -34,10 +34,11 @@ public interface DmsLoginService {
/**
* 重置用户密码
*
* @param user 用户信息
* @param username 用户信息
* @param password 密码
* @return 结果
*/
public int resetPwd(DmsLoginUserVo.DmsUserVo user);
public int resetPwd(Long userId, String username, String password);
/**
* 根据租户ID获取数据源

6
acupuncture-system/src/main/java/com/acupuncture/system/service/impl/DmsLoginServiceImpl.java

@ -54,7 +54,11 @@ public class DmsLoginServiceImpl implements DmsLoginService {
}
@Override
public int resetPwd(DmsLoginUserVo.DmsUserVo user) {
public int resetPwd(Long userId, String username, String password) {
DmsLoginUserVo.DmsUserVo user = new DmsLoginUserVo.DmsUserVo();
user.setId(userId);
user.setUserName(username);
user.setPassword(password);
return dmsUserDao.updateUser(user);
}

Loading…
Cancel
Save