| 
					
				 | 
			
			
				@@ -28,6 +28,8 @@ import org.springframework.web.bind.annotation.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.web.multipart.MultipartFile; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import javax.servlet.http.HttpServletResponse; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.net.URLDecoder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.nio.charset.StandardCharsets; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -56,7 +58,7 @@ public class SysUserController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 新增用户操作。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @param sysUserDto           新增用户对象。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param sysUserDto 新增用户对象。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return 应答结果对象,包含新增用户的主键Id。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @ApiOperationSupport(ignoreParameters = { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -101,7 +103,7 @@ public class SysUserController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 更新用户操作。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @param sysUserDto           更新用户对象。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param sysUserDto 更新用户对象。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return 应答结果对象。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @ApiOperationSupport(ignoreParameters = { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -159,7 +161,54 @@ public class SysUserController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return ResMsg.error(CodeEnum.ARGUMENT_NULL_EXIST.getCode(), CodeEnum.ARGUMENT_NULL_EXIST.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!sysUserService.changePassword(userId + "", appConfig.getDefaultUserPassword())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return ResMsg.error(CodeEnum.DATA_NOT_EXIST.getCode(), CodeEnum.DATA_NOT_EXIST.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return ResMsg.error(CodeEnum.DATA_NOT_EXIST); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return new ResMsg(CodeEnum.OK); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 修改密码操作。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param sysUserDto 指定用户 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 应答结果对象。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping("/updatePassword") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public ResMsg updatePassword(@RequestBody SysUserDto sysUserDto) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (MyCommonUtil.existBlankArgument(sysUserDto.getUserId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return ResMsg.error(CodeEnum.ARGUMENT_NULL_EXIST); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!sysUserService.changePassword(sysUserDto.getUserId() + "", sysUserDto.getPassword())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return ResMsg.error(CodeEnum.DATA_NOT_EXIST); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return new ResMsg(CodeEnum.OK); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 用户修改自己的密码 (验证新旧密码) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 应答结果对象。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping("/changePassword") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public ResMsg changePassword(@RequestBody SysUserDto sysUserDto) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (MyCommonUtil.existBlankArgument(sysUserDto.getPassword(), sysUserDto.getOldPassword())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return ResMsg.error(CodeEnum.ARGUMENT_NULL_EXIST); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        TokenData tokenData = TokenData.takeFromRequest(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SysUser user = sysUserService.getById(tokenData.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //String oldPass = URLDecoder.decode(sysUserDto.getOldPassword(), StandardCharsets.UTF_8.name()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // NOTE: 第一次使用时,请务必阅读ApplicationConstant.PRIVATE_KEY的代码注释。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 执行RsaUtil工具类中的main函数,可以生成新的公钥和私钥。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //oldPass = RsaUtil.encrypt(oldPass, ApplicationConstant.PUBLIC_KEY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (user == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return ResMsg.error(CodeEnum.ACCOUNT_NO_PASSWORD_ERROR); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!passwordEncoder.matches(sysUserDto.getOldPassword(), user.getPassword())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return ResMsg.error(CodeEnum.OLD_PWD_ERROR); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String newPass = URLDecoder.decode(sysUserDto.getPassword(), StandardCharsets.UTF_8.name()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        newPass = RsaUtil.encrypt(newPass, ApplicationConstant.PUBLIC_KEY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!sysUserService.changePassword(tokenData.getUserId(), newPass)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return ResMsg.error(CodeEnum.USER_NOT_FIND); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return new ResMsg(CodeEnum.OK); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 |