67 lines
1.7 KiB
Python
67 lines
1.7 KiB
Python
import pandas as pd
|
|
import numpy as np
|
|
|
|
import crud
|
|
import schemas
|
|
from db import get_database
|
|
from db.ckdb import get_ck_db
|
|
from models.user_label import UserClusterDef
|
|
|
|
|
|
async def save(db, data_in, act_user, game):
|
|
return await crud.user_label.save(db, data_in, act_user, game)
|
|
|
|
|
|
async def read(db, data_in):
|
|
return await crud.user_label.read(db, data_in)
|
|
|
|
|
|
async def get_list(db, game):
|
|
return await crud.user_label.get_list(db, game)
|
|
|
|
|
|
async def get_detail(db, label_id):
|
|
return await crud.user_label.get(db, label_id)
|
|
|
|
|
|
async def delete(db, label_id):
|
|
await crud.user_label.delete_id(db, label_id)
|
|
return True
|
|
|
|
|
|
async def json2sql(game, date_in):
|
|
user_cluster_def = UserClusterDef(game, date_in)
|
|
await user_cluster_def.init()
|
|
return user_cluster_def.to_sql()
|
|
|
|
|
|
async def get_cluster_user(game, cluster_name, page, limit):
|
|
user_cluster_def = UserClusterDef(game, cluster_name, page=page, limit=limit)
|
|
await user_cluster_def.init()
|
|
sql = user_cluster_def.cluster_user_list()
|
|
ckdb = get_ck_db()
|
|
df = await ckdb.query_dataframe(sql)
|
|
df.fillna(0, inplace=True)
|
|
return {
|
|
'columns': df.columns.tolist(),
|
|
'values': df.values.tolist()
|
|
}
|
|
|
|
|
|
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)
|
|
return {'num': int(df.loc[0, 'values'])}
|
|
|
|
|
|
async def copy_to(to_game, ids, act_name):
|
|
db = get_database()
|
|
docs = await crud.user_label.find_ids(db, *ids)
|
|
for item in docs:
|
|
data = schemas.UserLabelSave(**item)
|
|
await crud.user_label.save(db, data, act_name, to_game)
|
|
return True
|