user module API

PUT /user/signature
PUT /user/password
PUT /user/avatar

Change-Id: I67e030092bbcfeba6118b26b013b9735a09f2d93
diff --git a/src/main/java/com/g9/g9backend/controller/UserController.java b/src/main/java/com/g9/g9backend/controller/UserController.java
index 38b4586..9315e8e 100644
--- a/src/main/java/com/g9/g9backend/controller/UserController.java
+++ b/src/main/java/com/g9/g9backend/controller/UserController.java
@@ -488,4 +488,58 @@
         GetUserDTO getUserDTO = new GetUserDTO(subscriberList);
         return ResponseEntity.ok(getUserDTO);
     }
+
+    /**
+     * 修改用户签名
+     *
+     * @param user 用户信息
+     * @return 用户签名修改结果
+     */
+    @PutMapping("/signature")
+    public ResponseEntity<String> modifySignature(@RequestBody User user) {
+        UpdateWrapper<User> userUpdate = new UpdateWrapper<>();
+        userUpdate.eq("user_id", user.getUserId()).set("signature", user.getSignature());
+        userService.update(userUpdate);
+
+        return ResponseEntity.ok("");
+    }
+
+    /**
+     * 修改用户密码
+     *
+     * @param modifyPasswordDTO 用户信息
+     * @return 用户密码修改结果
+     */
+    @PutMapping("/password")
+    public ResponseEntity<String> modifyPassword(@RequestBody ModifyPasswordDTO modifyPasswordDTO) {
+        // 检查密码是否正确
+        QueryWrapper<User> userQuery = new QueryWrapper<>();
+        userQuery.eq("user_id", modifyPasswordDTO.getUserId());
+        User user = userService.getOne(userQuery);
+        if (user.getPassword().equals(modifyPasswordDTO.getPassword())) {
+            UpdateWrapper<User> userUpdate = new UpdateWrapper<>();
+            userUpdate.eq("user_id", modifyPasswordDTO.getUserId()).set("password", modifyPasswordDTO.getNewPassword());
+            userService.update(userUpdate);
+            return ResponseEntity.ok("");
+        } else {
+            // 密码错误
+            logger.warn("Modify failed. Incorrect password for userID: {}", modifyPasswordDTO.getUserId());
+            return ResponseEntity.status(408).body("");
+        }
+    }
+
+    /**
+     * 修改用户头像
+     *
+     * @param user 用户信息
+     * @return 用户头像修改结果
+     */
+    @PutMapping("/avatar")
+    public ResponseEntity<String> modifyAvatar(@RequestBody User user) {
+        UpdateWrapper<User> userUpdate = new UpdateWrapper<>();
+        userUpdate.eq("user_id", user.getUserId()).set("avatar", user.getAvatar());
+        userService.update(userUpdate);
+
+        return ResponseEntity.ok("");
+    }
 }
\ No newline at end of file