Skip to content

Commit ce7c1af

Browse files
committed
优化修改密码不能修改的bug
1 parent 3dc0aa8 commit ce7c1af

File tree

6 files changed

+39
-10
lines changed

6 files changed

+39
-10
lines changed

admin-api/src/main/java/com/lmxdawn/admin/controller/admin/auth/LoginController.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
package com.lmxdawn.admin.controller.admin.auth;
22

33
import com.lmxdawn.admin.annotation.AdminAuthRuleAnnotation;
4-
import com.lmxdawn.admin.entity.AuthAdmin;
54
import com.lmxdawn.admin.enums.ResultEnum;
6-
import com.lmxdawn.admin.exception.JsonException;
75
import com.lmxdawn.admin.form.admin.LoginForm;
86
import com.lmxdawn.admin.form.admin.UpdatePasswordForm;
9-
import com.lmxdawn.admin.service.admin.AuthAdminService;
107
import com.lmxdawn.admin.service.admin.AuthLoginService;
118
import com.lmxdawn.admin.utils.ResultVOUtil;
129
import com.lmxdawn.admin.vo.ResultVO;
@@ -74,9 +71,9 @@ public ResultVO out(){
7471
*/
7572
@AdminAuthRuleAnnotation("")
7673
@PostMapping("/admin/auth/login/password")
77-
public ResultVO password(@Valid UpdatePasswordForm updatePasswordForm,
74+
public ResultVO password(@RequestBody @Valid UpdatePasswordForm updatePasswordForm,
7875
BindingResult bindingResult) {
79-
76+
System.out.println(updatePasswordForm);
8077
if (bindingResult.hasErrors()) {
8178
return ResultVOUtil.error(ResultEnum.PARAM_VERIFY_FALL.getCode(),
8279
bindingResult.getFieldError().getDefaultMessage());

admin-api/src/main/java/com/lmxdawn/admin/form/admin/UpdatePasswordForm.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@
33
import lombok.Data;
44

55
import javax.validation.constraints.NotEmpty;
6+
import javax.validation.constraints.NotNull;
67

78
/**
89
* 修改密码的表单
910
*/
1011
@Data
1112
public class UpdatePasswordForm {
1213

13-
@NotEmpty(message = "参数错误!")
14+
@NotNull(message = "参数错误!")
1415
private Long adminId;
1516

1617
@NotEmpty(message = "请输入旧密码")

admin-api/src/main/java/com/lmxdawn/admin/handler/GlobalExceptionHandler.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@
44
import com.lmxdawn.admin.exception.JsonException;
55
import com.lmxdawn.admin.utils.ResultVOUtil;
66
import com.lmxdawn.admin.vo.ResultVO;
7+
import lombok.extern.slf4j.Slf4j;
78
import org.springframework.web.bind.annotation.ExceptionHandler;
89
import org.springframework.web.bind.annotation.RestControllerAdvice;
910

1011
/**
1112
* 错误回调
1213
*/
1314
@RestControllerAdvice
15+
@Slf4j
1416
public class GlobalExceptionHandler {
1517

1618
// 拦截API异常
@@ -23,6 +25,7 @@ public ResultVO handlerJsonException(JsonException e) {
2325
// 拦截API异常
2426
@ExceptionHandler(value = RuntimeException.class)
2527
public ResultVO handlerRuntimeException(RuntimeException e) {
28+
log.error(e.getMessage());
2629
// 返回对应的错误信息
2730
return ResultVOUtil.error(ResultEnum.NOT_NETWORK);
2831
}

admin-api/src/main/java/com/lmxdawn/admin/service/admin/impl/AuthAdminServiceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public AuthAdmin findById(Long id) {
5454
*/
5555
@Override
5656
public AuthAdmin findPwdById(Long id) {
57-
return authAdminDao.findById(id);
57+
return authAdminDao.findPwdById(id);
5858
}
5959

6060
@Override

admin-api/src/main/java/com/lmxdawn/admin/service/admin/impl/AuthLoginServiceImpl.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,13 +120,16 @@ public boolean updatePassword(UpdatePasswordForm updatePasswordForm) {
120120
if (authAdmin == null) {
121121
throw new JsonException(ResultEnum.DATA_NOT);
122122
}
123+
String newPwd = PasswordUtil.authAdminPwd(updatePasswordForm.getOldPassword());
123124
// 旧密码不对
124-
if (!authAdmin.getPassword().equals(PasswordUtil.authAdminPwd(updatePasswordForm.getOldPassword()))) {
125+
if (authAdmin.getPassword() != null
126+
&& !authAdmin.getPassword().equals(newPwd)) {
125127
throw new JsonException(ResultEnum.DATA_NOT, "旧密码匹配失败");
126128
}
127129

128-
authAdmin.setPassword(updatePasswordForm.getNewPassword());
130+
AuthAdmin authAdminUp = new AuthAdmin();
131+
authAdminUp.setPassword(newPwd);
129132

130-
return authAdminService.updateAuthAdmin(authAdmin);
133+
return authAdminService.updateAuthAdmin(authAdminUp);
131134
}
132135
}

admin-api/src/test/com/lmxdawn/admin/service/admin/impl/AuthLoginServiceImplTest.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
package com.lmxdawn.admin.service.admin.impl;
22

33
import com.lmxdawn.admin.dto.admin.LoginUserInfoDTO;
4+
import com.lmxdawn.admin.entity.AuthAdmin;
45
import com.lmxdawn.admin.form.admin.LoginForm;
6+
import com.lmxdawn.admin.form.admin.UpdatePasswordForm;
7+
import com.lmxdawn.admin.service.admin.AuthAdminService;
58
import com.lmxdawn.admin.service.admin.AuthLoginService;
9+
import com.lmxdawn.admin.utils.PasswordUtil;
610
import org.junit.Test;
711
import org.junit.runner.RunWith;
812
import org.springframework.boot.test.context.SpringBootTest;
@@ -20,6 +24,8 @@ public class AuthLoginServiceImplTest {
2024

2125
@Resource
2226
private AuthLoginService authLoginService;
27+
@Resource
28+
private AuthAdminService authAdminService;
2329

2430
@Test
2531
public void loginToken() {
@@ -40,4 +46,23 @@ public void findByAdminId() {
4046
System.out.println(loginUserInfoDTO);
4147
assertNotNull(loginUserInfoDTO);
4248
}
49+
50+
@Test
51+
public void updatePassword() {
52+
53+
Long adminId = 1L;
54+
String oldPwd = "admin";
55+
String newPwd = "admin";
56+
UpdatePasswordForm updatePasswordForm = new UpdatePasswordForm();
57+
updatePasswordForm.setAdminId(adminId);
58+
updatePasswordForm.setNewPassword(newPwd);
59+
updatePasswordForm.setOldPassword(oldPwd);
60+
boolean b = authLoginService.updatePassword(updatePasswordForm);
61+
62+
AuthAdmin authAdmin = authAdminService.findPwdById(adminId);
63+
64+
assertNotNull(authAdmin);
65+
66+
assertEquals(authAdmin.getPassword(), PasswordUtil.authAdminPwd(newPwd));
67+
}
4368
}

0 commit comments

Comments
 (0)