From e1459cda12a0f4e98320fdbfa830891da111c125 Mon Sep 17 00:00:00 2001 From: Pine Date: Sat, 5 Sep 2026 02:30:29 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=AE=A1=E6=A0=B8):=20=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E8=BF=94=E5=9B=9E=E7=9C=9F=E5=AE=9EHTML?= =?UTF-8?q?=E5=86=85=E5=AE=B9+=E6=94=AF=E6=8C=81=E5=85=A8=E9=83=A8?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - list_all() 替代 list_pending(), 支持 ?status= 过滤 - 审核列表对 html 模式调用 _load_html_content() 从 OSS 加载真实源码 - 修复 page_type 不一致数据(embed_url有值但page_type=html) - admin端预览直接用返回的htmlContent生成Blob URL, 不再fetch /oss/ --- app/api/routers/rbac_pages.py | 10 +++++++--- app/infrastructure/hall_repositories.py | 7 +++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/api/routers/rbac_pages.py b/app/api/routers/rbac_pages.py index a33c889..32ab61d 100644 --- a/app/api/routers/rbac_pages.py +++ b/app/api/routers/rbac_pages.py @@ -418,17 +418,21 @@ async def get_user_page(user_id: str, db: Database = Depends(get_db), # ── 运营端:审核 ──────────────────────────────────────────────────────── -@router.get("/admin/review/list", summary="运营端:待审核个人主页列表") -async def review_list(db: Database = Depends(get_db), +@router.get("/admin/review/list", summary="运营端:个人主页列表(含HTML内容)") +async def review_list(status: str | None = None, + db: Database = Depends(get_db), user: dict = Depends(get_current_user)): if user.get("role") not in ("admin", "operator"): raise HTTPException(status_code=403, detail="无权限") - pages = await db.user_pages.list_pending() + pages = await db.user_pages.list_all(status) result = [] for p in pages: u = (await db.users.get_by_id(p["userId"])) or {} + # 加载真实 HTML 内容(从 OSS 读取,兼容旧数据 html_content 列) + html_content = await _load_html_content(p) if p.get("pageType") == "html" else "" result.append({ **p, + "htmlContent": html_content, "nickname": u.get("nickname") or u.get("username"), "avatar": resolve_url(u.get("avatar") or ""), }) diff --git a/app/infrastructure/hall_repositories.py b/app/infrastructure/hall_repositories.py index 5c14a21..48700d6 100644 --- a/app/infrastructure/hall_repositories.py +++ b/app/infrastructure/hall_repositories.py @@ -701,3 +701,10 @@ class UserPageRepository: "operatorName": r.operator_name, "note": r.note, "createdAt": r.created_at} for r in rows ] + + async def list_all(self, status: str | None = None) -> list[dict]: + stmt = select(UserPage).order_by(UserPage.updated_at.desc()) + if status: + stmt = stmt.where(UserPage.review_status == status) + rows = (await self.session.execute(stmt)).scalars().all() + return [self._to_dict(r) for r in rows]