1
0
mirror of https://github.com/FatttSnake/Pinnacle-OA.git synced 2026-04-05 15:01:23 +08:00

Optimized getUserInfo

This commit is contained in:
2023-06-03 19:36:48 +08:00
parent bf3a74ec27
commit 8697c34282
5 changed files with 46 additions and 17 deletions

View File

@@ -96,6 +96,10 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>
</dependencies>
<build>

View File

@@ -1,5 +1,7 @@
package com.cfive.pinnacle.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
@@ -11,12 +13,12 @@ import org.springframework.data.redis.serializer.StringRedisSerializer;
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory)
{
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
Jackson2JsonRedisSerializer<Object> objectJackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class);
ObjectMapper objectMapper = new ObjectMapper().registerModule(new JavaTimeModule());
Jackson2JsonRedisSerializer<Object> objectJackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(objectMapper, Object.class);
// 使用StringRedisSerializer来序列化和反序列化redis的key值
redisTemplate.setKeySerializer(stringRedisSerializer);

View File

@@ -66,5 +66,6 @@ public class Department implements Serializable {
* 部门成员
*/
@TableField(exist = false)
@Deprecated
private List<User> userList;
}

View File

@@ -5,6 +5,7 @@ import com.cfive.pinnacle.exception.TokenHasExpiredException;
import com.cfive.pinnacle.utils.JwtUtil;
import com.cfive.pinnacle.utils.RedisCache;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import jakarta.annotation.Nonnull;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
@@ -42,7 +43,7 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter {
JwtUtil.parseJWT(token);
String redisKey = "login:" + token;
LoginUser loginUser = new ObjectMapper().convertValue(redisCache.getCacheObject(redisKey), LoginUser.class);
LoginUser loginUser = new ObjectMapper().registerModule(new JavaTimeModule()).convertValue(redisCache.getCacheObject(redisKey), LoginUser.class);
if (Objects.isNull(loginUser)) {
throw new TokenHasExpiredException();
}

View File

@@ -30,7 +30,7 @@
</where>
</select>
<select id="getAllWithRoleAndGroup" resultMap="userMap">
<select id="getAllWithRoleAndGroup" resultMap="userWithRoleMap">
select distinct t_user.id as user_id,
t_user.username as user_username,
t_user.department_id as user_department_id,
@@ -66,7 +66,7 @@
</where>
</select>
<select id="getOneById" resultMap="userMap">
<select id="getOneById" resultMap="userWithRoleMap">
select t_user.id as user_id,
t_user.username as user_username,
t_user.department_id as user_department_id,
@@ -109,6 +109,11 @@
ts.id as staff_id,
ts.first_name as staff_first_name,
ts.last_name as staff_last_name,
ts.gender as staff_gender,
ts.birth as staff_birth,
ts.email as staff_email,
ts.tel as staff_tel,
ts.address as staff_address,
ts.deleted as staff_deleted,
ts.version as staff_version,
tm.id as menu_id,
@@ -143,7 +148,7 @@
and t_user.username = #{username}
</select>
<select id="getAllAffairUser" resultMap="userMap">
<select id="getAllAffairUser" resultMap="userWithRoleMap">
select distinct t_user.id as user_id,
t_user.username as user_username,
t_user.department_id as user_department_id,
@@ -179,7 +184,7 @@
and t.code = 'affair:manage:modify'
</select>
<select id="getAllDepartmentUser" resultMap="userMap">
<select id="getAllDepartmentUser" resultMap="userWithRoleMap">
select distinct t_user.id as user_id,
t_user.username as user_username,
t_user.department_id as user_department_id,
@@ -224,7 +229,30 @@
<result property="version" column="user_version"/>
</resultMap>
<resultMap id="userMap" type="user" extends="userBase">
<resultMap id="userWithIfoMap" type="user" extends="userBase">
<association property="staff" javaType="staff">
<id property="id" column="staff_id"/>
<result property="firstName" column="staff_first_name"/>
<result property="lastName" column="staff_last_name"/>
<result property="gender" column="staff_gender"/>
<result property="birth" column="staff_birth"/>
<result property="email" column="staff_email"/>
<result property="tel" column="staff_tel"/>
<result property="address" column="staff_address"/>
<result property="deleted" column="staff_deleted"/>
<result property="version" column="staff_version"/>
</association>
<association property="department" javaType="department">
<id property="id" column="department_id"/>
<result property="name" column="department_name"/>
<result property="tel" column="department_tel"/>
<result property="address" column="department_address"/>
<result property="deleted" column="department_deleted"/>
<result property="version" column="department_version"/>
</association>
</resultMap>
<resultMap id="userWithRoleMap" type="user" extends="userBase">
<association property="staff" javaType="staff">
<id property="id" column="staff_id"/>
<result property="firstName" column="staff_first_name"/>
@@ -248,15 +276,8 @@
</collection>
</resultMap>
<resultMap id="userWithPowerMap" type="user" extends="userBase">
<resultMap id="userWithPowerMap" type="user" extends="userWithIfoMap">
<result property="passwd" column="user_passwd"/>
<association property="staff" javaType="staff">
<id property="id" column="staff_id"/>
<result property="firstName" column="staff_first_name"/>
<result property="lastName" column="staff_last_name"/>
<result property="deleted" column="staff_deleted"/>
<result property="version" column="staff_version"/>
</association>
<collection property="menus" ofType="menu">
<id property="id" column="menu_id"/>
<result property="name" column="menu_name"/>