You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.8 KiB
69 lines
1.8 KiB
#!/usr/bin/env python
|
|
# encoding: utf-8
|
|
"""
|
|
@author: tx
|
|
@file: log.py
|
|
@time: 2023/6/2 15:43
|
|
@desc: 平台日志接口
|
|
"""
|
|
from fastapi import APIRouter, Request, Depends
|
|
from fastapi.encoders import jsonable_encoder
|
|
from pydantic import BaseModel
|
|
from tortoise.queryset import QuerySet
|
|
|
|
from conf import setting
|
|
from helper import login_required, respond_to
|
|
from helper.drug import milligram_to_gram
|
|
from helper.report import report_drug_logs
|
|
from models import DrugUseLog, Log
|
|
from models.drug_use_log import DrugUseStateEnum
|
|
from models.cabinet import Cabinet
|
|
|
|
router = APIRouter(prefix="/logs", dependencies=[Depends(login_required)])
|
|
|
|
|
|
class DrugUseLogSearch(BaseModel):
|
|
user_id: str | None
|
|
state: int | None
|
|
stime: str | None
|
|
etime: str | None
|
|
drug_id: str | None
|
|
page_no: int = 1
|
|
page_size: int = 20
|
|
|
|
|
|
@router.get('', summary='平台日志列表')
|
|
async def index(page_no: int = 1, page_size: int = 20, keyword: str = None):
|
|
"""
|
|
获取平台日志列表
|
|
:return:
|
|
"""
|
|
# 根据终端获取柜体
|
|
cabinets_ids = await Cabinet.filter(terminal_id=setting.TERMINAL_ID).values_list("id", flat=True)
|
|
|
|
kwargs = {}
|
|
if keyword:
|
|
kwargs = {"comment__contains": keyword.strip()}
|
|
if cabinets_ids:
|
|
kwargs.update({
|
|
"cabinet_id__in": cabinets_ids
|
|
})
|
|
|
|
query = Log.filter(**kwargs)
|
|
offset = (page_no - 1) * page_size
|
|
count = await query.count()
|
|
log_objs = await query.limit(page_size).offset(offset).order_by('-created_at')
|
|
|
|
return respond_to(data=dict(count=count, logs=log_objs))
|
|
|
|
|
|
# 流转日志
|
|
@router.post('/drug', summary='流转日志列表')
|
|
async def index(request: Request, keyword: DrugUseLogSearch):
|
|
"""
|
|
获取平台流转日志列表
|
|
:return:
|
|
"""
|
|
data = await report_drug_logs(request, keyword)
|
|
return respond_to(data=data)
|