From 585da4b632706e41e37dfaef833c41be371a8a91 Mon Sep 17 00:00:00 2001 From: 许鹏程 <1821349743@qq.com> Date: 星期三, 04 六月 2025 15:06:27 +0800 Subject: [PATCH] 更新 --- src/main/java/com/product/mobile/core/service/NavBarManagerService.java | 85 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 84 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/product/mobile/core/service/NavBarManagerService.java b/src/main/java/com/product/mobile/core/service/NavBarManagerService.java index 8950b72..52af531 100644 --- a/src/main/java/com/product/mobile/core/service/NavBarManagerService.java +++ b/src/main/java/com/product/mobile/core/service/NavBarManagerService.java @@ -199,6 +199,89 @@ } return null; } + /** + * 璁惧绠$悊 + * 绉诲姩绔幏鍙栧鑸爮锛堝睍绀鸿烦杞級 + * + * @return + * @throws BaseException + */ + @Override + public List<Object> getDeviceNarBarTree() throws BaseException { + SystemUser currentUser = SpringMVCContextHolder.getCurrentUser(); + if (currentUser == null) { + return null; + } + StringBuilder sql = new StringBuilder(); + sql.append(" SELECT "); + sql.append(" a.function_uuid, "); + sql.append(" a.nav_bar_img, "); + sql.append(" a.nav_bar_name, "); + sql.append(" a.module_category, "); + sql.append(" b.route_name, "); + sql.append(" concat( '/', b.uuid ) path, "); + sql.append(" a.uuid, "); + sql.append(" a.sequence,a.module_sequence "); + sql.append(" FROM "); + sql.append(" product_sys_app_nav_bar a "); + sql.append(" JOIN product_sys_functions c ON a.function_uuid = c.uuid "); + sql.append(" AND c.status_uuid = 1 "); + sql.append(" and c.function_type_uuid=1 "); + sql.append(" AND concat( ',', c.client_type_uuid, ',' ) LIKE '%,App,%' "); + sql.append(" JOIN product_sys_function_buttons b ON a.function_uuid = b.function_uuid "); + sql.append(" AND b.button_type = 1 "); + sql.append(" AND b.is_main = 1 "); + sql.append(" AND b.client_type_uuid = 'App' "); + sql.append(" JOIN product_sys_function_permission permission ON concat( ',', permission.button_uuid, ',' ) LIKE concat( ',%', b.uuid, '%,' ) "); + sql.append(" JOIN product_sys_role role on role.uuid=permission.role_uuid and role.is_used=1 "); + //浣跨敤瑙掕壊鍋氬姛鑳芥潈闄愰檺鍒� + sql.append(" and ").append(BaseUtil.buildQuestionMarkFilter("role.uuid", currentUser.getRoles().split(","), true)); + //娣诲姞璁惧绠$悊妯″潡杩囨护鏉′欢 + //sql.append(" and a.module_category='璁惧绠$悊' "); + + sql.append(" GROUP BY a.function_uuid, "); + sql.append(" a.nav_bar_img, "); + sql.append(" a.nav_bar_name, "); + sql.append(" a.module_category, "); + sql.append(" a.uuid ,"); + sql.append(" concat( '/', b.uuid ) ,"); + sql.append(" a.sequence, "); + sql.append(" b.route_name,a.module_sequence "); + sql.append(" order by a.module_sequence,a.sequence"); + DataTableEntity dt = getBaseDao().listTable(sql.toString(), new Object[]{}); + if (!DataTableEntity.isEmpty(dt)) { + Map<String, List<NavBarEntity>> map = new LinkedHashMap<>(); + for (int i = 0; i < dt.getRows(); i++) { + String module_name = dt .getString(i, MobileCoreConst.MODULE_CATEGORY); + List<NavBarEntity> navBarEntities = map.get(module_name); + if (navBarEntities == null) { + navBarEntities = new ArrayList<>(); + map.put(module_name, navBarEntities); + } + String file_uuid = dt.getString(i, MobileCoreConst.NAV_BAR_IMG); + try { + String bytes = null; + byte[] fileContent = fileManagerService.getFileContent(file_uuid); + if (fileContent != null && fileContent.length > 0) { + bytes = Base64.encodeBase64String(fileContent); + } + dt.setFieldValue(i, MobileCoreConst.NAV_BAR_IMG, bytes); + } catch (Exception e) { + dt.setFieldValue(i, MobileCoreConst.NAV_BAR_IMG, null); + } + navBarEntities.add(new NavBarEntity(dt.getFieldSetEntity(i))); - + } + List<Object> list = new ArrayList<>(); + map.forEach((k, v) -> { + Map<String, Object> m = new HashMap<>(); + m.put("name", k); + m.put("functions", v); + list.add(m); + }); + return list; + } + return null; + } + } -- Gitblit v1.9.2