xbackend/api/api_v1/endpoints/event_mana.py
2021-06-03 09:35:19 +08:00

60 lines
1.8 KiB
Python

import json
from aioredis import Redis
from fastapi import APIRouter, Depends, Request
from motor.motor_asyncio import AsyncIOMotorDatabase
import pandas as pd
import crud, schemas
from api import deps
from core.config import settings
from db import get_database
from db.ckdb import CKDrive, get_ck_db
from db.redisdb import get_redis_pool
router = APIRouter()
__all__ = 'router',
@router.get("/event_list")
async def event_list(
request: Request,
game: str,
db: AsyncIOMotorDatabase = Depends(get_database),
ckdb: CKDrive = Depends(get_ck_db),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
"""事件列表"""
event_list = await ckdb.distinct(game, 'event', '#event_name')
event_count = await ckdb.yesterday_event_count(game)
event_meta = await crud.event_mana.find_many(db, game=game) or {}
if event_meta:
event_meta = pd.DataFrame(event_meta).set_index('event_name').fillna('').T.to_dict()
res = []
for name in event_list:
res.append({
'name': name,
'show_name': event_meta.get(name, {}).get('show_name', ''),
'is_show': event_meta.get(name, {}).get('is_show', True),
'desc': event_meta.get(name, {}).get('desc', ''),
'event_count': event_count.get(name, {}).get('v')
}
)
return schemas.Msg(code=0, msg='ok', data=res)
@router.post("/event_edit")
async def event_edit(
request: Request,
game: str,
data_in: schemas.EventMateEdit,
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)
) -> schemas.Msg:
"""编辑事件"""
await crud.event_mana.edit_event_mate(db, game, data_in)
return schemas.Msg(code=0, msg='ok', data=data_in)