const connection = require('../sql'); class AdminService { async getProjectConfig(projectId) { const statement = ` SELECT id, name, remark, logo, user_id as userId, layout, menu_mode as menuMode, menu_theme_color as menuThemeColor, breadcrumb, tag, footer, system_theme_color systemThemeColor, is_public as isPublic, is_template as isTemplate, SUBSTRING_INDEX(user_name, '@', 1) as userName, show_header as showHeader, show_tab_bar as showTabBar, home_page as homePage FROM projects WHERE id = ?;`; const [result] = await connection.execute(statement, [projectId]); return result; } async getAllMenuList(projectId) { const statement = ` SELECT id, project_id as projectId, name, parent_id as parentId, type, icon, path, page_id as pageId, sort_num as sortNum, status, code FROM menu WHERE project_id = ?;`; const [result] = await connection.execute(statement, [projectId]); return result; } async getMenuList(menuIds, roleId) { const statement = ` SELECT m.id, m.project_id as projectId, m.name, m.parent_id as parentId, m.type, m.icon, m.path, m.page_id as pageId, m.sort_num as sortNum, m.status, m.code FROM menu m JOIN roles r ON m.id in(${menuIds}) > 0 WHERE r.id = ?;`; const [result] = await connection.execute(statement, [roleId]); return result; } async getPageDetailById(id) { const statement = ` SELECT id, name, user_id as userId, user_name as userName, remark, is_template as isTemplate, is_public as isPublic, is_edit as isEdit, preview_img as previewImg, stg_publish_id as stgPublishId, pre_publish_id as prePublishId, prd_publish_id as prdPublishId, stg_state as stgState, pre_state as preState, prd_state as prdState, project_id as projectId, updated_at as updatedAt, SUBSTRING_INDEX(user_name, '@', 1) as userName FROM pages WHERE id = ?;`; const [result] = await connection.execute(statement, [id]); return result; } async getLastPublishInfo(pageId, publishId) { const statement = ` SELECT id, page_id as pageId, page_name as pageName, page_data as pageData, user_id as userId, user_name as userName, env, created_at as createdAt, updated_at as updatedAt FROM pages_publish WHERE page_id = ? && id = ?;`; const [result] = await connection.execute(statement, [pageId, publishId]); return result; } } module.exports = new AdminService();