This commit is contained in:
wuaho 2021-11-22 11:01:22 +08:00
parent 39faa3322c
commit b30df136f3
3 changed files with 69 additions and 0 deletions

View File

@ -260,3 +260,64 @@ async def update_api_list(
await crud.api_list.update_api(db, add_data)
return schemas.Msg(code=0, msg='ok', data=1)
@router.get("/account_owner_list")
async def account_owner_list(request: Request,
game: str,
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)) -> schemas.Msg:
"""获取账号owner权限"""
account_infos = await crud.user.find_many(db, {},
{'_id': False, 'name': True, 'nickname': True,
f'data_where.{game}': True})
resp = []
for account_info in account_infos:
resp.append(
{
'name': account_info.get('name'),
'nickname': account_info.get('nickname'),
'owner_list': ''
}
)
for item in account_info.get('data_where', {}).get(game, []):
if item.get('columnName') == 'owner_name':
resp[-1]['owner_list'] = ','.join(item.get('ftv', []))
break
return schemas.Msg(code=0, msg='ok', data=resp)
@router.post("/update_account_owner")
async def account_owner_list(request: Request,
game: str,
data_in: schemas.OwnerList,
db: AsyncIOMotorDatabase = Depends(get_database),
current_user: schemas.UserDB = Depends(deps.get_current_user)) -> schemas.Msg:
"""设置账号owner权限"""
set_data = {
"columnName": "owner_name",
"tableType": "event",
"comparator": "in",
"ftv": data_in.owners
}
is_exists = await crud.user.find_one(db, {'name': data_in.account_name,
f'data_where.{game}': {'$exists': True},
})
if is_exists:
if await crud.user.find_one(db, {'name': data_in.account_name,
f'data_where.{game}': {'$exists': True},
f'data_where.{game}.columnName': 'owner_name'
}):
await crud.user.update_one(db, {'name': data_in.account_name,
f'data_where.{game}': {'$exists': True},
f'data_where.{game}.columnName': 'owner_name'
}, {'$set': {f'data_where.{game}.$': set_data}})
else:
await crud.user.update_one(db, {'name': data_in.account_name,
f'data_where.{game}': {'$exists': True},
}, {'$push': {f'data_where.{game}': set_data}})
else:
await crud.user.update_one(db, {'name': data_in.account_name,
}, {'$set': {f'data_where.{game}': [set_data]}})
return schemas.Msg(code=0, msg='ok')

View File

@ -150,6 +150,8 @@ class XAnalysis:
sa.Column('date') >= self.event_view['startTime'].split(' ')[0],
sa.Column('date') <= self.event_view['endTime'].split(' ')[0]
]
if quota == '#distinct_id':
where.append(sa.Column('role_idx') == 1)
qry = sa.select().where(*where)
sql = str(qry.compile(compile_kwargs={"literal_binds": True}))
where_str = sql.split('WHERE ')[1]
@ -164,6 +166,7 @@ class XAnalysis:
where_account = self.handler_filts((self.account_filters, 'and'), self.ext_filters)
where_account_str = 1
if where_account:
qry = sa.select().where(*where_account)
sql = str(qry.compile(compile_kwargs={"literal_binds": True}))
where_account_str = sql.split('WHERE ')[1]

View File

@ -30,3 +30,8 @@ class EditRole(BaseModel):
role_id: str = Field(..., description='要编辑的id')
name: str = None
desc: str = None
class OwnerList(BaseModel):
owners: list
account_name: str