Files
schoolNews/schoolNewsWeb/src/apis/resource/resourceRecommend.ts

156 lines
4.5 KiB
TypeScript
Raw Normal View History

2025-10-31 19:13:21 +08:00
/**
* @description API接口
* @filename resourceRecommend.ts
* @author yslg
* @copyright xyzh
* @since 2025-10-31
*/
import { api } from '@/apis';
import type { ResultDomain, ResourceRecommendVO, PageParam } from '@/types';
/**
*
*/
export enum RecommendType {
/** 热门资源推荐 */
HOT = 1,
/** 思政资源推荐 */
IDEOLOGICAL = 2
}
/**
* API服务
*/
export const resourceRecommendApi = {
/**
*
* @returns Promise<ResultDomain<ResourceRecommendVO>>
*/
async getRecommendList(): Promise<ResultDomain<ResourceRecommendVO>> {
const response = await api.get<ResourceRecommendVO>('/news/recommends/list');
return response.data;
},
/**
*
* @param recommendType 1-2-
* @param limit
* @returns Promise<ResultDomain<ResourceRecommendVO>>
*/
async getRecommendsByType(recommendType: number, limit?: number): Promise<ResultDomain<ResourceRecommendVO>> {
const params = limit ? { limit } : null;
const response = await api.get<ResourceRecommendVO>(`/news/recommends/type/${recommendType}`, params);
return response.data;
},
/**
*
* @param filter
* @param pageParam
* @returns Promise<ResultDomain<ResourceRecommendVO>>
*/
async getRecommendPage(pageParam: PageParam, filter?: any): Promise<ResultDomain<ResourceRecommendVO>> {
const response = await api.post<ResourceRecommendVO>('/news/recommends/page', {
pageParam,
filter,
});
return response.data;
},
/**
* ID获取推荐详情
* @param recommendID ID
* @returns Promise<ResultDomain<ResourceRecommendVO>>
*/
async getRecommendById(recommendID: string): Promise<ResultDomain<ResourceRecommendVO>> {
const response = await api.get<ResourceRecommendVO>(`/news/recommends/recommend/${recommendID}`);
return response.data;
},
/**
*
* @param recommend
* @returns Promise<ResultDomain<any>>
*/
async createRecommend(recommend: any): Promise<ResultDomain<any>> {
const response = await api.post<any>('/news/recommends/recommend', recommend);
return response.data;
},
/**
*
* @param resourceIDs ID列表
* @param recommendType
* @param reason
* @returns Promise<ResultDomain<any>>
*/
async batchAddRecommends(resourceIDs: string[], recommendType: number, reason?: string): Promise<ResultDomain<any>> {
const response = await api.post<any>('/news/recommends/recommend/batch', {
resourceIDs,
recommendType,
reason
});
return response.data;
},
/**
*
* @param recommend
* @returns Promise<ResultDomain<any>>
*/
async updateRecommend(recommend: any): Promise<ResultDomain<any>> {
const response = await api.put<any>('/news/recommends/recommend', recommend);
return response.data;
},
/**
*
* @param recommendID ID
* @returns Promise<ResultDomain<boolean>>
*/
async deleteRecommend(recommendID: string): Promise<ResultDomain<boolean>> {
const response = await api.delete<boolean>(`/news/recommends/recommend/${recommendID}`);
return response.data;
},
/**
*
* @param recommendID ID
* @param orderNum
* @returns Promise<ResultDomain<any>>
*/
async updateRecommendOrder(recommendID: string, orderNum: number): Promise<ResultDomain<any>> {
const response = await api.put<any>(`/news/recommends/recommend/${recommendID}/order`, null, {
params: { orderNum }
});
return response.data;
},
/**
*
* @param resourceID ID
* @param recommendType
* @returns Promise<ResultDomain<boolean>>
*/
async isResourceRecommendedByType(resourceID: string, recommendType: number): Promise<ResultDomain<boolean>> {
const response = await api.get<boolean>(`/news/recommends/check/${resourceID}`, {
recommendType
});
return response.data;
},
/**
*
* @param filter
* @returns Promise<ResultDomain<number>>
*/
async countRecommends(filter?: any): Promise<ResultDomain<number>> {
const response = await api.post<number>('/news/recommends/count', filter);
return response.data;
}
};
export default resourceRecommendApi;