refactor: 重构服务层方法命名规范

fix: 修复文件下载和删除功能
fix: 修复Redis哈希获取方法返回值类型
fix: 修复权限检查逻辑

perf: 优化部门和服务详情查询性能
perf: 优化角色数据范围显示

style: 清理无用导入和注释
style: 统一CRUD方法命名

docs: 更新main.py中的命令说明

chore: 移动IP定位工具类位置
chore: 更新.gitignore忽略迁移版本文件
This commit is contained in:
zhangtao
2025-10-03 03:31:45 +08:00
parent 7b9d8d7854
commit 119964e6f9
42 changed files with 326 additions and 545 deletions
@@ -3,7 +3,6 @@
from fastapi import APIRouter, Body, Depends, Path, UploadFile
from fastapi.responses import JSONResponse, StreamingResponse
import urllib.parse
import json
from app.common.response import StreamResponse, SuccessResponse
from app.common.request import PaginationService
@@ -29,7 +28,7 @@ async def get_obj_detail_controller(
id: int = Path(..., description="示例ID"),
auth: AuthSchema = Depends(AuthPermission(permissions=["demo:example:query"]))
) -> JSONResponse:
result_dict = await DemoService.get_demo_detail_service(id=id, auth=auth)
result_dict = await DemoService.detail_service(id=id, auth=auth)
logger.info(f"获取示例详情成功 {id}")
return SuccessResponse(data=result_dict, msg="获取示例详情成功")
@@ -39,7 +38,7 @@ async def get_obj_list_controller(
search: DemoQueryParam = Depends(),
auth: AuthSchema = Depends(AuthPermission(permissions=["demo:example:query"]))
) -> JSONResponse:
result_dict_list = await DemoService.get_demo_list_service(auth=auth, search=search, order_by=page.order_by)
result_dict_list = await DemoService.list_service(auth=auth, search=search, order_by=page.order_by)
result_dict = await PaginationService.paginate(data_list=result_dict_list, page_no=page.page_no, page_size=page.page_size)
logger.info("查询示例列表成功")
return SuccessResponse(data=result_dict, msg="查询示例列表成功")
@@ -49,7 +48,7 @@ async def create_obj_controller(
data: DemoCreateSchema,
auth: AuthSchema = Depends(AuthPermission(permissions=["demo:example:create"]))
) -> JSONResponse:
result_dict = await DemoService.create_demo_service(auth=auth, data=data)
result_dict = await DemoService.create_service(auth=auth, data=data)
logger.info(f"创建示例成功: {result_dict.get('name')}")
return SuccessResponse(data=result_dict, msg="创建示例成功")
@@ -59,7 +58,7 @@ async def update_obj_controller(
id: int = Path(..., description="示例ID"),
auth: AuthSchema = Depends(AuthPermission(permissions=["demo:example:update"]))
) -> JSONResponse:
result_dict = await DemoService.update_demo_service(auth=auth, id=id, data=data)
result_dict = await DemoService.update_service(auth=auth, id=id, data=data)
logger.info(f"修改示例成功: {result_dict.get('name')}")
return SuccessResponse(data=result_dict, msg="修改示例成功")
@@ -68,7 +67,7 @@ async def delete_obj_controller(
ids: list[int] = Body(..., description="ID列表"),
auth: AuthSchema = Depends(AuthPermission(permissions=["demo:example:delete"]))
) -> JSONResponse:
await DemoService.delete_demo_service(auth=auth, ids=ids)
await DemoService.delete_service(auth=auth, ids=ids)
logger.info(f"删除示例成功: {ids}")
return SuccessResponse(msg="删除示例成功")
@@ -77,7 +76,7 @@ async def batch_set_available_obj_controller(
data: BatchSetAvailable,
auth: AuthSchema = Depends(AuthPermission(permissions=["demo:example:patch"]))
) -> JSONResponse:
await DemoService.set_demo_available_service(auth=auth, data=data)
await DemoService.set_available_service(auth=auth, data=data)
logger.info(f"批量修改示例状态成功: {data.ids}")
return SuccessResponse(msg="批量修改示例状态成功")
@@ -87,7 +86,7 @@ async def export_obj_list_controller(
auth: AuthSchema = Depends(AuthPermission(permissions=["demo:example:export"]))
) -> StreamingResponse:
# 获取全量数据
result_dict_list = await DemoService.get_demo_list_service(search=search, auth=auth)
result_dict_list = await DemoService.list_service(search=search, auth=auth)
export_result = await DemoService.batch_export_service(obj_list=result_dict_list)
logger.info('导出示例成功')
@@ -19,7 +19,7 @@ class DemoCRUD(CRUDBase[DemoModel, DemoCreateSchema, DemoUpdateSchema]):
"""详情"""
return await self.get(id=id)
async def get_list_crud(self, search: Optional[Dict] = None, order_by: Optional[List[Dict[str, str]]] = None) -> Sequence[DemoModel]:
async def list_crud(self, search: Optional[Dict] = None, order_by: Optional[List[Dict[str, str]]] = None) -> Sequence[DemoModel]:
"""列表查询"""
return await self.list(search=search, order_by=order_by)
@@ -22,7 +22,7 @@ class DemoService:
"""
@classmethod
async def get_demo_detail_service(cls, auth: AuthSchema, id: int) -> Dict:
async def detail_service(cls, auth: AuthSchema, id: int) -> Dict:
"""详情"""
obj = await DemoCRUD(auth).get_by_id_crud(id=id)
if not obj:
@@ -30,14 +30,14 @@ class DemoService:
return DemoOutSchema.model_validate(obj).model_dump()
@classmethod
async def get_demo_list_service(cls, auth: AuthSchema, search: Optional[DemoQueryParam] = None, order_by: Optional[List[Dict[str, str]]] = None) -> List[Dict]:
async def list_service(cls, auth: AuthSchema, search: Optional[DemoQueryParam] = None, order_by: Optional[List[Dict[str, str]]] = None) -> List[Dict]:
"""列表查询"""
search_dict = search.__dict__ if search else None
obj_list = await DemoCRUD(auth).get_list_crud(search=search_dict, order_by=order_by)
obj_list = await DemoCRUD(auth).list_crud(search=search_dict, order_by=order_by)
return [DemoOutSchema.model_validate(obj).model_dump() for obj in obj_list]
@classmethod
async def create_demo_service(cls, auth: AuthSchema, data: DemoCreateSchema) -> Dict:
async def create_service(cls, auth: AuthSchema, data: DemoCreateSchema) -> Dict:
"""创建"""
obj = await DemoCRUD(auth).get(name=data.name)
if obj:
@@ -46,7 +46,7 @@ class DemoService:
return DemoOutSchema.model_validate(obj).model_dump()
@classmethod
async def update_demo_service(cls, auth: AuthSchema, id: int, data: DemoUpdateSchema) -> Dict:
async def update_service(cls, auth: AuthSchema, id: int, data: DemoUpdateSchema) -> Dict:
"""更新"""
# 检查数据是否存在
obj = await DemoCRUD(auth).get_by_id_crud(id=id)
@@ -62,7 +62,7 @@ class DemoService:
return DemoOutSchema.model_validate(obj).model_dump()
@classmethod
async def delete_demo_service(cls, auth: AuthSchema, ids: List[int]) -> None:
async def delete_service(cls, auth: AuthSchema, ids: List[int]) -> None:
"""删除"""
if len(ids) < 1:
raise CustomException(msg='删除失败,删除对象不能为空')
@@ -76,7 +76,7 @@ class DemoService:
await DemoCRUD(auth).delete_crud(ids=ids)
@classmethod
async def set_demo_available_service(cls, auth: AuthSchema, data: BatchSetAvailable) -> None:
async def set_available_service(cls, auth: AuthSchema, data: BatchSetAvailable) -> None:
"""批量设置状态"""
await DemoCRUD(auth).set_available_crud(ids=data.ids, status=data.status)