From 8c0da0ab44bb8e6e38b2c59267af8f5d8dbc77de Mon Sep 17 00:00:00 2001 From: jiajia Date: Mon, 11 Mar 2024 16:24:59 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=91=E5=B1=B1=E5=AF=BC=E5=87=BA=E8=B4=A6?= =?UTF-8?q?=E5=8F=B7=E6=B8=85=E5=8D=95=E5=A2=9E=E5=8A=A0=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E8=A7=92=E8=89=B2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/busi/SysUserController.java | 10 ++++- .../apiservice/daoimpl/UserPermissionDaoImpl.java | 13 ++++++- .../serviceimpl/busi/SysUserService.java | 44 ++++++++++++++++++++++ 3 files changed, 64 insertions(+), 3 deletions(-) diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java index 33dbee3..9904575 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java @@ -18,6 +18,7 @@ import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.i3plus.pojo.base.util.StringUtil; import cn.estsh.i3plus.pojo.model.common.ExportDataModel; import cn.estsh.i3plus.pojo.model.platform.AccountExportModel; import cn.estsh.i3plus.pojo.model.platform.AndonQueryUserModel; @@ -507,7 +508,12 @@ public class SysUserController extends CoreBaseController { ValidatorBean.checkNotNull("ColName", model.getExportCol()); LinkedHashMap exportColMap = JSON.parseObject(model.getExportCol(), LinkedHashMap.class); //查询所有账号 - List list = sysUserService.listWithRole(); + List list ; + if (StringUtil.isEmpty(model.getRoleId())) { + list = sysUserService.listWithRole(); + } else { + list = sysUserService.listWithRoleByRoleId(Long.parseLong(model.getRoleId())); + } List sysUserList = sysUserService.findSysUserStatusRdd(list); ExcelTool excelTool = new ExcelTool(entityManager, redisRes); @@ -518,7 +524,7 @@ public class SysUserController extends CoreBaseController { , exportColMap); response.setContentType("applicatioref-menun/force-download"); // 设置强制下载不打开 - response.setCharacterEncoding("UTF-8"); +// response.setCharacterEncoding("UTF-8"); response.addHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(fileName, "UTF-8")); // 设置文件名 response.addHeader("Content-type", FileContentTypeTool.getContentType(StringTool.getStringFileSuffix(fileName, true))); 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 452957b..ef6d970 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 @@ -2,6 +2,7 @@ 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.base.util.StringUtil; import cn.estsh.i3plus.pojo.platform.bean.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -9,6 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.persistence.EntityManager; +import javax.persistence.TypedQuery; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -47,8 +49,17 @@ public class UserPermissionDaoImpl implements IUserPermissionDao { String hql = "select sr from SysRefUserRole as rur " + " left join SysRole as sr on sr.id = rur.roleId" + " where rur.userId =:userId"; + StringBuilder hqlBuilder = new StringBuilder(hql); + if (!StringUtil.isEmpty(user.getRoleId())) { + hqlBuilder.append(" and rur.roleId = :roleId"); + } + TypedQuery query = entityManager.createQuery(hqlBuilder.toString(), SysRole.class) + .setParameter("userId", user.getId()); + if (!StringUtil.isEmpty(user.getRoleId())) { + query.setParameter("roleId", user.getRoleId()); + } //hql = "select rur from RefUserRole as rur,SysRole as where rur.userId =:userId and sr.id = rur.roleId"; - return entityManager.createQuery(hql).setParameter("userId",user.getId()).getResultList(); + return query.getResultList(); } @Override 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 eb9e7c0..7fdd421 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 @@ -727,6 +727,50 @@ public class SysUserService implements ISysUserService { } /** + * 查询所有数据包含角色信息逗号分割 + * + * @return + */ + @Override + public List listWithRoleByRoleId(Long roleId) { + LOGGER.debug("平台用户 SYS_USER listByUserOrganizeCode"); + List byProperty = userRDao.findByProperty( + new String[]{"isDeleted", "isValid", "organizeCode"}, + new Object[]{ + CommonEnumUtil.IS_DEAL.NO.getValue(), + CommonEnumUtil.IS_VAILD.VAILD.getValue(), + AuthUtil.getOrganize().getOrganizeCode() + }); + List usersToRemove = new ArrayList<>(); + byProperty.stream().forEach(user -> { + if(!StringUtil.isEmpty(user)){ + if (!StringUtil.isEmpty(roleId)) { + user.setRoleId(roleId); + } + List sysRoleByUser = userPermissionDao.findSysRoleByUser(user); + if (StringUtil.isEmpty(sysRoleByUser) || sysRoleByUser.size()<=0) { + user.setRoleMessage(""); + if (!StringUtil.isEmpty(roleId)) { + usersToRemove.add(user); + } + } else { + StringBuilder roleMessage = new StringBuilder(); + for (SysRole sysRole : sysRoleByUser) { + if(!StringUtil.isEmpty(sysRole)) { + roleMessage.append(",").append(sysRole.getName()); + } + } + if (roleMessage.length() > 0) { + user.setRoleMessage(roleMessage.substring(1)); + } + } + } + }); + byProperty.removeAll(usersToRemove); + return byProperty; + } + + /** * 获取用户对应的状态描述 * * @return