from uuid import UUID from fastapi import Depends, APIRouter from config.security import get_user_id_from_token from db.postgres import get_dept_ids_by_user_id, get_dept_id_by_user_id from db.postgres.sentinel import * from models.BaseResponse import BaseResponse # -------------------- 设备接口 -------------------- sentinel_router = APIRouter() @sentinel_router.get("/record/list") async def get_sentinel_record_list( page: int = 1, page_size: int = 10, id: str | None = None, license_plate: str | None = None, vehicle_type: str | None = None, is_inspected: int | None = None, livestock_type: str = None, livestock_source: str | None = None, start_time: str | None = None, end_time: str | None = None, user_id: UUID = Depends(get_user_id_from_token), ): if not user_id: return {"error": "userId is required"} dept_ids = get_dept_ids_by_user_id(user_id) print(dept_ids) # 输出所有部门的 dept_id 列表 records, total = get_sentinel_record_list_db_page( page, page_size, id, license_plate, vehicle_type, is_inspected, livestock_source, livestock_type, dept_ids, start_time, end_time, ) return BaseResponse(data={"list": records, "total": total}) @sentinel_router.post("/record") async def create_sentinel_record( data: dict, user_id: UUID = Depends(get_user_id_from_token) ): if not user_id: return {"error": "userId is required"} dept_id = get_dept_id_by_user_id(user_id) new_id = insert_sentinel_record(data, dept_id) return BaseResponse(data={"id": new_id}) @sentinel_router.put("/record/{id}") async def update_sentinel_record( id: str, data: dict, user_id: UUID = Depends(get_user_id_from_token) ): if not user_id: return {"error": "userId is required"} count = update_sentinel_record_db(id, data) if count == 0: return BaseResponse(status=False, message="记录不存在", data=None) return BaseResponse(data=True) @sentinel_router.patch("/record/{id}") async def patch_sentinel_record( id: str, data: dict, user_id: UUID = Depends(get_user_id_from_token) ): if not user_id: return {"error": "userId is required"} count = patch_sentinel_record_db(id, data) if count == 0: return BaseResponse(status=False, message="记录不存在", data=None) return BaseResponse(data=True) @sentinel_router.delete("/record/{id}") async def delete_sentinel_record( id: str, user_id: UUID = Depends(get_user_id_from_token) ): if not user_id: return {"error": "userId is required"} deleted = delete_sentinel_record_db(id) if deleted == 0: return BaseResponse(status=False, message="记录不存在", data=None) return BaseResponse(data=True)