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]