update redis调整
This commit is contained in:
parent
2506d9265f
commit
42543ce7c7
|
|
@ -1,45 +0,0 @@
|
|||
package com.tacit.common.utils;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
||||
import com.fasterxml.jackson.annotation.PropertyAccessor;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.redis.connection.RedisConnectionFactory;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
|
||||
import org.springframework.data.redis.serializer.StringRedisSerializer;
|
||||
|
||||
@Configuration
|
||||
public class RedisConfig {
|
||||
|
||||
@Bean
|
||||
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
|
||||
RedisTemplate<String, Object> template = new RedisTemplate<>();
|
||||
template.setConnectionFactory(factory);
|
||||
|
||||
// key 使用 String 序列化
|
||||
template.setKeySerializer(new StringRedisSerializer());
|
||||
template.setHashKeySerializer(new StringRedisSerializer());
|
||||
|
||||
// value 使用 JSON 序列化
|
||||
Jackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer<>(Object.class);
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
// 设置字段可见性
|
||||
mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
|
||||
|
||||
// 新版 Jackson 安全的多态类型配置
|
||||
mapper.activateDefaultTyping(
|
||||
LaissezFaireSubTypeValidator.instance,
|
||||
ObjectMapper.DefaultTyping.NON_FINAL
|
||||
);
|
||||
|
||||
template.setValueSerializer(serializer);
|
||||
template.setHashValueSerializer(serializer);
|
||||
|
||||
template.afterPropertiesSet();
|
||||
return template;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
package com.tacit.common.utils;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||
import org.springframework.data.redis.core.ValueOperations;
|
||||
import org.springframework.stereotype.Component;
|
||||
import redis.clients.jedis.Jedis;
|
||||
import redis.clients.jedis.JedisPool;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* @Description: redis工具类
|
||||
* @Author: lidongjin
|
||||
* @CreateTime: 2026-01-07 09:27
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class RedisUtils {
|
||||
|
||||
@Autowired
|
||||
private RedisTemplate<String, Object> redisTemplate;
|
||||
public void setObject(String key, Object value, long expireTime, TimeUnit timeUnit) {
|
||||
redisTemplate.opsForValue().set(key, value, expireTime, timeUnit);
|
||||
}
|
||||
|
||||
public Boolean hasKey(String key) {
|
||||
return redisTemplate.hasKey(key);
|
||||
}
|
||||
|
||||
public void delete(String token) {
|
||||
redisTemplate.delete(token);
|
||||
}
|
||||
}
|
||||
|
|
@ -10,8 +10,7 @@ import java.time.LocalDateTime;
|
|||
|
||||
@Data
|
||||
public class Base implements Serializable {
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
private LocalDateTime createTime;
|
||||
private LocalDateTime updateTime;
|
||||
private Integer delFlag;
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@
|
|||
<module>common-model</module>
|
||||
<module>common-feign</module>
|
||||
<module>common-core</module>
|
||||
<module>common-redis</module>
|
||||
<module>xxljob</module>
|
||||
</modules>
|
||||
|
||||
|
|
|
|||
|
|
@ -76,6 +76,11 @@
|
|||
<artifactId>common-core</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.tacit</groupId>
|
||||
<artifactId>common-redis</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
</dependency>
|
||||
<!-- XXL Job -->
|
||||
<dependency>
|
||||
<groupId>com.tacit</groupId>
|
||||
|
|
@ -94,15 +99,6 @@
|
|||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-bootstrap</artifactId>
|
||||
</dependency>
|
||||
<!-- 缓存及客户端 -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-redis</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>redis.clients</groupId>
|
||||
<artifactId>jedis</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package com.tacit.admin.config;
|
|||
import com.tacit.common.constant.CommonConstant;
|
||||
import com.tacit.common.utils.AesPasswordEncoder;
|
||||
import com.tacit.common.utils.JwtUtils;
|
||||
import com.tacit.common.utils.RedisUtils;
|
||||
import com.tacit.common.redis.utils.RedisUtils;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,25 @@
|
|||
package com.tacit.admin.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
@TableName("sys_role_menu")
|
||||
public class RoleMenu implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
// 菜单ID
|
||||
@TableField("menu_id")
|
||||
private Long menuId;
|
||||
// 角色ID
|
||||
@TableField("role_id")
|
||||
private Long roleId;
|
||||
|
||||
}
|
||||
|
|
@ -14,7 +14,8 @@ import java.time.LocalDateTime;
|
|||
public class User extends Base implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
private String username;
|
||||
private String password;
|
||||
private String nickname;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
package com.tacit.admin.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.tacit.admin.entity.Menu;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface MenuMapper extends BaseMapper<Menu> {
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
package com.tacit.admin.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.tacit.admin.entity.RoleMenu;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface RoleMenuMapper extends BaseMapper<RoleMenu> {
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
package com.tacit.admin.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.tacit.admin.entity.Menu;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface MenuService extends IService<Menu> {
|
||||
//根据角色id获取菜单列表
|
||||
List<Menu> getMenuListByRoleId(Long roleId);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
package com.tacit.admin.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.tacit.admin.entity.Role;
|
||||
|
||||
public interface RoleService extends IService<Role> {
|
||||
//根据用户id获取角色
|
||||
Role getRoleByUserId(Long userId);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
package com.tacit.admin.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.tacit.admin.entity.Menu;
|
||||
import com.tacit.admin.entity.Role;
|
||||
import com.tacit.admin.entity.RoleMenu;
|
||||
import com.tacit.admin.entity.UserRole;
|
||||
import com.tacit.admin.mapper.MenuMapper;
|
||||
import com.tacit.admin.mapper.RoleMapper;
|
||||
import com.tacit.admin.mapper.RoleMenuMapper;
|
||||
import com.tacit.admin.mapper.UserRoleMapper;
|
||||
import com.tacit.admin.service.MenuService;
|
||||
import com.tacit.admin.service.RoleService;
|
||||
import com.tacit.common.redis.utils.RedisUtils;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements MenuService {
|
||||
|
||||
@Resource
|
||||
private RedisUtils redisUtils;
|
||||
@Resource
|
||||
private RoleMenuMapper roleMenuMapper;
|
||||
@Resource
|
||||
private MenuMapper menuMapper;
|
||||
|
||||
@Override
|
||||
public List<Menu> getMenuListByRoleId(Long roleId) {
|
||||
QueryWrapper<RoleMenu> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("role_id", roleId);
|
||||
List<RoleMenu> roleMenuList = roleMenuMapper.selectList(queryWrapper);
|
||||
if (roleMenuList != null && roleMenuList.size() > 0) {
|
||||
// 获取菜单id
|
||||
List<Long> menuIdList = roleMenuList.stream().map(RoleMenu::getMenuId).collect(Collectors.toList());
|
||||
List<Menu> menuList = menuMapper.selectBatchIds(menuIdList);
|
||||
// 需要将MenuList转换成树形结构
|
||||
menuList = Menu.buildTree(menuList);
|
||||
return menuList;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
package com.tacit.admin.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.tacit.admin.entity.Role;
|
||||
import com.tacit.admin.entity.User;
|
||||
import com.tacit.admin.entity.UserRole;
|
||||
import com.tacit.admin.mapper.RoleMapper;
|
||||
import com.tacit.admin.mapper.UserRoleMapper;
|
||||
import com.tacit.admin.service.RoleService;
|
||||
import com.tacit.common.redis.utils.RedisUtils;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements RoleService {
|
||||
|
||||
@Resource
|
||||
private RedisUtils redisUtils;
|
||||
@Resource
|
||||
private RoleMapper roleMapper;
|
||||
@Resource
|
||||
private UserRoleMapper userRoleMapper;
|
||||
|
||||
@Override
|
||||
public Role getRoleByUserId(Long userId) {
|
||||
// 根据用户ID 获取角色id
|
||||
QueryWrapper<UserRole> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("user_id", userId);
|
||||
UserRole userRole = userRoleMapper.selectOne(queryWrapper);
|
||||
if (userRole != null) {
|
||||
// 根据角色id 获取角色信息
|
||||
return roleMapper.selectById(userRole.getRoleId());
|
||||
}
|
||||
// 角色不存在
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -9,7 +9,7 @@ import com.tacit.admin.entity.dto.RegisterRequest;
|
|||
import com.tacit.admin.mapper.UserMapper;
|
||||
import com.tacit.admin.service.UserService;
|
||||
import com.tacit.common.utils.JwtUtils;
|
||||
import com.tacit.common.utils.RedisUtils;
|
||||
import com.tacit.common.redis.utils.RedisUtils;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
|
|||
|
|
@ -91,6 +91,12 @@
|
|||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-bootstrap</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.tacit</groupId>
|
||||
<artifactId>common-redis</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
package com.tacit.app.config;
|
||||
|
||||
import com.tacit.common.constant.CommonConstant;
|
||||
import com.tacit.common.redis.utils.RedisUtils;
|
||||
import com.tacit.common.utils.AesPasswordEncoder;
|
||||
import com.tacit.common.utils.JwtUtils;
|
||||
import com.tacit.common.utils.RedisUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
|
|
|
|||
|
|
@ -62,15 +62,6 @@
|
|||
<groupId>com.alibaba.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
|
||||
</dependency>
|
||||
<!-- 缓存及客户端 -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-redis</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>redis.clients</groupId>
|
||||
<artifactId>jedis</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
|
|
|||
Loading…
Reference in New Issue