66 lines
2.0 KiB
Python
66 lines
2.0 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:
|
|
"""事件列表"""
|
|
#获取事件名
|
|
try:
|
|
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 {}
|
|
except Exception as e:
|
|
return schemas.Msg(code=-9, msg='查无数据', data='')
|
|
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'),
|
|
'label_id' : event_meta.get(name, {}).get('label_id', '')
|
|
}
|
|
)
|
|
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)
|