Files
soul/开发文档/10、项目管理/永平版优化对比与合并说明.md
卡若 afc2376e96 v1.19 全面改版:VIP会员系统、我的收益、创业老板排行、阅读量排序
- 后端: users表新增VIP字段, 4个VIP API (purchase/status/profile/members)
- 后端: hot接口改按user_tracks阅读量排序
- 后端: orders表支持vip产品类型, migrate新增vip_fields迁移
- 小程序「我的」: 推广中心改为我的收益, 头像VIP标识, VIP入口卡片
- 小程序「我的」: 最近阅读显示真实章节名称
- 小程序首页: 去掉内容概览, 新增创业老板排行(4列网格)
- 小程序首页: 精选推荐从hot接口获取, goToRead增加track记录
- 新增页面: VIP详情页, 会员详情页
- 开发文档精简为10个标准目录, 创建SKILL.md, 需求日志规范化

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 14:07:41 +08:00

4.8 KiB
Raw Blame History

永平版 vs 主项目:优化对比与合并说明

对比目录主项目一场soul的创业实验 vs 永平版一场soul的创业实验-永平)
更新日期2026-02-20


一、两套目录结构概览

项目 根目录特点 Next 源码位置
主项目 单仓Next + book + miniprogram + 开发文档 根下 app/lib/components/
永平版 多仓soul-api(Go)、soul-admin(Vue)、soul(Next) soul/dist/(源码与构建同目录)

永平版还包含:本机运行文档.md、Go API(8080)、Vue 管理后台(静态)、开发 API(8081)。主项目为纯 Next 站 + 宝塔 3006 部署。


二、已合并到主项目的优化(本次迭代)

模块 优化内容 主项目路径
数据库 环境变量 MYSQL_*SKIP_DB、连接超时与单次连接错误日志 lib/db.ts
数据库 订单表 status 增加 created/expired,字段 referrer_id/referral_code;用户表 ALTER 兼容 MySQL 5.7 同上
认证 密码哈希/校验scrypt兼容旧明文 lib/password.ts(新增)
认证 Web 端手机号+密码登录 app/api/auth/login/route.ts(新增)
认证 重置密码 app/api/auth/reset-password/route.ts(新增)
后台 管理员登出(清除 Cookie app/api/admin/logout/route.ts(新增)
前端 仅生产环境加载 Vercel Analytics app/layout.tsx
文档 本机/服务器运行说明端口、目录、Nginx 开发文档/本机运行文档.md(新增)

三、永平有、主项目未合并的(可选后续)

模块 说明 永平路径 合并建议
定时任务 订单状态同步、过期解绑 app/api/cron/sync-orderscron/unbind-expired 若需定时同步/解绑再迁入;需配置 CRON_SECRET
提现扩展 待确认列表、提现记录 API withdraw/pending-confirmwithdraw/records 若后台要做提现工作流与记录查询可迁入
用户 API 购买状态、阅读进度、收货地址 CRUD user/check-purchaseduser/reading-progressuser/addresses 按产品需要选择性迁入
后台 分销概览 API、推广设置页 admin/distribution/overviewadmin/referral-settings/page.tsx 若有分销看板/推广配置页可迁入
前台 忘记密码页、我的地址列表/编辑/新增 app/view/login/forgotapp/view/my/addresses/* 主项目路由为 app/login/app/my/,可对应新增
构建 standalone 复制 static/public、clean、write-warning scripts/prepare-standalone.js 若主项目用 standalone 部署可迁入
数据层 Prisma 模型与迁移 prisma/schema.prisma、迁移脚本 主项目当前为 mysql2若统一用 Prisma 再迁
路由结构 前台统一在 app/view/ 整棵 app/view/ 主项目保持扁平 app/,非必须

四、主项目保留、与永平不同的部分

  • CORS:主项目在 middleware.ts + next.config.mjs 的 headers 中配置 API CORS永平可能用 Nginx/Go未在 Next 层做。
  • 路由:主项目前台为 app/page.tsxapp/my/app/read/ 等,无 view 前缀。
  • book:主项目根下保留 book/ Markdown 与现有内容体系;永平书内容可能来自 API/DB。

五、环境变量说明(合并后)

主项目 .env.local 建议支持(可选):

# 数据库(不设则用代码内默认值)
MYSQL_HOST=
MYSQL_PORT=
MYSQL_USER=
MYSQL_PASSWORD=
MYSQL_DATABASE=

# 本地无数据库时跳过连接(接口会报错,适合纯前端联调)
SKIP_DB=0

六、合并与实施注意

  1. 路径:永平 Next 源码在 soul/dist/,合并到主项目时对应到根下 app/lib/开发文档/

  2. CORS:保留主项目现有 middleware.tsnext.config.mjs 的 CORS 配置。

  3. 数据库:主项目继续使用 mysql2未引入 Prismalib/db.ts 已支持环境变量与 SKIP_DB

  4. admin 登出:后台可增加「退出登录」按钮,请求 POST /api/admin/logout 后跳转登录页。

  5. 已有数据库:若主项目此前已建过 orders 表且无 referrer_id/referral_code 或 status 无 created/expired,需自行执行迁移,例如:

    ALTER TABLE orders MODIFY COLUMN status ENUM('created','pending','paid','cancelled','refunded','expired') DEFAULT 'created';
    ALTER TABLE orders ADD COLUMN referrer_id VARCHAR(50) NULL COMMENT '推荐人用户ID', ADD COLUMN referral_code VARCHAR(20) NULL COMMENT '下单时使用的邀请码';
    

    若表为新建,initDatabase() 已包含上述结构。


文档状态:已合并项已落地;未合并项见第三节,按需迭代。