diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserController.java index ce6fd12..4817b5b 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserController.java @@ -16,8 +16,8 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; -@RequestMapping("/data/ed/user") @RestController +@RequestMapping("/data/ed/user") public class UserController { @Resource @@ -102,6 +102,13 @@ public class UserController { } } + @RequiredRole(AdminTypeEnum.SYSTEM) + @PutMapping("/changePassword") + @UserOperation(value="修改了用户密码", modelName = UserOperationModuleEnum.USER) + public ElectromagneticResult changePassword(@RequestBody ChangePasswordRequest request) { + return userService.changePassword(request.getUserId(), request.getOldPassword(), request.getNewPassword()); + } + @RequiredRole(AdminTypeEnum.SECURITY) @GetMapping(value = "/resetPassword/{userId}") @UserOperation(value="重置了密码", modelName = UserOperationModuleEnum.USER) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/ChangePasswordRequest.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/ChangePasswordRequest.java new file mode 100644 index 0000000..44cd774 --- /dev/null +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/ChangePasswordRequest.java @@ -0,0 +1,32 @@ +package com.electromagnetic.industry.software.manage.pojo.req; + +public class ChangePasswordRequest { + private String userId; + private String oldPassword; + private String newPassword; + + // Getters and Setters + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getOldPassword() { + return oldPassword; + } + + public void setOldPassword(String oldPassword) { + this.oldPassword = oldPassword; + } + + public String getNewPassword() { + return newPassword; + } + + public void setNewPassword(String newPassword) { + this.newPassword = newPassword; + } +} diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/UserService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/UserService.java index 6ea227a..d599810 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/UserService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/UserService.java @@ -91,4 +91,13 @@ public interface UserService { * @param userId */ Boolean resetPassword(String userId); + + /** + * + * @param userId 用户ID + * @param oldPassword + * @param newPassword + * @return + */ + ElectromagneticResult changePassword(String userId, String oldPassword, String newPassword); } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java index 0d02056..afd5662 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java @@ -284,6 +284,31 @@ public class UserServiceImpl implements UserService { return Boolean.TRUE; } + /** + * 修改用户密码 + * + * @param userId 用户ID + * @param oldPassword 旧密码 + * @param newPassword 新密码 + * @return 修改结果 + */ + @Override + public ElectromagneticResult changePassword(String userId, String oldPassword, String newPassword) { + User user = userMapper.getSingleUser(userId); + if (user == null) { + return ElectromagneticResultUtil.fail("53106", "USER_NOT_FOUND"); + } + + if (!matchPassword(user, oldPassword)) { + return ElectromagneticResultUtil.fail("53107", "OLD_PASSWORD_INCORRECT"); + } + + user.setUserPwd(SignUtils.MD5(newPassword + user.getSalt())); + user.setModifier(UserThreadLocal.getUserId()); + user.setModifierName(UserThreadLocal.getUsername()); + return ElectromagneticResultUtil.success(userMapper.modify(user) > 0); + } + /** * 重置密码 * diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/ElectromagneticErrorEnum.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/ElectromagneticErrorEnum.java index 9a00cf4..259be3c 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/ElectromagneticErrorEnum.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/ElectromagneticErrorEnum.java @@ -159,6 +159,8 @@ public enum ElectromagneticErrorEnum implements ErrorEnum { TESTDRILLINGDATA_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53103", "TESTDRILLINGDATA_ERROR", "下钻服务测试失败!"), DRILLINGCONFIG_ORGLEVE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53104", " DRILLINGCONFIG_ORGLEVE_ERROR", "下钻机构权限勾选不正确!"), BRANCH_ORGANIZATION_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53105", "BRANCH_ORGANIZATION_ERROR", "获取用户配置机构信息!"), + USER_NOT_FOUND(ErrorLevels.ERROR, ErrorTypes.BIZ, "53106", "USER_NOT_FOUND", "用户不存在"), + OLD_PASSWORD_INCORRECT(ErrorLevels.ERROR, ErrorTypes.BIZ, "53107", "OLD_PASSWORD_INCORRECT", "旧密码不正确"), ;