This commit is contained in:
Timi
2026-07-31 18:36:37 +08:00
parent 22e415dd7b
commit ce22661a9b
7 changed files with 42 additions and 7 deletions
@@ -13,7 +13,9 @@ public enum CoreRoleCode implements BuiltinRoleCode {
SYSTEM("系统", true, null),
ADMIN("管理员", false, SYSTEM.name());
ADMIN("管理员", false, SYSTEM.name()),
USER_ROLE_ADMIN("授权管理", false, ADMIN.name());
final String defaultName;
final boolean protectedRole;
@@ -107,6 +107,14 @@ public class GaoCustomerController {
return service.getByCode(code);
}
@AOPLog
@RequestRateLimit
@RequireGaoPermission(GaoPermissionCode.CUSTOMER_READ)
@PostMapping("/detail/code/nullable")
public GaoCustomer nullableDetailByCode(@RequestParam String code) {
return service.getNullableByCode(code);
}
@AOPLog
@RequestRateLimit
@RequireGaoPermission(GaoPermissionCode.CUSTOMER_READ)
@@ -18,6 +18,7 @@ import com.imyeyu.spring.bean.Page;
import com.imyeyu.spring.bean.PageResult;
import com.imyeyu.spring.mapper.BaseMapper;
import com.imyeyu.spring.service.AbstractEntityService;
import com.imyeyu.utils.Time;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -112,6 +113,7 @@ public class GaoUserServiceImplement extends AbstractEntityService<GaoUser, Stri
}
User user = entity.getUser();
TimiException.required(user, "not found gao user.user");
user.setPhoneNoVerifyAt(TimiJava.defaultIfNull(user.getPhoneNoVerifyAt(), Time.now()));
userService.create(user);
entity.setUserId(user.getId());
}
@@ -4,6 +4,7 @@ import com.imyeyu.api.annotation.RequireCorePermission;
import com.imyeyu.api.annotation.RequireCoreRole;
import com.imyeyu.api.bean.CorePermissionCode;
import com.imyeyu.api.bean.CoreRoleCode;
import com.imyeyu.api.bean.RoleMatchMode;
import com.imyeyu.api.modules.user.entity.Permission;
import com.imyeyu.api.modules.user.service.PermissionService;
import com.imyeyu.api.modules.user.vo.permission.BatchCreateReq;
@@ -32,7 +33,7 @@ public class PermissionController {
private final PermissionService service;
@RequireCoreRole(CoreRoleCode.ADMIN)
@RequireCoreRole(value = {CoreRoleCode.ADMIN, CoreRoleCode.USER_ROLE_ADMIN}, mode = RoleMatchMode.ANY)
@RequireCorePermission(CorePermissionCode.PERMISSION_READ)
@PostMapping("/list")
public PageResult<Permission> list(@RequestBody Page<Permission> page) {
@@ -5,6 +5,7 @@ import com.imyeyu.api.annotation.RequireCoreRole;
import com.imyeyu.api.bean.CorePermissionCode;
import com.imyeyu.api.bean.CoreRoleCode;
import com.imyeyu.api.bean.ModuleCode;
import com.imyeyu.api.bean.RoleMatchMode;
import com.imyeyu.api.modules.user.entity.Permission;
import com.imyeyu.api.modules.user.entity.Role;
import com.imyeyu.api.modules.user.service.PermissionService;
@@ -38,7 +39,7 @@ public class RoleController {
private final RoleService service;
private final PermissionService permissionService;
@RequireCoreRole(CoreRoleCode.ADMIN)
@RequireCoreRole(value = {CoreRoleCode.ADMIN, CoreRoleCode.USER_ROLE_ADMIN}, mode = RoleMatchMode.ANY)
@RequireCorePermission(CorePermissionCode.ROLE_READ)
@PostMapping("/list")
public PageResult<Role> list(@RequestBody Page<Role> page) {
@@ -49,7 +50,7 @@ public class RoleController {
return result;
}
@RequireCoreRole(CoreRoleCode.ADMIN)
@RequireCoreRole(value = {CoreRoleCode.ADMIN, CoreRoleCode.USER_ROLE_ADMIN}, mode = RoleMatchMode.ANY)
@RequireCorePermission(CorePermissionCode.ROLE_READ)
@PostMapping("/detail")
public Role detail(@RequestParam String id) {
@@ -82,7 +83,7 @@ public class RoleController {
service.delete(id);
}
@RequireCoreRole(CoreRoleCode.ADMIN)
@RequireCoreRole(value = {CoreRoleCode.ADMIN, CoreRoleCode.USER_ROLE_ADMIN}, mode = RoleMatchMode.ANY)
@RequireCorePermission(CorePermissionCode.USER_ROLE_READ)
@PostMapping("/authorized/list")
public List<Role> listUserRole(@RequestParam String userId, @RequestParam(required = false) ModuleCode moduleCode) {
@@ -93,14 +94,14 @@ public class RoleController {
}
@AOPLog
@RequireCoreRole(CoreRoleCode.ADMIN)
@RequireCoreRole(value = {CoreRoleCode.ADMIN, CoreRoleCode.USER_ROLE_ADMIN}, mode = RoleMatchMode.ANY)
@RequireCorePermission(value = {CorePermissionCode.USER_ROLE_CREATE, CorePermissionCode.USER_ROLE_DELETE})
@PostMapping("/authorized/create")
public void authorizeUserRole(@RequestBody UserRoleAuthorizeReq req) {
service.authorizeUserRole(req);
}
@RequireCoreRole(CoreRoleCode.ADMIN)
@RequireCoreRole(value = {CoreRoleCode.ADMIN, CoreRoleCode.USER_ROLE_ADMIN}, mode = RoleMatchMode.ANY)
@RequireCorePermission(CorePermissionCode.USER_ROLE_READ)
@PostMapping("/authorized/permission")
public List<Permission> listAuthorizedPermission(@RequestParam String userId) {
@@ -65,6 +65,7 @@ public class UserServiceImplement extends AbstractEntityService<User, String> im
dbUser.setPassword(Digest.argon2id(user.getPassword()));
dbUser.setEmail(user.getEmail());
dbUser.setPhoneNo(user.getPhoneNo());
dbUser.setPhoneNoVerifyAt(user.getPhoneNoVerifyAt());
dbUser.setExp(TimiJava.defaultIfNull(user.getExp(), 0));
super.create(dbUser);
user.setId(dbUser.getId());
@@ -0,0 +1,20 @@
ALTER TABLE `gao_customer`
DROP INDEX `uk_gao_customer_code`,
ADD COLUMN `active_code` VARCHAR(64) GENERATED ALWAYS AS (
CASE WHEN `deleted_at` IS NULL THEN `code` ELSE NULL END
) STORED COMMENT '未删除客户编码' INVISIBLE,
ADD UNIQUE KEY `uk_gao_customer_active_code` (`active_code`);
ALTER TABLE `permission`
DROP INDEX `uk_module_code_code`,
ADD COLUMN `active_code` VARCHAR(50) GENERATED ALWAYS AS (
CASE WHEN `deleted_at` IS NULL THEN `code` ELSE NULL END
) STORED COMMENT '未删除权限代码' INVISIBLE,
ADD UNIQUE KEY `uk_permission_module_active_code` (`module_code`, `active_code`);
ALTER TABLE `role`
DROP INDEX `uk_module_code_code`,
ADD COLUMN `active_code` VARCHAR(50) GENERATED ALWAYS AS (
CASE WHEN `deleted_at` IS NULL THEN `code` ELSE NULL END
) STORED COMMENT '未删除角色代码' INVISIBLE,
ADD UNIQUE KEY `uk_role_module_active_code` (`module_code`, `active_code`);