1.新增用户搜索模块事件上传和显示功能
This commit is contained in:
parent
ded530601b
commit
84be8ec219
@ -5,7 +5,7 @@ from urllib.parse import quote
|
||||
import os
|
||||
import pandas as pd
|
||||
import numpy as np
|
||||
from fastapi import APIRouter, Depends, Request
|
||||
from fastapi import APIRouter, Depends, Request,File
|
||||
from fastapi.encoders import jsonable_encoder
|
||||
from motor.motor_asyncio import AsyncIOMotorDatabase
|
||||
from fastapi.responses import StreamingResponse
|
||||
@ -1395,8 +1395,13 @@ async def user_property_model(
|
||||
ckdb: CKDrive = Depends(get_ck_db)
|
||||
):
|
||||
"""用户的详情"""
|
||||
event_dict={'pay':'充值','create_account':'创建角色','login':'登录','ta_app_end':'离开游戏','guide':'新手引导','level_up':'玩家等级',
|
||||
'vip_level':'vip等级','sign':'签到','summon':'招募','ask_for_join_guild':'加入联盟','leave_guild':'离开联盟','create_guild':'创建联盟'}
|
||||
if data_in.event_list == []:
|
||||
return schemas.Msg(code=-9, msg='请配置用户搜索模块事件', data=[])
|
||||
event_dict={}
|
||||
for i in data_in.event_list:
|
||||
event_dict[i['event']]=i['event_name']
|
||||
# event_dict={'pay':'充值','create_account':'创建角色','login':'登录','ta_app_end':'离开游戏','guide':'新手引导','level_up':'玩家等级',
|
||||
# 'vip_level':'vip等级','sign':'签到','summon':'招募','ask_for_join_guild':'加入联盟','leave_guild':'离开联盟','create_guild':'创建联盟'}
|
||||
sql=f"""select `#account_id`,`#ip`,`#distinct_id`,rmbmoney,owner_name,lv,zhanli,channel,
|
||||
channel,svrindex,maxmapid,name,`exp`,vip,jinbi,last_account_login_time,binduid from {game}.`user` where `#account_id` = '{data_in.account_id}'"""
|
||||
#获取用户基本详情
|
||||
@ -1508,6 +1513,35 @@ async def event_list(
|
||||
) -> schemas.Msg:
|
||||
"""个人详情中的事件列表"""
|
||||
#获取事件名
|
||||
event_list = await ckdb.distinct(game, 'event', '#event_name')
|
||||
#event_list = await ckdb.distinct(game, 'event', '#event_name')
|
||||
event_list = await crud.event_list.get_list(db,game)
|
||||
if event_list == []:
|
||||
return schemas.Msg(code=0, msg='请配置用户搜索模块事件', data=[])
|
||||
else:
|
||||
res=event_list[0]['details']
|
||||
return schemas.Msg(code=0, msg='ok', data=res)
|
||||
|
||||
return schemas.Msg(code=0, msg='ok', data=event_list)
|
||||
@router.post("/add_event_list")
|
||||
async def add_select_map(
|
||||
request: Request,
|
||||
game: str,
|
||||
file: bytes = File(...),
|
||||
db: AsyncIOMotorDatabase = Depends(get_database),
|
||||
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
||||
) -> schemas.Msg:
|
||||
"""添加对应游戏事件选择映射"""
|
||||
dfs = pd.read_excel(file, engine='openpyxl', sheet_name=None)
|
||||
for attr_name, df in dfs.items():
|
||||
#将id这列转换成字符串类型
|
||||
if len(df) >0:
|
||||
ColNames = df.columns.tolist()
|
||||
event = df.to_dict('records')
|
||||
details=[]
|
||||
for i in event:
|
||||
details_dict={}
|
||||
details_dict['event']=i[ColNames[0]]
|
||||
details_dict['event_name']=i[ColNames[1]]
|
||||
details.append(details_dict)
|
||||
data_in = schemas.Event_list(game=game, details=details)
|
||||
await crud.event_list.save(db, data_in)
|
||||
return schemas.Msg(code=0, msg='ok', data=1)
|
||||
|
@ -20,3 +20,4 @@ from .crud_api_board import api_board
|
||||
from .crud_url_list import url_list
|
||||
from .crud_user_url import user_url
|
||||
from .crud_api_module import api_module
|
||||
from .crud_event_list import event_list
|
25
crud/crud_event_list.py
Normal file
25
crud/crud_event_list.py
Normal file
@ -0,0 +1,25 @@
|
||||
from motor.motor_asyncio import AsyncIOMotorDatabase
|
||||
|
||||
import schemas
|
||||
from crud.base import CRUDBase
|
||||
|
||||
__all__ = 'event_list',
|
||||
|
||||
|
||||
class EventMap(CRUDBase):
|
||||
async def save(self, db: AsyncIOMotorDatabase, data_in: schemas.Event_list):
|
||||
where = {'game': data_in.game}
|
||||
return await self.update_one(db, where, {'$set': data_in.dict(skip_defaults=True)}, upsert=True)
|
||||
|
||||
async def get_list(self, db: AsyncIOMotorDatabase, game: str):
|
||||
where = {'game': game}
|
||||
res = await self.find_many(db, where,{'_id': 0})
|
||||
return res
|
||||
|
||||
async def get_select(self, db: AsyncIOMotorDatabase, data_in: schemas.SelectAttr, game: str):
|
||||
where = {'game': game, **data_in.dict()}
|
||||
res = await self.find_one(db, where, {'_id': 0})
|
||||
return res
|
||||
|
||||
|
||||
event_list = EventMap('event_list')
|
@ -24,3 +24,4 @@ from .api_board import *
|
||||
from .url_list import *
|
||||
from .user_url import *
|
||||
from .api_module import *
|
||||
from .event_list import *
|
10
schemas/event_list.py
Normal file
10
schemas/event_list.py
Normal file
@ -0,0 +1,10 @@
|
||||
from typing import List, Dict
|
||||
from pydantic import BaseModel
|
||||
|
||||
class Event_list(BaseModel):
|
||||
game:str
|
||||
details:List[Dict]
|
||||
|
||||
class Details(BaseModel):
|
||||
event:str
|
||||
event_name:str
|
@ -30,4 +30,4 @@ class Ck_solo_user(BaseModel):
|
||||
account_id : str # #account_id
|
||||
start_time: str # 开始时间 例:2022-04-02
|
||||
end_time: str # 结束时间
|
||||
event_list: List[str] #事件名
|
||||
event_list: List[Dict] =None#事件名
|
Loading…
Reference in New Issue
Block a user