kboss/b/reseller/resellerOrgSearch.dspy
2025-07-16 14:27:17 +08:00

84 lines
3.1 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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