admin.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. const connection = require('../sql');
  2. class AdminService {
  3. async getProjectConfig(projectId) {
  4. const statement = `
  5. SELECT
  6. id,
  7. name,
  8. remark,
  9. logo,
  10. user_id as userId,
  11. layout,
  12. menu_mode as menuMode,
  13. menu_theme_color as menuThemeColor,
  14. breadcrumb,
  15. tag,
  16. footer,
  17. system_theme_color systemThemeColor,
  18. is_public as isPublic,
  19. is_template as isTemplate,
  20. SUBSTRING_INDEX(user_name, '@', 1) as userName,
  21. show_header as showHeader,
  22. show_tab_bar as showTabBar,
  23. home_page as homePage
  24. FROM
  25. projects
  26. WHERE id = ?;`;
  27. const [result] = await connection.execute(statement, [projectId]);
  28. return result;
  29. }
  30. async getAllMenuList(projectId) {
  31. const statement = `
  32. SELECT
  33. id,
  34. project_id as projectId,
  35. name,
  36. parent_id as parentId,
  37. type,
  38. icon,
  39. path,
  40. page_id as pageId,
  41. sort_num as sortNum,
  42. status,
  43. code
  44. FROM
  45. menu
  46. WHERE project_id = ?;`;
  47. const [result] = await connection.execute(statement, [projectId]);
  48. return result;
  49. }
  50. async getMenuList(menuIds, roleId) {
  51. const statement = `
  52. SELECT
  53. m.id,
  54. m.project_id as projectId,
  55. m.name,
  56. m.parent_id as parentId,
  57. m.type,
  58. m.icon,
  59. m.path,
  60. m.page_id as pageId,
  61. m.sort_num as sortNum,
  62. m.status,
  63. m.code
  64. FROM
  65. menu m
  66. JOIN
  67. roles r
  68. ON m.id in(${menuIds}) > 0 WHERE r.id = ?;`;
  69. const [result] = await connection.execute(statement, [roleId]);
  70. return result;
  71. }
  72. async getPageDetailById(id) {
  73. const statement = `
  74. SELECT
  75. id,
  76. name,
  77. user_id as userId,
  78. user_name as userName,
  79. remark,
  80. is_template as isTemplate,
  81. is_public as isPublic,
  82. is_edit as isEdit,
  83. preview_img as previewImg,
  84. stg_publish_id as stgPublishId,
  85. pre_publish_id as prePublishId,
  86. prd_publish_id as prdPublishId,
  87. stg_state as stgState,
  88. pre_state as preState,
  89. prd_state as prdState,
  90. project_id as projectId,
  91. updated_at as updatedAt,
  92. SUBSTRING_INDEX(user_name, '@', 1) as userName
  93. FROM
  94. pages
  95. WHERE id = ?;`;
  96. const [result] = await connection.execute(statement, [id]);
  97. return result;
  98. }
  99. async getLastPublishInfo(pageId, publishId) {
  100. const statement = `
  101. SELECT
  102. id,
  103. page_id as pageId,
  104. page_name as pageName,
  105. page_data as pageData,
  106. user_id as userId,
  107. user_name as userName,
  108. env,
  109. created_at as createdAt,
  110. updated_at as updatedAt
  111. FROM
  112. pages_publish
  113. WHERE page_id = ? && id = ?;`;
  114. const [result] = await connection.execute(statement, [pageId, publishId]);
  115. return result;
  116. }
  117. }
  118. module.exports = new AdminService();