优化标签过滤
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})
|
user_label_docs = await crud.user_label.find_many(db, {'game': game}, {'qp': 0})
|
||||||
for item in user_label_docs:
|
for item in user_label_docs:
|
||||||
tmp = {
|
tmp = {
|
||||||
'id': item['_id'],
|
'id': item['cluster_name'],
|
||||||
'data_type': 'user_label',
|
'data_type': 'user_label',
|
||||||
'title': item['display_name'],
|
'title': item['display_name'],
|
||||||
}
|
}
|
||||||
|
@ -69,7 +69,7 @@ async def sql(request: Request,
|
|||||||
return schemas.Msg(code=0, msg='ok', data=data)
|
return schemas.Msg(code=0, msg='ok', data=data)
|
||||||
|
|
||||||
|
|
||||||
@router.post("/cluster_user")
|
@router.post("/cluster_user_list")
|
||||||
async def cluster_user(request: Request,
|
async def cluster_user(request: Request,
|
||||||
data_in: schemas.UserLabelJson2Sql,
|
data_in: schemas.UserLabelJson2Sql,
|
||||||
game: str,
|
game: str,
|
||||||
@ -79,3 +79,13 @@ async def cluster_user(request: Request,
|
|||||||
"""获取该标签用户"""
|
"""获取该标签用户"""
|
||||||
data = await service.get_cluster_user(game, data_in.label_id)
|
data = await service.get_cluster_user(game, data_in.label_id)
|
||||||
return schemas.Msg(code=0, msg='ok', data=data)
|
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
|
import crud
|
||||||
|
from db.ckdb import get_ck_db
|
||||||
from models.user_label import UserClusterDef
|
from models.user_label import UserClusterDef
|
||||||
|
|
||||||
|
|
||||||
@ -19,7 +23,7 @@ async def get_detail(db, label_id):
|
|||||||
|
|
||||||
|
|
||||||
async def delete(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
|
return True
|
||||||
|
|
||||||
|
|
||||||
@ -34,3 +38,11 @@ async def get_cluster_user(game, date_in):
|
|||||||
await user_cluster_def.init()
|
await user_cluster_def.init()
|
||||||
sql = user_cluster_def.cluster_user()
|
sql = user_cluster_def.cluster_user()
|
||||||
return sql
|
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:
|
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.game = game
|
||||||
self.rdb = rdb
|
self.rdb = rdb
|
||||||
self.label_id = label_id
|
self.cluster_name = cluster_name
|
||||||
self.event_tbl = None
|
self.event_tbl = None
|
||||||
self.data_where = data_where or []
|
self.data_where = data_where or []
|
||||||
|
|
||||||
@ -49,7 +49,7 @@ class UserClusterDef:
|
|||||||
|
|
||||||
async def init(self):
|
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()
|
await self._init_tal()
|
||||||
self.events = self.data_in['user_cluster_def']['events']
|
self.events = self.data_in['user_cluster_def']['events']
|
||||||
self.event_relation = self.data_in['user_cluster_def']['event_relation']
|
self.event_relation = self.data_in['user_cluster_def']['event_relation']
|
||||||
@ -134,7 +134,7 @@ class UserClusterDef:
|
|||||||
analysis = event['prop_quota']['analysis']
|
analysis = event['prop_quota']['analysis']
|
||||||
quota = event['prop_quota']['quota']
|
quota = event['prop_quota']['quota']
|
||||||
num = event['num'].split(',')
|
num = event['num'].split(',')
|
||||||
date_type = event.get('date_type','dynamic')
|
date_type = event.get('date_type', 'dynamic')
|
||||||
e_days = event.get('e_days')
|
e_days = event.get('e_days')
|
||||||
s_days = event.get('s_days')
|
s_days = event.get('s_days')
|
||||||
|
|
||||||
@ -206,3 +206,10 @@ class UserClusterDef:
|
|||||||
sql = str(qry.compile(compile_kwargs={"literal_binds": True}))
|
sql = str(qry.compile(compile_kwargs={"literal_binds": True}))
|
||||||
print(sql)
|
print(sql)
|
||||||
return 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