File size: 1,319 Bytes
b4f2238 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | """
证据清单 API
提供证据清单的排序等 API 端点.
Requirements: 4.2, 4.3, 12.1
"""
from __future__ import annotations
from typing import Any
from django.http import HttpRequest
from ninja import Router, Schema
from apps.core.security.auth import JWTOrSessionAuth
router = Router(tags=["证据清单"], auth=JWTOrSessionAuth())
def _get_evidence_service() -> Any:
"""工厂函数获取证据服务"""
from apps.evidence.services.wiring import get_evidence_service
return get_evidence_service()
class ReorderItemsRequest(Schema):
"""重新排序请求"""
item_ids: list[int]
class ReorderItemsResponse(Schema):
"""重新排序响应"""
success: bool
message: str = ""
@router.post(
"/evidence-lists/{list_id}/reorder",
response=ReorderItemsResponse,
summary="重新排序证据明细",
)
def reorder_evidence_items(request: HttpRequest, list_id: int, data: ReorderItemsRequest) -> Any:
"""
重新排序证据明细
Args:
list_id: 证据清单 ID
data: 包含新顺序的明细 ID 列表
Returns:
操作结果
Requirements: 4.2, 4.3
"""
service = _get_evidence_service()
service.reorder_items(list_id, data.item_ids)
return ReorderItemsResponse(success=True, message="排序成功")
|