|
|
@@ -4,17 +4,23 @@
|
|
|
package com.jeeplus.sys.service;
|
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
+import cn.hutool.extra.spring.SpringUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.google.common.collect.Lists;
|
|
|
+import com.jeeplus.common.TokenProvider;
|
|
|
import com.jeeplus.common.constant.CacheNames;
|
|
|
+import com.jeeplus.common.redis.RedisUtils;
|
|
|
import com.jeeplus.sys.domain.Post;
|
|
|
import com.jeeplus.sys.domain.Role;
|
|
|
+import com.jeeplus.sys.feign.IUserApi;
|
|
|
import com.jeeplus.sys.mapper.RoleMapper;
|
|
|
import com.jeeplus.sys.service.dto.RoleDTO;
|
|
|
import com.jeeplus.sys.service.dto.UserDTO;
|
|
|
import com.jeeplus.sys.service.mapstruct.RoleWrapper;
|
|
|
+import com.jeeplus.sys.utils.TenantUtils;
|
|
|
+import com.jeeplus.sys.utils.UserUtils;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.cache.annotation.CacheEvict;
|
|
|
@@ -175,6 +181,27 @@ public class RoleService extends ServiceImpl <RoleMapper, Role> {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 根据数据权限id查询用户是否存在当前权限
|
|
|
+ * @param userDTO
|
|
|
+ * @param dataRuleId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public boolean existsUserDataRule(UserDTO userDTO, String dataRuleId) {
|
|
|
+ String cacheKey = CacheNames.USER_CACHE_DATA_RULE_EXISTS +":"+ userDTO.getId() + ":" + dataRuleId;
|
|
|
+ Object redisValue = RedisUtils.getInstance().get(cacheKey);
|
|
|
+ //有结果直接return
|
|
|
+ if (redisValue != null) {
|
|
|
+ return Boolean.parseBoolean(redisValue.toString());
|
|
|
+ }
|
|
|
+ //缓存没结果就执行查询
|
|
|
+ boolean exists = baseMapper.existsUserDataRule(userDTO.getId(), dataRuleId) > 0;
|
|
|
+ //缓存1天
|
|
|
+ RedisUtils.getInstance().set(cacheKey, exists, 86400);
|
|
|
+ return exists;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
* 根据没名称与tenantId查询角色信息
|
|
|
* @return
|
|
|
*/
|