fix:修复提示词工坊相关功能 7
This commit is contained in:
@@ -3,6 +3,7 @@ from fastapi import APIRouter, Depends, HTTPException, Request
|
|||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
from sqlalchemy import select, func, or_
|
from sqlalchemy import select, func, or_
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
from datetime import datetime
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
from app.database import get_db
|
from app.database import get_db
|
||||||
@@ -432,25 +433,28 @@ async def submit_prompt(
|
|||||||
"""提交提示词"""
|
"""提交提示词"""
|
||||||
user_identifier = get_user_identifier_from_request(request)
|
user_identifier = get_user_identifier_from_request(request)
|
||||||
|
|
||||||
# 获取用户显示名称
|
# 作者名称优先使用用户填写的 author_display_name
|
||||||
submitter_name = "未知用户"
|
# 如果用户未填写,才使用系统获取的用户名
|
||||||
is_proxy = getattr(request.state, 'is_proxy_request', False)
|
submitter_name = data.author_display_name
|
||||||
|
|
||||||
if is_proxy:
|
if not submitter_name:
|
||||||
# 代理请求,从请求数据中获取提交者名称
|
# 用户未填写作者名称,尝试从系统获取
|
||||||
submitter_name = data.author_display_name or "未知用户"
|
is_proxy = getattr(request.state, 'is_proxy_request', False)
|
||||||
else:
|
|
||||||
# 本地请求,从用户对象获取
|
if is_proxy:
|
||||||
user = getattr(request.state, 'user', None)
|
submitter_name = "未知用户"
|
||||||
if user:
|
|
||||||
submitter_name = user.display_name
|
|
||||||
else:
|
else:
|
||||||
# 尝试从数据库获取
|
user = getattr(request.state, 'user', None)
|
||||||
user_id = getattr(request.state, 'user_id', None)
|
if user:
|
||||||
if user_id:
|
submitter_name = user.display_name
|
||||||
from app.user_manager import user_manager
|
else:
|
||||||
user = await user_manager.get_user(user_id)
|
user_id = getattr(request.state, 'user_id', None)
|
||||||
submitter_name = user.display_name if user else "未知用户"
|
if user_id:
|
||||||
|
from app.user_manager import user_manager
|
||||||
|
user = await user_manager.get_user(user_id)
|
||||||
|
submitter_name = user.display_name if user else "未知用户"
|
||||||
|
else:
|
||||||
|
submitter_name = "未知用户"
|
||||||
|
|
||||||
if is_workshop_server():
|
if is_workshop_server():
|
||||||
# 直接创建提交记录
|
# 直接创建提交记录
|
||||||
@@ -668,7 +672,7 @@ async def admin_review_submission(
|
|||||||
submission.workshop_item_id = new_item.id
|
submission.workshop_item_id = new_item.id
|
||||||
submission.reviewer_id = admin_user_id
|
submission.reviewer_id = admin_user_id
|
||||||
submission.review_note = data.review_note
|
submission.review_note = data.review_note
|
||||||
submission.reviewed_at = func.now()
|
submission.reviewed_at = datetime.utcnow()
|
||||||
|
|
||||||
await db.commit()
|
await db.commit()
|
||||||
await db.refresh(new_item)
|
await db.refresh(new_item)
|
||||||
@@ -682,9 +686,10 @@ async def admin_review_submission(
|
|||||||
submission.status = "rejected"
|
submission.status = "rejected"
|
||||||
submission.reviewer_id = admin_user_id
|
submission.reviewer_id = admin_user_id
|
||||||
submission.review_note = data.review_note
|
submission.review_note = data.review_note
|
||||||
submission.reviewed_at = func.now()
|
submission.reviewed_at = datetime.utcnow()
|
||||||
|
|
||||||
await db.commit()
|
await db.commit()
|
||||||
|
await db.refresh(submission)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"success": True,
|
"success": True,
|
||||||
|
|||||||
@@ -1096,6 +1096,15 @@ export default function PromptWorkshop() {
|
|||||||
<TextArea rows={6} placeholder="输入完整的提示词内容..." />
|
<TextArea rows={6} placeholder="输入完整的提示词内容..." />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
|
||||||
|
<Form.Item
|
||||||
|
name="author_display_name"
|
||||||
|
label="作者署名"
|
||||||
|
rules={[{ required: true, message: '请输入作者署名' }]}
|
||||||
|
tooltip="发布后显示的作者名称"
|
||||||
|
>
|
||||||
|
<Input placeholder="请输入作者署名(必填)" maxLength={50} />
|
||||||
|
</Form.Item>
|
||||||
|
|
||||||
<Form.Item name="tags" label="标签">
|
<Form.Item name="tags" label="标签">
|
||||||
<Input placeholder="输入标签,多个用逗号分隔,如: 武侠,对话,细腻" />
|
<Input placeholder="输入标签,多个用逗号分隔,如: 武侠,对话,细腻" />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
|||||||
Reference in New Issue
Block a user