diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/IBackstageService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/IBackstageService.java new file mode 100644 index 0000000..e81163d --- /dev/null +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/IBackstageService.java @@ -0,0 +1,22 @@ +package cn.estsh.i3plus.core.api.iservice.base; + +/** + * @Description : + * @Reference : + * @Author : yunhao + * @CreateDate : 2020-09-04 11:29 + * @Modify: + **/ +public interface IBackstageService { + + /** + * 更新并清理功能软件模块数据 + */ + void updateCleanMenuSoftType(); + + + /** + * 更新并清理角色功能数据 + */ + void updateRefRoleMenu(); +} 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 18f555c..a8997cc 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 @@ -23,9 +23,6 @@ public interface ISysMenuService extends ICrudService { @ApiOperation(value = "更新内存语言缓存",notes = "更新内存语言缓存") void refreshMemSysMenuLanguage(); - @ApiOperation(value = "刷新权限关系",notes = "刷新角色权限关系SoftType 字段") - void refreshRefSysMenuBySoftType(); - @ApiOperation(value = "国际化功能权限",notes = "国际化功能权限") List setLanguageSysMenuName(String languageCode, List menuList); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/BackstageController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/BackstageController.java index 35f7a75..999907d 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/BackstageController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/BackstageController.java @@ -1,17 +1,12 @@ package cn.estsh.i3plus.core.apiservice.controller.base; +import cn.estsh.i3plus.core.api.iservice.base.IBackstageService; import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService; 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.core.api.iservice.busi.ISysRoleService; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; -import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.model.license.ImppLicense; -import cn.estsh.i3plus.pojo.platform.bean.SysMenu; -import cn.estsh.i3plus.pojo.platform.bean.SysRefRoleMenu; -import cn.estsh.i3plus.pojo.platform.bean.SysRole; import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; @@ -20,15 +15,12 @@ import cn.estsh.impp.framework.boot.license.serviceimpl.ImppLicenseDecoder; import cn.estsh.impp.framework.boot.util.ResultBean; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.collections4.ListUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import java.util.*; -import java.util.stream.Collectors; +import java.util.Objects; /** * @Description : 后台服务 @@ -54,10 +46,7 @@ public class BackstageController extends CoreBaseController { private ICoreMemTreeService memTreeService; @Autowired - private ISysRoleService sysRoleService; - - @Autowired - private IPersonnelService penfindSysRefUserRole; + private IBackstageService backstageService; @GetMapping(value = "/redis-put-all") @ApiOperation(value = "重新加载所有缓存数据",notes = "重新加载所有缓存数据") @@ -125,51 +114,6 @@ public class BackstageController extends CoreBaseController { } } - @GetMapping(value = "/reset/menu/soft-type") - @ApiOperation(value = "重置菜单产品类型属性",notes = "重新加载授权数据") - public ResultBean restSysMenuSoftType(){ - try { - List menuList = menuService.findAll(); - if(CollectionUtils.isNotEmpty(menuList)){ - - /** 设置功能权限 softType 默认值*/ - Map menuMap = new HashMap<>(); - for (SysMenu menu : menuList) { - menu.setSoftType(CommonEnumUtil.SOFT_TYPE.IMPP.getValue()); - menuMap.put(menu.getId(),menu); - } - - List treeMenus = memTreeService.packTreeSysMenu(menuList, CommonEnumUtil.SOFT_TYPE.IMPP.getMenuRootId()); - if(CollectionUtils.isNotEmpty(treeMenus)){ - for (SysMenu menu : treeMenus) { - CommonEnumUtil.SOFT_TYPE softType = CommonEnumUtil.SOFT_TYPE.valueOfMenuRootId(menu.getId()); - - if(Objects.nonNull(softType)){ - menu.setSoftType(softType.getValue()); - - List childMenus = memTreeService.findChildSysMenu(menu); - if(CollectionUtils.isNotEmpty(childMenus)){ - for (Long key : childMenus) { - if(menuMap.containsKey(key)){ - menuMap.get(key).setSoftType(softType.getValue()); - } - } - } - } - } - } - menuService.saveBatch(new ArrayList<>(menuMap.values())); - } - - menuService.refreshRefSysMenuBySoftType(); - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep); - }catch(Exception e){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - @GetMapping(value = "/reset/task-log-level") @ApiOperation(value = "重置定时任务日志等级",notes = "重置定时任务日志等级") public ResultBean restTaskLogLevel(){ @@ -205,20 +149,8 @@ public class BackstageController extends CoreBaseController { @ApiOperation(value = "更新并清理功能软件模块数据", notes = "更新并清理功能软件模块数据") public ResultBean updateCleanMenuSoftType(){ try { - SysMenu sysMenu = new SysMenu(); - sysMenu.setMenuType(CommonEnumUtil.METHOD_LEVEL.PLUGIN.getValue()); - List list = menuService.findAllByBean(sysMenu).stream() - .filter(menu -> menu.getId() != 100000000L) - .collect(Collectors.toList()); - - List allList = menuService.findAll(); - Map> ds = allList.stream().collect(Collectors.groupingBy(SysMenu::getParentId)); - packSysMenuTree(list, ds, null); - - for (List sysMenuList : ListUtils.partition(allList, 100)) { - new Thread(() -> menuService.saveBatch(sysMenuList)).start(); - } - return ResultBean.success("操作成功").setResultList(list); + backstageService.updateCleanMenuSoftType(); + return ResultBean.success("操作成功"); } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); } catch (Exception e) { @@ -226,42 +158,11 @@ public class BackstageController extends CoreBaseController { } } - public void packSysMenuTree(List sysMenuList, Map> ds,Integer softType) { - if (CollectionUtils.isEmpty(sysMenuList)) { - return; - } - for (SysMenu sysMenu : sysMenuList) { - if (softType != null) { - sysMenu.setSoftType(softType); - } - if (ds.containsKey(sysMenu.getId())) { - sysMenu.setChildList(ds.get(sysMenu.getId())); - packSysMenuTree(sysMenu.getChildList(), ds, sysMenu.getSoftType()); - } - } - } - @GetMapping(value = "/update-clean-ref-role-menu") @ApiOperation(value = "更新并清理角色功能数据", notes = "更新并清理角色功能数据") public ResultBean updateRefRoleMenu(){ try { - List roleIdList = sysRoleService.findAll().stream().map(SysRole::getId).collect(Collectors.toList()); - Map> roleMenuMap = new HashMap<>(); - for (SysRefRoleMenu refRoleMenu : penfindSysRefUserRole.findSysRefRoleMenuByRoleIds(roleIdList)) { - if (!roleMenuMap.containsKey(refRoleMenu.getRoleId())) { - roleMenuMap.put(refRoleMenu.getRoleId(), new HashSet<>()); - } - roleMenuMap.get(refRoleMenu.getRoleId()).add(refRoleMenu.getMenuId()); - } - - for (Map.Entry> longSetEntry : roleMenuMap.entrySet()) { - sysRoleService.refreshSysRoleRef( - longSetEntry.getKey(), - longSetEntry.getValue().toArray(new Long[longSetEntry.getValue().size()]), - "清理垃圾数据" - ); - } - + backstageService.updateRefRoleMenu(); return ResultBean.success("操作成功"); } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/PressureTestController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/PressureTestController.java index 527f5fa..96f0026 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/PressureTestController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/PressureTestController.java @@ -57,22 +57,6 @@ public class PressureTestController extends CoreBaseController { @Autowired private ITestTransService testTransService; - - - - @GetMapping("/s-redis-put") - @ApiOperation(value = "redisPut", notes = "redisPut") - public ResultBean sredisPut(){ - try { - testTransService.insertRedis(); - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep); - }catch(Exception e){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - @GetMapping("/test-aspect") @ApiOperation(value = "testAspect", notes = "testAspect") public ResultBean testAspect(){ @@ -99,95 +83,22 @@ public class PressureTestController extends CoreBaseController { } } - @GetMapping("/s-redis-put-test") - @ApiOperation(value = "redisPutTest", notes = "redisPutTest") - public ResultBean sredisPutTest(){ - try { - testTransService.selectRedis(); - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep); - }catch(Exception e){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - - @GetMapping("/redis-put") - @ApiOperation(value = "redisPut", notes = "redisPut") - public ResultBean redisPut(){ - try { - for (int i = 0; i < 1000; i++) { - imppRedis.putObject(i + "", i); - } - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep); - }catch(Exception e){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - - @GetMapping("/redis-get") - @ApiOperation(value = "redisGet", notes = "redisGet") - public ResultBean redisGet(){ - try { - for (int i = 0; i < 1000; i++) { - imppRedis.getObject(i + ""); - } - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep); - }catch(Exception e){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - - @GetMapping("/redis-put-test") - @ApiOperation(value = "redisPutTest", notes = "redisPutTest") - public ResultBean redisPutTest(){ - try { - for (int i = 0; i < 1000; i++) { -// imppRedis.putObjectTest(i + "", i); - } - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep); - }catch(Exception e){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - - @GetMapping("/redis-put-run") - @ApiOperation(value = "redisPutThread", notes = "redisPutThread") - public ResultBean redisPutThread(Boolean isTest){ - try { - RedisTest.setImppRedis(imppRedis); - RedisTest.setTest(isTest); - for (int i = 0; i < 10; i++) { - new RedisTest().run(); - } - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep); - }catch(Exception e){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - static class RedisTest implements Runnable{ @Setter public static ImppRedis imppRedis; @Setter - public static boolean isTest; + public static boolean isPut; + public static String STR = ""; @Override public void run() { - for (int i = 0; i < 200; i++) { - if(isTest) { - imppRedis.putObject("runnable" + i, i); - }else{ -// imppRedis.putObjectTest("runnable" + i, i); + for (int i = 0; i < 10; i++) { + String value = "REDIS-TEST:" + String.valueOf(Math.random() * 10000000); + if (isPut) { + imppRedis.putObject(value, value); + } else { + imppRedis.getObject(value); } } } @@ -325,4 +236,26 @@ public class PressureTestController extends CoreBaseController { } } + + @GetMapping("/redis-test") + @ApiOperation(value = "查询Opc订阅", notes = "查询Opc订阅") + @AnnoIgnoreLog + public ResultBean redisRead(boolean isPut){ + try { + RedisTest.setImppRedis(imppRedis); + RedisTest.setPut(isPut); + + for (int i = 0; i < 10; i++) { + new Thread(new RedisTest()).start(); + } + + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/BackstageService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/BackstageService.java new file mode 100644 index 0000000..fee6c65 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/BackstageService.java @@ -0,0 +1,95 @@ +package cn.estsh.i3plus.core.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.core.api.iservice.base.IBackstageService; +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.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.platform.bean.SysMenu; +import cn.estsh.i3plus.pojo.platform.bean.SysRefRoleMenu; +import cn.estsh.i3plus.pojo.platform.bean.SysRole; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections4.ListUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Description : + * @Reference : + * @Author : yunhao + * @CreateDate : 2020-09-04 11:31 + * @Modify: + **/ +@Service +public class BackstageService implements IBackstageService { + + @Autowired + private ISysMenuService menuService; + + @Autowired + private ISysRoleService sysRoleService; + + @Autowired + private IPersonnelService penfindSysRefUserRole; + + /** + * 更新并清理功能软件模块数据 + */ + @Override + public void updateCleanMenuSoftType() { + SysMenu sysMenu = new SysMenu(); + sysMenu.setMenuType(CommonEnumUtil.METHOD_LEVEL.PLUGIN.getValue()); + List list = menuService.findAllByBean(sysMenu).stream() + .filter(menu -> menu.getId() != 100000000L) + .collect(Collectors.toList()); + + List allList = menuService.findAll(); + Map> ds = allList.stream().collect(Collectors.groupingBy(SysMenu::getParentId)); + packSysMenuTree(list, ds, null); + + for (List sysMenuList : ListUtils.partition(allList, 100)) { + new Thread(() -> menuService.saveBatch(sysMenuList)).start(); + } + } + + public void packSysMenuTree(List sysMenuList, Map> ds, Integer softType) { + if (CollectionUtils.isEmpty(sysMenuList)) { + return; + } + for (SysMenu sysMenu : sysMenuList) { + if (softType != null) { + sysMenu.setSoftType(softType); + } + if (ds.containsKey(sysMenu.getId())) { + sysMenu.setChildList(ds.get(sysMenu.getId())); + packSysMenuTree(sysMenu.getChildList(), ds, sysMenu.getSoftType()); + } + } + } + + /** + * 更新并清理角色功能数据 + */ + @Override + public void updateRefRoleMenu() { + List roleIdList = sysRoleService.findAll().stream().map(SysRole::getId).collect(Collectors.toList()); + Map> roleMenuMap = new HashMap<>(); + for (SysRefRoleMenu refRoleMenu : penfindSysRefUserRole.findSysRefRoleMenuByRoleIds(roleIdList)) { + if (!roleMenuMap.containsKey(refRoleMenu.getRoleId())) { + roleMenuMap.put(refRoleMenu.getRoleId(), new HashSet<>()); + } + roleMenuMap.get(refRoleMenu.getRoleId()).add(refRoleMenu.getMenuId()); + } + + for (Map.Entry> longSetEntry : roleMenuMap.entrySet()) { + sysRoleService.refreshSysRoleRef( + longSetEntry.getKey(), + longSetEntry.getValue().toArray(new Long[longSetEntry.getValue().size()]), + "清理垃圾数据" + ); + } + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLogUserLoginService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLogUserLoginService.java index fb60f4e..7785876 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLogUserLoginService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLogUserLoginService.java @@ -37,7 +37,7 @@ public class SysLogUserLoginService implements ISysLogUserLoginService { public ListPager querySysLogUserLoginByPager(SysLogUserLogin sysLogUserLogin, Pager pager) { DdlPackBean ddlPackBean = CoreHqlPack.packHqlQuerySysLogUserLogin(sysLogUserLogin); int count = sysLogUserLoginRDao.findByHqlWhereCount(ddlPackBean); - PagerHelper.getPager(pager, count); + pager = PagerHelper.getPager(pager, count); return new ListPager<>(sysLogUserLoginRDao.findByHqlWherePage(ddlPackBean, pager), pager); } 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 249ebef..63b9e81 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 @@ -17,14 +17,16 @@ import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; import cn.estsh.impp.framework.base.service.CrudService; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.collections4.MapUtils; 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 java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; import static cn.estsh.i3plus.platform.common.util.CommonConstWords.RESOURCE_PREFIX_MENU; @@ -107,33 +109,6 @@ public class SysMenuService extends CrudService implements ISysMenuServ } @Override - public void refreshRefSysMenuBySoftType() { - List list = findAll(); - if (CollectionUtils.isNotEmpty(list)) { - Map> refMap = new HashMap<>(); - for (SysMenu menu : list) { - if (Objects.nonNull(menu.getSoftType())) { - List ids = refMap.get(menu.getSoftType()); - if (CollectionUtils.isEmpty(ids)) { - ids = new ArrayList<>(); - } - ids.add(menu.getId()); - refMap.put(menu.getSoftType(), ids); - } - } - - if (MapUtils.isNotEmpty(refMap)) { - DdlPackBean packBean = null; - for (Integer softType : refMap.keySet()) { - packBean = DdlPackBean.getDdlPackBean(); - DdlPreparedPack.getInPackList(refMap.get(softType), "menuId", packBean); - refRoleMenuRDao.updateByProperties("softType", softType, packBean); - } - } - } - } - - @Override public List setLanguageSysMenuName(String languageCode, List menuList) { languageCode = StringUtils.isNotBlank(languageCode) ? languageCode : CommonConstWords.DEFAULT_LANGUAGE; Map localeResourceMap = MEM_CACHE_LANGAGE.get(languageCode); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java index 9971fe5..b3f8f01 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java @@ -359,6 +359,17 @@ public class SysUserInfoService implements ISysUserInfoService { return sysUserInfoRDao.findByHqlWhere(hqlPack); } + /** + * 根据(组织ID,部门ID,用户名称,用户工号) 查询用户信息 + * + * @param info + * @return + */ + @Override + public List findSysUserInfoList(SysUserInfo info) { + return sysUserInfoRDao.findByHqlWhere(CoreHqlPack.packHqlSysUserInfo(info)); + } + @Override public List querySysUserInfoList(UserDetailModel model, List idList) { return null;