mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
Merge remote-tracking branch 'origin/main'
This commit is contained in:
+4
-4
@@ -27,11 +27,11 @@ public interface RoleMapper extends BaseMapperX<RoleDO> {
|
|||||||
lambdaQueryWrapperX.inIfPresent(RoleDO::getOrganId,0L,loginUser.getOrganId());
|
lambdaQueryWrapperX.inIfPresent(RoleDO::getOrganId,0L,loginUser.getOrganId());
|
||||||
}*/
|
}*/
|
||||||
if(isSupAdmin && ObjectUtil.isNotNull(reqVO.getOrganId())) {
|
if(isSupAdmin && ObjectUtil.isNotNull(reqVO.getOrganId())) {
|
||||||
//如果是超级管理员并且传入organId,就查看传入的组织
|
//如果是超级管理员并且传入organId,就查看组织id为0(内置角色)和传入的组织
|
||||||
lambdaQueryWrapperX.eqIfPresent(RoleDO::getOrganId, reqVO.getOrganId());
|
lambdaQueryWrapperX.inIfPresent(RoleDO::getOrganId, 0L, reqVO.getOrganId());
|
||||||
} else {
|
} else {
|
||||||
//如果不是,就查看组织id为0和自身的组织
|
//如果不是,就查看组织id为0(内置角色)和自身的组织
|
||||||
lambdaQueryWrapperX.inIfPresent(RoleDO::getOrganId,0L,loginUser.getOrganId());
|
lambdaQueryWrapperX.inIfPresent(RoleDO::getOrganId, 0L, loginUser.getOrganId());
|
||||||
}
|
}
|
||||||
|
|
||||||
lambdaQueryWrapperX.likeIfPresent(RoleDO::getName, reqVO.getName())
|
lambdaQueryWrapperX.likeIfPresent(RoleDO::getName, reqVO.getName())
|
||||||
|
|||||||
+1
-1
@@ -11,5 +11,5 @@ public interface RedisRefreshChannelTopicConstants {
|
|||||||
/**
|
/**
|
||||||
* 刷新权限
|
* 刷新权限
|
||||||
*/
|
*/
|
||||||
String PREMISSION_REFRESH = "PREMISSION_REFRESH";
|
String PERMISSION_REFRESH = "PERMISSION_REFRESH";
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-7
@@ -3,25 +3,24 @@ package com.cf.imes.module.system.dal.redis.listener;
|
|||||||
import com.cf.imes.framework.mq.redis.core.pubsub.AbstractRedisSimpleMessageListener;
|
import com.cf.imes.framework.mq.redis.core.pubsub.AbstractRedisSimpleMessageListener;
|
||||||
import com.cf.imes.framework.security.core.service.SecurityFrameworkService;
|
import com.cf.imes.framework.security.core.service.SecurityFrameworkService;
|
||||||
import com.cf.imes.module.system.dal.redis.RedisRefreshChannelTopicConstants;
|
import com.cf.imes.module.system.dal.redis.RedisRefreshChannelTopicConstants;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.data.redis.connection.Message;
|
import org.springframework.data.redis.connection.Message;
|
||||||
import org.springframework.data.redis.listener.ChannelTopic;
|
import org.springframework.data.redis.listener.ChannelTopic;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* system PREMISSION_REFRESH redis监听器
|
* system PERMISSION_REFRESH redis监听器
|
||||||
*
|
*
|
||||||
* @author Gqr
|
* @author Gqr
|
||||||
* @since 2024/6/13 10:32
|
* @since 2024/6/13 10:32
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
public class SystemPremissionRefreshRedisListener extends AbstractRedisSimpleMessageListener {
|
public class SystemPermissionRefreshRedisListener extends AbstractRedisSimpleMessageListener {
|
||||||
|
|
||||||
@Autowired
|
private final SecurityFrameworkService securityFrameworkService;
|
||||||
private SecurityFrameworkService securityFrameworkService;
|
|
||||||
|
|
||||||
public SystemPremissionRefreshRedisListener() {
|
public SystemPermissionRefreshRedisListener(SecurityFrameworkService securityFrameworkService) {
|
||||||
super.setTopic(new ChannelTopic(RedisRefreshChannelTopicConstants.PREMISSION_REFRESH));
|
super.setTopic(new ChannelTopic(RedisRefreshChannelTopicConstants.PERMISSION_REFRESH));
|
||||||
|
this.securityFrameworkService = securityFrameworkService;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
+19
-2
@@ -10,6 +10,7 @@ import com.cf.imes.framework.datapermission.core.annotation.DataPermission;
|
|||||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import com.cf.imes.framework.organ.core.aop.OrganIgnore;
|
import com.cf.imes.framework.organ.core.aop.OrganIgnore;
|
||||||
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
|
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
|
||||||
|
import com.cf.imes.framework.security.core.LoginUser;
|
||||||
import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
|
import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
|
||||||
import com.cf.imes.module.system.api.permission.dto.DeptDataPermissionRespDTO;
|
import com.cf.imes.module.system.api.permission.dto.DeptDataPermissionRespDTO;
|
||||||
import com.cf.imes.module.system.controller.admin.permission.vo.permission.PermissionAssignUserRoleReqVO;
|
import com.cf.imes.module.system.controller.admin.permission.vo.permission.PermissionAssignUserRoleReqVO;
|
||||||
@@ -188,9 +189,9 @@ public class PermissionServiceImpl implements PermissionService {
|
|||||||
// 角色菜单权限发生修改,通知刷新本地缓存
|
// 角色菜单权限发生修改,通知刷新本地缓存
|
||||||
if (CollectionUtil.isNotEmpty(createMenuIds) || CollectionUtil.isNotEmpty(deleteMenuIds)) {
|
if (CollectionUtil.isNotEmpty(createMenuIds) || CollectionUtil.isNotEmpty(deleteMenuIds)) {
|
||||||
CompletableFuture.runAsync(() -> {
|
CompletableFuture.runAsync(() -> {
|
||||||
redisTemplate.convertAndSend(RedisRefreshChannelTopicConstants.PREMISSION_REFRESH, "");
|
redisTemplate.convertAndSend(RedisRefreshChannelTopicConstants.PERMISSION_REFRESH, "");
|
||||||
}).exceptionally(e -> {
|
}).exceptionally(e -> {
|
||||||
log.error("redis message发送失败, topic:{}, 异常:{}", RedisRefreshChannelTopicConstants.PREMISSION_REFRESH, e.getMessage());
|
log.error("redis message发送失败, topic:{}, 异常:{}", RedisRefreshChannelTopicConstants.PERMISSION_REFRESH, e.getMessage());
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -266,6 +267,12 @@ public class PermissionServiceImpl implements PermissionService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Set<Long> getListRoleUsers(Long roleId, Long organId) {
|
public Set<Long> getListRoleUsers(Long roleId, Long organId) {
|
||||||
|
// 超管查看时没有选择机构则查看本机构
|
||||||
|
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
|
||||||
|
assert loginUser != null;
|
||||||
|
if (loginUser.getIsSupAdmin() && organId == null) {
|
||||||
|
organId = loginUser.getOrganId();
|
||||||
|
}
|
||||||
List<UserRoleDO> userRoleDOS = userRoleMapper.selectList(new LambdaQueryWrapperX<UserRoleDO>()
|
List<UserRoleDO> userRoleDOS = userRoleMapper.selectList(new LambdaQueryWrapperX<UserRoleDO>()
|
||||||
.eqIfPresent(UserRoleDO::getOrganId, organId)
|
.eqIfPresent(UserRoleDO::getOrganId, organId)
|
||||||
.eq(UserRoleDO::getRoleId, roleId)
|
.eq(UserRoleDO::getRoleId, roleId)
|
||||||
@@ -326,6 +333,16 @@ public class PermissionServiceImpl implements PermissionService {
|
|||||||
if (!CollectionUtil.isEmpty(deleteMenuIds)) {
|
if (!CollectionUtil.isEmpty(deleteMenuIds)) {
|
||||||
userRoleMapper.deleteListByUserIdAndRoleIdIds(userId, deleteMenuIds);
|
userRoleMapper.deleteListByUserIdAndRoleIdIds(userId, deleteMenuIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 角色菜单权限发生修改,通知刷新本地缓存
|
||||||
|
if (CollectionUtil.isNotEmpty(createRoleIds) || CollectionUtil.isNotEmpty(deleteMenuIds)) {
|
||||||
|
CompletableFuture.runAsync(() -> {
|
||||||
|
redisTemplate.convertAndSend(RedisRefreshChannelTopicConstants.PERMISSION_REFRESH, "");
|
||||||
|
}).exceptionally(e -> {
|
||||||
|
log.error("redis message发送失败, topic:{}, 异常:{}", RedisRefreshChannelTopicConstants.PERMISSION_REFRESH, e.getMessage());
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user