diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/IPersonnelService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/IPersonnelService.java index e547c86..715b288 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/IPersonnelService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/IPersonnelService.java @@ -195,9 +195,6 @@ public interface IPersonnelService { @ApiOperation(value = "密码规则校验") void checkSysUserPassword(String password); - @ApiOperation(value = "菜单关系检查") - void refreshMenuRdd(Long menuId); - @ApiOperation(value = "岗位关系检查") void refreshUpdateMenuRdd(Long menuId); diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLocaleResourceService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLocaleResourceService.java index 77293da..97279b0 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLocaleResourceService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLocaleResourceService.java @@ -3,6 +3,7 @@ package cn.estsh.i3plus.core.api.iservice.busi; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.platform.bean.SysLocaleResource; +import cn.estsh.i3plus.pojo.platform.bean.SysMenu; import io.swagger.annotations.ApiOperation; import java.util.List; @@ -49,5 +50,6 @@ public interface ISysLocaleResourceService { @ApiOperation(value = "根据id查询资源") SysLocaleResource getSysLocaleResourceById(Long id); - + @ApiOperation(value = "功能权限国际化") + List tranSysMenu(List menuList); } diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysMenuService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysMenuService.java index 606450b..671fc5e 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysMenuService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysMenuService.java @@ -45,6 +45,9 @@ public interface ISysMenuService { @ApiOperation(value = "更新菜单信息",notes = "根据ID 批量更新菜单状态信息") void updateSysMenuStatusByIds(Long[] ids, int status, SessionUser user); + @ApiOperation(value = "更新菜单信息",notes = "更新子节点冗余信息") + void updateSysMenuChildRdd(SysMenu sysMenu); + /** * 根据Key 删除数据 * @param id @@ -73,16 +76,6 @@ public interface ISysMenuService { @ApiOperation(value = "新增菜单信息") List refreshSysMenu(List list); - /** - * 查询所有数据 - * - * @return - */ - @ApiOperation(value = "查询菜单信息",notes = "查询所有菜单信息") - List findSysMenuAll(); - - @ApiOperation(value = "查询菜单信息",notes = "根据父节点 ID 查询所有菜单信息") - List findSysMenuByParentId(Long parentId); /** * 根据id 数据 @@ -93,17 +86,16 @@ public interface ISysMenuService { @ApiOperation(value = "查询菜单信息",notes = "根据ID查询菜单信息") SysMenu getSysMenuById(Long id); - /** - * 复杂查询 - * @param menu - * @param pager - * @return - */ - @ApiOperation(value = "查询菜单信息",notes = "查询菜单信息(分页、组合)") - ListPager querySysMenu(SysMenu menu, Pager pager); + @ApiOperation(value = "查询菜单信息",notes = "查询所有菜单信息") + List findSysMenuAll(); - ListPager querySysMenu(SysMenu menu,List idList, Pager pager); + @ApiOperation(value = "查询菜单信息",notes = "查询所有菜单信息") + List findSysMenuByMenuAndInId(SysMenu menu,List idList); + @ApiOperation(value = "查询菜单信息",notes = "查询所有带国际化菜单信息") + List findLanguageMenuByMenuAndInId(SysMenu menu,List idList); + @ApiOperation(value = "查询菜单信息",notes = "查询菜单信息(分页、组合)") + ListPager querySysMenu(SysMenu menu,List idList, Pager pager); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java index ceff7c4..caeef84 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java @@ -185,7 +185,7 @@ public class SysMenuController extends CoreBaseController { try { ListPager result = null; if(AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)){ - result = sysMenuService.querySysMenu(menu, pager); + result = sysMenuService.querySysMenu(menu,null, pager); }else { List refList = personnelService.findSysRefRoleMenuByUserId(getSessionUser().getUser().getId()); if(refList != null && refList.size() > 0){ diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/UserPermissionDaoImpl.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/UserPermissionDaoImpl.java index 92d2f08..b6b7331 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/UserPermissionDaoImpl.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/UserPermissionDaoImpl.java @@ -1,5 +1,6 @@ package cn.estsh.i3plus.core.apiservice.daoimpl; +import cn.estsh.i3plus.core.api.iservice.busi.ISysLocaleResourceService; import cn.estsh.i3plus.core.apiservice.dao.IUserPermissionDao; import cn.estsh.i3plus.pojo.platform.bean.*; import org.slf4j.Logger; @@ -27,6 +28,9 @@ public class UserPermissionDaoImpl implements IUserPermissionDao { @Autowired private EntityManager entityManager; + @Autowired + private ISysLocaleResourceService localeResourceService; + @Override public List findDepartmentByUser(SysUserInfo userInfo) { LOGGER.info(" 查询用户所有部门 user id:{}", userInfo.getId()); @@ -83,6 +87,11 @@ public class UserPermissionDaoImpl implements IUserPermissionDao { } } } + + if(result != null && result.size() > 0){ + result = localeResourceService.tranSysMenu(result); + } + return result; } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemInitService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemInitService.java index bd687b7..42a2982 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemInitService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemInitService.java @@ -45,7 +45,7 @@ public class SystemInitService implements ISystemInitService { @Autowired public ISystemResourceService systemResourceService; - @Resource(name="redisRes") + @Resource(name= CommonConstWords.IMPP_REDIS_RES) private ImppRedis redisRes; private int type = ImppEnumUtil.SYS_CACHE_TYPE.REDIS.getValue(); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreMemTreeService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreMemTreeService.java index ef8e150..1008346 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreMemTreeService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreMemTreeService.java @@ -2,6 +2,7 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; import cn.estsh.i3plus.core.api.iservice.busi.ICoreMemTreeService; import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysMenuService; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ModelEnumUtil; import cn.estsh.i3plus.pojo.model.platform.CommonTreeModel; @@ -27,6 +28,9 @@ public class CoreMemTreeService implements ICoreMemTreeService { @Autowired private IPersonnelService personnelService; + @Autowired + private ISysMenuService menuService; + @Override public List packTreeSysPosition(List list, Long parentId) { List result = new ArrayList<>(); @@ -620,7 +624,7 @@ public class CoreMemTreeService implements ICoreMemTreeService { if(roleList != null && roleList.size() > 0){ List refRoleMenuList = personnelService.findSysRefRoleMenuByRefUserRole(roleList); if(refRoleMenuList != null && refRoleMenuList.size() > 0){ - List menuList = personnelService.findSysMenuList(); + List menuList = menuService.findLanguageMenuByMenuAndInId(null,null); List menuRootTree = packTreeSysMenu(menuList, parentId); return packTreeSysMenuBySysRefRoleMenu(menuRootTree, refRoleMenuList); @@ -649,7 +653,7 @@ public class CoreMemTreeService implements ICoreMemTreeService { @Override public List packTreeSysMenu() { - List menuList = personnelService.findSysMenuList(); + List menuList = menuService.findLanguageMenuByMenuAndInId(null,null); return packTreeSysMenu(menuList, CommonEnumUtil.PARENT.DEFAULT.getValue()); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeService.java index eba6ea0..a6f7ee4 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeService.java @@ -1,6 +1,7 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; import cn.estsh.i3plus.core.api.iservice.busi.ICoreTreeService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysMenuService; import cn.estsh.i3plus.core.apiservice.dao.ISysMenuDao; import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.pojo.base.bean.BaseBean; @@ -52,7 +53,7 @@ public class CoreTreeService implements ICoreTreeService { private SysOrganizeRepository organizeRDao; @Autowired - private SysMenuRepository menuRDao; + private ISysMenuService menuService; @Autowired private ISysMenuDao sysMenuDao; @@ -304,12 +305,14 @@ public class CoreTreeService implements ICoreTreeService { @Override @ApiOperation(value = "获取菜单树", notes = "根据父节点获取菜单树集合") public List findSysMenuTreeByParentId(long parentId) { - List result = menuRDao.findByProperty("parentId", parentId); + SysMenu menu = new SysMenu(); + menu.setParentId(parentId); + List result = menuService.findSysMenuByMenuAndInId(menu,null); // 循环设置子集 if (result != null && result.size() > 0) { - for (SysMenu menu : result) { - findSysMenuChildrenTreePack(menu, 0); + for (SysMenu sysMenu : result) { + findSysMenuChildrenTreePack(sysMenu, 0); } } @@ -320,7 +323,7 @@ public class CoreTreeService implements ICoreTreeService { @ApiOperation(value = "获取菜单树", notes = "根据父节点获取菜单树") public SysMenu getSysMenuTreeById(long id) { // 查找数据 - SysMenu menu = menuRDao.getById(id); + SysMenu menu = menuService.getSysMenuById(id); // 数据是否真实存在 ValidatorBean.checkNotNull(menu, "不存在的组织信息"); // 递归查询子集 @@ -333,9 +336,10 @@ public class CoreTreeService implements ICoreTreeService { @ApiOperation(value = "封装菜单树", notes = "封装当前菜单树") public void findSysMenuChildrenTreePack(SysMenu parent, int step) { ++step; - List childList = menuRDao.findByProperty( - new String[]{"parentId", "menuStatus"}, - new Object[]{parent.getId(), CommonEnumUtil.DATA_STATUS.ENABLE.getValue()}); + SysMenu menu = new SysMenu(); + menu.setParentId(parent.getId()); + menu.setMenuStatus(parent.getMenuStatus()); + List childList = menuService.findSysMenuByMenuAndInId(menu,null); if (childList.size() > 0) { //说明有子集 for (SysMenu child : childList) { diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java index 307d77a..fe89361 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java @@ -2,6 +2,7 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService; import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysMenuService; import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService; import cn.estsh.i3plus.core.apiservice.util.HqlModelPack; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; @@ -78,7 +79,7 @@ public class PersonnelServiceService implements IPersonnelService { private SysPositionRepository positionRDao; @Autowired - private SysMenuRepository menuRDao; + private ISysMenuService menuService; @Autowired private SysRefRoleMenuRepository refRoleMenuRDao; @@ -338,9 +339,8 @@ public class PersonnelServiceService implements IPersonnelService { menu.setMenuStatus(CommonEnumUtil.DATA_STATUS.ENABLE.getValue()); menu.setOrderByParam("menuSort"); menu.setAscOrDesc(CommonEnumUtil.ASC_OR_DESC.DESC.getValue()); - DdlPackBean packBean = CoreHqlPack.packDdlBeanSysMenu(menu); - return menuRDao.findByHqlWhere(packBean); + return menuService.findLanguageMenuByMenuAndInId(menu,null); } @Override @@ -355,12 +355,7 @@ public class PersonnelServiceService implements IPersonnelService { public List findSysMenuByIdList(List ids) { LOGGER.info("平台账号角色 SysMenu ids:{}", ids); if(ids != null){ - StringBuffer findWhere = new StringBuffer(); - HqlPack.getInPack(StringUtils.join(ids,","),"id",findWhere); - HqlPack.getNumEqualPack(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(),"isDeleted",findWhere); - HqlPack.getNumEqualPack(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(),"isValid",findWhere); - - return menuRDao.findByHqlWhere(findWhere.toString()); + return menuService.findSysMenuByMenuAndInId(null,ids); } return null; } @@ -916,25 +911,10 @@ public class PersonnelServiceService implements IPersonnelService { } @Override - public void refreshMenuRdd(Long menuId) { - LOGGER.info("系统功能 SysMenu menuId:{} ",menuId); - if(menuId != null){ - SysMenu menu = menuRDao.getById(menuId); - if(menu != null){ - menuRDao.updateByProperties( - new String[]{"parentId"}, - new Object[]{menu.getId()}, - new String[]{"parentNameRdd"}, - new Object[]{menu.getName()}); - } - } - } - - @Override public void refreshUpdateMenuRdd(Long menuId) { LOGGER.info("系统功能 SysMenu menuId:{} ",menuId); if(menuId != null){ - SysMenu menu = menuRDao.getById(menuId); + SysMenu menu = menuService.getSysMenuById(menuId); if(menu != null){ refRoleMenuRDao.updateByProperties( new String[]{"menuId"}, diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLocaleLanguageService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLocaleLanguageService.java index 2940db5..3a77c84 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLocaleLanguageService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLocaleLanguageService.java @@ -6,9 +6,11 @@ import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.platform.bean.SysLocaleLanguage; +import cn.estsh.i3plus.pojo.platform.bean.SysMenu; import cn.estsh.i3plus.pojo.platform.repository.SysLocaleLanguageRepository; import cn.estsh.i3plus.pojo.platform.repository.SysLocaleResourceRepository; import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; +import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; import cn.estsh.impp.framework.boot.util.ValidatorBean; diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLocaleResourceService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLocaleResourceService.java index f2221e5..f5d6910 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLocaleResourceService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLocaleResourceService.java @@ -1,26 +1,39 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; import cn.estsh.i3plus.core.api.iservice.busi.ISysLocaleResourceService; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.tool.BeanCopyTool; +import cn.estsh.i3plus.platform.common.tool.SerializeTool; +import cn.estsh.i3plus.platform.common.util.CommonConstWords; +import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.util.StringUtil; import cn.estsh.i3plus.pojo.platform.bean.SysLocaleLanguage; import cn.estsh.i3plus.pojo.platform.bean.SysLocaleResource; +import cn.estsh.i3plus.pojo.platform.bean.SysMenu; import cn.estsh.i3plus.pojo.platform.repository.SysLocaleLanguageRepository; import cn.estsh.i3plus.pojo.platform.repository.SysLocaleResourceRepository; import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; +import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; +import cn.estsh.impp.framework.boot.util.ImppRedis; import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @Description : 系统资源 @@ -39,6 +52,10 @@ public class SysLocaleResourceService implements ISysLocaleResourceService { @Autowired private SysLocaleLanguageRepository sysLocaleLanguageRDao; + @Resource(name= CommonConstWords.IMPP_REDIS_RES) + private ImppRedis redisRes; + + @Override @ApiOperation(value = "新增系统资源") public SysLocaleResource insertSysLocaleResource(SysLocaleResource sysLocaleResource) { @@ -174,4 +191,67 @@ public class SysLocaleResourceService implements ISysLocaleResourceService { public SysLocaleResource getSysLocaleResourceById(Long id) { return sysLocaleResourceRDao.getById(id); } + + @Override + public List tranSysMenu(List menuList) { + if(menuList != null && menuList.size() > 0){ + String languageCode = (String) AuthUtil.getSessionLanguage(); + List languageList = sysLocaleLanguageRDao.list(); + menuList = (List) SerializeTool.copyObject(menuList); + Map resourceMap = new HashMap<>(); + List insertList = new ArrayList<>(); + SysLocaleResource insert = null; + String redisMenuKey = null; + String redisMenuParentKey = null; + + for (SysMenu menu : menuList) { + if(menu != null){ + redisMenuKey = CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE +":" + menu.getName(); + redisMenuParentKey = CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE +":" + menu.getParentId(); + Map menuResourceMap = redisRes.getHashMap(redisMenuKey); + Map menuParentSesourceMap = redisRes.getHashMap(redisMenuParentKey); + + if(menuResourceMap == null || menuResourceMap.size() <= 0){ + menuResourceMap = new HashMap(); + if(languageList != null){ + for (SysLocaleLanguage language : languageList) { + insert = new SysLocaleResource(); + insert.setResourceType(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.MENU.getValue()); + insert.setLanguageCode(language.getLanguageCode()); + insert.setLanguageNameRdd(language.getLanguageName()); + insert.setResourceKey(menu.getName()); + insert.setResourceValue(language.getLanguageName() + ":" + menu.getName()); + insert.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + ConvertBean.serviceModelInitialize(insert, PlatformConstWords.SYSTEM_INIT_USER); + + insertList.add(insert); + menuResourceMap.put(language.getLanguageCode(),insert.getResourceValue()); + } + } + + /* 保存 Redis */ + redisRes.putHashMap(redisMenuKey, menuResourceMap, 0); + } + + /* 菜单名称 国际化 */ + if(menuResourceMap != null && menuResourceMap.size() > 0){ + String menuName = (String)menuResourceMap.get(languageCode); + menu.setName(StringUtils.isNotBlank(menuName) ? menuName : menu.getName()); + } + + /* 功能菜单 父节点国际化 */ + if(menuParentSesourceMap != null && menuParentSesourceMap.size() > 0){ + String parentNameRdd = (String)menuParentSesourceMap.get(languageCode); + menu.setParentNameRdd(StringUtils.isNotBlank(parentNameRdd) ? parentNameRdd : menu.getParentNameRdd()); + } + } + } + + /* 保存资源信息 */ + if(insertList != null && insertList.size() > 0){ + sysLocaleResourceRDao.saveAll(insertList); + } + } + return menuList; + } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMenuService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMenuService.java index e230b26..999277c 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMenuService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMenuService.java @@ -1,6 +1,7 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysLocaleResourceService; import cn.estsh.i3plus.core.api.iservice.busi.ISysMenuService; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; @@ -23,6 +24,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Arrays; import java.util.List; /** @@ -47,7 +49,7 @@ public class SysMenuService implements ISysMenuService { private SysRefRoleMenuRepository refRoleMenuRDao; @Autowired - private IPersonnelService personnelService; + private ISysLocaleResourceService localeResourceService; @Override @ApiOperation(value = "更新菜单信息") @@ -60,7 +62,6 @@ public class SysMenuService implements ISysMenuService { HqlPack.getStringEqualPack( menu.getMenuCode(),"menuCode",countWhere); HqlPack.getNumNOEqualPack(menu.getId().toString(),"id",countWhere); - int count = sysMenuRDao.findByHqlWhereCount(countWhere.toString()); if(count > 0){ throw ImppExceptionBuilder.newInstance() @@ -82,7 +83,7 @@ public class SysMenuService implements ISysMenuService { sysMenuRDao.update(menu); // 更新冗余信息 - personnelService.refreshMenuRdd(menu.getId()); + updateSysMenuChildRdd(menu); } @Override @@ -115,6 +116,16 @@ public class SysMenuService implements ISysMenuService { } @Override + public void updateSysMenuChildRdd(SysMenu sysMenu) { + LOGGER.info("系统功能 SYS_MENU sysMenu:{}", sysMenu); + if(sysMenu != null){ + sysMenuRDao.updateByProperties( + new String[]{"parentId"}, new Object[]{sysMenu.getId()}, + new String[]{"parentNameRdd"}, new Object[]{sysMenu.getName()}); + } + } + + @Override @ApiOperation(value = "删除菜单信息",notes = "根据ID 删除菜单信息") public void deleteSysMenuById(Long id) { LOGGER.info("系统功能 SYS_MENU Key:{}", id); @@ -191,9 +202,17 @@ public class SysMenuService implements ISysMenuService { } @Override - @ApiOperation(value = "查询菜单信息",notes = "根据父节点 ID 查询所有菜单信息") - public List findSysMenuByParentId(Long parentId) { - return sysMenuRDao.findByProperty(new String[]{"parentId"},new Object[]{parentId}); + public List findSysMenuByMenuAndInId(SysMenu menu,List idList) { + return sysMenuRDao.findByHqlWhere(CoreHqlPack.packDdlBeanSysMenu(menu,idList)); + } + + @Override + public List findLanguageMenuByMenuAndInId(SysMenu menu, List idList) { + List menuList = sysMenuRDao.findByHqlWhere(CoreHqlPack.packDdlBeanSysMenu(menu, idList)); + if(menuList != null && menuList.size() > 0){ + menuList = localeResourceService.tranSysMenu(menuList); + } + return menuList; } @Override @@ -204,24 +223,6 @@ public class SysMenuService implements ISysMenuService { } @Override - @ApiOperation(value = "查询菜单信息",notes = "查询菜单信息(分页、组合)") - public ListPager querySysMenu(SysMenu menu, Pager pager) { - LOGGER.info("系统权限 SysMenu find menu :{} page :{}", menu, pager); - - if (menu == null) { - //不传入实体对象,查询所有 - int count = sysMenuRDao.listCount(); - pager = PagerHelper.getPager(pager, count); - return new ListPager(sysMenuRDao.listPager(pager), pager); - } else { - //生成hql查询语句 - String hqlPack = CoreHqlPack.packHqlSysMenu(menu); - pager = PagerHelper.getPager(pager, sysMenuRDao.findByHqlWhereCount(hqlPack)); - return new ListPager(sysMenuRDao.findByHqlWherePage(hqlPack + menu.orderBy(), pager), pager); - } - } - - @Override public ListPager querySysMenu(SysMenu menu, List idList, Pager pager) { DdlPackBean packBean = CoreHqlPack.packDdlBeanSysMenu(menu, idList); pager = PagerHelper.getPager(pager, sysMenuRDao.findByHqlWhereCount(packBean)); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java index 221031a..dd6e954 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java @@ -98,9 +98,6 @@ public class SysUserService implements ISysUserService { private SysLogUserLoginRepository logUserLoginRDao; @Autowired - private SysMenuRepository sysMenuRDao; - - @Autowired private ICoreTreeService coreTreeService; @Autowired