zzhyyyyy e9e7cda92a Merge origin/main into feat/feedback-qr-and-withdraw-reward
解决冲突(main 已把列表页迁到 usePagedList,本侧净增 FeedbackQrConfig / UserRewardPanel / lib/media):
- feedbacks:采用 main 演进后的页面(usePagedList/筛选/Typography 富渲染),仅保留本侧 <FeedbackQrConfig />;
  mediaUrl 用 main 的本地 const(去掉本侧重复 import 避免重声明)。
- price-reports:保留 mediaUrl(lib/media)+ main 的 usePagedList,去掉未用的 useCursorList。
- users:本侧 setForceOnboarding 与 main 的批量封禁/解封/调试链接函数并存;setForceOnboarding 改用
  App.useApp() 的 modal(全文已无静态 Modal 导入)。两功能的列按钮/批量按钮均已在自动合并区接好。
- withdraws:分页用 main 的 usePagedList 机制 + 本侧 WithdrawListItem 类型(与列定义/后端富化返回 total 一致);
  详情抽屉保留本侧 UserRewardPanel,丢掉 main 那两个孤儿列(cashColumns/recentWithdrawColumns,合并后无引用);
  清理随之未用的 formatWallTime 导入。

tsc --noEmit:本侧 4 文件 0 错误(仅余 main 既有 cps 页缺 @ant-design/plots 本地依赖,CI 全新安装可解)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 00:12:42 +08:00

傻瓜比价 · 运营后台(前端)

Next.js 15 + Ant Design 5,对接 shaguabijia-app-server 的 admin API(app/admin/)。 后端是独立 FastAPI app(端口 8771,复用 app-server 的 models/repositories + 同一 PostgreSQL, 鉴权用独立 JWT)。本仓只是前端。

功能(P0)

数据大盘 / 用户管理(列表+360详情+封禁+调金币) / 提现管理(列表+重试+对账) / 反馈工单 / 管理员账号(super) / 审计日志。按角色显示操作:finance=钱、operator=用户+反馈、super=全部。

本地开发

# 1. 起 admin 后端(在 shaguabijia-app-server 目录)
conda activate price && uvicorn app.admin.main:admin_app --port 8771
# 2. 建首个超管(打印密码)
python scripts/create_admin.py --username admin --role super_admin
# 3. 起前端
npm install && npm run dev        # → http://localhost:3001

.env.local 已指向 http://localhost:8771

生产部署(阿里云,域名 admin.shaguabijia.com)

① 后端 admin(在 app-server 机器,复用同一 codebase)

scp deploy/shaguabijia-admin.service server:/etc/systemd/system/   # 文件在 app-server/deploy/
ssh server "systemctl daemon-reload && systemctl enable --now shaguabijia-admin"
ssh server "cd /opt/shaguabijia-app-server && .venv/bin/python scripts/create_admin.py --username admin --role super_admin"

② 前端

npm run build
rsync -avz --exclude node_modules --exclude .next/cache ./ server:/opt/shaguabijia-admin-web/
ssh server "cd /opt/shaguabijia-admin-web && npm install --omit=dev && npm run build && pm2 start ecosystem.config.js"

③ nginx

scp deploy/nginx/admin.shaguabijia.com.conf server:/etc/nginx/conf.d/
ssh server "nginx -t && systemctl reload nginx"

⚠️ 上线必查

  • app-server 的 .envADMIN_JWT_SECRET 改成 ≥32 字节强随机串(默认 change-me-admin 可伪造 token)
  • nginx 打开 IP 白名单(运营出口 IP)+ HTTPS 证书就位
  • .env.productionNEXT_PUBLIC_API_BASE 留空(同域,nginx 反代 /admin/api)
  • 首个 super_admin 已建、能登录
S
Description
No description provided
Readme 1.8 MiB
Languages
TypeScript 98.6%
Shell 1.3%
JavaScript 0.1%