recommend.ts 1.0 KB

12345678910111213141516171819202122232425262728
  1. import { defineEventHandler, EventHandlerRequest } from 'h3';
  2. import { DB } from '~~/server/db/DB';
  3. import { createErrorResponse, createSuccessResponse, IResponse } from '~~/server/utils/response';
  4. import { CommonPageResult } from '~~/server/db/CommonModel';
  5. import type { IArticle } from './[id]';
  6. export default defineEventHandler<EventHandlerRequest, Promise<IResponse<IArticle[]>>>(async (event) => {
  7. try {
  8. const query = getQuery(event);
  9. const pageSize = query.pageSize as string;
  10. // 从pr_cms_archives表中查询flag包含recommend的文章
  11. // 先按weigh降序排序,再按publishtime降序排序
  12. const articles = await DB.table('pr_cms_archives')
  13. .where('status', 'normal')
  14. .whereNull('deletetime')
  15. .where('flag', 'like', '%recommend%')
  16. .orderBy('weigh','desc')
  17. .orderBy('publishtime','desc')
  18. .orderBy('createtime','desc')
  19. .limit(0, Number(pageSize))
  20. .get();
  21. return createSuccessResponse(articles);
  22. } catch (error) {
  23. return createErrorResponse(error);
  24. }
  25. });