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