sitemap.ts 992 B

1234567891011121314151617181920212223242526272829303132333435363738
  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. .select('*')
  19. .get()
  20. for (const nav of navs) {
  21. const childs = await DB.table('pr_cms_channel')
  22. .where('status', 'normal')
  23. .where('parent_id', nav.id)
  24. .select('*')
  25. .get();
  26. result.push({
  27. ...nav,
  28. childs,
  29. });
  30. }
  31. return createSuccessResponse(result);
  32. } catch (error) {
  33. return createErrorResponse(error);
  34. }
  35. });