mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-21 20:55:14 +00:00
feat(system): 优化删除操作并添加清除在线用户功能
- 重构了多个模块的删除操作,支持批量删除 - 在线监控模块增加了清除所有在线用户的功能 - 优化了前端API接口,提高了可维护性
This commit is contained in:
@@ -16,7 +16,7 @@ from app.common.enums import RedisInitKeyConfig
|
||||
from app.core.redis_crud import RedisCURD
|
||||
from app.utils.excel_util import ExcelUtil
|
||||
from app.utils.upload_util import UploadUtil
|
||||
from app.core.base_schema import UploadResponseSchema
|
||||
from app.core.base_schema import DeleteIdsSchema, UploadResponseSchema
|
||||
from app.core.exceptions import CustomException
|
||||
from app.config.setting import settings
|
||||
from app.core.logger import logger
|
||||
@@ -100,16 +100,19 @@ class ConfigService:
|
||||
return new_obj_dict
|
||||
|
||||
@classmethod
|
||||
async def delete_obj_service(cls, auth: AuthSchema, redis: Redis, id: int) -> None:
|
||||
exist_obj = await ConfigCRUD(auth).get_obj_by_id_crud(id=id)
|
||||
if not exist_obj:
|
||||
raise CustomException(msg='删除失败,该数据字典类型不存在')
|
||||
# 检查是否是否初始化类型
|
||||
if exist_obj.config_type:
|
||||
# 如果有字典数据,不能删除
|
||||
raise CustomException(msg='删除失败,系统初始化配置不可以删除')
|
||||
async def delete_obj_service(cls, auth: AuthSchema, redis: Redis, ids: list[int]) -> None:
|
||||
if len(ids) < 1:
|
||||
raise CustomException(msg='删除失败,删除对象不能为空')
|
||||
for id in ids:
|
||||
exist_obj = await ConfigCRUD(auth).get_obj_by_id_crud(id=id)
|
||||
if not exist_obj:
|
||||
raise CustomException(msg='删除失败,该数据字典类型不存在')
|
||||
# 检查是否是否初始化类型
|
||||
if exist_obj.config_type:
|
||||
# 如果有字典数据,不能删除
|
||||
raise CustomException(msg=f'{exist_obj.config_name} 删除失败,系统初始化配置不可以删除')
|
||||
|
||||
await ConfigCRUD(auth).delete_obj_crud(ids=[id])
|
||||
await ConfigCRUD(auth).delete_obj_crud(ids=ids)
|
||||
# 同步删除Redis缓存
|
||||
redis_key = f"{RedisInitKeyConfig.SYSTEM_CONFIG.key}:{exist_obj.config_key}"
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user