product-server-admin/src/main/java/com/product/admin/service/LoginInitParameterService.java
@@ -104,7 +104,8 @@ if (user.getCurrentDept() != null) { ui.put("dept_name", user.getCurrentDept().getString("org_level_name")); ui.put("dept_uuid", user.getCurrentDept().getString("uuid")); ui.put("dept_all_name", user.getCurrentDept().getString("org_level_all")); String dept_all=user.getCurrentDept().getString("org_level_all"); ui.put("dept_all_name", dept_all.substring(dept_all.indexOf(user.getOrg_level_name()))); ui.put("dept_code", user.getCurrentDept().getString("org_level_code")); } ui.put("user_signature", RedisUtil.get(userOperaService.USER_SIGNATURE_KEY + user.getUser_id())); product-server-admin/src/main/java/com/product/admin/service/PersonalCenterService.java
@@ -98,7 +98,7 @@ StringBuilder sql = new StringBuilder(); SystemUser currentUser = SpringMVCContextHolder.getCurrentUser(); if (!currentUser.isManager()) { sql.append("\n SELECT b.user_phone_number,b.user_primary_email,b.user_name,a.sex,b.user_id,b.user_signature,b.thumbnail_img,c.job_post_name,d.org_level_name dept_name,d.uuid dept_uuid,d.org_level_uuid,d.org_level_all ,e.org_level_name company_name FROM product_sys_staffs a "); sql.append("\n SELECT b.gender, b.user_phone_number,b.user_primary_email,b.user_name,a.sex,b.user_id,b.user_signature,b.thumbnail_img,c.job_post_name,d.org_level_name dept_name,d.uuid dept_uuid,d.org_level_uuid,d.org_level_all ,e.org_level_name company_name FROM product_sys_staffs a "); sql.append("\n join product_sys_users b on a.user_id=b.user_id and a.user_id=? "); sql.append("\n join product_sys_job_posts c on a.job_post_uuid=c.uuid "); sql.append("\n join product_sys_org_levels d on d.uuid=a.dept_uuid "); product-server-admin/src/main/java/com/product/admin/service/RouterService.java
@@ -27,198 +27,198 @@ public class RouterService extends AbstractBaseService { @Autowired BaseDao baseDao; /** * 路由缓存key */ private final String ALL_ROUTER_CACHE_KEY = "system-cache:router"; @Autowired BaseDao baseDao; /** * 路由缓存key */ private final String ALL_ROUTER_CACHE_KEY = "system-cache:router"; /** * 初始化路由 */ public synchronized void refreshRouter() { DataTableEntity dt = baseDao.listTable("product_sys_router_v"); //所有的角色信息 if (!BaseUtil.dataTableIsEmpty(dt)) { //根据按钮&功能 分组记录路由信息 RouterEntity routerEntity = new RouterEntity(dt); setRouterEntity(routerEntity); } } /** * 初始化路由 */ public synchronized void refreshRouter() { DataTableEntity dt = baseDao.listTable("product_sys_router_v"); //所有的角色信息 if (!BaseUtil.dataTableIsEmpty(dt)) { //根据按钮&功能 分组记录路由信息 RouterEntity routerEntity = new RouterEntity(dt); setRouterEntity(routerEntity); } } /** * 刷新路由根据按钮 * * @param button_uuid */ public synchronized void refreshRouter(String button_uuid) { //查询按钮所属功能 FieldSetEntity fse = baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_FUNCTION_BUTTONS, new String[]{"uuid,function_uuid"}, button_uuid, false); if (fse != null && !StringUtils.isEmpty(fse.getUUID())) { DataTableEntity roles = baseDao.listTable("product_sys_function_permission", "concat(',',button_uuid,',') like concat('%,',?,',%')", new Object[]{button_uuid}, new Object[]{"role_uuid uuid"}); //根据功能刷新路由 updateRouter(fse.getString(CmnConst.FUNCTION_UUID)); updateLoginUserInfoService.updateUserInfoByUpdateRole(roles.getUuids(), true); } } /** * 刷新路由根据按钮 * * @param button_uuid */ public synchronized void refreshRouter(String button_uuid) { //查询按钮所属功能 FieldSetEntity fse = baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_FUNCTION_BUTTONS, new String[]{"uuid,function_uuid"}, button_uuid, false); if (fse != null && !StringUtils.isEmpty(fse.getUUID())) { DataTableEntity roles = baseDao.listTable("product_sys_function_permission", "concat(',',button_uuid,',') like concat('%,',?,',%')", new Object[]{button_uuid}, new Object[]{"role_uuid uuid"}); //根据功能刷新路由 updateRouter(fse.getString(CmnConst.FUNCTION_UUID)); updateLoginUserInfoService.updateUserInfoByUpdateRole(roles.getUuids(), true); } } /** * 更新路由根据角色uuid * * @param role_uuid */ public void updateRouter(String[] role_uuid) { RouterEntity routerEntity = getRouterEntity(); if (routerEntity != null) { routerEntity.updateRouter(role_uuid); setRouterEntity(routerEntity); } /** * 更新路由根据角色uuid * * @param role_uuid */ public void updateRouter(String[] role_uuid) { RouterEntity routerEntity = getRouterEntity(); if (routerEntity != null) { routerEntity.updateRouter(role_uuid); setRouterEntity(routerEntity); } } } @Autowired UpdateLoginUserInfoService updateLoginUserInfoService; @Autowired UpdateLoginUserInfoService updateLoginUserInfoService; /** * 更新路由根据功能 * * @param function_uuid */ public void updateRouter(String function_uuid) { if (!StringUtils.isEmpty(function_uuid)) { RouterEntity routerEntity = getRouterEntity(); if (routerEntity != null) { routerEntity.updateRouter(function_uuid, baseDao.listTable("product_sys_router_v", "`group`=?", new Object[]{function_uuid})); setRouterEntity(routerEntity); } } } /** * 更新路由根据功能 * * @param function_uuid */ public void updateRouter(String function_uuid) { if (!StringUtils.isEmpty(function_uuid)) { RouterEntity routerEntity = getRouterEntity(); if (routerEntity != null) { routerEntity.updateRouter(function_uuid, baseDao.listTable("product_sys_router_v", "`group`=?", new Object[]{function_uuid})); setRouterEntity(routerEntity); } } } /** * 获取路由信息 * * @return */ public RouterEntity getRouterEntity() { return (RouterEntity) RedisUtil.get(ALL_ROUTER_CACHE_KEY); } /** * 获取路由信息 * * @return */ public RouterEntity getRouterEntity() { return (RouterEntity) RedisUtil.get(ALL_ROUTER_CACHE_KEY); } /** * 获取路由(手机端) * * @return */ public DataTableEntity getMobileRouter() { SystemUser currentUser = SpringMVCContextHolder.getCurrentUser(); StringBuilder sql = new StringBuilder(); /** * 获取路由(手机端) * * @return */ public DataTableEntity getMobileRouter() { SystemUser currentUser = SpringMVCContextHolder.getCurrentUser(); StringBuilder sql = new StringBuilder(); sql.append(" SELECT "); sql.append(" concat( '/', d.uuid ) path, "); sql.append(" d.route_name `name`,d.uuid button_uuid, "); sql.append(" nav.nav_bar_name, "); sql.append(" page_url component, "); sql.append(" b.function_uuid `group`, "); sql.append(" c.uuid mvc_page_uuid, "); sql.append(" page_name title, "); sql.append(" d.button_icon icon, "); sql.append(" page_type, "); sql.append(" c.face_uuid, "); sql.append(" d.uuid button_uuid, "); sql.append(" d.button_name, "); sql.append(" d.client_type_uuid "); sql.append(" FROM "); sql.append(" product_sys_app_nav_bar nav "); sql.append(" JOIN product_sys_functions ff on nav.function_uuid=ff.uuid and concat(',',ff.client_type_uuid,',') like '%,App,%' "); sql.append(" JOIN product_sys_link b ON b.function_uuid = ff.uuid "); sql.append(" AND ff.status_uuid = 1 "); sql.append(" AND ff.data_type = 1 "); sql.append(" JOIN product_sys_mvc_page c ON b.`line_to` = c.uuid "); sql.append(" JOIN product_sys_function_buttons d ON b.line_from = d.uuid and d.client_type_uuid='App' "); sql.append(" WHERE "); sql.append(" page_url IS NOT NULL "); sql.append(" AND page_url != '' "); sql.append(" and nav.is_used=1 AND "); sql.append(" nav.function_uuid in (select function_uuid from product_sys_function_permission where "); sql.append(BaseUtil.buildQuestionMarkFilter("role_uuid", currentUser.getRoles().split(","), true)).append(" ) "); sql.append(" GROUP BY "); sql.append(" b.function_uuid, "); sql.append(" d.uuid, "); sql.append(" page_name, "); sql.append(" page_url, "); sql.append(" c.uuid,nav_bar_name, "); sql.append(" PAGE_type "); sql.append(" SELECT "); sql.append(" concat( '/', d.uuid ) path, "); sql.append(" d.route_name `name`,d.uuid button_uuid, "); sql.append(" nav.nav_bar_name, "); sql.append(" page_url component, "); sql.append(" b.function_uuid `group`, "); sql.append(" c.uuid mvc_page_uuid, "); sql.append(" page_name title, "); sql.append(" d.button_icon icon, "); sql.append(" page_type, "); sql.append(" c.face_uuid,c.face_number "); sql.append(" d.uuid button_uuid, "); sql.append(" d.button_name, "); sql.append(" d.client_type_uuid "); sql.append(" FROM "); sql.append(" product_sys_app_nav_bar nav "); sql.append(" JOIN product_sys_functions ff on nav.function_uuid=ff.uuid and concat(',',ff.client_type_uuid,',') like '%,App,%' "); sql.append(" JOIN product_sys_link b ON b.function_uuid = ff.uuid "); sql.append(" AND ff.status_uuid = 1 "); sql.append(" AND ff.data_type = 1 "); sql.append(" JOIN product_sys_mvc_page c ON b.`line_to` = c.uuid "); sql.append(" JOIN product_sys_function_buttons d ON b.line_from = d.uuid and d.client_type_uuid='App' "); sql.append(" WHERE "); sql.append(" page_url IS NOT NULL "); sql.append(" AND page_url != '' "); sql.append(" and nav.is_used=1 AND "); sql.append(" nav.function_uuid in (select function_uuid from product_sys_function_permission where "); sql.append(BaseUtil.buildQuestionMarkFilter("role_uuid", currentUser.getRoles().split(","), true)).append(" ) "); sql.append(" GROUP BY "); sql.append(" b.function_uuid, "); sql.append(" d.uuid, "); sql.append(" page_name, "); sql.append(" page_url, "); sql.append(" c.uuid,nav_bar_name, "); sql.append(" PAGE_type "); DataTableEntity dt = getBaseDao().listTable(sql.toString(), new Object[]{}); return dt; } DataTableEntity dt = getBaseDao().listTable(sql.toString(), new Object[]{}); return dt; } /** * 获取路由信息 * * @return */ public void setRouterEntity(RouterEntity routerEntity) { RedisUtil.set(ALL_ROUTER_CACHE_KEY, routerEntity); } /** * 获取路由信息 * * @return */ public void setRouterEntity(RouterEntity routerEntity) { RedisUtil.set(ALL_ROUTER_CACHE_KEY, routerEntity); } /** * 根据功能和按钮uuid 获取跳转路由 * * @param functionUuid * @param button_uuid * @return */ public String functionSkipByButtonUuid(String functionUuid, String button_uuid) { SystemUser currentUser = SpringMVCContextHolder.getCurrentUser(); if (StringUtils.isEmpty(functionUuid) || StringUtils.isEmpty(button_uuid) || currentUser == null || currentUser.getRoles() == null) { return null; } /** * 根据功能和按钮uuid 获取跳转路由 * * @param functionUuid * @param button_uuid * @return */ public String functionSkipByButtonUuid(String functionUuid, String button_uuid) { SystemUser currentUser = SpringMVCContextHolder.getCurrentUser(); if (StringUtils.isEmpty(functionUuid) || StringUtils.isEmpty(button_uuid) || currentUser == null || currentUser.getRoles() == null) { return null; } RouterEntity routerEntity = getRouterEntity(); if (routerEntity != null) { return routerEntity.getRouteNameByUuid(functionUuid, button_uuid, currentUser.getRoles().split(",")); } return null; } RouterEntity routerEntity = getRouterEntity(); if (routerEntity != null) { return routerEntity.getRouteNameByUuid(functionUuid, button_uuid, currentUser.getRoles().split(",")); } return null; } /** * 根据功能和按钮标识 获取跳转路由 * * @param functionUuid * @param button_name * @return */ public String functionSkip(String functionUuid, String button_name) { SystemUser currentUser = SpringMVCContextHolder.getCurrentUser(); if (StringUtils.isEmpty(functionUuid) || StringUtils.isEmpty(button_name) || currentUser == null || currentUser.getRoles() == null) { return null; } RouterEntity routerEntity = getRouterEntity(); if (routerEntity != null) { return routerEntity.getRouteNameByName(functionUuid, button_name, currentUser.getRoles().split(",")); } return null; } /** * 根据功能和按钮标识 获取跳转路由 * * @param functionUuid * @param button_name * @return */ public String functionSkip(String functionUuid, String button_name) { SystemUser currentUser = SpringMVCContextHolder.getCurrentUser(); if (StringUtils.isEmpty(functionUuid) || StringUtils.isEmpty(button_name) || currentUser == null || currentUser.getRoles() == null) { return null; } RouterEntity routerEntity = getRouterEntity(); if (routerEntity != null) { return routerEntity.getRouteNameByName(functionUuid, button_name, currentUser.getRoles().split(",")); } return null; } /** * 获取路由 * * @return * @throws BaseException */ public JSONArray getRouter() throws BaseException { SystemUser currentUser = SpringMVCContextHolder.getCurrentUser(); RouterEntity routerEntity = getRouterEntity(); JSONArray routerList = routerEntity.getRouterList(currentUser.getRoles().split(",")); if (routerList == null || routerList.isEmpty() || routerList.size() <= 0) { throw new BaseException(SystemCode.SYSTEM_ROUTER_GET_FAIL.getValue(), SystemCode.SYSTEM_ROUTER_GET_FAIL.getText()); } return routerList; } /** * 获取路由 * * @return * @throws BaseException */ public JSONArray getRouter() throws BaseException { SystemUser currentUser = SpringMVCContextHolder.getCurrentUser(); RouterEntity routerEntity = getRouterEntity(); JSONArray routerList = routerEntity.getRouterList(currentUser.getRoles().split(",")); if (routerList == null || routerList.isEmpty() || routerList.size() <= 0) { throw new BaseException(SystemCode.SYSTEM_ROUTER_GET_FAIL.getValue(), SystemCode.SYSTEM_ROUTER_GET_FAIL.getText()); } return routerList; } } product-server-admin/src/main/java/com/product/admin/service/SystemFaceService.java
@@ -28,231 +28,231 @@ @Service public class SystemFaceService extends AbstractBaseService implements ISystemFaceService { /** * 缓存起始Key */ public static final String FACE_LIST_KEY = "face:fieldList:"; /** * 缓存起始Key */ public static final String FACE_LIST_KEY = "face:fieldList:"; @Autowired QueryFilterService queryFilterService; @Autowired QueryFilterService queryFilterService; @Autowired RolesService rolesService; @Autowired RolesService rolesService; /** * 获取模块功能树 * * @return * @throws BaseException */ @Override public DataTableEntity getModuleFunctionTree() throws BaseException { /** * 获取模块功能树 * * @return * @throws BaseException */ @Override public DataTableEntity getModuleFunctionTree() throws BaseException { return rolesService.getModuleFunctions(); } return rolesService.getModuleFunctions(); } /** * 表单列表 * * @param fse * @return * @throws BaseException */ @Override public DataTableEntity getFaceList(FieldSetEntity fse) throws BaseException { String queryFilter = queryFilterService.getQueryFilter(fse); String filter = fse.getString("filter"); if (StringUtils.isEmpty(filter)) { filter = queryFilter; } else if (!StringUtils.isEmpty(queryFilter)) { filter += " and (" + queryFilter + ") "; } DataTableEntity dataTableEntity = getBaseDao().listTable(CmnConst.PRODUCT_SYS_FACE, filter, new Object[]{}, null, null, fse.getInteger(CmnConst.PAGESIZE), fse.getInteger(CmnConst.CPAGE)); getBaseDao().loadPromptData(dataTableEntity); return dataTableEntity; } /** * 表单列表 * * @param fse * @return * @throws BaseException */ @Override public DataTableEntity getFaceList(FieldSetEntity fse) throws BaseException { String queryFilter = queryFilterService.getQueryFilter(fse); String filter = fse.getString("filter"); if (StringUtils.isEmpty(filter)) { filter = queryFilter; } else if (!StringUtils.isEmpty(queryFilter)) { filter += " and (" + queryFilter + ") "; } DataTableEntity dataTableEntity = getBaseDao().listTable(CmnConst.PRODUCT_SYS_FACE, filter, new Object[]{}, null, null, fse.getInteger(CmnConst.PAGESIZE), fse.getInteger(CmnConst.CPAGE)); getBaseDao().loadPromptData(dataTableEntity); return dataTableEntity; } /** * 获取表单详情根据uuid * * @param fse * @return * @throws BaseException */ @Override public FieldSetEntity getFaceInfoByUuid(FieldSetEntity fse) throws BaseException { return getBaseDao().getFieldSetEntity(CmnConst.PRODUCT_SYS_FACE, fse.getUUID(), true); } /** * 获取表单详情根据uuid * * @param fse * @return * @throws BaseException */ @Override public FieldSetEntity getFaceInfoByUuid(FieldSetEntity fse) throws BaseException { return getBaseDao().getFieldSetEntity(CmnConst.PRODUCT_SYS_FACE, fse.getUUID(), true); } /** * 保存表单详情根据uuid * * @param fse * @return * @throws BaseException */ @Override @Transactional public String saveFaceInfo(FieldSetEntity fse) throws BaseException { BaseUtil.createCreatorAndCreationTime(SpringMVCContextHolder.getCurrentUser(), fse); Map<String, DataTableEntity> subData = fse.getSubData(); subData.forEach((k, v) -> { BaseUtil.createCreatorAndCreationTime(SpringMVCContextHolder.getCurrentUser(), v); }); getBaseDao().saveFieldSetEntity(fse); this.initialFieldCache(fse.getUUID()); return fse.getUUID(); } /** * 保存表单详情根据uuid * * @param fse * @return * @throws BaseException */ @Override @Transactional public String saveFaceInfo(FieldSetEntity fse) throws BaseException { BaseUtil.createCreatorAndCreationTime(SpringMVCContextHolder.getCurrentUser(), fse); Map<String, DataTableEntity> subData = fse.getSubData(); subData.forEach((k, v) -> { BaseUtil.createCreatorAndCreationTime(SpringMVCContextHolder.getCurrentUser(), v); }); getBaseDao().saveFieldSetEntity(fse); this.initialFieldCache(fse.getUUID()); return fse.getUUID(); } /** * 删除表单详情根据uuid * * @param uuids * @return * @throws BaseException */ @Override @Transactional public boolean deleteFaceInfoByUuids(String[] uuids) throws BaseException { boolean delete = getBaseDao().delete(CmnConst.PRODUCT_SYS_FACE, uuids); deleteFieldCache(uuids); return delete; } /** * 删除表单详情根据uuid * * @param uuids * @return * @throws BaseException */ @Override @Transactional public boolean deleteFaceInfoByUuids(String[] uuids) throws BaseException { boolean delete = getBaseDao().delete(CmnConst.PRODUCT_SYS_FACE, uuids); deleteFieldCache(uuids); return delete; } @Override public FaceListEntity getFaceFieldList(String face_uuid) throws BaseException { if (StringUtils.isEmpty(face_uuid)) { return null; } if (!RedisUtil.exists(this.FACE_LIST_KEY + face_uuid)) { this.initialFieldCache(face_uuid); } FaceListEntity faceListEntity = (FaceListEntity) RedisUtil.get(this.FACE_LIST_KEY + face_uuid); if (faceListEntity == null) { initialFieldCache(face_uuid); faceListEntity = (FaceListEntity) RedisUtil.get(this.FACE_LIST_KEY + face_uuid); } return faceListEntity; } @Override public FaceListEntity getFaceFieldList(String face_uuid) throws BaseException { if (StringUtils.isEmpty(face_uuid)) { return null; } if (!RedisUtil.exists(this.FACE_LIST_KEY + face_uuid)) { this.initialFieldCache(face_uuid); } FaceListEntity faceListEntity = (FaceListEntity) RedisUtil.get(this.FACE_LIST_KEY + face_uuid); if (faceListEntity == null) { initialFieldCache(face_uuid); faceListEntity = (FaceListEntity) RedisUtil.get(this.FACE_LIST_KEY + face_uuid); } return faceListEntity; } /** * 获取列表过滤条件 * * @param aliasTable 表别名集合 * @param face_uuid 表单uuid * @param val 模糊搜索值 * @return sql过滤条件 * @throws BaseException */ @Override public String getListFilter(Map<String, List<String>> aliasTable, Map<String, List<String>> aliasField, String face_uuid, String val) throws BaseException { if (StringUtils.isEmpty(val)) { return ""; } FaceListEntity face = (FaceListEntity) RedisUtil.get(this.FACE_LIST_KEY + face_uuid); if (face != null) { String tableAlias = null; String tableName = face.getTableName(); List<String> t = aliasTable.get(tableName); if (t != null && t.size() > 0) { tableAlias = t.get(0); } Map<String, List<String>> params = face.getFilters(tableAlias, aliasField); List<String> fieldNames = params.get("fields"); List<String> filters = params.get("filter"); String filter = ""; for (int i = 0; i < fieldNames.size(); i++) { if (i > 0) { filter += " or "; } filter += " " + fieldNames.get(i) + " LIKE BINARY concat('%','" + val + "','%')"; } for (int i = 0; i < filters.size(); i++) { if (!"".equals(filter)) { filter += " or "; } filter += filters.get(i).replace("~val~", val); } return "".equals(filter) ? "" : "( " + filter + " )"; } return ""; } /** * 获取列表过滤条件 * * @param aliasTable 表别名集合 * @param face_uuid 表单uuid * @param val 模糊搜索值 * @return sql过滤条件 * @throws BaseException */ @Override public String getListFilter(Map<String, List<String>> aliasTable, Map<String, List<String>> aliasField, String face_uuid, String val) throws BaseException { if (StringUtils.isEmpty(val)) { return ""; } FaceListEntity face = (FaceListEntity) RedisUtil.get(this.FACE_LIST_KEY + face_uuid); if (face != null) { String tableAlias = null; String tableName = face.getTableName(); List<String> t = aliasTable.get(tableName); if (t != null && t.size() > 0) { tableAlias = t.get(0); } Map<String, List<String>> params = face.getFilters(tableAlias, aliasField); List<String> fieldNames = params.get("fields"); List<String> filters = params.get("filter"); String filter = ""; for (int i = 0; i < fieldNames.size(); i++) { if (i > 0) { filter += " or "; } filter += " " + fieldNames.get(i) + " LIKE BINARY concat('%','" + val + "','%')"; } for (int i = 0; i < filters.size(); i++) { if (!"".equals(filter)) { filter += " or "; } filter += filters.get(i).replace("~val~", val); } return "".equals(filter) ? "" : "( " + filter + " )"; } return ""; } /** * 删除表单字段缓存根据表单uuid * * @param uuid */ private void deleteFieldCache(String[] uuid) { if (uuid != null && uuid.length > 0) { String[] keys = new String[uuid.length]; for (int i = 0; i < uuid.length; i++) { keys[i] = this.FACE_LIST_KEY + uuid[i]; } if (keys.length > 0) { RedisUtil.del(keys); } } } /** * 删除表单字段缓存根据表单uuid * * @param uuid */ private void deleteFieldCache(String[] uuid) { if (uuid != null && uuid.length > 0) { String[] keys = new String[uuid.length]; for (int i = 0; i < uuid.length; i++) { keys[i] = this.FACE_LIST_KEY + uuid[i]; } if (keys.length > 0) { RedisUtil.del(keys); } } } /** * 初始化表单字段缓存 * * @param faceUuids 表单uuid 多个用逗号分割 传入null 则初始化所有 */ private void initialFieldCache(String faceUuids) { StringBuilder sql = new StringBuilder(); sql.append(" SELECT "); sql.append(" ifnull(d.field_name,a.field_name) field_name,a.field_alias, "); sql.append(" d.field_reference, "); sql.append(" d.uuid field_uuid, "); sql.append(" b.face_name, "); sql.append(" b.table_uuid, "); sql.append(" a.face_uuid, "); sql.append(" column_name, "); sql.append(" column_width, "); sql.append(" sequence "); sql.append(" FROM "); sql.append(" product_sys_face_list a "); sql.append(" RIGHT JOIN product_sys_face b ON a.face_uuid = b.uuid "); sql.append(" LEFT JOIN product_sys_datamodel_field d ON a.field_name = d.field_name and b.table_uuid=d.table_uuid"); sql.append(" WHERE "); sql.append(" a.is_used = 1 "); Object[] objects = {}; if (!StringUtils.isEmpty(faceUuids)) { sql.append(" AND ( "); objects = faceUuids.split(","); sql.append(BaseUtil.buildQuestionMarkFilter("b.uuid", objects.length, true)); sql.append(" ) "); } sql.append(" ORDER BY face_uuid,sequence "); DataTableEntity dt = getBaseDao().listTable(sql.toString(), objects); Map<String, FaceListEntity> faceListEntityMap = Maps.newHashMap(); if (!BaseUtil.dataTableIsEmpty(dt)) { for (int i = 0; i < dt.getRows(); i++) { String face_uuid = dt.getString(i, "face_uuid"); FaceListEntity faceListEntity = faceListEntityMap.get(face_uuid); if (faceListEntity == null) { faceListEntity = new FaceListEntity(); faceListEntity.setFaceName(face_uuid); faceListEntity.setTableUuid(dt.getString(i, CmnConst.TABLE_UUID)); faceListEntity.setUuid(dt.getString(i, "face_uuid")); faceListEntityMap.put(face_uuid, faceListEntity); } faceListEntity.addField(dt.getString(i, CmnConst.FIELD_NAME), dt.getString(i, "field_uuid"), dt.getString(i, "column_name"), dt.getString(i, "column_width"), dt.getInt(i, CmnConst.SEQUENCE), dt.getString(i, "field_reference")); /** * 初始化表单字段缓存 * * @param faceUuids 表单uuid 多个用逗号分割 传入null 则初始化所有 */ private void initialFieldCache(String faceUuids) { StringBuilder sql = new StringBuilder(); sql.append(" SELECT "); sql.append(" ifnull(d.field_name,a.field_name) field_name,a.field_alias, "); sql.append(" d.field_reference, "); sql.append(" d.uuid field_uuid, "); sql.append(" b.face_name, "); sql.append(" b.table_uuid, "); sql.append(" a.face_uuid, "); sql.append(" column_name, "); sql.append(" column_width, "); sql.append(" sequence "); sql.append(" FROM "); sql.append(" product_sys_face_list a "); sql.append(" RIGHT JOIN product_sys_face b ON a.face_uuid = b.uuid "); sql.append(" LEFT JOIN product_sys_datamodel_field d ON a.field_name = d.field_name and b.table_uuid=d.table_uuid"); sql.append(" WHERE "); sql.append(" a.is_used = 1 "); Object[] objects = {}; if (!StringUtils.isEmpty(faceUuids)) { sql.append(" AND ( "); objects = faceUuids.split(","); sql.append(BaseUtil.buildQuestionMarkFilter("b.uuid", objects.length, true)); sql.append(" ) "); } sql.append(" ORDER BY face_uuid,sequence "); DataTableEntity dt = getBaseDao().listTable(sql.toString(), objects); Map<String, FaceListEntity> faceListEntityMap = Maps.newHashMap(); if (!BaseUtil.dataTableIsEmpty(dt)) { for (int i = 0; i < dt.getRows(); i++) { String face_uuid = dt.getString(i, "face_uuid"); FaceListEntity faceListEntity = faceListEntityMap.get(face_uuid); if (faceListEntity == null) { faceListEntity = new FaceListEntity(); faceListEntity.setFaceName(face_uuid); faceListEntity.setTableUuid(dt.getString(i, CmnConst.TABLE_UUID)); faceListEntity.setUuid(dt.getString(i, "face_uuid")); faceListEntityMap.put(face_uuid, faceListEntity); } faceListEntity.addField(dt.getString(i, CmnConst.FIELD_NAME), dt.getString(i, "field_uuid"), dt.getString(i, "column_name"), dt.getString(i, "column_width"), dt.getInt(i, CmnConst.SEQUENCE), dt.getString(i, "field_reference")); } if (faceListEntityMap.size() > 0) { faceListEntityMap.forEach((f, m) -> { RedisUtil.set(FACE_LIST_KEY + m.getUuid(), m); }); } } } } if (faceListEntityMap.size() > 0) { faceListEntityMap.forEach((f, m) -> { RedisUtil.set(FACE_LIST_KEY + m.getUuid(), m); }); } } } } product-server-admin/src/main/java/com/product/admin/service/SystemMenusService.java
@@ -72,15 +72,23 @@ } } /** * 初始化菜单缓存 */ public void initSystemMenu() { initSystemMenu(null, null); } /** * 初始化菜单缓存单条数据 */ public void refreshMenu(String uuid) { initSystemMenu(null, new String[]{uuid}); } /** * 初始化菜单缓存整体 */ public void refreshMenu() { initSystemMenu(); } public synchronized void refreshMenuByRole(String uuid) { @@ -92,9 +100,6 @@ initSystemMenu(uuid, null); } public void refreshMenu() { initSystemMenu(); } /** * 初始化菜单缓存