root il y a 4 mois
commit
acec16a243
1 fichiers modifiés avec 364 ajouts et 0 suppressions
  1. 364 0
      README.md

+ 364 - 0
README.md

@@ -0,0 +1,364 @@
+# Enagic 本希甄选
+
+> 集商品销售、素材共享、健康顾问服务于一体的微信小程序平台
+
+## 项目概述
+
+本项目是基于 Lilishop B2B2C 开源商城系统的扩展开发,保留 Lilishop 成熟的电商核心能力,叠加 Enagic 差异化业务功能(AI 数字人、健康布施者体系、VIP 无到期时间、抵扣金账户、客户运维流程等)。
+
+## 仓库结构
+
+```
+enagic/
+├── 代码/                           # 源代码
+│   ├── SPEC.md                    # 技术方案文档(完整需求、设计、API、数据库)
+│   ├── README.md                   # 代码目录说明
+│   │
+│   ├── enagic-lilishop/           # 基于 Lilishop 的后台项目
+│   │   ├── enagic-plugin/         # Enagic 插件模块(Maven)
+│   │   │   ├── enagic-entity/      # 实体层(14 张新表)
+│   │   │   ├── enagic-api/         # 业务 API(核心扩展)
+│   │   │   ├── enagic-admin/       # PC 后台管理 Vue 页面
+│   │   │   └── enagic-consumer/    # 事件消费者(定时任务)
+│   │   │
+│   │   └── pom.xml                 # 集成 POM(链接 Lilishop 源码)
+│   │
+│   └── enagic-uniapp/             # 小程序(forked from lilishop-uniapp)
+│       ├── api/                   # API 调用层
+│       └── pages/                 # 页面
+│
+├── 需求文档/                        # 需求相关文档
+│   ├── 本希甄选小程序需求文档.md     # 需求文档
+│   ├── 本希甄选小程序0212.pdf       # 原始需求 PDF
+│   └── 本希甄选小程序0225.xlsx      # 原始需求 Excel
+│
+├── 测试文档/                        # 测试文档(预留)
+│
+└── AGENTS.md                       # AI 代理指令文档
+```
+
+## 技术架构
+
+### 后端技术栈
+
+| 层级 | 技术选型 | 说明 |
+|------|---------|------|
+| 后端框架 | Spring Boot 2.4 + MyBatis-Plus | 基于 Lilishop |
+| 数据库 | MySQL + Redis + MongoDB | 基于 Lilishop |
+| 搜索引擎 | Elasticsearch | 基于 Lilishop |
+| 消息队列 | RocketMQ | 基于 Lilishop |
+| 认证 | JWT | 基于 Lilishop |
+| PC 管理前端 | Vue 2 + ViewUI (iView) | 扩展开发 |
+| 移动端小程序 | UniApp + uView UI | 扩展开发 |
+| AI 大模型 | 硅基流动 / 阿里云百炼 | 新增 |
+
+### 插件架构
+
+采用 **Factory + Plugin 模式** 扩展 Lilishop:
+
+- 新增 Maven 模块 `enagic-plugin`,通过 Spring `@Component` 自动注册
+- 独立 API 命名空间 `/enagic/**`,不干扰 Lilishop 原有 API
+- 事件驱动:RocketMQ 监听 Lilishop 订单事件,触发运维流程
+- 定时任务:XXL-Job 定时扫描运维计划、VIP 感恩提醒
+
+## 主要功能模块
+
+| 功能 | 模块 | 说明 |
+|------|------|------|
+| AI 数字人对话 | enagic-api + enagic-uniapp | 对接硅基流动,实时对话,知识库问答 |
+| 健康布施者中心 | enagic-api + enagic-uniapp | 邀请客户、查看业绩、荣誉勋章体系 |
+| VIP 开通 | enagic-api + enagic-uniapp | 无到期时间,分享激励感恩提醒 |
+| 抵扣金账户 | enagic-api + enagic-uniapp | 独立账户,订单支付抵扣 |
+| 客户运维流程 | enagic-consumer | 订单发货后自动生成运维计划,定时提醒 |
+| 素材二维码分享 | enagic-api + enagic-uniapp | 生成分享二维码,追踪邀请关系 |
+| PC 后台管理 | enagic-admin | 健康布施者、VIP、运维、AI知识库管理 |
+
+## 数据库设计
+
+### 新增表(14 张)
+
+| 表名 | 说明 |
+|------|------|
+| `li_enagic_health_advisor` | 健康布施者表 |
+| `li_enagic_advisor_medal` | 荣誉勋章表 |
+| `li_enagic_vip_config` | VIP 配置表 |
+| `li_enagic_member_vip` | 会员 VIP 表 |
+| `li_enagic_deduction` | 抵扣金账户表 |
+| `li_enagic_deduction_log` | 抵扣金流水表 |
+| `li_enagic_operation_flow` | 运维流程模板表 |
+| `li_enagic_operation_plan` | 运维计划表 |
+| `li_enagic_operation_record` | 运维记录表 |
+| `li_enagic_member_transfer` | 客户移交记录表 |
+| `li_enagic_behavior_log` | 行为日志表 |
+| `li_enagic_article_qr` | 素材二维码表 |
+| `li_enagic_ai_conversation` | AI 对话记录表 |
+| `li_enagic_ai_knowledge` | AI 知识库表 |
+
+详细表结构见 [代码/SPEC.md](代码/SPEC.md) 第四章。
+
+## API 设计
+
+### 买家端 API(`/enagic/buyer/`)
+
+| 端点 | 方法 | 说明 |
+|------|------|------|
+| `/enagic/buyer/advisor/info` | GET | 获取健康布施者信息 |
+| `/enagic/buyer/advisor/my-customers` | GET | 获取我的客户列表 |
+| `/enagic/buyer/advisor/invite-qr` | GET | 获取邀请二维码 |
+| `/enagic/buyer/vip/info` | GET | 获取 VIP 信息 |
+| `/enagic/buyer/vip/open` | POST | 开通 VIP |
+| `/enagic/buyer/deduction/info` | GET | 获取抵扣金账户 |
+| `/enagic/buyer/deduction/log` | GET | 获取抵扣金流水 |
+| `/enagic/buyer/ai/chat` | POST | AI 数字人对话 |
+| `/enagic/buyer/ai/history` | GET | AI 对话历史 |
+| `/enagic/buyer/operation/my-plans` | GET | 获取我的运维计划 |
+| `/enagic/buyer/article/qr/{articleId}` | GET | 获取素材带参数的二维码 |
+
+### 管理端 API(`/enagic/manager/`)
+
+| 端点 | 方法 | 说明 |
+|------|------|------|
+| `/enagic/manager/advisor/page` | GET | 健康布施者分页列表 |
+| `/enagic/manager/advisor/medal/grant` | POST | 发放勋章 |
+| `/enagic/manager/vip/config/*` | GET/POST | VIP 配置管理 |
+| `/enagic/manager/deduction/page` | GET | 抵扣金账户分页 |
+| `/enagic/manager/operation/flow/*` | GET/POST | 运维流程模板管理 |
+| `/enagic/manager/operation/plan/*` | GET/POST | 运维计划管理 |
+| `/enagic/manager/transfer/*` | GET/POST | 客户移交管理 |
+| `/enagic/manager/ai/knowledge/*` | GET/POST | AI 知识库管理 |
+
+详细 API 文档见 [代码/SPEC.md](代码/SPEC.md) 第五章。
+
+## 快速开始
+
+### 1. 准备 Lilishop 源码
+
+Enagic 插件依赖 Lilishop B2B2C v4.3 源码,需要先获取:
+
+```bash
+# 从 GitHub fork Lilishop
+git clone https://github.com/tu送6/lilishop.git /path/to/lilishop
+cd /path/to/lilishop
+git checkout v4.3
+```
+
+### 2. 初始化数据库
+
+在 Lilishop 数据库中执行 DDL 创建 14 张新表,详见 [代码/SPEC.md](代码/SPEC.md) 第四章。
+
+### 3. 运行小程序
+
+```bash
+cd 代码/enagic-uniapp
+# 在 HBuilderX 中打开
+# 运行 → 运行到小程序模拟器 → 微信开发者工具
+```
+
+## 与 Lilishop 协同部署
+
+本节说明如何将 Enagic 插件与 Lilishop 主项目协同部署。有 **两种方式** 可选。
+
+### 方式一:Maven 依赖集成(推荐)
+
+将 `enagic-plugin` 作为 Lilishop 的 Maven 子模块,实现源码级别的无缝集成。
+
+#### 步骤 1:链接 enagic-plugin 到 Lilishop
+
+```bash
+# 在 Lilishop 源码根目录创建链接
+ln -s /mnt/e/workspace/enagic/代码/enagic-lilishop/enagic-plugin /path/to/lilishop/enagic-plugin
+```
+
+#### 步骤 2:修改 Lilishop pom.xml
+
+在 Lilishop 源码的 `pom.xml` 中的 `<modules>` 部分添加:
+
+```xml
+<modules>
+    <module>framework</module>
+    <module>buyer-api</module>
+    <module>manager-api</module>
+    <module>seller-api</module>
+    <module>common-api</module>
+    <module>consumer</module>
+    <module>admin</module>
+    <module>im-api</module>
+    <!-- Enagic 插件 -->
+    <module>enagic-plugin</module>
+</modules>
+```
+
+#### 步骤 3:修改 Lilishop 启动类扫描包
+
+在 Lilishop 的启动类(通常为 `Application.java`)中添加 Enagic 包扫描:
+
+```java
+@SpringBootApplication
+@ComponentScan(basePackages = {
+    "com.dan",        // Lilishop 原生包
+    "com.enagic"      // Enagic 插件包
+})
+public class Application {
+    public static void main(String[] args) {
+        SpringApplication.run(Application.class, args);
+    }
+}
+```
+
+#### 步骤 4:构建并启动
+
+```bash
+cd /path/to/lilishop
+mvn clean package -DskipTests
+
+# 启动 Lilishop
+java -jar buyer-api/target/buyer-api.jar
+# 或
+java -jar manager-api/target/manager-api.jar
+```
+
+### 方式二:独立 JAR 部署
+
+将 enagic-plugin 构建为独立 JAR,加入现有 Lilishop 部署的 classpath。
+
+#### 步骤 1:构建 enagic-plugin
+
+```bash
+cd 代码/enagic-lilishop/enagic-plugin
+mvn clean package -DskipTests
+```
+
+构建产物位于各子模块的 `target/` 目录:
+
+| 模块 | JAR 路径 |
+|------|---------|
+| enagic-entity | enagic-entity/target/enagic-entity-1.0.0.jar |
+| enagic-api | enagic-api/target/enagic-api-1.0.0.jar |
+| enagic-admin | enagic-admin/target/enagic-admin-1.0.0.jar |
+| enagic-consumer | enagic-consumer/target/enagic-consumer-1.0.0.jar |
+
+#### 步骤 2:复制 JAR 到 Lilishop
+
+```bash
+# 复制到 Lilishop lib 目录
+cp enagic-*/target/enagic-*.jar /path/to/lilishop/lib/
+
+# 或在启动命令中指定 classpath
+java -cp "lilishop.jar:lib/*:enagic-entity-1.0.0.jar:enagic-api-1.0.0.jar:enagic-consumer-1.0.0.jar:enagic-admin-1.0.0.jar" com.dan.Application
+```
+
+#### 步骤 3:配置 Spring 自动扫描
+
+在 Lilishop 的 `application.yml` 中添加:
+
+```yaml
+spring:
+  main:
+    allow-bean-definition-overriding: true
+  autoconfigure:
+    exclude:
+      - com.enagic.modules.enagic.config.EnagicApiAutoConfiguration  # 如需禁用可排除
+```
+
+### 部署架构图
+
+```
+┌─────────────────────────────────────────────────────────────┐
+│                      Lilishop 应用                          │
+│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐        │
+│  │ buyer-api   │  │manager-api  │  │  consumer   │        │
+│  └─────────────┘  └─────────────┘  └─────────────┘        │
+│         │                │                │                  │
+│         └────────────────┼────────────────┘                  │
+│                          │                                   │
+│              ┌───────────┴───────────┐                      │
+│              │   enagic-plugin       │                      │
+│              │  ┌─────────────────┐  │                      │
+│              │  │  enagic-api     │  │ ← /enagic/buyer/*   │
+│              │  │  enagic-consumer│  │   /enagic/manager/* │
+│              │  │  enagic-admin   │  │                      │
+│              │  └─────────────────┘  │                      │
+│              │           │           │                      │
+│              │  ┌────────┴────────┐  │                      │
+│              │  │ enagic-entity   │  │ ← 14 张新表实体      │
+│              │  └─────────────────┘  │                      │
+│              └───────────────────────┘                      │
+└─────────────────────────────────────────────────────────────┘
+                          │
+                          ▼
+              ┌───────────────────────┐
+              │     MySQL 数据库       │
+              │  ┌─────────────────┐  │
+              │  │ li_* (原有表)   │  │
+              │  │ li_enagic_*    │  │ ← 新增 14 张表
+              │  └─────────────────┘  │
+              └───────────────────────┘
+```
+
+### 定时任务配置
+
+在 Lilishop XXL-Job 管理后台添加以下任务:
+
+| 任务名称 | Cron 表达式 | 说明 |
+|---------|------------|------|
+| `enagic-operation-remind` | `0 0 9 * * ?` | 运维计划提醒扫描 |
+| `enagic-gratitude-remind` | `0 0 10 * * ?` | VIP 感恩提醒扫描 |
+| `enagic-transfer-check` | `0 0 12 * * ?` | 客户自动转移检查 |
+| `enagic-medal-check` | `0 0 8 * * ?` | 勋章发放检查 |
+
+### 验证部署
+
+部署完成后,访问以下端点验证:
+
+```bash
+# 检查 Enagic API 是否注册
+curl http://localhost:8080/enagic/buyer/advisor/info
+
+# 检查健康布施者接口
+curl http://localhost:8080/enagic/manager/advisor/page
+
+# 预期:返回 JSON 响应(可能是空数据,但不应是 404)
+```
+
+## 配置项
+
+```yaml
+# application.yml
+enagic:
+  ai:
+    provider: siliconflow          # 或 aliyun
+    api-key: ${AI_API_KEY}          # 从环境变量读取
+    model: Qwen/Qwen2.5-7B-Instruct
+    base-url: https://api.siliconflow.cn/v1
+```
+
+## 实施计划
+
+| 阶段 | 时间 | 内容 |
+|------|------|------|
+| Phase 0 | Week 1 | 环境搭建 + Lilishop 源码 fork + 项目初始化 |
+| Phase 1 | Week 2-3 | 基础数据层:数据库表创建 + entity + 基础 API |
+| Phase 2 | Week 4-5 | 核心业务:健康布施者体系 + VIP + 抵扣金 |
+| Phase 3 | Week 6-7 | 客户运维流程引擎 + 事件监听(RocketMQ) |
+| Phase 4 | Week 8-9 | AI 数字人:知识库 + 对话接口 + 小程序页面 |
+| Phase 5 | Week 10-11 | PC 后台管理页面(Vue)+ 素材权限 + 二维码分享 |
+| Phase 6 | Week 12 | 小程序端 UI 改造 + 联调测试 |
+| Phase 7 | Week 13-14 | 系统联调 + 性能优化 + 部署 |
+
+**总工期:约 14 周(100-105 人天)**
+
+详见 [代码/SPEC.md](代码/SPEC.md) 第八章。
+
+## 同步远程仓库
+
+```bash
+git remote add origin http://git.iwintrue.com/liaoxg/enagic.git
+git push -u origin master
+```
+
+## 注意事项
+
+1. **不修改 Lilishop 核心代码**:所有扩展通过新增模块实现,便于后续版本升级
+2. **数据库表前缀统一使用 `li_enagic_`**:与 Lilishop 原有表(`li_*`)保持一致
+3. **API 命名空间隔离**:`/enagic/**` 前缀确保不与 Lilishop 原有 API 冲突
+4. **AGPL 协议注意**:Lilishop 遵循 AGPL-3.0,商业使用需联系官方授权