84 lines
3.1 KiB
Plaintext
84 lines
3.1 KiB
Plaintext
async def getResellerAdminRole(sor, orgid):
|
||
"""
|
||
入参:分销商orgid -> 通过users表获取对应机构下user -> 筛选获取管理员
|
||
:param ns:
|
||
:return:
|
||
"""
|
||
if not orgid:
|
||
return {
|
||
"status": False,
|
||
"msg": "orgid id is empty, please check",
|
||
}
|
||
# get users
|
||
users = await sor.R('users', {'orgid': orgid, 'del_flg': '0'})
|
||
user_id_list = [item.get('id') for item in users]
|
||
# get admin config id
|
||
rolereacs = await sor.R('role', {'role': '管理员','del_flg':'0','org_type':'1'})
|
||
roleadminid = rolereacs[0]['id']
|
||
# get all admin
|
||
userrole_list = await sor.R('userrole', {'roleid': roleadminid,'del_flg':'0'})
|
||
userrole_id_list = [ite.get('userid') for ite in userrole_list]
|
||
retB = list(set(user_id_list).intersection(set(userrole_id_list)))
|
||
if not retB:
|
||
return {'adminid': '', 'adminname': ''}
|
||
# filter all users with admins
|
||
for user in users:
|
||
userid = user.get('id')
|
||
if userid in retB:
|
||
return {'adminid': userid, 'adminname': user.get('username')}
|
||
return {'adminid': '', 'adminname': ''}
|
||
|
||
async def resellerOrgSearch(ns={}):
|
||
"""
|
||
入参: 运营userid -> 对应reseller表salemanid -> 查找所有orgid
|
||
-> 查找admin -> org表和resller表 和 admin信息合并 返回
|
||
:param ns:
|
||
:return:
|
||
"""
|
||
if not ns:
|
||
return {
|
||
"status": False,
|
||
"msg": "reseller organization search failed, user id is empty",
|
||
}
|
||
db = DBPools()
|
||
async with db.sqlorContext('kboss') as sor:
|
||
try:
|
||
# get orgid from userid from users table
|
||
# if not await get_user():
|
||
# return {
|
||
# "status": False,
|
||
# "message": "organization search failed, userid is empty"
|
||
# }
|
||
orgid_li = await sor.R('reseller', {'salemanid': await get_user(), 'del_flg': '0'})
|
||
if not orgid_li:
|
||
return {
|
||
"status": False,
|
||
"message": "orgid search failed, orgid can not find by reseller table"
|
||
}
|
||
reseller_list = []
|
||
for reseller in orgid_li:
|
||
reseller['reseller_table_id'] = reseller.pop('id')
|
||
orgid = reseller.get('orgid')
|
||
res_admin = await getResellerAdminRole(sor, orgid)
|
||
org_li = await sor.R('organization', {'id': orgid, 'del_flg': '0'})
|
||
org = org_li[0] if org_li else {}
|
||
if org:
|
||
org.update(reseller)
|
||
org.update(res_admin)
|
||
reseller_list.append(org)
|
||
return {
|
||
"status": True,
|
||
"msg": "saler get all reseller organization search success",
|
||
"data": reseller_list
|
||
}
|
||
except Exception as e:
|
||
return {
|
||
"status": False,
|
||
"msg": "saler get all reseller organization search failed",
|
||
"err_msg": e
|
||
}
|
||
|
||
|
||
|
||
ret = await resellerOrgSearch(params_kw)
|
||
return ret |