From 67cb57dadc9147f2c88836255890bbdfebc7651e Mon Sep 17 00:00:00 2001 From: "wei.peng" Date: Wed, 27 Feb 2019 18:10:55 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=20=E8=8E=B7=E5=8F=96=E7=9B=AE=E5=BD=95=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/busi/PersonnelController.java | 1 - .../apiservice/controller/busi/TestController.java | 285 ++++++++++++++++++++- .../controller/report/CoreReportController.java | 23 +- .../serviceimpl/busi/CoreTreeService.java | 55 +++- .../serviceimpl/busi/SysRoleService.java | 16 +- 5 files changed, 365 insertions(+), 15 deletions(-) diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/PersonnelController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/PersonnelController.java index 4cd95bb..0a04177 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/PersonnelController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/PersonnelController.java @@ -51,7 +51,6 @@ public class PersonnelController extends CoreBaseController { @Autowired private ISysFileService fileService; - @PostMapping(value="/user-detail/insert") @ApiOperation(value="添加用户信息",notes="返回内容添加用户信息") public ResultBean insertUserDetailModel(UserDetailModel model) { diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/TestController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/TestController.java index efcbd32..ec75d0f 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/TestController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/TestController.java @@ -36,6 +36,9 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.persistence.EntityManager; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; import java.lang.reflect.Method; import java.lang.reflect.Parameter; import java.util.*; @@ -756,16 +759,294 @@ public class TestController { } } + @GetMapping(value = "/test-user-detail") + @ApiOperation(value = "用户数据", notes = "用户数据") + public void testUserInfo() throws Exception { + String PATH = new String(File.separator + "C:\\test\\user"); + List roleList = roleService.findSysRoleAll(); + List positionList = positionService.listSysPosition(); + List departmentList = departmentService.listSysDepartment(); + + List userList = new ArrayList<>(); + List userInfoList = new ArrayList<>(); + List refUserRoleList = new ArrayList<>(); + List refUserDepartmentList = new ArrayList<>(); + List refUserInfoDepartmentList = new ArrayList<>(); + List refUserPositionList = new ArrayList<>(); + + List refUserRoleNameList ; + List refUserPositionNameList ; + List refUserDepartmentNameList ; + + SysUser user; + SysUserInfo userInfo; + SysRefUserRole refUserRole; + SysRefUserDepartment refUserDepartment; + SysRefUserInfoDepartment refUserInfoDepartment; + SysRefUserPosition refUserPosition; + SysDepartment department = null; + SysPosition position = null; + + for (int i = 0; i < 1000000; i++) { + System.out.println("造数据 ->" + i); + user = new SysUser(); + userInfo = new SysUserInfo(); + refUserRoleNameList = new ArrayList<>(); + refUserPositionNameList = new ArrayList<>(); + refUserDepartmentNameList = new ArrayList<>(); + + init(user); + init(userInfo); + + for (int j = 0; j < 2; j++) { + SysRole role = roleList.get(new Random().nextInt(roleList.size() - 1)); + if(role != null){ + refUserRole = new SysRefUserRole(); + init(refUserRole); + + refUserRole.setRoleId(role.getId()); + refUserRole.setRoleNameRdd(role.getName()); + refUserRole.setUserId(user.getId()); + refUserRole.setUserNameRdd(user.getUserName()); + + refUserRoleNameList.add(role.getName()); + refUserRoleList.add(refUserRole); + } + } + + for (int j = 0; j < 3; j++) { + position = positionList.get(new Random().nextInt(positionList.size() - 1)); + if(position != null){ + refUserPosition = new SysRefUserPosition(); + init(refUserPosition); + + refUserPosition.setUserId(userInfo.getId()); + refUserPosition.setUserNameRdd(userInfo.getName()); + refUserPosition.setPositionId(position.getId()); + refUserPosition.setPositionNameRdd(position.getName()); + + refUserPositionNameList.add(position.getName()); + + refUserPositionList.add(refUserPosition); + } + } + + for (int j = 0; j < 3; j++) { + department = departmentList.get(new Random().nextInt(departmentList.size() - 1)); + + if(department != null){ + refUserDepartment= new SysRefUserDepartment(); + refUserInfoDepartment = new SysRefUserInfoDepartment(); + + init(refUserDepartment); + init(refUserInfoDepartment); + + refUserDepartment.setDepartmentId(department.getId()); + refUserDepartment.setDepartmentNameRdd(department.getName()); + refUserDepartment.setOrganizeNameRdd(department.getOrganizeNameRdd()); + refUserDepartment.setOrganizeId(department.getOrganizeId()); + refUserDepartment.setOrganizeCode(department.getOrganizeCode()); + refUserDepartment.setUserId(user.getId()); + refUserDepartment.setUserNameRdd(user.getUserName()); + + refUserInfoDepartment.setDepartmentId(department.getId()); + refUserInfoDepartment.setDepartmentNameRdd(department.getName()); + refUserInfoDepartment.setOrganizeNameRdd(department.getOrganizeNameRdd()); + refUserInfoDepartment.setOrganizeId(department.getOrganizeId()); + refUserInfoDepartment.setOrganizeCode(department.getOrganizeCode()); + refUserInfoDepartment.setUserId(user.getId()); + refUserInfoDepartment.setUserNameRdd(user.getUserName()); + + refUserDepartmentNameList.add(department.getName()); + + refUserDepartmentList.add(refUserDepartment); + refUserInfoDepartmentList.add(refUserInfoDepartment); + } + } + + userInfo.setDepartmentNamesRdd(StringUtils.join(refUserDepartmentNameList)); + userInfo.setDepartmentId(department.getId()); + userInfo.setDepartmentNameRdd(department.getName()); + userInfo.setOrganizeId(department.getOrganizeId()); + userInfo.setOrganizeNameRdd(department.getOrganizeNameRdd()); + userInfo.setOrganizeCode(department.getOrganizeCode()); + userInfo.setPositionId(position.getId()); + userInfo.setPositionNameRdd(position.getName()); + userInfo.setPositionNamesRdd(StringUtils.join(refUserPositionNameList,",")); + userInfo.setName(RandomStringUtils.random(5, TEXT)); + userInfo.setUserEmpNo(RandomStringUtils.random(10, true, true)); + userInfo.setUserInfoStatus(CommonEnumUtil.USER_INFO_STATUS.INCUMBENT.getValue()); + userInfo.setUserLoginNum(0); + userInfo.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue()); + userInfo.setUserId(user.getId()); + + user.setUserType(CommonEnumUtil.USER_TYPE.USER.getValue()); + user.setUserStatus(CommonEnumUtil.USER_STATUS.ENABLE.getValue()); + user.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue()); + user.setUserLoginNum(0); + user.setDepartmentNamesRdd(StringUtils.join(refUserDepartmentNameList,",")); + user.setDepartmentId(department.getId()); + user.setDepartmentNameRdd(department.getName()); + user.setUserPhone(RandomStringUtils.random(11, false, true)); + user.setUserEmail(RandomStringUtils.random(15, true, true)); + user.setUserLoginName(RandomStringUtils.random(20, true, true)); + user.setUserLoginPassword("123456"); + user.setUserEmpNo(userInfo.getUserEmpNo()); + + userList.add(user); + userInfoList.add(userInfo); + } + + System.out.println("写文件 sys_ref_user_position->" ); + new Thread(new Runnable() { + @Override + public void run() { + try { + FileWriter writer = new FileWriter(PATH+"/SysRefUserPosition.sql", true); + for (SysRefUserPosition ref : refUserPositionList) { + String txt = new String("INSERT INTO sys_ref_user_position (id, create_date, create_user, is_deleted," + + " is_valid, modify_date, modify_user, position_id, position_name_rdd, user_id, user_name_rdd) VALUES (" + + " "+ref.getId()+", '"+ref.getCreateDatetime()+"', '"+ref.getCreateUser()+"', "+ref.getIsDeleted()+"," + + " "+ref.getIsValid()+", '"+ref.getModifyUser()+"', '"+ref.getModifyDatetime()+"', "+ref.getPositionId()+"," + + " '"+ref.getPositionNameRdd()+"', "+ref.getUserId()+", '"+ref.getUserNameRdd()+"');"); + fileWriter(writer,txt); + } + writer.close(); + }catch (Exception e){ + } + } + }).start(); + + System.out.println("写文件 sys_ref_user_role->" ); + new Thread(new Runnable() { + @Override + public void run() { + try { + FileWriter writer = new FileWriter(PATH+"/SysRefUserRole.sql", true); + for (SysRefUserRole ref : refUserRoleList) { + String txt = new String("INSERT INTO sys_ref_user_role (id, create_date, create_user, is_deleted," + + " is_valid, modify_date, modify_user, role_id, role_name_rdd, user_id, user_name_rdd) VALUES (" + + " "+ref.getId()+", '"+ref.getCreateDatetime()+"', '"+ref.getCreateUser()+"', "+ref.getIsDeleted()+"," + + " "+ref.getIsValid()+", '"+ref.getModifyDatetime()+"', '"+ref.getModifyUser()+"', "+ref.getRoleId()+"," + + " '"+ref.getRoleNameRdd()+"', "+ref.getUserId()+", '"+ref.getUserNameRdd()+"');"); + fileWriter(writer,txt); + } + writer.close(); + }catch (Exception e){ + } + } + }).start(); + + System.out.println("写文件 sys_ref_user_department->" ); + new Thread(new Runnable() { + @Override + public void run() { + try { + FileWriter writer = new FileWriter(PATH+"/SysRefUserDepartment.sql", true); + for (SysRefUserDepartment ref : refUserDepartmentList) { + String txt = new String("INSERT INTO sys_ref_user_department (id, create_date, create_user, is_deleted," + + " is_valid, modify_date, modify_user, department_id, department_name_rdd, organize_id, organize_name_rdd, user_id, user_name) VALUES (" + + " "+ref.getId()+", '"+ref.getCreateDatetime()+"', '"+ref.getCreateUser()+"', "+ref.getIsDeleted()+"," + + " "+ref.getIsValid()+", '"+ref.getModifyDatetime()+"', '"+ref.getModifyUser()+"', "+ref.getDepartmentId()+"," + + " '"+ref.getDepartmentNameRdd()+"', "+ref.getOrganizeId()+", '"+ref.getOrganizeNameRdd()+"'," + + " "+ref.getUserId()+", '"+ref.getUserNameRdd()+"');"); + fileWriter(writer,txt); + } + writer.close(); + }catch (Exception e){ + } + } + }).start(); + + System.out.println("写文件 sys_ref_user_info_department->" ); + new Thread(new Runnable() { + @Override + public void run() { + try { + FileWriter writer = new FileWriter(PATH+"/SysRefUserInfoDepartment.sql", true); + for (SysRefUserInfoDepartment ref : refUserInfoDepartmentList) { + String txt = new String("INSERT INTO sys_ref_user_info_department (id, create_date, create_user, is_deleted," + + " is_valid, modify_date, modify_user, department_id, department_name_rdd, organize_id, organize_name_rdd, user_id, user_name) VALUES (" + + " "+ref.getId()+", '"+ref.getCreateDatetime()+"', '"+ref.getCreateUser()+"', "+ref.getIsDeleted()+"," + + " "+ref.getIsValid()+", '"+ref.getModifyDatetime()+"', '"+ref.getModifyUser()+"', "+ref.getDepartmentId()+"," + + " '"+ref.getDepartmentNameRdd()+"', "+ref.getOrganizeId()+", '"+ref.getOrganizeNameRdd()+"'," + + " "+ref.getUserId()+", '"+ref.getUserNameRdd()+"');"); + fileWriter(writer,txt); + } + writer.close(); + }catch (Exception e){ + } + } + }).start(); + + System.out.println("写文件 sys_user->" ); + new Thread(new Runnable() { + @Override + public void run() { + try { + FileWriter writer = new FileWriter(PATH+"/SysUser.sql", true); + for (SysUser su : userList) { + String txt = new String("INSERT INTO sys_user (id, create_date, create_user, is_deleted, is_valid," + + " modify_date, modify_user, organize_code, department_id, department_name_rdd, department_names_rdd, language_code," + + " organize_id, organize_name_rdd, organize_names_rdd, role_names_rdd, user_email, user_emp_no, user_info_id," + + " user_login_last_date_time, user_login_name, user_login_num, user_login_password, user_name_rdd," + + " user_phone, user_status, user_type) VALUES (" + + " "+su.getId()+", '"+su.getCreateDatetime()+"', '"+su.getCreateUser()+"', "+su.getIsDeleted()+", "+su.getIsValid()+"," + + " '"+su.getModifyDatetime()+"', '"+su.getModifyUser()+"', '"+su.getOrganizeCode()+"', " + + " "+su.getDepartmentId()+", '"+su.getDepartmentNameRdd()+"', '"+su.getDepartmentNamesRdd()+"', ''," + + " "+su.getOrganizeId()+", '"+su.getOrganizeNameRdd()+"', null, '"+su.getRoleNamesRdd()+"', '"+su.getUserEmail()+"'," + + " '"+su.getUserEmpNo()+"', "+su.getUserInfoId()+", null, '"+su.getUserLoginName()+"', 0, '2637a5c30af69a7bad877fdb65fbd78b'," + + " '"+su.getUserName()+"', '"+su.getUserPhone()+"', 1, 1);"); + fileWriter(writer,txt); + } + writer.close(); + }catch (Exception e){ + } + } + }).start(); + + System.out.println("写文件 sys_user_info->" ); + new Thread(new Runnable() { + @Override + public void run() { + try { + FileWriter writer = new FileWriter(PATH+"/SysUserInfo.sql", true); + for (SysUserInfo ui : userInfoList) { + String txt = new String("INSERT INTO sys_user_info (id, create_date, create_user, is_deleted, is_valid," + + " modify_date, modify_user, organize_code, department_id, department_name_rdd, department_names_rdd, name," + + " organize_id, organize_name_rdd, position_id, position_name_rdd, position_names_rdd, user_emp_no, user_id," + + " user_info_status, user_join_date, user_login_last_date_time, user_login_num) VALUES (" + + " "+ui.getId()+", '"+ui.getCreateDatetime()+"', '"+ui.getCreateUser()+"', "+ui.getIsDeleted()+", "+ui.getIsValid()+"," + + " '"+ui.getModifyDatetime()+"', '"+ui.getModifyUser()+"', '"+ui.getOrganizeCode()+"'," + + " "+ui.getDepartmentId()+", '"+ui.getDepartmentNameRdd()+"', '"+ui.getDepartmentNamesRdd()+"'," + + " '"+ui.getName()+"', "+ui.getOrganizeId()+", '"+ui.getOrganizeNameRdd()+"'," + + " "+ui.getPositionId()+", '"+ui.getPositionNameRdd()+"', '"+ui.getPositionNamesRdd()+"'," + + " '"+ui.getUserEmpNo()+"', "+ui.getUserId()+", 1, '2019-02-26', null , 0);"); + fileWriter(writer,txt); + } + writer.close(); + }catch (Exception e){ + } + } + }).start(); + } public void init(BaseBean bean)throws Exception{ - bean.setId(System.currentTimeMillis() + snowflakeIdMaker.nextId()); + bean.setId(System.currentTimeMillis() + snowflakeIdMaker.nextId() + UUID.randomUUID().hashCode() + new Random().nextInt(10000000)); bean.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue()); bean.setIsDeleted(CommonEnumUtil.IS_DEAL.NO.getValue()); bean.setCreateUser("系统管理员-测试"); bean.setModifyUser("系统管理员-测试"); bean.setCreateDatetime(DateFormatUtils.format(System.currentTimeMillis(),"yyyy-MM-dd HH:mm:ss")); bean.setModifyDatetime(DateFormatUtils.format(System.currentTimeMillis(),"yyyy-MM-dd HH:mm:ss")); + } - Thread.sleep(1); + public static void fileWriter(FileWriter writer, String content) { + try { + writer.write(content+"\r\n"); + } catch (IOException e) { + e.printStackTrace(); + } } + } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/report/CoreReportController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/report/CoreReportController.java index e6da766..ecab060 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/report/CoreReportController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/report/CoreReportController.java @@ -12,7 +12,9 @@ import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.model.common.ClassFieldModel; import cn.estsh.i3plus.pojo.model.common.ClassModel; import cn.estsh.i3plus.pojo.model.report.TemplateModel; +import cn.estsh.i3plus.pojo.platform.bean.SessionUser; 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; import cn.estsh.impp.framework.boot.util.ResultBean; @@ -35,7 +37,7 @@ import java.util.List; @RestController @RequestMapping(PlatformConstWords.BASE_URL + "/cloud/report") @Api(description="报表服务") -public class CoreReportController { +public class CoreReportController extends CoreBaseController { private static final Logger LOGGER = LoggerFactory.getLogger(CoreReportController.class); @@ -50,7 +52,7 @@ public class CoreReportController { @GetMapping(value = "/role/list") @ApiOperation(value = "查询所有角色", notes = "查询所有系统角色") - public ResultBean findAll() { + public ResultBean findRoleAll() { try { List list = roleService.findSysRoleAll(); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(list); @@ -74,6 +76,23 @@ public class CoreReportController { } } + @GetMapping(value = "/role/user/list") + @ApiOperation(value = "查询登录用户所有角色") + public ResultBean findSysRoleByUser() { + try { + SessionUser sessionUser = getSessionUser(); + if(sessionUser != null && sessionUser.getUser() != null){ + List list = roleService.findSysRoleByUser(getSessionUser().getUser()); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(list); + } + return ResultBean.fail("操作失败").setCode(ResourceEnumUtil.MESSAGE.FAIL.getCode()).setErrorMsg("获取用户信息失败"); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + @PostMapping(value="/template-model/run") @ApiOperation(value="查询管理后台所有类",notes = "根据核心包路径列出所有类") public ResultBean runTemplateModel(@RequestBody TemplateModel model){ 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 1630acd..9695b98 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 @@ -2,6 +2,7 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; import cn.estsh.i3plus.core.api.iservice.busi.ICoreTreeService; import cn.estsh.i3plus.core.apiservice.dao.ISysMenuDao; +import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.pojo.base.bean.BaseBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ModelEnumUtil; @@ -17,13 +18,16 @@ import cn.estsh.i3plus.pojo.platform.repository.SysOrganizeRepository; import cn.estsh.i3plus.pojo.platform.repository.SysPositionRepository; 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.List; import java.util.Map; @@ -55,6 +59,12 @@ public class CoreTreeService implements ICoreTreeService { @Autowired private ISysMenuDao sysMenuDao; + /** + * 核心的缓存 + */ + @Resource(name="redisCore") + protected ImppRedis redisCore; + @Override @ApiOperation(value = "获取岗位树",notes = "根据父节点获取岗位树集合") public List findSysPositionTreeByParentId(long parentId) { @@ -216,7 +226,7 @@ public class CoreTreeService implements ICoreTreeService { StringBuffer orgHQL = new StringBuffer(); HqlPack.getNumEqualPack(parentId,"parentId",orgHQL); HqlPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"organizeSort"}, orgHQL); - List result = organizeRDao.findByHqlWhere(orgHQL.toString()); + List result = findSysOrganizeCacheByHqlWhere(orgHQL.toString()); // 循环设置子集 if(result != null && result.size() > 0){ @@ -263,7 +273,7 @@ public class CoreTreeService implements ICoreTreeService { StringBuffer orgHQL = new StringBuffer(); HqlPack.getNumEqualPack(parent.getId(),"parentId",orgHQL); HqlPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"organizeSort"}, orgHQL); - List childList = organizeRDao.findByHqlWhere(orgHQL.toString()); + List childList = findSysOrganizeCacheByHqlWhere(orgHQL.toString()); if (childList.size() > 0) { //说明有子集 for (SysOrganize child : childList) { @@ -406,7 +416,7 @@ public class CoreTreeService implements ICoreTreeService { StringBuffer hql = new StringBuffer(); HqlPack.getNumEqualPack(parentId,"parentId",hql); HqlPack.getOrderByPack(new Object[]{2}, new String[]{"organizeSort"}, hql); - List list = organizeRDao.findByHqlWhere(hql.toString()); + List list = findSysOrganizeCacheByHqlWhere(hql.toString()); // 循环设置子集 if(list != null && list.size() > 0){ @@ -455,7 +465,7 @@ public class CoreTreeService implements ICoreTreeService { StringBuffer hql = new StringBuffer(); HqlPack.getNumEqualPack(organize.getId(),"parentId",hql); HqlPack.getOrderByPack(new Object[]{2}, new String[]{"organizeSort"}, hql); - List organizeList = organizeRDao.findByHqlWhere(hql.toString()); + List organizeList = findSysOrganizeCacheByHqlWhere(hql.toString()); if(organizeList != null && organizeList.size() > 0){ for (SysOrganize org : organizeList) { @@ -472,7 +482,7 @@ public class CoreTreeService implements ICoreTreeService { StringBuffer depHQL = new StringBuffer(); HqlPack.getNumEqualPack(organize.getId(),"organizeId",depHQL); HqlPack.getOrderByPack(new Object[]{2}, new String[]{"departmentSort"}, depHQL); - List departmentList = departmentRDao.findByHqlWhere(depHQL.toString()); + List departmentList = findSysDepartmentCacheByHqlWhere(depHQL.toString()); if(departmentList != null && departmentList.size() > 0){ for (SysDepartment department : departmentList) { @@ -494,7 +504,8 @@ public class CoreTreeService implements ICoreTreeService { StringBuffer depHQL = new StringBuffer(); HqlPack.getNumEqualPack(department.getId(),"parentId",depHQL); HqlPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"departmentSort"}, depHQL); - List departmentList = departmentRDao.findByHqlWhere(depHQL.toString()); + + List departmentList = findSysDepartmentCacheByHqlWhere(depHQL.toString()); if(departmentList != null && departmentList.size() > 0){ for (SysDepartment dep : departmentList) { @@ -584,4 +595,36 @@ public class CoreTreeService implements ICoreTreeService { } } + private List findSysDepartmentCacheByHqlWhere(String hql){ + if(!StringUtils.isBlank(hql)){ + String redisKey = CommonConstWords.REDIS_PREFIX_CACHE_DEPARTMENT+ "_findCacheByHqlWhere" + "_" + hql.hashCode(); + List list = redisCore.getList(redisKey, 0, -1); + if(list == null){ + list = departmentRDao.findByHqlWhere(hql); + if(list != null){ + redisCore.putList(redisKey,list,CommonConstWords.REDIS_TIME_DAY_ONE); + } + } + return list; + }else { + return null; + } + } + + private List findSysOrganizeCacheByHqlWhere(String hql){ + if(!StringUtils.isBlank(hql)){ + String redisKey = CommonConstWords.REDIS_PREFIX_CACHE_ORGANIZE+ "_findCacheByHqlWhere" + "_" + hql.hashCode(); + List list = redisCore.getList(redisKey, 0, -1); + if(list == null){ + list = organizeRDao.findByHqlWhere(hql); + if(list != null){ + redisCore.putList(redisKey,list,CommonConstWords.REDIS_TIME_DAY_ONE); + } + } + return list; + }else { + return null; + } + } + } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java index 0d91857..9b5050f 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java @@ -2,15 +2,13 @@ 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.ISysRoleService; +import cn.estsh.i3plus.core.apiservice.dao.IUserPermissionDao; 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.tool.HqlPack; -import cn.estsh.i3plus.pojo.platform.bean.SessionUser; -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.i3plus.pojo.platform.bean.*; import cn.estsh.i3plus.pojo.platform.repository.SysMenuRepository; import cn.estsh.i3plus.pojo.platform.repository.SysRefRoleMenuRepository; import cn.estsh.i3plus.pojo.platform.repository.SysRoleRepository; @@ -51,6 +49,9 @@ public class SysRoleService implements ISysRoleService { @Autowired private IPersonnelService personnelService; + @Autowired + private IUserPermissionDao userPermissionDao; + @Override @ApiOperation(value = "更新角色信息",notes = "更新角色信息") public void updateSysRole(SysRole sysRole) { @@ -227,6 +228,13 @@ public class SysRoleService implements ISysRoleService { } @Override + @ApiOperation(value = "查信用户的所有角色信息",notes = "查信用户的所有角色信息") + public List findSysRoleByUser(SysUser user) { + LOGGER.info("系统角色 查询用户所有角色"); + return userPermissionDao.findSysRoleByUser(user); + } + + @Override @ApiOperation(value = "查信角色信息",notes = "根据 ID 查询角色信息") public SysRole getSysRoleById(Long id) { LOGGER.info("系统角色 SYS_ROLE find id:{}", id);