104 lines
3.9 KiB
Python
104 lines
3.9 KiB
Python
# +======================================================================
|
|
# | 模块: 字典项请求处理器层
|
|
# | 说明: 承接字典项相关的 HTTP 请求,校验权限/演示模式并记录操作日志后,
|
|
# | 转交字典项服务层处理(分页、详情、增删改、批量删除等)
|
|
# +======================================================================
|
|
"""字典项请求处理器。"""
|
|
|
|
# ----------------------------------------------------------------------
|
|
# 导入依赖
|
|
# 涵盖:权限/演示模式装饰器、操作日志装饰器、统一响应对象、
|
|
# 请求处理基类、字典项服务单例
|
|
# ----------------------------------------------------------------------
|
|
from common.middleware.access_decorators import check_demo, permission_required
|
|
from common.middleware.operation_log import operation_log
|
|
from core import response as R
|
|
from core.base_handler import BaseHandler
|
|
from modules.dictionary.dict_item.service import dict_item_service
|
|
|
|
|
|
# ======================================================================
|
|
# 查询字典项分页数据
|
|
# ======================================================================
|
|
class DictItemPageHandler(BaseHandler):
|
|
"""查询字典项分页数据。"""
|
|
|
|
@permission_required("sys:dict:list")
|
|
async def get(self):
|
|
"""GET 请求:返回字典项分页列表。"""
|
|
return await dict_item_service.get_page(self)
|
|
|
|
|
|
# ======================================================================
|
|
# 查询字典项详情
|
|
# ======================================================================
|
|
class DictItemDetailHandler(BaseHandler):
|
|
"""查询字典项详情。"""
|
|
|
|
@permission_required("sys:dict:detail")
|
|
async def get(self, id):
|
|
"""GET 请求:按 ID 返回字典项详情。
|
|
|
|
:param id: 字典项 ID(路径参数)
|
|
"""
|
|
return R.ok(self, data=dict_item_service.get_detail(id))
|
|
|
|
|
|
# ======================================================================
|
|
# 添加字典项
|
|
# ======================================================================
|
|
class DictItemAddHandler(BaseHandler):
|
|
"""添加字典项。"""
|
|
|
|
@permission_required("sys:dict:add")
|
|
@operation_log("字典管理", "添加字典项")
|
|
@check_demo
|
|
async def post(self):
|
|
"""POST 请求:新增字典项。"""
|
|
return await dict_item_service.add(self)
|
|
|
|
|
|
# ======================================================================
|
|
# 更新字典项
|
|
# ======================================================================
|
|
class DictItemUpdateHandler(BaseHandler):
|
|
"""更新字典项。"""
|
|
|
|
@permission_required("sys:dict:update")
|
|
@operation_log("字典管理", "更新字典项")
|
|
@check_demo
|
|
async def put(self):
|
|
"""PUT 请求:更新字典项信息。"""
|
|
return await dict_item_service.update(self)
|
|
|
|
|
|
# ======================================================================
|
|
# 删除字典项
|
|
# ======================================================================
|
|
class DictItemDeleteHandler(BaseHandler):
|
|
"""删除字典项。"""
|
|
|
|
@permission_required("sys:dict:delete")
|
|
@operation_log("字典管理", "删除字典项")
|
|
@check_demo
|
|
async def delete(self, id):
|
|
"""DELETE 请求:按 ID 删除字典项(软删除)。
|
|
|
|
:param id: 字典项 ID(路径参数)
|
|
"""
|
|
return await dict_item_service.delete(self, id)
|
|
|
|
|
|
# ======================================================================
|
|
# 批量删除字典项
|
|
# ======================================================================
|
|
class DictItemBatchDeleteHandler(BaseHandler):
|
|
"""批量删除字典项。"""
|
|
|
|
@permission_required("sys:dict:delete")
|
|
@operation_log("字典项管理", "批量删除")
|
|
@check_demo
|
|
async def post(self):
|
|
"""POST 请求:批量删除字典项(软删除)。"""
|
|
return await dict_item_service.batch_delete(self)
|