zhoutg 6 anni fa
parent
commit
da7e21086b

+ 39 - 0
user-service/src/main/java/com/diagbot/facade/UserFacade.java

@@ -480,6 +480,45 @@ public class UserFacade extends UserServiceImpl {
     }
 
 
+    /**
+     * 修改密码
+     *
+     * @param password     原密码
+     * @param modifyPassword 新密码
+     * @return 修改密码是否成功
+     */
+    public Boolean modifyPassword(String password, String modifyPassword) {
+        if (StringUtil.isBlank(password)) {
+            throw new CommonException(CommonErrorCode.PARAM_IS_NULL,
+                    "请输入密码!");
+        }
+        if (StringUtil.isBlank(modifyPassword)) {
+            throw new CommonException(CommonErrorCode.PARAM_IS_NULL,
+                    "请输入新密码!");
+        }
+        if(password.equals(modifyPassword)) {
+            throw new CommonException(CommonErrorCode.PARAM_IS_NULL,
+                    "原密码和新密码不能相同!");
+        }
+        Long userId = Long.parseLong(UserUtils.getCurrentPrincipleID());
+        User user = this.getById(userId);
+        if (user == null) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
+                    "用户不存在【" + userId + "】");
+        }
+
+        PasswordEncoder passwordEncoder = PasswordEncoderFactories.createDelegatingPasswordEncoder();
+        if (!passwordEncoder.matches(password, user.getPassword())) {
+            throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, "原密码错误!");
+        }
+
+        String entryPassword = passwordEncoder.encode(password);
+        user.setPassword(entryPassword);
+        user.setGmtModified(new Date());
+        this.updateById(user);
+        return true;
+    }
+
     //---------------缓存演示开始-------------------------------------
 
     /**

+ 16 - 0
user-service/src/main/java/com/diagbot/vo/ModifyPasswordVO.java

@@ -0,0 +1,16 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description: 修改密码参数
+ * @Author: ztg
+ * @Date: 2018/9/28 13:14
+ */
+@Getter
+@Setter
+public class ModifyPasswordVO {
+    private String password; //原密码
+    private String modifyPassword; //新密码
+}

+ 6 - 4
user-service/src/main/java/com/diagbot/web/UserController.java

@@ -15,6 +15,7 @@ import com.diagbot.facade.UserFacade;
 import com.diagbot.vo.AppkeySecretVO;
 import com.diagbot.vo.BaseIdVO;
 import com.diagbot.vo.JwtVO;
+import com.diagbot.vo.ModifyPasswordVO;
 import com.diagbot.vo.PersonVO;
 import com.diagbot.vo.ResetPasswordVO;
 import com.diagbot.vo.UserInfoByIdPageVO;
@@ -141,13 +142,14 @@ public class UserController {
 
 
     @ApiOperation(value = "修改密码[by:zhoutg]",
-            notes = "username:用户名,必填<br>" +
-                    "password:密码, 必填<br> ")
+            notes = "password:原密码,必填<br>" +
+                    "modifyPassword:新密码, 必填<br> ")
     @PostMapping("/midifyPassword")
     @SysLogger("midifyPassword")
     @Transactional
-    public RespDTO<Boolean> midifyPassword(@RequestBody ResetPasswordVO resetPasswordVO) {
-        return userFacade.resetPassword(resetPasswordVO.getUsername(), resetPasswordVO.getPassword(), "Y");
+    public RespDTO<Boolean> midifyPassword(@RequestBody ModifyPasswordVO modifyPasswordVO) {
+        Boolean flag = userFacade.modifyPassword(modifyPasswordVO.getPassword(), modifyPasswordVO.getModifyPassword());
+        return RespDTO.onSuc(flag);
     }