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

70 lines
2.3 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_update(ns={}):
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'
}
user_role = await get_user_role({'userid': userid, 'sor': sor})
ns.pop('userid', None)
# ns['orgid'] = orgid
try:
if user_role == '客户': # 客户更新
ns['audit_status'] = 'pending' # 客户更新时默认审核状态为待审
else: # 运营更新 如果是approved reject_reason为空
if ns.get('audit_status') == 'approved':
ns['reject_reason'] = None
# 生成更新的sql语句
update_sql = """UPDATE enterprise_audit_info SET """
for key, value in ns.items():
if value is None:
update_sql += f"{key} = NULL, "
continue
update_sql += f"{key} = '{value}', "
update_sql = update_sql[:-2] + f" WHERE id = '{ns.get('id')}';"""
await sor.sqlExe(update_sql, {})
return {
'status': True,
'msg': '更新成功'
}
except Exception as e:
return {
'status': False,
'msg': 'Failed to update enterprise audit info, %s' % str(e)
}
ret = await enterprise_audit_info_update(params_kw)
return ret