优化标签过滤
This commit is contained in:
parent
a9c9a9bf73
commit
74c365e1a1
@ -280,7 +280,7 @@ async def load_filter_props(request: Request,
|
||||
user_label_docs = await crud.user_label.find_many(db, {'game': game}, {'qp': 0})
|
||||
for item in user_label_docs:
|
||||
tmp = {
|
||||
'id': item['_id'],
|
||||
'id': item['cluster_name'],
|
||||
'data_type': 'user_label',
|
||||
'title': item['display_name'],
|
||||
}
|
||||
|
@ -69,7 +69,7 @@ async def sql(request: Request,
|
||||
return schemas.Msg(code=0, msg='ok', data=data)
|
||||
|
||||
|
||||
@router.post("/cluster_user")
|
||||
@router.post("/cluster_user_list")
|
||||
async def cluster_user(request: Request,
|
||||
data_in: schemas.UserLabelJson2Sql,
|
||||
game: str,
|
||||
@ -79,3 +79,13 @@ async def cluster_user(request: Request,
|
||||
"""获取该标签用户"""
|
||||
data = await service.get_cluster_user(game, data_in.label_id)
|
||||
return schemas.Msg(code=0, msg='ok', data=data)
|
||||
|
||||
@router.post("/cluster_user_count")
|
||||
async def cluster_user_count(request: Request,
|
||||
data_in: schemas.UserLabelJson2Sql,
|
||||
game: str,
|
||||
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
||||
) -> schemas.Msg:
|
||||
"""获取该标签用户数量"""
|
||||
data = await service.get_cluster_user_count(game, data_in.label_id)
|
||||
return schemas.Msg(code=0, msg='ok', data=data)
|
||||
|
@ -1,4 +1,8 @@
|
||||
import pandas as pd
|
||||
import numpy as np
|
||||
|
||||
import crud
|
||||
from db.ckdb import get_ck_db
|
||||
from models.user_label import UserClusterDef
|
||||
|
||||
|
||||
@ -19,7 +23,7 @@ async def get_detail(db, label_id):
|
||||
|
||||
|
||||
async def delete(db, label_id):
|
||||
await crud.user_label.delete_id(db, label_id)
|
||||
await crud.user_label.delete_id(db, label_id)
|
||||
return True
|
||||
|
||||
|
||||
@ -34,3 +38,11 @@ async def get_cluster_user(game, date_in):
|
||||
await user_cluster_def.init()
|
||||
sql = user_cluster_def.cluster_user()
|
||||
return sql
|
||||
|
||||
|
||||
async def get_cluster_user_count(game, date_in):
|
||||
user_cluster_def = UserClusterDef(game, date_in)
|
||||
await user_cluster_def.init()
|
||||
sql = user_cluster_def.cluster_user_count()
|
||||
ckdb = get_ck_db()
|
||||
df = await ckdb.query_dataframe(sql)
|
||||
|
@ -25,10 +25,10 @@ from db.redisdb import get_redis_pool, RedisDrive
|
||||
|
||||
|
||||
class UserClusterDef:
|
||||
def __init__(self, game: str, label_id: str, data_where: list = None, rdb: RedisDrive = get_redis_pool()):
|
||||
def __init__(self, game: str, cluster_name: str, data_where: list = None,rdb: RedisDrive = get_redis_pool()):
|
||||
self.game = game
|
||||
self.rdb = rdb
|
||||
self.label_id = label_id
|
||||
self.cluster_name = cluster_name
|
||||
self.event_tbl = None
|
||||
self.data_where = data_where or []
|
||||
|
||||
@ -49,7 +49,7 @@ class UserClusterDef:
|
||||
|
||||
async def init(self):
|
||||
|
||||
self.data_in = (await crud.user_label.get(get_database(), self.label_id, {'qp': 1})).get('qp')
|
||||
self.data_in = (await crud.user_label.find_one(get_database(), {'cluster_name':self.cluster_name}, {'qp': 1})).get('qp')
|
||||
await self._init_tal()
|
||||
self.events = self.data_in['user_cluster_def']['events']
|
||||
self.event_relation = self.data_in['user_cluster_def']['event_relation']
|
||||
@ -134,7 +134,7 @@ class UserClusterDef:
|
||||
analysis = event['prop_quota']['analysis']
|
||||
quota = event['prop_quota']['quota']
|
||||
num = event['num'].split(',')
|
||||
date_type = event.get('date_type','dynamic')
|
||||
date_type = event.get('date_type', 'dynamic')
|
||||
e_days = event.get('e_days')
|
||||
s_days = event.get('s_days')
|
||||
|
||||
@ -206,3 +206,10 @@ class UserClusterDef:
|
||||
sql = str(qry.compile(compile_kwargs={"literal_binds": True}))
|
||||
print(sql)
|
||||
return sql
|
||||
|
||||
def cluster_user_count(self):
|
||||
sub_qry = self.to_sql_qry()
|
||||
qry= sa.select(func.count()).select(sub_qry)
|
||||
sql = str(qry.compile(compile_kwargs={"literal_binds": True}))
|
||||
print(sql)
|
||||
return sql
|
||||
|
Loading…
Reference in New Issue
Block a user