Browse Source

更新消息API路由,调整未读消息数量的获取路径,优化数据库查询逻辑,提升代码可读性和维护性。

zyh 8 tháng trước cách đây
mục cha
commit
1e4aa38b87
2 tập tin đã thay đổi với 4 bổ sung7 xóa
  1. 1 1
      client/mobile/api.ts
  2. 3 6
      server/routes_messages.ts

+ 1 - 1
client/mobile/api.ts

@@ -676,7 +676,7 @@ export const MessageAPI = {
   // 获取未读消息数量
   getUnreadCount: async (): Promise<UnreadCountResponse> => {
     try {
-      const response = await axios.get(`${API_BASE_URL}/messages/unread-count`);
+      const response = await axios.get(`${API_BASE_URL}/messages/count/unread`);
       return response.data;
     } catch (error) {
       throw error;

+ 3 - 6
server/routes_messages.ts

@@ -62,9 +62,8 @@ export function createMessagesRoutes(withAuth: WithAuth) {
       const user = c.get('user')
       if (!user) return c.json({ error: '未授权访问' }, 401)
       
-      const query = apiClient.database.table('user_messages')
+      const query = apiClient.database.table('user_messages as um')
         .select('m.*', 'um.status as user_status', 'um.read_at', 'um.id as user_message_id')
-        .from('user_messages as um')
         .leftJoin('messages as m', 'um.message_id', 'm.id')
         .where('um.user_id', user.id)
         .where('um.is_deleted', 0)
@@ -94,9 +93,8 @@ export function createMessagesRoutes(withAuth: WithAuth) {
       const user = c.get('user')
       if (!user) return c.json({ error: '未授权访问' }, 401)
       
-      const message = await apiClient.database.table('user_messages')
+      const message = await apiClient.database.table('user_messages as um')
         .select('m.*', 'um.status as user_status', 'um.read_at')
-        .from('user_messages as um')
         .leftJoin('messages as m', 'um.message_id', 'm.id')
         .where('um.user_id', user.id)
         .where('um.message_id', messageId)
@@ -153,7 +151,7 @@ export function createMessagesRoutes(withAuth: WithAuth) {
   })
 
   // 获取未读消息数量
-  messagesRoutes.get('/unread-count', withAuth, async (c) => {
+  messagesRoutes.get('/count/unread', withAuth, async (c) => {
     try {
       const apiClient = c.get('apiClient')
 
@@ -164,7 +162,6 @@ export function createMessagesRoutes(withAuth: WithAuth) {
         .where('user_id', user.id)
         .where('status', MessageStatus.UNREAD)
         .where('is_deleted', 0)
-        .clone()
         .count()
 
       return c.json({ count: Number(count) })