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, 'content_type': params_kw.get('content_type', ''), 'category_id': params_kw.get('category_id', ''), 'title': params_kw.get('title', ''), 'subtitle': params_kw.get('subtitle', ''), 'summary_text': params_kw.get('summary_text', ''), 'body': params_kw.get('body', ''), 'image_url': params_kw.get('image_url', ''), 'tags': params_kw.get('tags', ''), 'sort_order': int(params_kw.get('sort_order', '0') or '0'), 'status': params_kw.get('status', 'draft'), 'approval_id': params_kw.get('approval_id', ''), 'published_at': params_kw.get('published_at', '') or None, 'extra_json': params_kw.get('extra_json', ''), 'created_by': user_id, 'created_at': now, 'updated_at': now, } if not data['title']: return json.dumps({'status': 'error', 'message': '标题不能为空'}, ensure_ascii=False) try: async with get_sor_context(request._run_ns, 'ocai_cms') as sor: await sor.I('cms_content', 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)