项目版本: V1.0
编制日期: 2025-05-07
基于: Lilishop B2B2C 商城系统 V4.3
方案: B(核心用 Lilishop,差异化自研)
本希甄选小程序是一个集商品销售、素材共享、健康顾问服务于一体的高端消费者服务平台。系统基于 Lilishop B2B2C 开源商城进行扩展开发,保留 Lilishop成熟的电商核心能力,叠加差异化业务功能(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 大模型 | 硅基流动 / 阿里云百炼 | 新增 |
代码/
├── enagic-lilishop/ # 基于 Lilishop 的后台项目
│ ├── lilishop/ # Lilishop 源码(forked)
│ │ ├── framework/ # 框架层(实体、工具类、插件接口)
│ │ ├── buyer-api/ # 买家端 API
│ │ ├── seller-api/ # 商家端 API
│ │ ├── manager-api/ # 平台管理端 API
│ │ ├── admin/ # PC 管理端页面(Vue)
│ │ ├── common-api/ # 公共 API
│ │ ├── consumer/ # 消息消费者
│ │ ├── im-api/ # IM 即时通讯 API
│ │ └── pom.xml
│ │
│ └── enagic-plugin/ # Enagic 插件模块(新增)
│ ├── enagic-admin/ # 后台管理插件
│ │ ├── src/main/java/ # Java 源码
│ │ ├── src/main/resources/ # 配置文件
│ │ ├── src/main/vue/ # Vue 管理页面
│ │ └── pom.xml
│ │
│ ├── enagic-api/ # 业务 API 插件
│ │ ├── src/main/java/ # Java 源码
│ │ ├── src/main/resources/ # 配置文件
│ │ └── pom.xml
│ │
│ ├── enagic-entity/ # 实体和 DTO
│ │ ├── src/main/java/
│ │ └── pom.xml
│ │
│ ├── enagic-consumer/ # 消息消费者(事件驱动)
│ │ ├── src/main/java/
│ │ └── pom.xml
│ │
│ └── pom.xml # 聚合 POM
│
└── enagic-uniapp/ # 小程序项目(forked from lilishop-uniapp)
├── api/ # API 调用层(新增 enagic 相关)
├── pages/ # 页面
├── store/ # Vuex 状态管理
├── config/ # 配置文件
└── uview-ui/ # UI 框架
Lilishop 没有 OSGi 或 Spring Boot auto-configuration 那种热插拔插件系统,但它的 Factory + Plugin 模式和 Spring 组件扫描机制足够实现模块扩展:
SmsPlugin)、物流插件(LogisticsPlugin)、支付插件(PaymentPlugin)@Component + @Configuration 自动注册到 Lilishop 应用上下文/enagic/**),不影响 Lilishop 原有 API| 模块 | 职责 | 部署方式 |
|---|---|---|
enagic-entity |
实体类、DTO、枚举、常量 | 打成 JAR,被其他模块依赖 |
enagic-api |
业务 API(健康布施者、VIP、抵扣金、AI数字人、客户运维) | 与 buyer-api/manager-api 合并部署 |
enagic-admin |
PC 后台管理 Vue 页面 + 管理 API | 与 admin 合并部署 |
enagic-consumer |
事件监听(RocketMQ)、定时任务 | 与 consumer 合并部署 |
新增 Controller 使用与 Lilishop 相同的包命名规则:
com.dan.modules.enagic.* # 复用 dan 包名,自动被 Spring 扫描
API 路径前缀:/enagic/buyer/、/enagic/manager/
无需修改 Lilishop 源码,只需在 enagic-api 模块的 spring.factories 或自动配置类中注册新的 Controller。
// 监听 Lilishop 的订单创建事件
@RocketMQMessageListener(
topic = "order_topic",
consumerGroup = "enagic-consumer-group"
)
public class EnagicOrderListener implements RocketMQListener<Order> {
// 触发:客户运维流程生成、健康布施者业绩统计
}
Vue 页面通过 路由配置 和 菜单 API 动态注册到 Lilishop 管理后台:
/enagic/** 路由manager-api 动态返回| 序号 | 表名 | 说明 | 主要字段 |
|---|---|---|---|
| 1 | li_enagic_health_advisor |
健康布施者表 | member_id, name, id_number, medal_level, total_invites, status |
| 2 | li_enagic_advisor_medal |
荣誉勋章表 | id, advisor_id, medal_type, medal_level, grant_time, grant_reason |
| 3 | li_enagic_vip_config |
VIP 配置表 | id, vip_name, price, upgrade_conditions(JSON), benefits(JSON), no_expiry |
| 4 | li_enagic_member_vip |
会员 VIP 表 | id, member_id, vip_config_id, open_time, gratitude_remind_time |
| 5 | li_enagic_deduction |
抵扣金账户表 | id, member_id, deduction_balance, frozen_balance |
| 6 | li_enagic_deduction_log |
抵扣金流水表 | id, deduction_id, amount, type, order_sn, create_time |
| 7 | li_enagic_operation_flow |
运维流程模板表 | id, product_id, flow_name, nodes(JSON) |
| 8 | li_enagic_operation_plan |
运维计划表 | id, flow_id, member_id, product_id, order_sn, status, next_remind_time |
| 9 | li_enagic_operation_record |
运维记录表 | id, plan_id, operator_id, content, result, operate_time |
| 10 | li_enagic_member_transfer |
客户移交记录表 | id, original_advisor_id, new_advisor_id, member_id, transfer_reason, transfer_time, status |
| 11 | li_enagic_behavior_log |
行为日志表 | id, member_id, event_type, event_data(JSON), create_time |
| 12 | li_enagic_article_qr |
素材二维码表 | id, article_id, qr_url, bind_member_id, create_time |
| 13 | li_enagic_ai_conversation |
AI 对话记录表 | id, member_id, question, answer, model, create_time |
| 14 | li_enagic_ai_knowledge |
AI 知识库表 | id, category, question, answer, status, create_time |
| 表名 | 新增字段 | 说明 |
|---|---|---|
li_member |
health_advisor_id, advisor_credits |
关联健康布施者、顾问积分 |
li_member_grade |
upgrade_conditions (JSON) |
升级条件(金额/积分/人数组合) |
li_article |
view_role (VARCHAR) |
可见角色:ALL/CONSUMER_ONLY |
li_distribution |
medal_level, permanent_bind |
勋章等级、永久绑定标志 |
li_goods |
operation_flow_id |
关联运维流程模板 |
li_member
├── health_advisor_id → li_enagic_health_advisor.id
└── advisor_credits → 顾问积分
li_enagic_health_advisor
├── medal_level → li_enagic_advisor_medal.medal_type
└── member_id → li_member.id (一对一)
li_enagic_vip_config ←→ li_enagic_member_vip (一对多)
└── member_id → li_member.id
li_enagic_operation_flow ←→ li_enagic_operation_plan (一对多)
└── order_sn → li_order.sn
li_goods.operation_flow_id → li_enagic_operation_flow.id
/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/operation/record |
GET | 获取运维记录 |
/enagic/buyer/article/qr/{articleId} |
GET | 获取素材带参数的二维码 |
/enagic/manager/)| 端点 | 方法 | 说明 |
|---|---|---|
/enagic/manager/advisor/page |
GET | 健康布施者分页列表 |
/enagic/manager/advisor/medal/grant |
POST | 发放勋章 |
/enagic/manager/vip/config/page |
GET | VIP 配置分页 |
/enagic/manager/vip/config/save |
POST | 保存 VIP 配置 |
/enagic/manager/deduction/page |
GET | 抵扣金账户分页 |
/enagic/manager/operation/flow/page |
GET | 运维流程模板分页 |
/enagic/manager/operation/flow/save |
POST | 保存运维流程模板 |
/enagic/manager/operation/plan/page |
GET | 运维计划分页 |
/enagic/manager/operation/plan/remind |
POST | 手动触发提醒 |
/enagic/manager/transfer/page |
GET | 客户移交记录分页 |
/enagic/manager/transfer/process |
POST | 处理移交申请 |
/enagic/manager/ai/knowledge/page |
GET | AI 知识库分页 |
/enagic/manager/ai/knowledge/save |
POST | 保存 AI 知识库 |
/enagic/manager/article/qr/list |
GET | 素材二维码列表 |
| Lilishop API | 用于 |
|---|---|
/buyer/passport/member/* |
用户注册、登录 |
/buyer/goods/* |
商品浏览、搜索 |
/buyer/trade/carts/* |
购物车 |
/buyer/order/order/* |
订单(创建、支付、退款) |
/buyer/wallet/* |
余额、充值、提现 |
/buyer/member/memberPointsHistory/* |
积分 |
/buyer/promotion/coupon/* |
优惠券 |
/buyer/distribution/* |
分销(复用为健康布施者底层) |
/buyer/message/* |
消息中心 |
/buyer/broadcast/studio/* |
直播(AI数字人交互页可复用) |
/manager/goods/* |
商品管理 |
/manager/order/* |
订单管理 |
/manager/member/* |
会员管理 |
/manager/page/* |
页面装修 |
架构:
UniApp → enagic-api → AI 大模型(硅基流动/阿里云百炼)
↓
enagic-entity (LiEnagicAiConversation)
知识库分类:
对话流程:
/enagic/buyer/ai/chatli_enagic_ai_conversation触发场景:
邀请关系建立:
用户扫码注册 → 解析 URL 中的 inviter_id → 写入 health_advisor_id
(永久绑定,即使健康布施者注销也不解除)
勋章机制: | 勋章类型 | 触发条件 | 显示 | |----------|---------|------| | 布施新星 | 首次成功邀请 | ⭐ | | 布施达人 | 邀请 5 人 | ⭐⭐ | | 布施导师 | 邀请 20 人 | ⭐⭐⭐ | | 布施宗师 | 邀请 50 人 | 🌟 |
健康布施者权益:
流程定义:
{
"flowName": "产品A 运维流程",
"productId": 123,
"nodes": [
{"day": 1, "name": "发货提醒", "content": "您的订单已发货", "remindType": "WECHAT_MSG"},
{"day": 3, "name": "收货确认", "content": "请确认收货并指导使用", "remindType": "WECHAT_MSG"},
{"day": 7, "name": "使用指导", "content": "开始使用产品", "remindType": "AI_REMINDER"},
{"day": 30, "name": "使用回访", "content": "使用体验如何", "remindType": "WECHAT_MSG"}
]
}
自动触发:
enagic-consumer 监听订单事件 → 创建 li_enagic_operation_planli_enagic_operation_plan,到达 next_remind_time → 发送微信通知客户自动转移:
li_enagic_member_transfer,原健康布施者归属权和收益权终止原有 Lilishop VIP:MemberGrade 绑定有效期,到期自动失效
改造方案:
li_enagic_vip_config.no_expiry = true 字段li_enagic_member_vip.gratitude_remind_time 字段获取途径:
使用规则:
冻结机制:
生成逻辑:
/enagic/buyer/article/qr/{articleId}li_enagic_article_qr分享流程:
实现:
li_article.view_role = 'ALL' | 'CONSUMER_ONLY'view_role + 用户角色过滤view_role = 'ALL' 或 'CONSUMER_ONLY'在 enagic-uniapp 中新增以下页面(通过分包机制):
pages/
├── tabbar/ # 已有(首页/分类/购物车/我的)
├── enagic/ # Enagic 新增页面(分包)
│ ├── ai-chat/ # AI 数字人对话
│ │ └── index.vue
│ ├── health-advisor/ # 健康布施者中心
│ │ ├── home.vue # 推广首页(展示客户、业绩、勋章)
│ │ ├── customers.vue # 我的客户列表
│ │ ├── invite-qr.vue # 邀请二维码
│ │ └── medals.vue # 我的勋章
│ ├── vip/ # VIP 中心
│ │ ├── index.vue # VIP 介绍和开通
│ │ └── my-vip.vue # 我的 VIP
│ ├── deduction/ # 抵扣金
│ │ ├── index.vue # 抵扣金账户
│ │ └── log.vue # 抵扣金明细
│ ├── operation/ # 运维(消费商视角)
│ │ ├── my-plans.vue # 我的运维计划
│ │ └── record.vue # 运维记录
│ └── transfer/ # 客户移交
│ └── history.vue # 移交历史
| 页面 | 改造内容 |
|---|---|
pages/tabbar/user/my.vue |
新增:健康布施者入口、VIP 入口、AI 顾问入口 |
pages/mine/msgTips/main.vue |
新增:运维提醒消息类型 |
pages/passport/login.vue |
新增:健康布施者邀请登录参数解析 |
pages/product/goods.vue |
新增:AI 咨询快捷入口、商品详情页添加运维计划入口 |
新增 enagic-uniapp/api/enagic.js:
// AI 数字人
export const aiChat = (data) => uni.request({ url: '/enagic/buyer/ai/chat', data })
export const aiHistory = (params) => uni.request({ url: '/enagic/buyer/ai/history', params })
// 健康布施者
export const getAdvisorInfo = () => uni.request({ url: '/enagic/buyer/advisor/info' })
export const getMyCustomers = (params) => uni.request({ url: '/enagic/buyer/advisor/my-customers', params })
export const getInviteQr = () => uni.request({ url: '/enagic/buyer/advisor/invite-qr' })
// VIP
export const getVipInfo = () => uni.request({ url: '/enagic/buyer/vip/info' })
export const openVip = (data) => uni.request({ url: '/enagic/buyer/vip/open', data })
// 抵扣金
export const getDeductionInfo = () => uni.request({ url: '/enagic/buyer/deduction/info' })
export const getDeductionLog = (params) => uni.request({ url: '/enagic/buyer/deduction/log', params })
// 运维
export const getMyOperationPlans = (params) => uni.request({ url: '/enagic/buyer/operation/my-plans', params })
| 阶段 | 时间 | 内容 | 交付物 |
|---|---|---|---|
| Phase 0 | Week 1 | 环境搭建 + Lilishop 源码 fork + 项目初始化 | 项目目录结构、Maven 依赖调试通过 |
| Phase 1 | Week 2-3 | 基础数据层:数据库表创建 + entity + 基础 API(健康布施者、VIP配置) | API 可调用、数据库表就绪 |
| Phase 2 | Week 4-5 | 核心业务开发:健康布施者体系 + VIP 无到期 + 抵扣金 | 功能完整可用 |
| Phase 3 | Week 6-7 | 客户运维流程引擎 + 事件监听(RocketMQ) | 运维流程自动触发 |
| Phase 4 | Week 8-9 | AI 数字人:知识库 + 对话接口 + 小程序页面 | AI 对话可用 |
| Phase 5 | Week 10-11 | PC 后台管理页面(Vue)+ 素材权限 + 二维码分享 | 后台功能完整 |
| Phase 6 | Week 12 | 小程序端 UI 改造 + 联调测试 | 小程序可运行 |
| Phase 7 | Week 13-14 | 系统联调 + 性能优化 + 部署 | 可上线版本 |
总工期:约 14 周(100-105 人天)
Phase 0 (项目初始化)
↓
Phase 1 (数据层) ───────────────────────────────────────┐
↓ │
Phase 2 (核心业务) │
↓ │
Phase 3 (运维引擎) ←──────── Phase 2 完成后解锁 │
↓ │
Phase 4 (AI数字人) ←── Phase 1 完成后可并行 │
↓ │
Phase 5 (后台页面) ←── Phase 1+2 完成后可并行 │
↓ │
Phase 6 (小程序) ←────────── Phase 1~5 完成后开始 │
↓ │
Phase 7 (联调上线) │
| 并行组合 | 说明 |
|---|---|
| Phase 2 + Phase 4 | 核心业务和 AI 可同时开发 |
| Phase 2 + Phase 5 | 后台管理和业务逻辑可同时开发 |
| Phase 3 + Phase 5 | 事件监听和后台管理可同时开发 |
将 enagic-plugin 作为 Maven 子模块加入 Lilishop 的 pom.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>
<!-- 新增 -->
<module>enagic-plugin</module>
</modules>
使用 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 * * ? |
勋章发放检查 |
推荐使用 硅基流动(SiliconFlow) API:
// 配置:enagic-api/src/main/resources/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
利用 Lilishop 已有的消息中心,扩展消息模板:
| 模板类型 | 触发场景 |
|---|---|
| 运维提醒 | 到达运维节点时 |
| 客户转移通知 | 客户被自动转移时 |
| 勋章发放通知 | 健康布施者获得新勋章时 |
| VIP 感恩提醒 | VIP 客户长期无分享时 |
li_enagic_:与 Lilishop 原有表(li_*)保持一致/enagic/** 前缀确保不与 Lilishop 原有 API 冲突代码/
├── enagic-lilishop/
│ ├── SPEC.md # 本文档
│ ├── lilishop/ # Lilishop 源码(forked)
│ └── enagic-plugin/ # Enagic 插件
│ ├── README.md
│ ├── pom.xml # 聚合 POM
│ ├── enagic-entity/ # 实体层
│ ├── enagic-api/ # 业务 API
│ ├── enagic-admin/ # PC 管理插件
│ └── enagic-consumer/ # 事件消费者
└── enagic-uniapp/ # 小程序
├── README.md
└── pages/enagic/ # 新增页面