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; package com.acupuncture.web.controller.web;
import com.acupuncture.common.annotation.DataSource;
import com.acupuncture.common.annotation.Log; import com.acupuncture.common.annotation.Log;
import com.acupuncture.common.constant.Constants; import com.acupuncture.common.constant.Constants;
import com.acupuncture.common.core.domain.AjaxResult; 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.LoginBody;
import com.acupuncture.common.core.domain.model.LoginUser; import com.acupuncture.common.core.domain.model.LoginUser;
import com.acupuncture.common.enums.BusinessType; import com.acupuncture.common.enums.BusinessType;
import com.acupuncture.common.enums.DataSourceType;
import com.acupuncture.common.utils.SecurityUtils; import com.acupuncture.common.utils.SecurityUtils;
import com.acupuncture.framework.web.service.SysPermissionService; import com.acupuncture.framework.web.service.SysPermissionService;
import com.acupuncture.framework.web.service.TokenService; 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 org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Map;
import java.util.Set; import java.util.Set;
/** /**
@ -53,6 +56,7 @@ public class DmsLoginController {
* @return 结果 * @return 结果
*/ */
@PostMapping("/login") @PostMapping("/login")
@DataSource(DataSourceType.MASTER)
public AjaxResult login(@RequestBody LoginBody loginBody) { public AjaxResult login(@RequestBody LoginBody loginBody) {
AjaxResult ajax = AjaxResult.success(); AjaxResult ajax = AjaxResult.success();
// 生成令牌 // 生成令牌
@ -81,14 +85,48 @@ public class DmsLoginController {
return ajax; return ajax;
} }
@PutMapping("/resetPwd") /**
public JsonResponse<Integer> resetPwd(@RequestBody DmsLoginUserVo.DmsUserVo user) { * 重置密码
// webDmsLoginService.checkUserAllowed(user); */
// webDmsLoginService.checkUserDataScope(user.getUserId()); @Log(title = "个人信息", businessType = BusinessType.UPDATE)
user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); @PutMapping("/updatePwd")
return JsonResponse.ok(dmsLoginService.resetPwd(user)); @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") @PostMapping("/queryTenantById")
public JsonResponse<DmsTenant> queryTenantById(@RequestBody DmsLoginUserVo.Query dto){ public JsonResponse<DmsTenant> queryTenantById(@RequestBody DmsLoginUserVo.Query dto){
return JsonResponse.ok(dmsLoginService.queryById(dto.getId())); 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 sysUser = new SysUser();
sysUser.setUserName(user.getUsername()); sysUser.setUserName(user.getUsername());
sysUser.setPassword(user.getPassword());
sysUser.setUserId(user.getDmsUserId()); sysUser.setUserId(user.getDmsUserId());
return new LoginUser(user.getDmsUserId(), user.getHospitalId(), sysUser, CollUtil.newHashSet(), user.getTenantId() ,user.getScoreId()); 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 @Data
public static class DmsUserVo { public static class DmsUserVo {
private Integer id; private Long id;
private Long tenantId; private Long tenantId;
private String userName; 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 结果 * @return 结果
*/ */
public int resetPwd(DmsLoginUserVo.DmsUserVo user); public int resetPwd(Long userId, String username, String password);
/** /**
* 根据租户ID获取数据源 * 根据租户ID获取数据源

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

@ -54,7 +54,11 @@ public class DmsLoginServiceImpl implements DmsLoginService {
} }
@Override @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); return dmsUserDao.updateUser(user);
} }

Loading…
Cancel
Save