用户
Change-Id: I33150cf6ffdea3bf582023bf540394075d081af9
diff --git a/src/main/java/com/example/myproject/service/UserMessageService.java b/src/main/java/com/example/myproject/service/UserMessageService.java
new file mode 100644
index 0000000..05f62e7
--- /dev/null
+++ b/src/main/java/com/example/myproject/service/UserMessageService.java
@@ -0,0 +1,112 @@
+package com.example.myproject.service;
+
+import com.example.myproject.entity.UserMessages;
+import com.example.myproject.repository.UserMessagesRepository;
+import com.example.myproject.repository.UserRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import java.util.Optional;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Date;
+import java.util.stream.Collectors;
+
+@Service
+public class UserMessageService {
+
+ @Autowired
+ private UserMessagesRepository userMessagesRepository;
+
+ @Autowired
+ private UserRepository userRepository;
+
+ // 发送私信
+ public Map<String, Object> sendMessage(Long senderId, Long receiverId, String content) {
+ UserMessages message = new UserMessages();
+ message.setSenderId(senderId);
+ message.setReceiverId(receiverId);
+ message.setContent(content);
+ message.setTime(new Date());
+ UserMessages savedMessage = userMessagesRepository.save(message);
+
+ // 返回响应
+ Map<String, Object> response = new HashMap<>();
+ response.put("status", "success");
+ response.put("message", "私信发送成功");
+ response.put("message_id", savedMessage.getMessageId());
+ return response;
+ }
+
+ // 获取当前用户的所有消息
+ public Map<String, Object> getUserMessages(Long userId) {
+ // 查询当前用户发送和接收的所有消息
+ List<UserMessages> messages = userMessagesRepository.findBySenderIdOrReceiverId(userId, userId);
+
+ // 获取发送者和接收者的用户名
+ List<Map<String, Object>> messageDetails = messages.stream()
+ .map(message -> {
+ Map<String, Object> messageMap = new HashMap<>();
+ messageMap.put("message_id", message.getMessageId());
+ messageMap.put("sender_id", message.getSenderId());
+ messageMap.put("receiver_id", message.getReceiverId());
+ messageMap.put("content", message.getContent());
+ messageMap.put("timestamp", message.getTime());
+ String senderUsername = userRepository.findById(message.getSenderId())
+ .map(user -> user.getUsername())
+ .orElse("Unknown");
+ messageMap.put("sender_username", senderUsername);
+ String receiverUsername = userRepository.findById(message.getReceiverId())
+ .map(user -> user.getUsername())
+ .orElse("Unknown");
+ messageMap.put("receiver_username", receiverUsername);
+
+ return messageMap;
+ })
+ .collect(Collectors.toList());
+
+ Map<String, Object> response = new HashMap<>();
+ response.put("status", "success");
+ response.put("messages", messageDetails);
+ return response;
+ }
+
+ // 获取单条消息的详情
+ public Map<String, Object> getMessage(Long messageId) {
+ Optional<UserMessages> optionalMessage = userMessagesRepository.findById(messageId);
+
+ if (optionalMessage.isPresent()) {
+ UserMessages message = optionalMessage.get();
+
+ // 获取发送者和接收者的用户名
+ String senderUsername = userRepository.findById(message.getSenderId())
+ .map(user -> user.getUsername())
+ .orElse("Unknown");
+ String receiverUsername = userRepository.findById(message.getReceiverId())
+ .map(user -> user.getUsername())
+ .orElse("Unknown");
+
+ // 构建响应数据
+ Map<String, Object> response = new HashMap<>();
+ Map<String, Object> messageDetails = new HashMap<>();
+ messageDetails.put("message_id", message.getMessageId());
+ messageDetails.put("sender_id", message.getSenderId());
+ messageDetails.put("sender_username", senderUsername);
+ messageDetails.put("receiver_id", message.getReceiverId());
+ messageDetails.put("receiver_username", receiverUsername);
+ messageDetails.put("content", message.getContent());
+ messageDetails.put("timestamp", message.getTime());
+
+ response.put("status", "success");
+ response.put("message", messageDetails);
+ return response;
+ } else {
+ Map<String, Object> errorResponse = new HashMap<>();
+ errorResponse.put("status", "error");
+ errorResponse.put("message", "Message not found");
+ return errorResponse;
+ }
+ }
+
+
+}