org_id = params_kw.get('org_id', (await get_userorgid()) or '0') id = params_kw.get('id', getID()) now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") vendor = params_kw.get('vendor', '') upappid = params_kw.get('upappid', '') api_mapping = params_kw.get('api_mapping', '{}') if not vendor: return {"widgettype":"Error","options":{"title":"创建失败","message":"供应商标识不能为空","cwidth":16,"cheight":9,"timeout":3}} if not upappid: return {"widgettype":"Error","options":{"title":"创建失败","message":"上位系统ID不能为空","cwidth":16,"cheight":9,"timeout":3}} try: api_mapping_dict = json.loads(api_mapping) if api_mapping else {} api_mapping = json.dumps(api_mapping_dict, ensure_ascii=False) except json.JSONDecodeError: return {"widgettype":"Error","options":{"title":"创建失败","message":"API映射必须是有效的JSON","cwidth":16,"cheight":9,"timeout":3}} data = { "id": id, "org_id": org_id, "vendor": vendor, "vendor_title": params_kw.get('vendor_title', ''), "upappid": upappid, "api_mapping": api_mapping, "status": params_kw.get('status', 'active'), "callback_url": params_kw.get('callback_url', ''), "create_time": now, "update_time": now } db = DBPools() dbname = get_module_dbname('reallife_asset') async with db.sqlorContext(dbname) as sor: await sor.I("rl_vendor_config", data) return {"widgettype":"Message","options":{"title":"创建成功","message":"ok","cwidth":16,"cheight":9,"timeout":3,"user_data": data}}