user_id = await get_user() if not user_id: return json.dumps({'status': 'error', 'message': '未登录'}, ensure_ascii=False) org_id = params_kw.get('org_id', '') if not org_id: org_id = (await get_userorgid()) or '0' now = curDateString() data = { 'id': getID(), 'org_id': org_id, 'source': params_kw.get('source', 'website'), 'name': params_kw.get('name', ''), 'company': params_kw.get('company', ''), 'phone': params_kw.get('phone', ''), 'email': params_kw.get('email', ''), 'industry': params_kw.get('industry', ''), 'region': params_kw.get('region', ''), 'interest_products': params_kw.get('interest_products', ''), 'message': params_kw.get('message', ''), 'raw_text': params_kw.get('raw_text', ''), 'status': params_kw.get('status', 'new'), 'assigned_to': params_kw.get('assigned_to', ''), 'notes': params_kw.get('notes', ''), 'created_at': now, 'updated_at': now, } try: async with get_sor_context(request._run_ns, 'ocai_cms') as sor: await sor.I('cms_leads', data) return json.dumps({'status': 'ok', 'id': data['id']}, ensure_ascii=False) except Exception as e: return json.dumps({'status': 'error', 'message': str(e)}, ensure_ascii=False)