package com.zhentao.userRelationships.controller; import com.zhentao.config.NullLogin; import com.zhentao.tool.TokenUtils; import com.zhentao.userRelationships.domain.UserRelationships; import com.zhentao.userRelationships.domain.UserRequest; import com.zhentao.userRelationships.dto.FriendDto; import com.zhentao.userRelationships.service.UserRelationshipsService; import com.zhentao.vo.Result; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; @RestController @RequestMapping("/userRelationships") public class UserRelationshipsController { @Autowired private UserRelationshipsService userRelationshipsService; @GetMapping("/getByUserId") @NullLogin public Result getByUserId(Long userId){ List friendIdsByUserId = userRelationshipsService.getFriendIdsByUserId(userId); return Result.OK(friendIdsByUserId,"查询成功"); } //添加好友发送申请 @PostMapping( "/sendFriendRequest") @NullLogin public Result sendFriendRequest(@RequestHeader("token") String token, @RequestParam Long receiverId, @RequestParam String message) { String userIdFromToken = TokenUtils.getUserIdFromToken(token); return userRelationshipsService.sendFriendRequest(userIdFromToken, receiverId, message); } // 查询好友申请表 @GetMapping("/getFriendRequests") @NullLogin public Result getFriendRequests(@RequestHeader("token") String token) { String userIdFromToken = TokenUtils.getUserIdFromToken(token); System.err.println(userIdFromToken); List friendRequestsByUserId = userRelationshipsService.getFriendRequestsByUserId(userIdFromToken); return Result.OK(friendRequestsByUserId, "查询成功"); } // 查询待处理的申请 // @GetMapping("/getPendingFriendRequests") // @NullLogin // public Result getPendingFriendRequests(Long userId) { // List pendingRequests = userRelationshipsService.getPendingFriendRequests(userId); // return Result.OK(pendingRequests, "查询成功"); // } // 处理申请添加好友成功 @PostMapping("/handleFriendRequest") @NullLogin public Result handleFriendRequest(@RequestParam Long requestId, @RequestParam boolean isAccepted) { return userRelationshipsService.handleFriendRequest(requestId, isAccepted); } //根据当前登录的用户获取所有好友并且按照首字母进行排序 @GetMapping("/getFriendsByUserIdAndSort") @NullLogin public Result getFriendsByUserIdAndSort(@RequestHeader("token") String token) { try { // 从Token中解析用户ID String userIdFromToken = TokenUtils.getUserIdFromToken(token); if (userIdFromToken == null || userIdFromToken.isEmpty()) { return Result.error(null, "用户未登录"); } Long userId = Long.parseLong(userIdFromToken); // 调用服务层获取排序后的好友列表 List> friends = userRelationshipsService.getFriendsByUserIdAndSort(userId); return Result.OK(friends, "查询成功"); } catch (Exception e) { e.printStackTrace(); return Result.error(null, "查询失败:" + e.getMessage()); } } }