feat: 角色权限模块
This commit is contained in:
@@ -32,24 +32,7 @@
|
||||
<artifactId>jc-club-auth-domain</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<!-- Sa-Token 权限认证,在线文档:https://sa-token.cc -->
|
||||
<dependency>
|
||||
<groupId>cn.dev33</groupId>
|
||||
<artifactId>sa-token-spring-boot-starter</artifactId>
|
||||
<version>1.37.0</version>
|
||||
</dependency>
|
||||
<!-- Sa-Token 整合 Redis (使用 jackson 序列化方式) -->
|
||||
<dependency>
|
||||
<groupId>cn.dev33</groupId>
|
||||
<artifactId>sa-token-redis-jackson</artifactId>
|
||||
<version>1.37.0</version>
|
||||
</dependency>
|
||||
<!-- 提供Redis连接池 -->
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-pool2</artifactId>
|
||||
<version>2.9.0</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
</dependencies>
|
||||
</project>
|
||||
|
@@ -0,0 +1,102 @@
|
||||
package com.landaiqing.auth.application.controller;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.landaiqing.auth.application.convert.AuthPermissionDTOConverter;
|
||||
import com.landaiqing.auth.application.dto.AuthPermissionDTO;
|
||||
import com.landaiqing.auth.domain.entity.AuthPermissionBO;
|
||||
import com.landaiqing.auth.domain.service.AuthPermissionDomainService;
|
||||
import com.landaiqing.auth.common.entity.Result;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 权限controller
|
||||
*
|
||||
* @author: landaiqing
|
||||
* @date: 2024/2/19
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/permission/")
|
||||
@Slf4j
|
||||
public class PermissionController {
|
||||
|
||||
@Resource
|
||||
private AuthPermissionDomainService authPermissionDomainService;
|
||||
|
||||
/**
|
||||
* 新增权限
|
||||
*/
|
||||
@RequestMapping("add")
|
||||
public Result<Boolean> add(@RequestBody AuthPermissionDTO authPermissionDTO) {
|
||||
try {
|
||||
if (log.isInfoEnabled()) {
|
||||
log.info("PermissionController.add.dto:{}", JSON.toJSONString(authPermissionDTO));
|
||||
}
|
||||
Preconditions.checkArgument(!StringUtils.isBlank(authPermissionDTO.getName()), "权限名称不能为空");
|
||||
Preconditions.checkNotNull(authPermissionDTO.getParentId(), "权限父id不能为空");
|
||||
AuthPermissionBO permissionBO = AuthPermissionDTOConverter.INSTANCE.convertDTOToBO(authPermissionDTO);
|
||||
return Result.ok(authPermissionDomainService.add(permissionBO));
|
||||
} catch (Exception e) {
|
||||
log.error("PermissionController.add.error:{}", e.getMessage(), e);
|
||||
return Result.fail("新增权限失败");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改权限
|
||||
*/
|
||||
@RequestMapping("update")
|
||||
public Result<Boolean> update(@RequestBody AuthPermissionDTO authPermissionDTO) {
|
||||
try {
|
||||
if (log.isInfoEnabled()) {
|
||||
log.info("PermissionController.update.dto:{}", JSON.toJSONString(authPermissionDTO));
|
||||
}
|
||||
Preconditions.checkNotNull(authPermissionDTO.getId(), "权限id不能为空");
|
||||
AuthPermissionBO permissionBO = AuthPermissionDTOConverter.INSTANCE.convertDTOToBO(authPermissionDTO);
|
||||
return Result.ok(authPermissionDomainService.update(permissionBO));
|
||||
} catch (Exception e) {
|
||||
log.error("PermissionController.update.error:{}", e.getMessage(), e);
|
||||
return Result.fail("更新权限信息失败");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除权限
|
||||
*/
|
||||
@RequestMapping("delete")
|
||||
public Result<Boolean> delete(@RequestBody AuthPermissionDTO authPermissionDTO) {
|
||||
try {
|
||||
if (log.isInfoEnabled()) {
|
||||
log.info("PermissionController.delete.dto:{}", JSON.toJSONString(authPermissionDTO));
|
||||
}
|
||||
Preconditions.checkNotNull(authPermissionDTO.getId(), "权限id不能为空");
|
||||
AuthPermissionBO permissionBO = AuthPermissionDTOConverter.INSTANCE.convertDTOToBO(authPermissionDTO);
|
||||
return Result.ok(authPermissionDomainService.delete(permissionBO));
|
||||
} catch (Exception e) {
|
||||
log.error("PermissionController.delete.error:{}", e.getMessage(), e);
|
||||
return Result.fail("删除权限信息失败");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询用户权限
|
||||
*/
|
||||
@RequestMapping("getPermission")
|
||||
public Result<Boolean> getPermission(String userName) {
|
||||
try {
|
||||
log.info("PermissionController.getPermission.userName:{}",userName);
|
||||
Preconditions.checkArgument(!StringUtils.isBlank(userName), "用户id不能为空");
|
||||
return Result.ok(authPermissionDomainService.getPermission(userName));
|
||||
} catch (Exception e) {
|
||||
log.error("PermissionController.getPermission.error:{}", e.getMessage(), e);
|
||||
return Result.fail("查询用户权限信息失败");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,90 @@
|
||||
package com.landaiqing.auth.application.controller;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.landaiqing.auth.application.convert.AuthRoleDTOConverter;
|
||||
import com.landaiqing.auth.application.dto.AuthRoleDTO;
|
||||
import com.landaiqing.auth.common.entity.Result;
|
||||
import com.landaiqing.auth.domain.entity.AuthRoleBO;
|
||||
import com.landaiqing.auth.domain.service.AuthRoleDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @Classname RoleController
|
||||
* @BelongsProject: jc-club
|
||||
* @BelongsPackage: com.landaiqing.auth.application.controller
|
||||
* @Author: landaiqing
|
||||
* @CreateTime: 2024-02-19 15:34
|
||||
* @Description: TODO
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/role/")
|
||||
@Slf4j
|
||||
public class RoleController {
|
||||
@Resource
|
||||
private AuthRoleDomainService authRoleDomainService;
|
||||
/**
|
||||
* @description: 新增角色
|
||||
* @param: [authRoleDTO]
|
||||
* @return: com.landaiqing.auth.common.entity.Result<java.lang.Boolean>
|
||||
* @author landaiqing
|
||||
* @date: 2024/2/19 15:36
|
||||
*/
|
||||
@PostMapping("add")
|
||||
public Result<Boolean> add(@RequestBody AuthRoleDTO authRoleDTO){
|
||||
try {
|
||||
if (log.isInfoEnabled()) {
|
||||
log.info("RoleController.add.dto:{}", JSON.toJSONString(authRoleDTO));
|
||||
}
|
||||
Preconditions.checkNotNull(authRoleDTO.getRoleName(),"角色名称不能为空");
|
||||
Preconditions.checkNotNull(authRoleDTO.getRoleKey(),"角色Key不能为空");
|
||||
AuthRoleBO authRoleBO = AuthRoleDTOConverter.INSTANCE.convertDTOToBO(authRoleDTO);
|
||||
return Result.ok(authRoleDomainService.add(authRoleBO));
|
||||
} catch (Exception e) {
|
||||
log.error("RoleController.add.error:{}", e.getMessage(), e);
|
||||
return Result.fail("新增角色失败");
|
||||
}
|
||||
}
|
||||
@PostMapping("update")
|
||||
public Result<Boolean> update(@RequestBody AuthRoleDTO authRoleDTO){
|
||||
try {
|
||||
if (log.isInfoEnabled()) {
|
||||
log.info("RoleController.update.dto:{}", JSON.toJSONString(authRoleDTO));
|
||||
}
|
||||
Preconditions.checkNotNull(authRoleDTO.getId(),"角色id不能为空");
|
||||
|
||||
AuthRoleBO authRoleBO = AuthRoleDTOConverter.INSTANCE.convertDTOToBO(authRoleDTO);
|
||||
return Result.ok(authRoleDomainService.update(authRoleBO));
|
||||
} catch (Exception e) {
|
||||
log.error("RoleController.update.error:{}", e.getMessage(), e);
|
||||
return Result.fail("更新角色信息失败");
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @description: 删除角色
|
||||
* @param: [authRoleDTO]
|
||||
* @return: com.landaiqing.auth.common.entity.Result<java.lang.Boolean>
|
||||
* @author landaiqing
|
||||
* @date: 2024/2/19 15:53
|
||||
*/
|
||||
@PostMapping("delete")
|
||||
public Result<Boolean> delete(@RequestBody AuthRoleDTO authRoleDTO){
|
||||
try {
|
||||
if (log.isInfoEnabled()) {
|
||||
log.info("RoleController.delete.dto:{}", JSON.toJSONString(authRoleDTO));
|
||||
}
|
||||
AuthRoleBO authRoleBO = AuthRoleDTOConverter.INSTANCE.convertDTOToBO(authRoleDTO);
|
||||
return Result.ok(authRoleDomainService.delete(authRoleBO));
|
||||
} catch (Exception e) {
|
||||
log.error("RoleController.delete.error:{}", e.getMessage(), e);
|
||||
return Result.fail("删除角色信息失败");
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,50 @@
|
||||
package com.landaiqing.auth.application.controller;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.landaiqing.auth.application.convert.AuthRolePermissionDTOConverter;
|
||||
import com.landaiqing.auth.application.dto.AuthRolePermissionDTO;
|
||||
import com.landaiqing.auth.common.entity.Result;
|
||||
import com.landaiqing.auth.domain.entity.AuthRolePermissionBO;
|
||||
import com.landaiqing.auth.domain.service.AuthRolePermissionDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 角色权限controller
|
||||
*
|
||||
* @author: landaiqing
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/rolePermission/")
|
||||
@Slf4j
|
||||
public class RolePermissionController {
|
||||
|
||||
@Resource
|
||||
private AuthRolePermissionDomainService authRolePermissionDomainService;
|
||||
|
||||
/**
|
||||
* 新增角色权限关联关系
|
||||
*/
|
||||
@RequestMapping("add")
|
||||
public Result<Boolean> add(@RequestBody AuthRolePermissionDTO authRolePermissionDTO) {
|
||||
try {
|
||||
if (log.isInfoEnabled()) {
|
||||
log.info("RolePermissionController.add.dto:{}", JSON.toJSONString(authRolePermissionDTO));
|
||||
}
|
||||
Preconditions.checkArgument(!CollectionUtils.isEmpty(authRolePermissionDTO.getPermissionIdList()),"权限关联不能为空");
|
||||
Preconditions.checkNotNull(authRolePermissionDTO.getRoleId(),"角色不能为空!");
|
||||
AuthRolePermissionBO rolePermissionBO = AuthRolePermissionDTOConverter.INSTANCE.convertDTOToBO(authRolePermissionDTO);
|
||||
return Result.ok(authRolePermissionDomainService.add(rolePermissionBO));
|
||||
} catch (Exception e) {
|
||||
log.error("PermissionController.add.error:{}", e.getMessage(), e);
|
||||
return Result.fail("新增角色权限失败");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@@ -45,10 +45,7 @@ public class UserController {
|
||||
if (log.isInfoEnabled()) {
|
||||
log.info("UserController.register.dto:{}", JSON.toJSONString(authUserDTO));
|
||||
}
|
||||
Preconditions.checkArgument(!StringUtils.isBlank(authUserDTO.getUserName()),"用户名不能为空");
|
||||
Preconditions.checkArgument(!StringUtils.isBlank(authUserDTO.getEmail()),"邮箱不能为空");
|
||||
Preconditions.checkArgument(!StringUtils.isBlank(authUserDTO.getPassword()),"密码不能为空");
|
||||
|
||||
checkUserInfo(authUserDTO);
|
||||
AuthUserBO authUserBO = AuthUserDTOConverter.INSTANCE.convertDTOToBO(authUserDTO);
|
||||
return Result.ok(authUserDomainService.register(authUserBO));
|
||||
} catch (Exception e) {
|
||||
@@ -56,4 +53,74 @@ public class UserController {
|
||||
return Result.fail("注册用户失败");
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @description: 修改用户信息
|
||||
* @param: [authUserDTO]
|
||||
* @return: com.landaiqing.auth.common.entity.Result<java.lang.Boolean>
|
||||
* @author landaiqing
|
||||
* @date: 2024/2/19 14:38
|
||||
*/
|
||||
@PostMapping("update")
|
||||
public Result<Boolean> update(@RequestBody AuthUserDTO authUserDTO){
|
||||
try {
|
||||
if (log.isInfoEnabled()) {
|
||||
log.info("UserController.update.dto:{}", JSON.toJSONString(authUserDTO));
|
||||
}
|
||||
checkUserInfo(authUserDTO);
|
||||
AuthUserBO authUserBO = AuthUserDTOConverter.INSTANCE.convertDTOToBO(authUserDTO);
|
||||
return Result.ok(authUserDomainService.update(authUserBO));
|
||||
} catch (Exception e) {
|
||||
log.error("UserController.update.error:{}", e.getMessage(), e);
|
||||
return Result.fail("更新用户信息失败");
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @description: 用户启用/禁用
|
||||
* @param: [authUserDTO]
|
||||
* @return: com.landaiqing.auth.common.entity.Result<java.lang.Boolean>
|
||||
* @author landaiqing
|
||||
* @date: 2024/2/19 14:56
|
||||
*/
|
||||
@PostMapping("changeStatus")
|
||||
public Result<Boolean> changeStatus(@RequestBody AuthUserDTO authUserDTO){
|
||||
try {
|
||||
if (log.isInfoEnabled()) {
|
||||
log.info("UserController.changeStatus.dto:{}", JSON.toJSONString(authUserDTO));
|
||||
}
|
||||
Preconditions.checkNotNull(authUserDTO.getStatus(),"用户名状态不能为空");
|
||||
AuthUserBO authUserBO = AuthUserDTOConverter.INSTANCE.convertDTOToBO(authUserDTO);
|
||||
return Result.ok(authUserDomainService.update(authUserBO));
|
||||
} catch (Exception e) {
|
||||
log.error("UserController.changeStatus.error:{}", e.getMessage(), e);
|
||||
return Result.fail("启用/禁用用户信息失败");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description: 删除用户
|
||||
* @param: [authUserDTO]
|
||||
* @return: com.landaiqing.auth.common.entity.Result<java.lang.Boolean>
|
||||
* @author landaiqing
|
||||
* @date: 2024/2/19 14:50
|
||||
*/
|
||||
@PostMapping("delete")
|
||||
public Result<Boolean> delete(@RequestBody AuthUserDTO authUserDTO){
|
||||
try {
|
||||
if (log.isInfoEnabled()) {
|
||||
log.info("UserController.update.dto:{}", JSON.toJSONString(authUserDTO));
|
||||
}
|
||||
AuthUserBO authUserBO = AuthUserDTOConverter.INSTANCE.convertDTOToBO(authUserDTO);
|
||||
return Result.ok(authUserDomainService.delete(authUserBO));
|
||||
} catch (Exception e) {
|
||||
log.error("UserController.update.error:{}", e.getMessage(), e);
|
||||
return Result.fail("删除用户信息失败");
|
||||
}
|
||||
}
|
||||
|
||||
private void checkUserInfo(@RequestBody AuthUserDTO authUserDTO) {
|
||||
Preconditions.checkArgument(!StringUtils.isBlank(authUserDTO.getUserName()),"用户名不能为空");
|
||||
Preconditions.checkArgument(!StringUtils.isBlank(authUserDTO.getEmail()),"邮箱不能为空");
|
||||
Preconditions.checkArgument(!StringUtils.isBlank(authUserDTO.getPassword()),"密码不能为空");
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,21 @@
|
||||
package com.landaiqing.auth.application.convert;
|
||||
|
||||
import com.landaiqing.auth.application.dto.AuthPermissionDTO;
|
||||
import com.landaiqing.auth.domain.entity.AuthPermissionBO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
/**
|
||||
* 权限dto转换器
|
||||
*
|
||||
* @author: landaiqing
|
||||
* @date: 2024/2/19
|
||||
*/
|
||||
@Mapper
|
||||
public interface AuthPermissionDTOConverter {
|
||||
|
||||
AuthPermissionDTOConverter INSTANCE = Mappers.getMapper(AuthPermissionDTOConverter.class);
|
||||
|
||||
AuthPermissionBO convertDTOToBO(AuthPermissionDTO authPermissionDTO);
|
||||
|
||||
}
|
@@ -0,0 +1,22 @@
|
||||
package com.landaiqing.auth.application.convert;
|
||||
|
||||
import com.landaiqing.auth.application.dto.AuthRoleDTO;
|
||||
import com.landaiqing.auth.domain.entity.AuthRoleBO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
/**
|
||||
* 角色dto转换器
|
||||
*
|
||||
* @author: landaiqing
|
||||
*/
|
||||
@Mapper
|
||||
public interface AuthRoleDTOConverter {
|
||||
|
||||
AuthRoleDTOConverter INSTANCE = Mappers.getMapper(AuthRoleDTOConverter.class);
|
||||
|
||||
AuthRoleBO convertDTOToBO(AuthRoleDTO authRoleDTO);
|
||||
|
||||
AuthRoleDTO convertBOToDTO(AuthRoleBO authRoleBO);
|
||||
|
||||
}
|
@@ -0,0 +1,20 @@
|
||||
package com.landaiqing.auth.application.convert;
|
||||
|
||||
import com.landaiqing.auth.application.dto.AuthRolePermissionDTO;
|
||||
import com.landaiqing.auth.domain.entity.AuthRolePermissionBO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
/**
|
||||
* 权限dto转换器
|
||||
*
|
||||
* @author: landaiqing
|
||||
*/
|
||||
@Mapper
|
||||
public interface AuthRolePermissionDTOConverter {
|
||||
|
||||
AuthRolePermissionDTOConverter INSTANCE = Mappers.getMapper(AuthRolePermissionDTOConverter.class);
|
||||
|
||||
AuthRolePermissionBO convertDTOToBO(AuthRolePermissionDTO authRolePermissionDTO);
|
||||
|
||||
}
|
@@ -9,7 +9,6 @@ import org.mapstruct.factory.Mappers;
|
||||
* 用户dto转换器
|
||||
*
|
||||
* @author: landaiqing
|
||||
* @date: 2023/10/8
|
||||
*/
|
||||
@Mapper
|
||||
public interface AuthUserDTOConverter {
|
||||
|
@@ -8,7 +8,7 @@ import java.io.Serializable;
|
||||
* 权限dto
|
||||
*
|
||||
* @author: landaiqing
|
||||
* @date: 2023/11/3
|
||||
* @date: 2024/2/19
|
||||
*/
|
||||
@Data
|
||||
public class AuthPermissionDTO implements Serializable {
|
||||
|
@@ -8,7 +8,7 @@ import java.io.Serializable;
|
||||
* 角色dto
|
||||
*
|
||||
* @author: landaiqing
|
||||
* @date: 2023/11/2
|
||||
* @date: 2024/2/19
|
||||
*/
|
||||
@Data
|
||||
public class AuthRoleDTO implements Serializable {
|
||||
|
@@ -9,7 +9,6 @@ import java.util.List;
|
||||
* (AuthRolePermission)实体类
|
||||
*
|
||||
* @author landaiqing
|
||||
* @since 2023-11-04 22:16:00
|
||||
*/
|
||||
@Data
|
||||
public class AuthRolePermissionDTO implements Serializable {
|
||||
|
@@ -58,5 +58,24 @@
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<version>3.11</version>
|
||||
</dependency>
|
||||
|
||||
<!-- Sa-Token 权限认证,在线文档:https://sa-token.cc -->
|
||||
<dependency>
|
||||
<groupId>cn.dev33</groupId>
|
||||
<artifactId>sa-token-spring-boot-starter</artifactId>
|
||||
<version>1.37.0</version>
|
||||
</dependency>
|
||||
<!-- Sa-Token 整合 Redis (使用 jackson 序列化方式) -->
|
||||
<dependency>
|
||||
<groupId>cn.dev33</groupId>
|
||||
<artifactId>sa-token-redis-jackson</artifactId>
|
||||
<version>1.37.0</version>
|
||||
</dependency>
|
||||
<!-- 提供Redis连接池 -->
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-pool2</artifactId>
|
||||
<version>2.9.0</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
@@ -4,7 +4,6 @@ package com.landaiqing.auth.common.entity;
|
||||
* 分页请求实体
|
||||
*
|
||||
* @author: landaiqing
|
||||
* @date: 2023/10/5
|
||||
*/
|
||||
public class PageInfo {
|
||||
|
||||
|
@@ -10,7 +10,6 @@ import java.util.List;
|
||||
* 分页返回实体
|
||||
*
|
||||
* @author: landaiqing
|
||||
* @date: 2023/10/5
|
||||
*/
|
||||
@Data
|
||||
public class PageResult<T> implements Serializable {
|
||||
|
@@ -6,7 +6,6 @@ import lombok.Getter;
|
||||
* 用户状态枚举
|
||||
*
|
||||
* @author: landaiqing
|
||||
* @date: 2023/10/3
|
||||
*/
|
||||
@Getter
|
||||
public enum AuthUserStatusEnum {
|
||||
|
@@ -6,7 +6,6 @@ import lombok.Getter;
|
||||
* 删除状态枚举
|
||||
*
|
||||
* @author: landaiqing
|
||||
* @date: 2023/10/3
|
||||
*/
|
||||
@Getter
|
||||
public enum IsDeletedFlagEnum {
|
||||
|
@@ -0,0 +1,13 @@
|
||||
package com.landaiqing.auth.domain.constants;
|
||||
|
||||
/**
|
||||
* auth服务常量
|
||||
*
|
||||
* @author: landaiqing
|
||||
* @date: 2024/2/19
|
||||
*/
|
||||
public class AuthConstant {
|
||||
|
||||
public static final String NORMAL_USER = "normal_user";
|
||||
|
||||
}
|
@@ -8,7 +8,7 @@ import java.io.Serializable;
|
||||
* 权限dto
|
||||
*
|
||||
* @author: landaiqing
|
||||
* @date: 2023/11/3
|
||||
* @date: 2024/2/19
|
||||
*/
|
||||
@Data
|
||||
public class AuthPermissionBO implements Serializable {
|
||||
|
@@ -8,7 +8,6 @@ import java.io.Serializable;
|
||||
* 角色bo
|
||||
*
|
||||
* @author: landaiqing
|
||||
* @date: 2023/11/2
|
||||
*/
|
||||
@Data
|
||||
public class AuthRoleBO implements Serializable {
|
||||
|
@@ -9,7 +9,6 @@ import java.util.List;
|
||||
* (AuthRolePermission)实体类
|
||||
*
|
||||
* @author landaiqing
|
||||
* @since 2023-11-04 22:16:00
|
||||
*/
|
||||
@Data
|
||||
public class AuthRolePermissionBO implements Serializable {
|
||||
|
@@ -8,7 +8,6 @@ import java.io.Serializable;
|
||||
* 用戶信息dto
|
||||
*
|
||||
* @author: landaiqing
|
||||
* @date: 2023/11/1
|
||||
*/
|
||||
@Data
|
||||
public class AuthUserBO implements Serializable {
|
||||
|
@@ -0,0 +1,46 @@
|
||||
package com.landaiqing.auth.domain.redis;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import com.fasterxml.jackson.annotation.PropertyAccessor;
|
||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
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.RedisSerializer;
|
||||
import org.springframework.data.redis.serializer.StringRedisSerializer;
|
||||
|
||||
/**
|
||||
* Redis的config处理
|
||||
*
|
||||
* @author: landaiqing
|
||||
*/
|
||||
@Configuration
|
||||
public class RedisConfig {
|
||||
|
||||
@Bean
|
||||
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
|
||||
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
|
||||
RedisSerializer<String> redisSerializer = new StringRedisSerializer();
|
||||
redisTemplate.setConnectionFactory(redisConnectionFactory);
|
||||
redisTemplate.setKeySerializer(redisSerializer);
|
||||
redisTemplate.setHashKeySerializer(redisSerializer);
|
||||
redisTemplate.setValueSerializer(jackson2JsonRedisSerializer());
|
||||
redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer());
|
||||
return redisTemplate;
|
||||
}
|
||||
|
||||
private Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer() {
|
||||
Jackson2JsonRedisSerializer<Object> jsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class);
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
|
||||
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
||||
objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY);
|
||||
jsonRedisSerializer.setObjectMapper(objectMapper);
|
||||
return jsonRedisSerializer;
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,107 @@
|
||||
package com.landaiqing.auth.domain.redis;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
* RedisUtil工具类
|
||||
*
|
||||
* @author: landaiqing
|
||||
* @date: 2024/2/19
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
public class RedisUtil {
|
||||
|
||||
@Resource
|
||||
private RedisTemplate redisTemplate;
|
||||
|
||||
private static final String CACHE_KEY_SEPARATOR = ".";
|
||||
|
||||
/**
|
||||
* 构建缓存key
|
||||
*/
|
||||
public String buildKey(String... strObjs) {
|
||||
return Stream.of(strObjs).collect(Collectors.joining(CACHE_KEY_SEPARATOR));
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否存在key
|
||||
*/
|
||||
public boolean exist(String key) {
|
||||
return redisTemplate.hasKey(key);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除key
|
||||
*/
|
||||
public boolean del(String key) {
|
||||
return redisTemplate.delete(key);
|
||||
}
|
||||
|
||||
/**
|
||||
* set(不带过期)
|
||||
*/
|
||||
public void set(String key, String value) {
|
||||
redisTemplate.opsForValue().set(key, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* set(带过期)
|
||||
*/
|
||||
public boolean setNx(String key, String value, Long time, TimeUnit timeUnit) {
|
||||
return redisTemplate.opsForValue().setIfAbsent(key, value, time, timeUnit);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取string类型缓存
|
||||
*/
|
||||
public String get(String key) {
|
||||
return (String) redisTemplate.opsForValue().get(key);
|
||||
}
|
||||
|
||||
public Boolean zAdd(String key, String value, Long score) {
|
||||
return redisTemplate.opsForZSet().add(key, value, Double.valueOf(String.valueOf(score)));
|
||||
}
|
||||
|
||||
public Long countZset(String key) {
|
||||
return redisTemplate.opsForZSet().size(key);
|
||||
}
|
||||
|
||||
public Set<String> rangeZset(String key, long start, long end) {
|
||||
return redisTemplate.opsForZSet().range(key, start, end);
|
||||
}
|
||||
|
||||
public Long removeZset(String key, Object value) {
|
||||
return redisTemplate.opsForZSet().remove(key, value);
|
||||
}
|
||||
|
||||
public void removeZsetList(String key, Set<String> value) {
|
||||
value.stream().forEach((val) -> redisTemplate.opsForZSet().remove(key, val));
|
||||
}
|
||||
|
||||
public Double score(String key, Object value) {
|
||||
return redisTemplate.opsForZSet().score(key, value);
|
||||
}
|
||||
|
||||
public Set<String> rangeByScore(String key, long start, long end) {
|
||||
return redisTemplate.opsForZSet().rangeByScore(key, Double.valueOf(String.valueOf(start)), Double.valueOf(String.valueOf(end)));
|
||||
}
|
||||
|
||||
public Object addScore(String key, Object obj, double score) {
|
||||
return redisTemplate.opsForZSet().incrementScore(key, obj, score);
|
||||
}
|
||||
|
||||
public Object rank(String key, Object obj) {
|
||||
return redisTemplate.opsForZSet().rank(key, obj);
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -0,0 +1,22 @@
|
||||
package com.landaiqing.auth.domain.service;
|
||||
|
||||
import com.landaiqing.auth.domain.entity.AuthPermissionBO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 权限领域service
|
||||
*
|
||||
* @author: landaiqing
|
||||
* @date: 2024/2/19
|
||||
*/
|
||||
public interface AuthPermissionDomainService {
|
||||
|
||||
Boolean add(AuthPermissionBO authPermissionBO);
|
||||
|
||||
Boolean update(AuthPermissionBO authPermissionBO);
|
||||
|
||||
Boolean delete(AuthPermissionBO authPermissionBO);
|
||||
|
||||
List<String> getPermission(String userName);
|
||||
}
|
@@ -0,0 +1,23 @@
|
||||
package com.landaiqing.auth.domain.service;
|
||||
|
||||
|
||||
import com.landaiqing.auth.domain.entity.AuthRoleBO;
|
||||
|
||||
/**
|
||||
* 角色领域service
|
||||
*
|
||||
* @author: landaiqing
|
||||
* @date: 2024/2/19
|
||||
*/
|
||||
public interface AuthRoleDomainService {
|
||||
|
||||
/**
|
||||
* 注册
|
||||
*/
|
||||
Boolean add(AuthRoleBO authRoleBO);
|
||||
|
||||
Boolean update(AuthRoleBO authRoleBO);
|
||||
|
||||
Boolean delete(AuthRoleBO authRoleBO);
|
||||
}
|
||||
|
@@ -0,0 +1,14 @@
|
||||
package com.landaiqing.auth.domain.service;
|
||||
|
||||
import com.landaiqing.auth.domain.entity.AuthRolePermissionBO;
|
||||
|
||||
/**
|
||||
* 角色领域service
|
||||
*
|
||||
* @author: landaiqing
|
||||
*/
|
||||
public interface AuthRolePermissionDomainService {
|
||||
|
||||
Boolean add(AuthRolePermissionBO authRolePermissionBO);
|
||||
|
||||
}
|
@@ -16,6 +16,11 @@ public interface AuthUserDomainService {
|
||||
*/
|
||||
Boolean register(AuthUserBO authUserBO);
|
||||
|
||||
/**
|
||||
* 更新用户信息
|
||||
*/
|
||||
Object update(AuthUserBO authUserBO);
|
||||
|
||||
Object delete(AuthUserBO authUserBO);
|
||||
}
|
||||
|
||||
|
@@ -0,0 +1,71 @@
|
||||
package com.landaiqing.auth.domain.service.impl;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.landaiqing.auth.common.enums.IsDeletedFlagEnum;
|
||||
import com.landaiqing.auth.domain.convert.AuthPermissionBOConverter;
|
||||
import com.landaiqing.auth.domain.entity.AuthPermissionBO;
|
||||
import com.landaiqing.auth.domain.redis.RedisUtil;
|
||||
import com.landaiqing.auth.domain.service.AuthPermissionDomainService;
|
||||
import com.landaiqing.auth.infra.basic.entity.AuthPermission;
|
||||
import com.landaiqing.auth.infra.basic.service.AuthPermissionService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class AuthPermissionDomainServiceImpl implements AuthPermissionDomainService {
|
||||
|
||||
@Resource
|
||||
private AuthPermissionService authPermissionService;
|
||||
|
||||
@Resource
|
||||
private RedisUtil redisUtil;
|
||||
|
||||
private String authPermissionPrefix = "auth.permission";
|
||||
|
||||
@Override
|
||||
public Boolean add(AuthPermissionBO authPermissionBO) {
|
||||
AuthPermission authPermission = AuthPermissionBOConverter.INSTANCE.convertBOToEntity(authPermissionBO);
|
||||
authPermission.setIsDeleted(IsDeletedFlagEnum.UN_DELETED.getCode());
|
||||
Integer count = authPermissionService.insert(authPermission);
|
||||
return count > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean update(AuthPermissionBO authPermissionBO) {
|
||||
AuthPermission authPermission = AuthPermissionBOConverter.INSTANCE.convertBOToEntity(authPermissionBO);
|
||||
Integer count = authPermissionService.update(authPermission);
|
||||
return count > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean delete(AuthPermissionBO authPermissionBO) {
|
||||
AuthPermission authPermission = new AuthPermission();
|
||||
authPermission.setId(authPermissionBO.getId());
|
||||
authPermission.setIsDeleted(IsDeletedFlagEnum.DELETED.getCode());
|
||||
Integer count = authPermissionService.update(authPermission);
|
||||
return count > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getPermission(String userName) {
|
||||
String permissionKey = redisUtil.buildKey(authPermissionPrefix, userName);
|
||||
String permissionValue = redisUtil.get(permissionKey);
|
||||
if (StringUtils.isBlank(permissionValue)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
List<AuthPermission> permissionList = new Gson().fromJson(permissionValue,
|
||||
new TypeToken<List<AuthPermission>>() {
|
||||
}.getType());
|
||||
List<String> authList = permissionList.stream().map(AuthPermission::getPermissionKey).collect(Collectors.toList());
|
||||
return authList;
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,44 @@
|
||||
package com.landaiqing.auth.domain.service.impl;
|
||||
|
||||
import com.landaiqing.auth.common.enums.IsDeletedFlagEnum;
|
||||
import com.landaiqing.auth.domain.convert.AuthRoleBOConverter;
|
||||
import com.landaiqing.auth.domain.entity.AuthRoleBO;
|
||||
import com.landaiqing.auth.domain.service.AuthRoleDomainService;
|
||||
import com.landaiqing.auth.infra.basic.entity.AuthRole;
|
||||
import com.landaiqing.auth.infra.basic.service.AuthRoleService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class AuthRoleDomainServiceImpl implements AuthRoleDomainService {
|
||||
|
||||
@Resource
|
||||
private AuthRoleService authRoleService;
|
||||
|
||||
@Override
|
||||
public Boolean add(AuthRoleBO authRoleBO) {
|
||||
AuthRole authRole = AuthRoleBOConverter.INSTANCE.convertBOToEntity(authRoleBO);
|
||||
authRole.setIsDeleted(IsDeletedFlagEnum.UN_DELETED.getCode());
|
||||
Integer count = authRoleService.insert(authRole);
|
||||
return count > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean update(AuthRoleBO authRoleBO) {
|
||||
AuthRole authRole = AuthRoleBOConverter.INSTANCE.convertBOToEntity(authRoleBO);
|
||||
int count = authRoleService.update(authRole);
|
||||
return count > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean delete(AuthRoleBO authRoleBO) {
|
||||
AuthRole authRole = new AuthRole();
|
||||
authRole.setId(authRoleBO.getId());
|
||||
authRole.setIsDeleted(IsDeletedFlagEnum.DELETED.getCode());
|
||||
int count = authRoleService.update(authRole);
|
||||
return count > 0;
|
||||
}
|
||||
}
|
@@ -0,0 +1,38 @@
|
||||
package com.landaiqing.auth.domain.service.impl;
|
||||
|
||||
import com.landaiqing.auth.common.enums.IsDeletedFlagEnum;
|
||||
import com.landaiqing.auth.domain.entity.AuthRolePermissionBO;
|
||||
import com.landaiqing.auth.domain.service.AuthRolePermissionDomainService;
|
||||
import com.landaiqing.auth.infra.basic.entity.AuthRolePermission;
|
||||
import com.landaiqing.auth.infra.basic.service.AuthRolePermissionService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class AuthRolePermissionDomainServiceImpl implements AuthRolePermissionDomainService {
|
||||
|
||||
@Resource
|
||||
private AuthRolePermissionService authRolePermissionService;
|
||||
|
||||
@Override
|
||||
public Boolean add(AuthRolePermissionBO authRolePermissionBO) {
|
||||
List<AuthRolePermission> rolePermissionList = new LinkedList<>();
|
||||
Long roleId = authRolePermissionBO.getRoleId();
|
||||
authRolePermissionBO.getPermissionIdList().forEach(permissionId -> {
|
||||
AuthRolePermission authRolePermission = new AuthRolePermission();
|
||||
authRolePermission.setRoleId(roleId);
|
||||
authRolePermission.setPermissionId(permissionId);
|
||||
authRolePermission.setIsDeleted(IsDeletedFlagEnum.UN_DELETED.getCode());
|
||||
rolePermissionList.add(authRolePermission);
|
||||
});
|
||||
int count = authRolePermissionService.batchInsert(rolePermissionList);
|
||||
return count > 0;
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -1,14 +1,22 @@
|
||||
package com.landaiqing.auth.domain.service.impl;
|
||||
|
||||
import cn.dev33.satoken.secure.SaSecureUtil;
|
||||
import com.landaiqing.auth.common.enums.AuthUserStatusEnum;
|
||||
import com.landaiqing.auth.common.enums.IsDeletedFlagEnum;
|
||||
import com.landaiqing .auth.domain.convert.AuthUserBOConverter;
|
||||
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.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 lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@@ -19,13 +27,51 @@ public class AuthUserDomainServiceImpl implements AuthUserDomainService {
|
||||
@Resource
|
||||
private AuthUserService authUserService;
|
||||
|
||||
@Resource
|
||||
private AuthUserRoleService authUserRoleService;
|
||||
|
||||
@Resource
|
||||
private AuthRoleService authRoleService;
|
||||
|
||||
private String salt="landaiqing";
|
||||
|
||||
@Override
|
||||
@SneakyThrows
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean register(AuthUserBO authUserBO) {
|
||||
AuthUser authUser = AuthUserBOConverter.INSTANCE.convertBOToEntity(authUserBO);
|
||||
authUser.setPassword(SaSecureUtil.md5BySalt(authUser.getPassword(),salt));
|
||||
authUser.setStatus(AuthUserStatusEnum.OPEN.getCode());
|
||||
authUser.setIsDeleted(IsDeletedFlagEnum.UN_DELETED.getCode());
|
||||
Integer count = authUserService.insert(authUser);
|
||||
|
||||
// 用户和角色关联
|
||||
AuthRole authRole=new AuthRole();
|
||||
authRole.setRoleKey(AuthConstant.NORMAL_USER);
|
||||
AuthRole roleResult = authRoleService.queryByCondition(authRole);
|
||||
Long roleId = roleResult.getId();
|
||||
Long userId = authUser.getId();
|
||||
AuthUserRole authUserRole=new AuthUserRole();
|
||||
authUserRole.setUserId(userId);
|
||||
authUserRole.setRoleId(roleId);
|
||||
authUserRole.setIsDeleted(IsDeletedFlagEnum.UN_DELETED.getCode());
|
||||
authUserRoleService.insert(authUserRole);
|
||||
return count > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object update(AuthUserBO authUserBO) {
|
||||
AuthUser authUser = AuthUserBOConverter.INSTANCE.convertBOToEntity(authUserBO);
|
||||
Integer count = authUserService.update(authUser);
|
||||
return count > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object delete(AuthUserBO authUserBO) {
|
||||
AuthUser authUser = new AuthUser();
|
||||
authUser.setId(authUserBO.getId());
|
||||
authUser.setIsDeleted(IsDeletedFlagEnum.DELETED.getCode());
|
||||
Integer count = authUserService.update(authUser);
|
||||
return count > 0;
|
||||
}
|
||||
}
|
||||
|
@@ -26,7 +26,7 @@ public interface AuthRoleService {
|
||||
* @param authRole 实例对象
|
||||
* @return 实例对象
|
||||
*/
|
||||
int insert(AuthRole authRole);
|
||||
Integer insert(AuthRole authRole);
|
||||
|
||||
/**
|
||||
* 修改数据
|
||||
@@ -34,7 +34,7 @@ public interface AuthRoleService {
|
||||
* @param authRole 实例对象
|
||||
* @return 实例对象
|
||||
*/
|
||||
int update(AuthRole authRole);
|
||||
Integer update(AuthRole authRole);
|
||||
|
||||
/**
|
||||
* 通过主键删除数据
|
||||
|
@@ -12,7 +12,6 @@ import java.util.List;
|
||||
* (AuthPermission)表服务实现类
|
||||
*
|
||||
* @author landaiqing
|
||||
* @since 2023-11-03 00:45:50
|
||||
*/
|
||||
@Service("authPermissionService")
|
||||
public class AuthPermissionServiceImpl implements AuthPermissionService {
|
||||
|
@@ -12,7 +12,6 @@ import java.util.List;
|
||||
* (AuthRolePermission)表服务实现类
|
||||
*
|
||||
* @author landaiqing
|
||||
* @since 2023-11-04 22:16:00
|
||||
*/
|
||||
@Service("authRolePermissionService")
|
||||
public class AuthRolePermissionServiceImpl implements AuthRolePermissionService {
|
||||
|
@@ -37,7 +37,7 @@ public class AuthRoleServiceImpl implements AuthRoleService {
|
||||
* @return 实例对象
|
||||
*/
|
||||
@Override
|
||||
public int insert(AuthRole authRole) {
|
||||
public Integer insert(AuthRole authRole) {
|
||||
return this.authRoleDao.insert(authRole);
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ public class AuthRoleServiceImpl implements AuthRoleService {
|
||||
* @return 实例对象
|
||||
*/
|
||||
@Override
|
||||
public int update(AuthRole authRole) {
|
||||
public Integer update(AuthRole authRole) {
|
||||
return this.authRoleDao.update(authRole);
|
||||
}
|
||||
|
||||
|
@@ -11,7 +11,6 @@ import javax.annotation.Resource;
|
||||
* (AuthUserRole)表服务实现类
|
||||
*
|
||||
* @author landaiqing
|
||||
* @since 2023-11-03 00:18:09
|
||||
*/
|
||||
@Service("authUserRoleService")
|
||||
public class AuthUserRoleServiceImpl implements AuthUserRoleService {
|
||||
|
@@ -12,7 +12,6 @@ import java.util.List;
|
||||
* (AuthUser)表服务实现类
|
||||
*
|
||||
* @author landaiqing
|
||||
* @since 2023-11-01 01:25:23
|
||||
*/
|
||||
@Service("authUserService")
|
||||
public class AuthUserServiceImpl implements AuthUserService {
|
||||
|
@@ -11,7 +11,6 @@ import org.springframework.context.annotation.Configuration;
|
||||
* 权限认证的配置器
|
||||
*
|
||||
* @author: landaiqing
|
||||
* @date: 2023/10/28
|
||||
*/
|
||||
@Configuration
|
||||
public class SaTokenConfigure {
|
||||
|
@@ -19,7 +19,6 @@ import java.util.stream.Collectors;
|
||||
* 自定义权限验证接口扩展
|
||||
*
|
||||
* @author: landaiqing
|
||||
* @date: 2023/10/28
|
||||
*/
|
||||
@Component
|
||||
public class StpInterfaceImpl implements StpInterface {
|
||||
|
@@ -7,7 +7,6 @@ import java.util.Date;
|
||||
* (AuthPermission)实体类
|
||||
*
|
||||
* @author landaiqing
|
||||
* @since 2023-11-03 00:45:50
|
||||
*/
|
||||
public class AuthPermission implements Serializable {
|
||||
private static final long serialVersionUID = -56518358607843924L;
|
||||
|
@@ -14,7 +14,7 @@ import java.util.stream.Stream;
|
||||
* RedisUtil工具类
|
||||
*
|
||||
* @author: landaiqing
|
||||
* @date: 2023/10/28
|
||||
* @date: 2024/2/19
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
|
@@ -6,7 +6,6 @@ import lombok.Getter;
|
||||
* 题目类型枚举
|
||||
* 1单选 2多选 3判断 4简答
|
||||
* @author: landaiqing
|
||||
* @date: 2023/10/3
|
||||
*/
|
||||
@Getter
|
||||
public enum SubjectInfoTypeEnum {
|
||||
|
@@ -6,7 +6,6 @@ import lombok.Getter;
|
||||
* 题目点赞枚举
|
||||
*
|
||||
* @author: landaiqing
|
||||
* @date: 2023/10/3
|
||||
*/
|
||||
@Getter
|
||||
public enum SubjectLikedStatusEnum {
|
||||
|
@@ -9,7 +9,6 @@ import java.util.List;
|
||||
* 题目dto
|
||||
*
|
||||
* @author: landaiqing
|
||||
* @date: 2023/10/5
|
||||
*/
|
||||
@Data
|
||||
public class SubjectOptionBO implements Serializable {
|
||||
|
Reference in New Issue
Block a user