Files
msh-system/docs/项目技术栈与架构分析.md

14 KiB
Raw Blame History

慢生活MSH系统 — 项目技术栈与架构分析

一、项目概述

慢生活MSH System是一套面向 C 端的商城 + 营养/工具一体化系统包含移动端多端应用UniApp与基于 CRMEB 的 Java 后端服务。项目在 CRMEB Java 版 v2.2 基础上做了业务定制,并接入了 AICoze、KieAI、腾讯云 ASR 等)与文章/工具类能力,形成「慢生活营养专家」产品形态。


二、整体架构

系统采用前后端分离 + 多端一体架构:

┌─────────────────────────────────────────────────────────────────────────┐
│                           客户端(多端)                                   │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐      │
│  │ 微信小程序   │  │  H5 商城    │  │  App(iOS/   │  │ 支付宝/     │      │
│  │ (mp-weixin) │  │             │  │   Android)  │  │ 头条等小程序│      │
│  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘      │
│         │                │                │                │             │
│         └────────────────┴────────────────┴────────────────┘             │
│                                    │                                       │
│                         msh_single_uniapp (Vue 2 + UniApp)                 │
└────────────────────────────────────┬────────────────────────────────────┘
                                     │ HTTPS / REST API
                                     ▼
┌─────────────────────────────────────────────────────────────────────────┐
│                           后端服务Spring Boot                          │
│  ┌─────────────────────────────┐  ┌─────────────────────────────┐       │
│  │  crmeb-front (C 端 API)      │  │  crmeb-admin (管理端 API)    │       │
│  │  端口: 20822 (sophia)        │  │  后台管理、定时任务(Quartz)   │       │
│  │  /api/front/*, /api/public/* │  │                              │       │
│  └──────────────┬──────────────┘  └──────────────┬──────────────┘       │
│                 │                                │                        │
│                 └────────────┬───────────────────┘                        │
│                              ▼                                            │
│  ┌─────────────────────────────────────────────────────────────────┐    │
│  │  crmeb-service (业务逻辑)  │  crmeb-common (工具/实体/配置)        │    │
│  └─────────────────────────────────────────────────────────────────┘    │
└────────────────────────────────────┬────────────────────────────────────┘
                                     │
         ┌───────────────────────────┼───────────────────────────┐
         ▼                           ▼                           ▼
┌─────────────────┐       ┌─────────────────┐       ┌─────────────────┐
│  MySQL 8.x      │       │  Redis          │       │  对象存储/       │
│  (Druid 连接池)  │       │  (缓存/会话/    │       │  支付/地图等     │
│                 │       │   Token/验证码)  │       │  OSS/COS/七牛   │
└─────────────────┘       └─────────────────┘       └─────────────────┘
  • 前端:一套 UniApp 源码通过条件编译发布到微信小程序、H5、App、支付宝/头条等小程序。
  • 后端:多模块 Maven 工程C 端入口为 crmeb-front,管理端为 crmeb-admin,共用 crmeb-servicecrmeb-common
  • 外部MySQL 主库、Redis、阿里云 OSS/腾讯云 COS/七牛、微信/支付宝支付、高德地图、Coze/KieAI 等。

三、前端技术栈msh_single_uniapp

3.1 核心框架与语言

类别 技术选型 说明
跨端框架 UniApp 基于 Vue 2一套代码多端运行微信/支付宝/头条小程序、H5、App
前端框架 Vue 2.x 选项式 APImain.js 中挂载全局工具与 Store
状态管理 Vuex store/index.js + store/modules(如 app.js
构建/工程 Vue CLI vue.config.js:生产环境关闭 sourceMap、压缩时去掉 console
富文本 mp-html 用于商品/文章等富文本展示(package.json 中声明)

3.2 工程结构要点

  • 入口与全局main.jsApp.vue;全局通过 Vue.prototype 挂载 $util$config$Cache$eventHub$Order$LoginAuth 等。
  • 配置config/app.js 统一配置 domainAPI 基地址)、HTTP_REQUEST_URLHEADERTOKENNAME(如 Authori-zationH5 下可选 VConsole。
  • 请求层
    • 通用业务请求:utils/request.js,基于 uni.request,前缀 /api/front//api/public/,统一处理 401/403/410xxx 跳转登录。
    • AI/文章等:api/models-api.js 使用同一 domain,封装 Coze、KieAI、腾讯 ASR、文章等接口。
  • API 模块化api/api.jsapi/user.jsapi/order.jsapi/store.jsapi/tool.jsapi/public.jsapi/models-api.js 等按业务拆分。
  • 路由与页面pages.json 配置首页、分包subPackages、tabBar、导航栏样式等首屏为 pages/tool_main/index(慢生活营养专家)。

3.3 多端与发布

  • manifest.json:应用名「慢生活」、版本 2.2.1、App 模块(支付、分享、地图、定位、直播等)、微信/支付宝/头条小程序 appid、高德 key、支付与 OAuth 等。
  • 发行H5 使用 history 路由;微信小程序开启 lazyCodeLoading: requiredComponents 控制包体;生产构建通过 vue.config.js 做压缩与去 console。

3.4 前端技术栈小结

  • 语言JavaScriptES6+
  • UIUniApp 内置组件 + 自定义组件(如 skeletonhomeIndexpaymentjyf-parser 等)
  • 特色多端统一、Token 鉴权、登录态校验、分包与懒加载、与 CRMEB 后端约定 /api/front//api/public/ 前缀

四、后端技术栈msh_crmeb_22

4.1 核心框架与运行时

类别 技术选型 版本/说明
基础框架 Spring Boot 2.2.6.RELEASE
Java JDK 1.8 编译与运行
构建 Maven 多模块 parent POM 管理依赖

4.2 模块划分

模块 职责
crmeb-common 公共实体、工具类、配置(如 CozeConfig、通用组件Druid、MyBatis-Plus、Redis、JWT、验证码等
crmeb-service 业务逻辑层商城、用户、订单、营销、工具、AI 对接Coze、KieAI、腾讯 ASR
crmeb-admin 管理端 Web API、Quartz 定时任务,打包为 jxz-admin-2.2.jar
crmeb-front C 端 Web API打包为 sophia-front-2.2.jar,当前 sophia 配置端口 20822

4.3 数据访问与存储

类别 技术选型 说明
关系库 MySQL 8.x 驱动 mysql-connector-java 8.0.33Druid 连接池
ORM MyBatis-Plus 3.3.1,含 generatormapper 扫描 com.zbkj.**.dao
分页 PageHelper 1.2.5,与 MyBatis-Plus 共存时排除 mybatis 避免冲突
缓存 Redis + Jedis Spring Boot 2.2 Data Redis独立 DB 存 accessToken 等
文档 MongoDB 仅 driver-core 依赖,用于部分扩展能力

4.4 安全与认证

  • JWTjjwt-api/impl/jackson 0.11.5Token 名称与前端约定(如 Authori-zation)。
  • 行为验证码spring-boot-starter-captchaAJ支持滑动/点选,缓存可走 Redis。
  • 白名单application.ymlcrmeb.ignored 配置 Swagger、上传、Coze、KieAI 等路径免鉴权。

4.5 接口与文档

  • RESTSpring MVCC 端前缀 /api/front//api/public/
  • 文档Springfox Swagger 2.9.2 + swagger-bootstrap-ui 1.9.3,配置在 application*.ymlswagger.basic

4.6 第三方与中间件(根 POM 管理)

  • 工具Hutool、Commons Lang3、Fastjson、HttpClient、Dom4j、XStream、Pinyin4j、ZXing二维码等。
  • 文件与图片Commons FileUpload/IO、Thumbnailator、阿里云 OSS、腾讯云 COS、七牛 SDK。
  • 支付:支付宝 SDK、微信通过 common 或 service 内封装)。
  • AI/开放接口Coze APIcoze-api 0.2.3、OkHttp、RxJava流式KieAI、腾讯云 ASR 等通过 HTTP 在 service 层封装。

4.7 配置与运行

  • 配置application.yml + application-{profile}.yml(如 sophiadevprodbeta)。
  • 数据源/Redis:在 profile 中覆盖 URL、库名、端口、密码等。
  • 日志Logbacklogback-spring.xml),按环境输出到 ./crmeb_log./logs

五、models-integration 子项目

  • 定位:独立 Maven 工程(com.integration:models-integrationJava 8Spring Boot 2.7.5。
  • 用途:与「模型/AI」集成相关的独立服务或能力如统一网关、模型路由等通过 SpringDoc OpenAPI、Redis、MySQL、AOP 等搭建。
  • 与主系统关系:与 msh_crmeb_22 无直接模块依赖,可单独部署,通过 HTTP 或消息与 front 协作。

六、部署与运行约定

6.1 前端

  • 开发:使用 HBuilderX 或 Vue CLI 运行/发行到各端API 基地址在 config/app.jsdomain 修改(如 https://sophia-shop.uj345.cc)。
  • 生产H5 可部署到任意静态服务器;小程序/App 需在对应平台上传与配置域名白名单。

6.2 后端

  • C 端:以 sophia profile 启动 CrmebFrontApplication,默认端口 20822需可访问的 MySQL、Redis。
  • 管理端:启动 CrmebAdminApplication,按需配置端口与数据源。
  • 包名com.zbkjfront 的 @ComponentScan 包含 com.zbkjcom.zbkj.frontMapper 扫描 com.zbkj.**.dao

七、技术栈汇总表

层次 技术项 选型说明
前端框架 Vue 2 + UniApp 多端统一(小程序/H5/App
状态管理 Vuex 登录态、购物车、全局配置等
请求 uni.request 封装 统一 domain、Token、错误与登录跳转
后端框架 Spring Boot 2.2 多模块common/service/admin/front
数据访问 MyBatis-Plus + MySQL Druid 连接池、PageHelper 分页
缓存 Redis (Jedis) 会话、Token、验证码、配置缓存
认证 JWT + 行为验证码 前端 Header 传 Token
文档 Swagger 2 + Bootstrap UI 后端 API 文档
构建 Maven / npm 后端 Maven前端 Vue CLI / HBuilderX
对象存储 阿里云 OSS / 腾讯云 COS / 七牛 图片与文件
支付 微信支付、支付宝 通过后端封装
AI/能力 Coze、KieAI、腾讯云 ASR 等 在 crmeb-service 中封装front 暴露 REST

八、文档与资源

  • 产品与设计docs/ 下 PRD、打卡社区设计、食谱计算器接口文档、用户界面交互设计等。
  • 数据库docs/sqlmsh_crmeb_22/sql 等目录可存放建表/迁移脚本。
  • 接口documents/api 可补充 C 端/管理端接口说明,与 Swagger 互补。

文档基于当前仓库目录与配置文件整理,用于技术评审、新人上手与架构演进参考。具体版本号以各模块 pom.xmlpackage.json 及运行环境为准。