# cmm **Repository Path**: yangxiaowen_admin/cmm ## Basic Information - **Project Name**: cmm - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-09 - **Last Updated**: 2026-11-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 蝉妈妈 · 抖音创作者选品与品牌合作 当前产品只保留:创作者中心扫码登录、开放平台授权或平台账号密码登录、本人数据及作品同步、合作偏好、商品与品牌参考推荐、收藏、合作意向。 ```bash npm install npm run db:init npm run dev ``` 页面 http://127.0.0.1:3000/ ,Koa API http://127.0.0.1:4000/api/health 。服务端全部 JavaScript,采用 `route → bll → model/SQL`;数据库、域名、端口、Cookie 与抖音应用参数统一由 `serve/config.js` 提供,本地和服务器使用同一份配置。`npm run build && npm run start` 启动生产预览。 ## 登录与测试账号 登录页 `/login` 默认提供创作者中心的实时官方二维码,扫码并校验本人 UID 后立即进入工作台,后台继续采集当前可访问的数据;也可切换「账号密码登录」。部署时还需运行 `npx playwright install --with-deps chromium`。详见 [服务端扫码与数据采集](docs/backend/创作者中心扫码与采集.md)。账号密码是平台账号,不是抖音密码。 ```bash npm run db:seed-test ``` 测试账号:`test_creator`,密码:`CmmTest@2026`。切换「账号密码登录」时默认填充这组测试凭据,可以修改后再登录。当前配置的 cmm 数据库已创建此账号;其他数据库可执行上方命令创建,重复执行不会覆盖已有密码。 平台账号可使用商品/品牌推荐、收藏、合作意向及偏好。本人抖音资料与作品必须通过真实抖音授权取得;测试账号初始显示未授权和空作品。两种登录身份不会仅凭昵称自动合并。密码使用随机盐 scrypt 哈希保存,会话使用 HttpOnly Cookie,账号和 IP 均有登录频率限制。 ## 接入抖音 `serve/config.js` 随代码管理,统一提供数据库、抖音与 AI 配置。以后只修改该文件;不读取 `.env`,也不按本地、测试、生产切换业务配置。新源码检出时可复制 `serve/config.example.js` 作为同结构的空模板。授权回调为 `https://m.fuyou8.com/api/auth/douyin/callback`,必须在抖音开放平台登记。`douyin.encryptionKey` 保留原值,用于 AES-256-GCM 令牌加密。 未配置应用时登录页会明确显示未开通。完成配置后,用户跳转抖音官方授权页扫码;本平台不采集抖音密码。不会用历史采集达人数据冒充授权身份。作品接口路径和权限必须按当前获批应用文档确认后设置,缺少权限时只同步可用的账号信息。 商品和品牌来自已有历史资料,推荐说明类目/内容匹配依据,价格、佣金、库存和实际合作资格仍需核实。合作意向只在平台记录,不自动向品牌发送消息。 ## 验证 ```bash npm run test:api npm run test:integration npm run typecheck npm run build npm run test:ui npm run test:creator-ui ``` `test:integration` 使用本地抖音接口契约替身验证 OAuth 防重放、账号隔离、作品分页、刷新令牌、收藏和合作意向,使用测试身份写入数据库并清理。它不是抖音线上应用验收。 [功能保留与移除清单](docs/product/功能精简清单.md) · [服务端接入说明](docs/backend/README.md) 旧整站归档、原始数据、断点及参考截图已移至仓库外 `../cmm-backup-20261103-cleanup/files/`。原始历史由 Git bundle 与逐文件 SHA-256 清单备份;完整 JSON 的脱敏压缩档案保存于 MySQL。详见 [清理执行记录](docs/maintenance/清理执行记录.md)。 ## 生产打包与部署 ```bash npm run package ``` 构建前端并生成 `releases/cmm-m.fuyou8.com-日期.tar.gz`。包内包含 Next.js 产物、Koa 服务端和部署模板;服务器运行 `npm ci --omit=dev` 后,通过 `pm2 start ecosystem.config.js` 以“蝉妈妈”为进程名统一启动。 域名为 `https://m.fuyou8.com`,前端和 API 分别监听本机 3000、4000 端口。部署包包含已填写的 `serve/config.js`,解压后即可使用同一配置。PM2 名称从其中的 `appName` 读取。详细命令和 Nginx 配置见 [部署说明](deploy/README.md)。 抖音授权故障可运行 `npm run check:login` 核对本地与正式域名实际加载的配置;应用开通条件与错误定位见 [扫码登录配置与排查](docs/backend/抖音登录配置与排查.md)。 历史完整 JSON 可通过 `npm run db:archive-json -- /备份目录/files --write` 幂等归档。数据导入只新增专用归档表,不覆盖用户或业务实体。 ## 界面风格 当前界面保持历史蝉妈妈的原 Logo、橙白配色、顶部导航和紧凑数据表,新增功能沿用这套视觉体系。详见 [UI 恢复记录](docs/ui-restoration/README.md)。 本人资料与作品列表优先直接读取 MySQL。头像、昵称、简介、粉丝统计、作品和媒体分别结构化保存,扫码后按 UID/作品 ID 更新,缺失字段保留旧值。已有快照可执行 `npm run db:backfill-creators` 补齐,详细表结构见 [扫码与数据采集说明](docs/backend/创作者中心扫码与采集.md)。 选品与品牌数据已经从历史 JSON 归档接入 MySQL 轻量查询表。新增数据后运行 `npm run db:catalog`;补齐分页索引运行 `npm run db:optimize`。详见 [数据接入和查询优化](docs/performance/数据库查询优化.md)。 达人、商品、SPU、品牌、小店、视频、直播资料库已接入原站式筛选与表格布局,入口及验收边界见 [资料库页面还原](docs/ui-restoration/资料库页面还原.md)。界面查询使用已保存的 MySQL 数据。 ## AI 推荐内测 入口 `/ai`,也可从顶部「AI 推荐」或各资料库右上角进入。支持 AI 选品、品牌匹配和寻找达人,使用 `serve/config.js` 的 `ai` 配置调用 `gpt-6.1-sol`。先按硬条件查询数据库,再调用模型分析最多 30 个候选,最终展示至多 6 个结果、依据和待确认项。结果仅本人可见,支持历史回看和收藏。 真实模型与数据库内测:`npm run test:ai-beta`(相同输入在 15 分钟内复用结果);加 `-- --fresh` 会发起新模型分析并产生相应服务用量。详见 [AI 推荐内测说明](docs/product/AI推荐内测.md)。