shichongfu
2023-05-24 ad4a2b67db73e07992aee0b51493495c63d10bc4
人员信息 个人信息
已修改5个文件
792 ■■■■ 文件已修改
product-server-admin/src/main/java/com/product/admin/service/LoginInitParameterService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
product-server-admin/src/main/java/com/product/admin/service/PersonalCenterService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
product-server-admin/src/main/java/com/product/admin/service/RouterService.java 348 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
product-server-admin/src/main/java/com/product/admin/service/SystemFaceService.java 422 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
product-server-admin/src/main/java/com/product/admin/service/SystemMenusService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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();
    }
    /**
     * 初始化菜单缓存