Files
front-pc/api/channel/index.ts
2025-09-15 22:13:09 +08:00

152 lines
4.6 KiB
TypeScript

import * as useDollarFetchRequest from '~/composables/useDollarFetchRequest'
import * as useFetchRequest from '~/composables/useFetchRequest'
import type {
TpageReq,
TpageRes,
TcreateReq,
TlistRes,
TGetChannelPostsRes,
PageResultPostsCommentRespVO,
sendSingleChatReq,
PageResultSessionRespVO,
PageResultMessageRespVO,
ChannelRespVO,
MemberUserRespDTO,
SingleMessageVo,
} from './types'
/**
* 获得频道帖子分页
* @return {Promise}
*/
export const page = (params: TpageReq) => {
return useDollarFetchRequest.get<IResponse<TpageRes>>('/prod-api/app-api/business/posts/page', { query: params })
}
/**
* 创建帖子
* @return {Promise}
*/
export const create = (params: TcreateReq) => {
return useDollarFetchRequest.post<IResponse<number>>('/prod-api/app-api/business/posts/create', params)
}
/**
* 获得论坛频道列表
* @return {Promise}
*/
export const list = () => {
return useDollarFetchRequest.get<IResponse<TlistRes[]>>('/prod-api/app-api/business/channel/list')
}
/**
* 获得论坛频道列表
* @return {Promise}
*/
export const getChannelPosts = (params: { id: number }) => {
return useFetchRequest.get<IResponse<TGetChannelPostsRes[]>>('/prod-api/app-api/business/posts/get', params)
}
/**
* 删除频道帖子
* @return {Promise}
*/
export const postsDelete = (params: { id: number }) => {
return useDollarFetchRequest.del<IResponse<boolean>>('/prod-api/app-api/business/posts/delete', { params })
}
/**
* 获取帖子详情
* @return {Promise}
*/
export const getChannelDetail = (params: { id: string }) => {
return useFetchRequest.get<IResponse<TGetChannelPostsRes>>('/prod-api/app-api/business/posts/get', { query: params })
}
/**
* 获取帖子评论列表
* @return {Promise}
*/
export const postscommentpage = (params: { postsId: string; pageNo: number; pageSize: number }) => {
return useFetchRequest.get<IResponse<PageResultPostsCommentRespVO>>('/prod-api/app-api/business/posts-comment/page', { query: params })
}
/**
* 创建帖子评论
* @return {Promise}
*/
export const createPostsComment = (params: { postsId: string; content: string; commentId?: string }) => {
return useDollarFetchRequest.post<IResponse<number>>('/prod-api/app-api/business/posts-comment/create', params)
}
/**
* 发送单聊信息
* @return {Promise}
*/
export const sendSingleChat = (params: sendSingleChatReq) => {
return useDollarFetchRequest.post<IResponse<any>>('/prod-api/app-api/mqtt/message/send/single', params)
}
/**
* 发送客服消息
*/
export const sendKefuMessage = (params: SingleMessageVo) => {
return useDollarFetchRequest.post<IResponse<any>>('/prod-api/app-api/mqtt/message/send/kefu', params)
}
/**
* 获得消息记录分页
*/
export const getMessagePage = (params: { pageNo: number; pageSize: number; fromId?: number; msgType?: number; topic: string }) => {
return useDollarFetchRequest.get<IResponse<PageResultMessageRespVO>>('/prod-api/app-api/mqtt/message/page', { query: params })
}
/**
* 会话列表
*/
export const conversationList = () => {
return useDollarFetchRequest.get<IResponse<PageResultSessionRespVO[]>>('/prod-api/app-api/mqtt/session/list')
}
/**
* 获取聊天记录
*/
export const getChatDetail = (params: { sessionId: number; pageNo: number; pageSize: number }) => {
return useDollarFetchRequest.get<IResponse<PageResultMessageRespVO>>('/prod-api/app-api/mqtt/message/pageBySession', { query: params })
}
/**
* 清空未读信息
*/
export const clearUnreadMessage = (params: { id: number }) => {
return useDollarFetchRequest.put<IResponse<boolean>>('/prod-api/app-api/mqtt/session/clear?id=' + params.id, params)
}
/**
* 获得论坛频道
*/
export const getChannelLunTanDetail = (params: { id: string }) => {
return useDollarFetchRequest.get<IResponse<ChannelRespVO>>('/prod-api/app-api/business/channel/get', { query: params })
}
/**
* 创建论坛关注
*/
export const createChannelFollow = (params: { channelId: string }) => {
return useDollarFetchRequest.post<IResponse<boolean>>(`/prod-api/app-api/business/channel-follow/create?channelId=${params.channelId}`, {}, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'application/json'
},
})
}
/**
* 删除论坛关注
*/
export const deleteChannelFollow = (params: { channelId: string }) => {
return useDollarFetchRequest.del<IResponse<boolean>>('/prod-api/app-api/business/channel-follow/delete', { params })
}
/**
* 根据群组ID获取群组成员
*/
export const getGroupMembers = (params: { channelId: string }) => {
return useDollarFetchRequest.get<IResponse<MemberUserRespDTO[]>>(`/prod-api/app-api/mqtt/session/users/${params.channelId}`)
}