评论连接优化,新增私信页面,等私信后端写完
Change-Id: I63c05945c47be9bcba6113ddd299058f302cb927
diff --git a/react-ui/src/pages/Message/service.ts b/react-ui/src/pages/Message/service.ts
new file mode 100644
index 0000000..958290e
--- /dev/null
+++ b/react-ui/src/pages/Message/service.ts
@@ -0,0 +1,155 @@
+import { request } from '@umijs/max';
+import type {
+ SysUserMessage,
+ ChatContact,
+ ChatContactListParams,
+ ChatHistoryParams,
+ SendMessageParams,
+} from './data.d';
+
+// API 路径配置 - 可根据实际后端接口调整
+const API_CONFIG = {
+ CHAT_CONTACTS: '/api/system/message/contacts', // 可改为: '/api/message/contacts' 或其他路径
+ CHAT_HISTORY: '/api/system/message/list', // 可改为: '/api/message/history' 或其他路径
+ SEND_MESSAGE: '/api/system/message', // 可改为: '/api/message/send' 或其他路径
+ USER_INFO: '/api/system/user', // 可改为: '/api/user' 或其他路径
+};
+
+/** 获取聊天对象列表 */
+export async function getChatContactList(params?: ChatContactListParams) {
+ // 默认数据
+ const defaultData = [
+ {
+ userId: 2,
+ userName: '张三',
+ avatar: '',
+ lastMessage: '你好,请问有什么可以帮助你的吗?',
+ lastMessageTime: new Date(Date.now() - 1000 * 60 * 30),
+ unreadCount: 2
+ },
+ {
+ userId: 3,
+ userName: '李四',
+ avatar: '',
+ lastMessage: '关于最近的活动,我想了解更多细节。',
+ lastMessageTime: new Date(Date.now() - 1000 * 60 * 60 * 2),
+ unreadCount: 0
+ },
+ {
+ userId: 4,
+ userName: '王五',
+ avatar: '',
+ lastMessage: '好的,我知道了,谢谢!',
+ lastMessageTime: new Date(Date.now() - 1000 * 60 * 60 * 24),
+ unreadCount: 1
+ }
+ ];
+
+ try {
+ const queryString = params
+ ? `?${new URLSearchParams(params as Record<string, any>).toString()}`
+ : '';
+ const response = await request(`${API_CONFIG.CHAT_CONTACTS}${queryString}`, {
+ method: 'get',
+ });
+
+ // 如果接口返回空数据,使用默认数据
+ if (!response || response.length === 0) {
+ return defaultData;
+ }
+ return response;
+ } catch (error) {
+ // 接口报错时返回默认数据
+ console.warn('获取聊天对象列表接口异常,使用默认数据:', error);
+ return defaultData;
+ }
+
+}
+
+/** 获取与指定用户的聊天记录 */
+export async function getChatHistory(params: ChatHistoryParams) {
+ // 默认数据
+ const defaultData = [
+ {
+ messageId: 1,
+ senderId: params.userId,
+ receiverId: params.currentUserId || 1,
+ content: `这是来自用户${params.userId}的第一条消息`,
+ createTime: new Date(Date.now() - 1000 * 60 * 60 * 2),
+ delFlag: '0'
+ },
+ {
+ messageId: 2,
+ senderId: params.currentUserId || 1,
+ receiverId: params.userId,
+ content: '收到,感谢你的消息',
+ createTime: new Date(Date.now() - 1000 * 60 * 60),
+ delFlag: '0'
+ },
+ {
+ messageId: 3,
+ senderId: params.userId,
+ receiverId: params.currentUserId || 1,
+ content: `这是来自用户${params.userId}的最新消息,包含更多详细信息`,
+ createTime: new Date(Date.now() - 1000 * 60 * 30),
+ delFlag: '0'
+ }
+ ];
+
+ // try {
+ // const queryString = `?${new URLSearchParams(params as Record<string, any>).toString()}`;
+ // const response = await request(`${API_CONFIG.CHAT_HISTORY}${queryString}`, {
+ // method: 'get',
+ // });
+
+ // // 如果接口返回空数据,使用默认数据
+ // if (!response || response.length === 0) {
+ // return defaultData;
+ // }
+ // return response;
+ // } catch (error) {
+ // // 接口报错时返回默认数据
+ // console.warn('获取聊天记录接口异常,使用默认数据:', error);
+ // return defaultData;
+ // }
+ return defaultData;
+}
+
+/** 发送消息 */
+export async function sendMessage(params: SendMessageParams) {
+ try {
+ return await request(API_CONFIG.SEND_MESSAGE, {
+ method: 'post',
+ data: params,
+ });
+ } catch (error) {
+ // 发送消息失败时记录错误但不返回默认数据,让组件处理错误
+ console.error('发送消息接口异常:', error);
+ throw error; // 重新抛出错误,让调用方处理
+ }
+}
+
+/** 获取用户信息(用于聊天对象显示) */
+export async function getUserInfo(userId: number) {
+ // 默认用户信息
+ const defaultUserInfo = {
+ userId,
+ userName: `用户${userId}`,
+ avatar: ''
+ };
+
+ try {
+ const response = await request(`${API_CONFIG.USER_INFO}/${userId}`, {
+ method: 'get',
+ });
+
+ if (!response) {
+ return defaultUserInfo;
+ }
+ return response;
+ } catch (error) {
+ // 接口报错时返回默认用户信息
+ console.warn(`获取用户${userId}信息接口异常,使用默认数据:`, error);
+ return defaultUserInfo;
+ }
+}
\ No newline at end of file