From c699ad0b8ec0cefea214cfd5ffe36e11df75b167 Mon Sep 17 00:00:00 2001 From: marco Date: Wed, 24 Jun 2026 04:08:08 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20README=20=E6=9B=B4=E6=96=B0=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E6=A8=A1=E5=9D=97=E4=B8=8E=E9=83=A8=E7=BD=B2=E8=AF=B4?= =?UTF-8?q?=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 功能从 P0 概述扩写为 12 个模块详述(数据大盘/用户/设备/提现/上报审核/比价记录/反馈/广告/CPS分发/系统配置/管理员/审计) - 补充按角色(finance/operator/super)操作权限说明 - 部署注意:NEXT_PUBLIC_MEDIA_BASE 必须指向 App 后端域名,否则 /media 图片 404 Co-Authored-By: Claude Opus 4.8 --- README.md | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 06ba5fb..1764586 100644 --- a/README.md +++ b/README.md @@ -4,10 +4,31 @@ Next.js 15 + Ant Design 5,对接 `shaguabijia-app-server` 的 admin API(`app/adm 后端是独立 FastAPI app(端口 8771,复用 app-server 的 models/repositories + 同一 PostgreSQL, 鉴权用独立 JWT)。本仓只是前端。 -## 功能(P0) +## 功能模块 -数据大盘 / 用户管理(列表+360详情+封禁+调金币) / 提现管理(列表+重试+对账) / -反馈工单 / 管理员账号(super) / 审计日志。按角色显示操作:finance=钱、operator=用户+反馈、super=全部。 +侧边栏 `MENU`(`src/app/(main)/layout.tsx`)共 12 个模块,均已上线: + +- **数据大盘**(`/dashboard`)— 核心经营指标概览。 +- **用户管理**(`/users`)— 列表(多条件筛选+服务端排序)+ 360 详情;封禁/解封、调金币、调现金;运营开关:开启新手引导(标记用户重看一次,看完自动恢复)、开/关调试链接(trace 排障)、以及上述操作的批量勾选执行。 +- **设备管理**(`/devices`)— 按硬件 ANDROID_ID 聚合走过新手引导的设备;可单设备或全量「重设新手引导」。 +- **提现管理**(`/withdraws`)— 提现单审核(通过即发起微信打款 / 拒绝退回余额)、查单刷新、批量通过/拒绝/刷新、批量对账,含微信配置健康检查 + 现金账本校验。 +- **上报审核**(`/price-reports`)— 用户上报「某平台更低价」+ 截图,人工核实;通过发放 1000 金币、拒绝需填理由(用户端轮询看到结果)。 +- **比价记录**(`/comparison-records`)— 比价过程明细(逐平台结局/卡在哪一步、LLM 调用明细、trace);支持按页面输入的 LLM 单价做 token / 成本估算(纯前端,见 `calcCost` / `pricePerMTok`)。 +- **反馈工单**(`/feedbacks`)— 用户反馈审核闭环:采纳发金币 / 拒绝填用户可见原因(`FeedbackHandleDrawer`),并含反馈二维码配置。 +- **广告管理**(`/ad-revenue`)— 穿山甲广告配置(应用ID/各场景广告位ID/验签密钥/开关)+ 收益报表(展示/预估收益 与 应发/实发金币逐组对账)。 +- **CPS 分发**(`/cps`)— 优惠券分发与对账(美团/淘宝/京东);单页 Tabs:对账统计 / 群管理 / 活动管理 / 订单明细。含群对账详情子页(`/cps/groups/[id]`):点击/复制趋势折线 + 按天明细 + 群内微信用户画像。 +- **系统配置**(`/config`)— 业务运行参数(金额/上限等)在线读写,改完即时生效、每次进审计。 +- **管理员**(`/admins`)— 管理员账号管理(仅 `super_admin` 可见)。 +- **审计日志**(`/audit-logs`)— 所有写操作的审计流水。 + +### 按角色显示操作 + +权限以 `src/lib/auth.ts` 的 `canDo()` 为准(`super_admin` 恒可全部),各 `page.tsx` 用 `canDo([...])` 控制按钮: + +- **finance**(钱):提现审核、用户调金币/调现金、CPS 对账(刷新拉美团订单)。 +- **operator**(用户+内容):用户封禁/调试链接/新手引导、反馈审核、上报审核、设备重设引导、CPS 群/活动管理。 +- **super**(super_admin):以上全部 + 管理员账号管理。 +- 数据大盘 / 比价记录 / 广告管理 / 系统配置 / 审计日志:无 `canDo` 门,登录即可查看。 ## 本地开发 @@ -52,5 +73,6 @@ ssh server "nginx -t && systemctl reload nginx" - app-server 的 `.env` 里 `ADMIN_JWT_SECRET` 改成 ≥32 字节强随机串(默认 `change-me-admin` 可伪造 token) - nginx 打开 IP 白名单(运营出口 IP)+ HTTPS 证书就位 - `.env.production` 的 `NEXT_PUBLIC_API_BASE` 留空(同域,nginx 反代 /admin/api) +- `.env.production` 的 `NEXT_PUBLIC_MEDIA_BASE` 必须指向 **App 后端** `https://app-api.shaguabijia.com`(/media 的真正的家),否则后台所有 /media 图片(上报/反馈截图、二维码、头像)被拼到 admin 域而 404。`NEXT_PUBLIC_*` 是编译期常量,改完必须重新 `npm run build` 才生效(详见 `src/lib/media.ts`) - 首个 super_admin 已建、能登录