用户,社交接口

Change-Id: I10d13773cbe4bbcf3b69a2038cdf7aa9ba54b6df
diff --git a/src/main/java/com/example/myproject/controller/DynamicController.java b/src/main/java/com/example/myproject/controller/DynamicController.java
new file mode 100644
index 0000000..db1d0a2
--- /dev/null
+++ b/src/main/java/com/example/myproject/controller/DynamicController.java
@@ -0,0 +1,107 @@
+package com.example.myproject.controller;
+
+import com.example.myproject.entity.UserDynamic;
+import com.example.myproject.service.DynamicService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/echo/dynamic")
+public class DynamicController {
+
+    @Autowired
+    private DynamicService dynamicService;
+
+    // 创建好友动态接口
+    @PostMapping("/{user_id}/createDynamic")
+    public Map<String, Object> createDynamic(@PathVariable("user_id") Long userId,
+                                             @RequestParam(value = "title", required = false) String title,
+                                             @RequestParam(value = "content") String content,
+                                             @RequestParam(value = "image_url", required = false) MultipartFile[] imageFiles) {
+        return dynamicService.createDynamic(userId, title, content, imageFiles);
+    }
+
+    //删除好友动态
+    @DeleteMapping("/me/deleteDynamic/{dynamic_id}")
+    public ResponseEntity<String> deleteDynamic(@PathVariable("dynamic_id") Long dynamicId) {
+        dynamicService.deleteDynamic(dynamicId);
+        return ResponseEntity.ok("动态删除成功");
+    }
+
+    //好友动态评论
+    @PostMapping("/{user_id}/feeds/{dynamic_id}/comments")
+    public ResponseEntity<Map<String, Object>> addComment(
+            @PathVariable("user_id") Long userId,
+            @PathVariable("dynamic_id") Long dynamicId,
+            @RequestBody Map<String, String> content) {
+
+        String commentContent = content.get("content");  // 获取评论内容
+        Map<String, Object> response = dynamicService.addComment(userId, dynamicId, commentContent);
+
+        return ResponseEntity.ok(response);
+    }
+
+    //获取某个好友的所有动态
+    @GetMapping("/{user_id}/getAdynamic")
+    public ResponseEntity<Map<String, Object>> getAllUserDynamics(@PathVariable("user_id") Long userId) {
+        Map<String, Object> response = dynamicService.getAllUserDynamics(userId);
+
+        if (response == null || response.isEmpty()) {
+            return ResponseEntity.noContent().build();
+        }
+
+        // 返回响应
+        return ResponseEntity.ok(response);
+    }
+
+    @GetMapping("/{user_id}/getAllDynamics")
+    public ResponseEntity<Map<String, Object>> getAllUserAndFriendsDynamics(@PathVariable("user_id") Long userId) {
+        // 获取当前用户所有好友的ID
+        List<Long> friendIds = dynamicService.getAllFriendIds(userId);
+        friendIds.add(userId);
+        Map<String, Object> response = dynamicService.getAllUserAndFriendsDynamics(friendIds);
+
+        if (response == null || response.isEmpty()) {
+            return ResponseEntity.noContent().build();
+        }
+
+        return ResponseEntity.ok(response);
+    }
+
+    //点赞好友动态
+    @PostMapping("/like")
+    public ResponseEntity<String> likeDynamic(@RequestBody Map<String, Long> request) {
+        Long userId = request.get("userId");
+        Long dynamicId = request.get("dynamicId");
+        // 执行点赞
+        boolean success = dynamicService.likeDynamic(userId, dynamicId);
+
+        if (success) {
+            return ResponseEntity.ok("Like successful");
+        } else {
+            return ResponseEntity.badRequest().body("Like failed");
+        }
+    }
+
+    @DeleteMapping("/unlike")
+    public ResponseEntity<String> unlikeDynamic(@RequestBody Map<String, Long> request) {
+        Long userId = request.get("userId");
+        Long dynamicId = request.get("dynamicId");
+
+        // 执行取消点赞
+        boolean success = dynamicService.unlikeDynamic(userId, dynamicId);
+
+        if (success) {
+            return ResponseEntity.ok("Unlike successful");
+        } else {
+            return ResponseEntity.badRequest().body("Unlike failed");
+        }
+    }
+
+
+}