From 2176bf8bd794d8eee5ac22ec8ff27ae9877f2c54 Mon Sep 17 00:00:00 2001 From: Qing Date: Mon, 19 Feb 2024 18:46:26 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=BD=91=E5=85=B3=E4=B8=8Eauth?= =?UTF-8?q?=E5=BE=AE=E6=9C=8D=E5=8A=A1=E7=BC=93=E5=AD=98=E6=89=93=E9=80=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jc-club-auth/jc-club-auth-domain/pom.xml | 5 +++ .../impl/AuthUserDomainServiceImpl.java | 41 ++++++++++++++++--- .../impl/AuthRolePermissionServiceImpl.java | 1 + 3 files changed, 41 insertions(+), 6 deletions(-) diff --git a/jc-club-auth/jc-club-auth-domain/pom.xml b/jc-club-auth/jc-club-auth-domain/pom.xml index 1c6d8df..0c948f7 100644 --- a/jc-club-auth/jc-club-auth-domain/pom.xml +++ b/jc-club-auth/jc-club-auth-domain/pom.xml @@ -40,6 +40,11 @@ jc-club-auth-common 1.0-SNAPSHOT + + com.fasterxml.jackson.core + jackson-core + 2.12.7 + com.fasterxml.jackson.core jackson-databind diff --git a/jc-club-auth/jc-club-auth-domain/src/main/java/com/landaiqing/auth/domain/service/impl/AuthUserDomainServiceImpl.java b/jc-club-auth/jc-club-auth-domain/src/main/java/com/landaiqing/auth/domain/service/impl/AuthUserDomainServiceImpl.java index 0af4c34..afc909c 100644 --- a/jc-club-auth/jc-club-auth-domain/src/main/java/com/landaiqing/auth/domain/service/impl/AuthUserDomainServiceImpl.java +++ b/jc-club-auth/jc-club-auth-domain/src/main/java/com/landaiqing/auth/domain/service/impl/AuthUserDomainServiceImpl.java @@ -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 roleList = new LinkedList<>(); + roleList.add(authRole); + redisUtil.set(roleKey, new Gson().toJson(roleList)); + + AuthRolePermission authRolePermission = new AuthRolePermission(); + authRolePermission.setRoleId(roleId); + List rolePermissionList = authRolePermissionService. + queryByCondition(authRolePermission); + + List permissionIdList = rolePermissionList.stream() + .map(AuthRolePermission::getPermissionId).collect(Collectors.toList()); + //根据roleId查权限 + List permissionList = authPermissionService.queryByRoleList(permissionIdList); + String permissionKey = redisUtil.buildKey(authPermissionPrefix, authUser.getUserName()); + redisUtil.set(permissionKey, new Gson().toJson(permissionList)); return count > 0; } diff --git a/jc-club-auth/jc-club-auth-infra/src/main/java/com/landaiqing/auth/infra/basic/service/impl/AuthRolePermissionServiceImpl.java b/jc-club-auth/jc-club-auth-infra/src/main/java/com/landaiqing/auth/infra/basic/service/impl/AuthRolePermissionServiceImpl.java index dfb835b..c09a5b0 100644 --- a/jc-club-auth/jc-club-auth-infra/src/main/java/com/landaiqing/auth/infra/basic/service/impl/AuthRolePermissionServiceImpl.java +++ b/jc-club-auth/jc-club-auth-infra/src/main/java/com/landaiqing/auth/infra/basic/service/impl/AuthRolePermissionServiceImpl.java @@ -74,4 +74,5 @@ public class AuthRolePermissionServiceImpl implements AuthRolePermissionService return this.authRolePermissionDao.queryAllByLimit(authRolePermission); } + }