feat: 网关与auth微服务缓存打通

This commit is contained in:
2024-02-19 18:46:26 +08:00
parent 1ac0ec5313
commit 2176bf8bd7
3 changed files with 41 additions and 6 deletions

View File

@@ -40,6 +40,11 @@
<artifactId>jc-club-auth-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.12.7</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>

View File

@@ -1,24 +1,25 @@
package com.landaiqing.auth.domain.service.impl;
import cn.dev33.satoken.secure.SaSecureUtil;
import com.google.gson.Gson;
import com.landaiqing.auth.common.enums.AuthUserStatusEnum;
import com.landaiqing.auth.common.enums.IsDeletedFlagEnum;
import com.landaiqing.auth.domain.constants.AuthConstant;
import com.landaiqing.auth.domain.convert.AuthUserBOConverter;
import com.landaiqing.auth.domain.entity.AuthUserBO;
import com.landaiqing.auth.domain.redis.RedisUtil;
import com.landaiqing.auth.domain.service.AuthUserDomainService;
import com.landaiqing.auth.infra.basic.entity.AuthRole;
import com.landaiqing.auth.infra.basic.entity.AuthUser;
import com.landaiqing.auth.infra.basic.entity.AuthUserRole;
import com.landaiqing.auth.infra.basic.service.AuthRoleService;
import com.landaiqing.auth.infra.basic.service.AuthUserRoleService;
import com.landaiqing.auth.infra.basic.service.AuthUserService;
import com.landaiqing.auth.infra.basic.entity.*;
import com.landaiqing.auth.infra.basic.service.*;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
@Service
@Slf4j
@@ -33,6 +34,17 @@ public class AuthUserDomainServiceImpl implements AuthUserDomainService {
@Resource
private AuthRoleService authRoleService;
@Resource
private AuthPermissionService authPermissionService;
@Resource
private AuthRolePermissionService authRolePermissionService;
@Resource
private RedisUtil redisUtil;
private String authPermissionPrefix = "auth.permission";
private String authRolePrefix = "auth.role";
private String salt="landaiqing";
@Override
@@ -56,6 +68,23 @@ public class AuthUserDomainServiceImpl implements AuthUserDomainService {
authUserRole.setRoleId(roleId);
authUserRole.setIsDeleted(IsDeletedFlagEnum.UN_DELETED.getCode());
authUserRoleService.insert(authUserRole);
String roleKey = redisUtil.buildKey(authRolePrefix, authUser.getUserName());
List<AuthRole> roleList = new LinkedList<>();
roleList.add(authRole);
redisUtil.set(roleKey, new Gson().toJson(roleList));
AuthRolePermission authRolePermission = new AuthRolePermission();
authRolePermission.setRoleId(roleId);
List<AuthRolePermission> rolePermissionList = authRolePermissionService.
queryByCondition(authRolePermission);
List<Long> permissionIdList = rolePermissionList.stream()
.map(AuthRolePermission::getPermissionId).collect(Collectors.toList());
//根据roleId查权限
List<AuthPermission> permissionList = authPermissionService.queryByRoleList(permissionIdList);
String permissionKey = redisUtil.buildKey(authPermissionPrefix, authUser.getUserName());
redisUtil.set(permissionKey, new Gson().toJson(permissionList));
return count > 0;
}

View File

@@ -74,4 +74,5 @@ public class AuthRolePermissionServiceImpl implements AuthRolePermissionService
return this.authRolePermissionDao.queryAllByLimit(authRolePermission);
}
}