xbackend/api/api_v1/user_label/service.py
2021-10-25 17:08:33 +08:00

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