64 lines
1.9 KiB
Python
64 lines
1.9 KiB
Python
import json
|
|
|
|
import pandas as pd
|
|
from fastapi import APIRouter, Depends, Request
|
|
import crud, schemas
|
|
|
|
from api import deps
|
|
from db.ckdb import get_ck_db, CKDrive
|
|
from db.redisdb import get_redis_pool, RedisDrive
|
|
from models import ToSql
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.post("/sql")
|
|
async def query_sql(
|
|
request: Request,
|
|
data_in: schemas.Sql,
|
|
ckdb: CKDrive = Depends(get_ck_db),
|
|
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
|
) -> schemas.Msg:
|
|
"""原 sql 查询 """
|
|
data = await ckdb.execute(data_in.sql)
|
|
return schemas.Msg(code=0, msg='ok', data=data)
|
|
|
|
|
|
@router.post("/event_model_sql")
|
|
async def event_model_sql(
|
|
request: Request,
|
|
game: str,
|
|
data_in: schemas.CkQuery,
|
|
ckdb: CKDrive = Depends(get_ck_db),
|
|
rdb: RedisDrive = Depends(get_redis_pool),
|
|
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
|
) -> schemas.Msg:
|
|
""" 事件分析模型 sql"""
|
|
|
|
columns_json = await rdb.get(f'{game}_event')
|
|
columns = json.loads(columns_json)
|
|
to_sql = ToSql(data_in.dict(), game, 'event', columns.keys())
|
|
res = to_sql.get_sql_query_event_model()
|
|
return schemas.Msg(code=0, msg='ok', data=res)
|
|
|
|
|
|
@router.post("/event_model")
|
|
async def event_model(
|
|
request: Request,
|
|
game: str,
|
|
data_in: schemas.CkQuery,
|
|
ckdb: CKDrive = Depends(get_ck_db),
|
|
rdb: RedisDrive = Depends(get_redis_pool),
|
|
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
|
) -> schemas.Msg:
|
|
""" 事件分析"""
|
|
columns_json = await rdb.get(f'{game}_event')
|
|
columns = json.loads(columns_json)
|
|
to_sql = ToSql(data_in.dict(), game, 'event', columns.keys())
|
|
sqls = to_sql.get_sql_query_event_model()
|
|
res = []
|
|
for sql in sqls:
|
|
data = await ckdb.execute(sql)
|
|
res.append(data)
|
|
return schemas.Msg(code=0, msg='ok', data=res)
|