sitemap.ts 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { defineEventHandler, EventHandlerRequest } from 'h3';
  2. import { DB } from '~~/server/db/DB';
  3. import { createErrorResponse, createSuccessResponse, IResponse } from '~~/server/utils/response';
  4. import { IChannel } from './[id]';
  5. /**
  6. * 获取网站地图
  7. */
  8. export default defineEventHandler<EventHandlerRequest, Promise<IResponse<(IChannel & {
  9. childs: IChannel[];
  10. })[]>>>(async (event) => {
  11. try {
  12. const result : (IChannel & {
  13. childs: IChannel[];
  14. })[] = [];
  15. const navs = await DB.table('pr_cms_channel')
  16. .where('status', 'normal')
  17. .where('isnav', 1)
  18. .orderBy('weigh', 'desc')
  19. .select('*')
  20. .get()
  21. for (const nav of navs) {
  22. const childs = await DB.table('pr_cms_channel')
  23. .where('status', 'normal')
  24. .where('parent_id', nav.id)
  25. .orderBy('weigh', 'desc')
  26. .select('*')
  27. .get();
  28. result.push({
  29. ...nav,
  30. childs,
  31. });
  32. }
  33. return createSuccessResponse(result);
  34. } catch (error) {
  35. return createErrorResponse(error);
  36. }
  37. });