This commit is contained in:
wuaho 2021-08-30 14:58:01 +08:00
parent b2ffc0a8b4
commit 25a47dc586
4 changed files with 30 additions and 11 deletions

View File

@ -47,10 +47,10 @@ async def get_permissions_for_user_in_domain(
"""
data = casbin_enforcer.get_permissions_for_user_in_domain(data_in.role_id, data_in.game)
path_ids = {i[2] for i in data}
paths = {i[2] for i in data}
all_api = await crud.api_list.all_api(db)
for item in all_api:
if item['_id'] in path_ids:
if item['path'] in paths:
item['is_authz'] = True
else:
item['is_authz'] = False

View File

@ -66,10 +66,13 @@ async def read_project(request: Request,
current_user: schemas.UserDB = Depends(deps.get_current_user)
):
"""查看自己拥有的项目"""
if request.user.username == 'root':
resp = await crud.project.all_game(db)
else:
game_list = casbin_enforcer.get_domains_for_user(request.user.username)
resp = await crud.project.get_my_game(db, game_list)
res = await crud.project.read_project(db, username=request.user.username)
return schemas.Msg(code=0, msg='ok', data=res)
return schemas.Msg(code=0, msg='ok', data=resp)
@router.get("/detail")

View File

@ -119,7 +119,8 @@ async def event_model(
'sum': [],
'avg': [],
'event_name': item['event_name'],
'format': item['format']
'format': item['format'],
'last_value': 0
}
sql = item['sql']
groupby = item['groupby']
@ -135,8 +136,12 @@ async def event_model(
# df_group.reset_index(drop=True, inplace=True)
q['groups'].append(groupby)
q['values'].append(df['values'].to_list())
q['sum'].append(int(df['values'].sum()))
q['sum'].append(round(df['values'].sum(),2))
q['avg'].append(round(df['values'].mean(), 2))
for last_value in df['values'].values[::-1]:
if last_value > 0:
q['last_value'] = int(last_value)
break
if groupby:
q['date_range'] = [f'{i}' for i in df.set_index(groupby).index]
else:
@ -162,6 +167,10 @@ async def event_model(
q['values'].append(df_group['values'].to_list())
q['sum'].append(int(df_group['values'].sum()))
q['avg'].append(int(df_group['values'].mean()))
for last_value in df['values'].values[::-1]:
if last_value > 0:
q['last_value'] = last_value
break
else:
# 无分组
@ -175,7 +184,11 @@ async def event_model(
if len(df) >= 8:
q['wow'] = division((df.iloc[-1, 1] - df.iloc[-8, 1]) * 100 / df.iloc[-8, 1], 2) or 0
q['values'].append(df['values'].to_list())
q['sum'].append(int(df['values'].sum()))
for last_value in df['values'].values[::-1]:
if last_value > 0:
q['last_value'] = last_value
break
q['sum'].append(round(df['values'].sum(),2))
q['avg'].append(round(df['values'].mean(), 2))
if item['time_particle'] in ('P1D', 'P1W'):
q['date_range'] = [d.strftime('%Y-%m-%d') for d in q['date_range']]
@ -543,7 +556,7 @@ async def scatter_model(
if interval_type == 'def' and analysis == 'number_of_days':
resp = {'list': {}}
for key, tmp_df in df.groupby('date'):
total = int(tmp_df['values'].sum())
total = round(tmp_df['values'].sum(),2)
resp['list'][key.strftime('%Y-%m-%d')] = {'n': total, 'total': total, 'p': 100}
return schemas.Msg(code=0, msg='ok', data=resp)

View File

@ -17,8 +17,11 @@ class CRUDProject(CRUDBase):
)
return await db[self.coll_name].insert_one(db_obj.dict(by_alias=True))
async def get_my_game(self, db, game_names: list):
return await self.find_many(db, {'game': {'$in': game_names}})
async def all_game(self, db: AsyncIOMotorDatabase):
return await self.find_many(db, {}, {'game': True, 'name': True, '_id': False})
return await self.find_many(db, {})
async def read_project(self, db: AsyncIOMotorDatabase, username: str, **kwargs):
return await self.read_have(db, username, **kwargs)