kboss/b/user/enterprise_audit_info_search.dspy
2025-08-14 17:15:44 +08:00

78 lines
2.9 KiB
Plaintext

async def get_user_role(ns={}):
sor = ns['sor']
# get role
ns['del_flg'] = '0'
res_role = await sor.R('userrole', ns)
if res_role:
user_role = res_role[0]
else:
return {
"status": False,
"msg": "userrole table, user id can not find..."
}
roleid = user_role.get('roleid')
# get role name
role_name = await sor.R('role', {'id': roleid})
if role_name:
role = role_name[0].get('role')
else:
return {
"status": False,
"msg": "role table, can not get role name"
}
return role
async def enterprise_audit_info_search(ns={}):
if not ns.get('url_link'):
return {
'status': False,
'msg': '请传递url_link'
}
domain_name = ns.get('url_link').split("//")[1].split("/")[0]
if 'localhost' in domain_name:
domain_name = 'dev.opencomputing.cn'
db = DBPools()
async with db.sqlorContext('kboss') as sor:
# 检查orgid是否存在
if ns.get('userid'):
userid = ns.get('userid')
else:
userid = await get_user()
user_list = await sor.R('users', {'id': userid})
if not user_list:
return {
'status': False,
'msg': 'user not found'
}
orgid = user_list[0]['orgid']
user_role = await get_user_role({'userid': userid, 'sor': sor})
try:
if user_role == '客户': # 客户查询
find_sql = """SELECT * FROM enterprise_audit_info WHERE orgid = '%s' AND del_flg = '0';""" % orgid
else: # 运营查询 enterprise_audit_info和organization表关联查询 enterprise_audit_info中的orgid和organization表中的id关联查询
find_sql = """SELECT eai.* FROM enterprise_audit_info AS eai LEFT JOIN organization as org ON eai.orgid = org.id WHERE org.parentid = '%s' AND eai.del_flg = '0' ORDER BY eai.update_time DESC;""" % orgid
# 执行查询
res = await sor.sqlExe(find_sql, {})
# 处理结果中的图片路径 增加前缀
for item in res:
if item.get('license_original_img'):
item['license_original_img'] = 'https://' + domain_name + '/idfile?path=' + item['license_original_img']
if item.get('license_copy_img'):
item['license_copy_img'] = 'https://' + domain_name + '/idfile?path=' + item['license_copy_img']
return {
'status': True,
'msg': 'enterprise audit info search successfully',
'data': res
}
except Exception as e:
return {
'status': False,
'msg': 'Failed to search enterprise audit info, %s' % str(e)
}
ret = await enterprise_audit_info_search(params_kw)
return ret