refactor all

This commit is contained in:
Timi
2026-07-31 01:03:53 +08:00
parent 4e7f340cc6
commit e45809a0db
512 changed files with 14620 additions and 13519 deletions
@@ -0,0 +1,108 @@
package com.imyeyu.api.modules.user.bean;
import com.imyeyu.api.TimiServerAPI;
import com.imyeyu.api.bean.CoreRoleCode;
import com.imyeyu.api.bean.ModuleCode;
import com.imyeyu.api.modules.user.entity.Role;
import com.imyeyu.api.modules.user.entity.User;
import com.imyeyu.api.modules.user.entity.UserRole;
import com.imyeyu.api.modules.user.mapper.RoleMapper;
import com.imyeyu.api.modules.user.mapper.UserMapper;
import com.imyeyu.java.bean.timi.TimiCode;
import com.imyeyu.java.bean.timi.TimiException;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import java.util.Set;
/**
* 自举数据常量
*
* @author 夜雨
* @since 2026-06-07 10:42
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class BootstrapData {
/** System 用户名 */
public static final String SYS_USER_NAME = "System";
/** System 用户昵称 */
public static final String SYS_USER_NICK = "System";
/** System 角色代码 */
public static final String SYS_ROLE_CODE = CoreRoleCode.SYSTEM.name();
/** 管理角色代码 */
public static final String ADMIN_ROLE_CODE = CoreRoleCode.ADMIN.name();
/** System 角色模块 */
public static final ModuleCode SYS_ROLE_MODULE_CODE = ModuleCode.CORE;
/** 管理角色模块 */
public static final ModuleCode ADMIN_ROLE_MODULE_CODE = ModuleCode.CORE;
/** System 角色名称 */
public static final String SYS_ROLE_NAME = CoreRoleCode.SYSTEM.getDefaultName();
/** 管理角色名称 */
public static final String ADMIN_ROLE_NAME = CoreRoleCode.ADMIN.getDefaultName();
/** 自举权限代码集合 */
public static final Set<String> PROTECTED_PERMISSION_CODE_SET = BuiltinAuthRegistry.SYSTEM_PERMISSION_CODE_SET;
public static boolean isProtectedRoleCode(ModuleCode moduleCode, String code) {
return BuiltinAuthRegistry.isProtectedRole(moduleCode, code);
}
public static void checkProtectedRoleCode(ModuleCode moduleCode, String code) {
if (BootstrapData.isProtectedRoleCode(moduleCode, code)) {
throw new TimiException(TimiCode.PERMISSION_ERROR);
}
}
/**
* 判断是否为自举权限
*
* @param code 权限码
* @return 是否为自举权限
*/
public static boolean isProtectedPermissionCode(BuiltinPermissionCode code) {
return code != null && code.isGrantToSystem();
}
public static boolean isProtectedPermissionCode(String code) {
return PROTECTED_PERMISSION_CODE_SET.contains(code);
}
public static void checkProtectedPermissionCode(BuiltinPermissionCode code) {
if (BootstrapData.isProtectedPermissionCode(code)) {
throw new TimiException(TimiCode.PERMISSION_ERROR);
}
}
public static boolean isProtectedUserRole(UserRole userRole) {
if (userRole == null) {
return false;
}
UserMapper userMapper = TimiServerAPI.applicationContext.getBean(UserMapper.class);
RoleMapper roleMapper = TimiServerAPI.applicationContext.getBean(RoleMapper.class);
User user = userMapper.select(userRole.getUserId());
if (user == null || !BootstrapData.SYS_USER_NAME.equals(user.getName())) {
return false;
}
Role role = roleMapper.select(userRole.getRoleId());
return isProtectedRole(role);
}
public static void checkProtectedUserRole(UserRole userRole) {
if (BootstrapData.isProtectedUserRole(userRole)) {
throw new TimiException(TimiCode.PERMISSION_ERROR);
}
}
public static boolean isProtectedRole(Role role) {
return role != null && isProtectedRoleCode(role.getModuleCode(), role.getCode());
}
}
@@ -0,0 +1,61 @@
package com.imyeyu.api.modules.user.bean;
import com.imyeyu.api.bean.CorePermissionCode;
import com.imyeyu.api.bean.CoreRoleCode;
import com.imyeyu.api.bean.ModuleCode;
import com.imyeyu.api.modules.gao.bean.GaoPermissionCode;
import com.imyeyu.api.modules.gao.bean.GaoRoleCode;
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
///
/// 内建权限与角色注册中心
///
/// @author Codex
/// @since 2026-07-28
public final class BuiltinAuthRegistry {
private BuiltinAuthRegistry() {
}
/// 内建权限列表
public static final List<BuiltinPermissionCode> PERMISSION_CODE_LIST = Stream.concat(
Arrays.stream(CorePermissionCode.values()),
Arrays.stream(GaoPermissionCode.values())
).map(BuiltinPermissionCode.class::cast).toList();
/// 内建角色列表
public static final List<BuiltinRoleCode> ROLE_CODE_LIST = Stream.concat(
Arrays.stream(CoreRoleCode.values()),
Arrays.stream(GaoRoleCode.values())
).map(BuiltinRoleCode.class::cast).toList();
/// SYSTEM 角色必有权限集合
public static final Set<String> SYSTEM_PERMISSION_CODE_SET = PERMISSION_CODE_LIST.stream()
.filter(BuiltinPermissionCode::isGrantToSystem)
.map(BuiltinPermissionCode::getValue)
.collect(Collectors.toCollection(LinkedHashSet::new));
/// 受保护角色集合
public static final Set<String> PROTECTED_ROLE_KEY_SET = ROLE_CODE_LIST.stream()
.filter(BuiltinRoleCode::isProtected)
.map(item -> toRoleKey(item.getModuleCode(), ((Enum<?>) item).name()))
.collect(Collectors.toCollection(LinkedHashSet::new));
public static String toRoleKey(ModuleCode moduleCode, String code) {
return "%s:%s".formatted(moduleCode.name(), code);
}
public static String toPermissionKey(ModuleCode moduleCode, String code) {
return "%s:%s".formatted(moduleCode.name(), code);
}
public static boolean isProtectedRole(ModuleCode moduleCode, String code) {
return PROTECTED_ROLE_KEY_SET.contains(toRoleKey(moduleCode, code));
}
}
@@ -0,0 +1,36 @@
package com.imyeyu.api.modules.user.bean;
import com.imyeyu.api.bean.ModuleCode;
///
/// 内建权限定义
///
/// @author Codex
/// @since 2026-07-28
public interface BuiltinPermissionCode {
/// 权限模块
///
/// @return 模块代码
ModuleCode getModuleCode();
/// 权限值
///
/// @return 权限值
String getValue();
/// 默认名称
///
/// @return 默认名称
String getDefaultName();
/// true 为初始化时授权给 SYSTEM 角色
///
/// @return 是否授权给 SYSTEM 角色
boolean isGrantToSystem();
/// true 为初始化时授权给 ADMIN 角色
///
/// @return 是否授权给 ADMIN 角色
boolean isGrantToAdmin();
}
@@ -0,0 +1,31 @@
package com.imyeyu.api.modules.user.bean;
import com.imyeyu.api.bean.ModuleCode;
///
/// 内建角色定义
///
/// @author Codex
/// @since 2026-07-28
public interface BuiltinRoleCode {
/// 角色模块
///
/// @return 模块代码
ModuleCode getModuleCode();
/// 默认名称
///
/// @return 默认名称
String getDefaultName();
/// true 为受保护角色
///
/// @return 是否受保护
boolean isProtected();
/// 父角色代码
///
/// @return 父角色代码
String getParentCode();
}
@@ -0,0 +1,12 @@
package com.imyeyu.api.modules.user.bean;
///
///
/// @author 夜雨
/// @since 2026-07-30 14:35
public enum Gender {
MALE,
FEMALE,
}