qihang-ecom-erp-open/新手指南.md

5.1 KiB
Raw Blame History

启航电商ERP开源版新手指南

面向第一次接触本项目的开发者,帮助你在本地快速跑通后端与前端,了解整体技术框架与模块划分,并定位常见问题。

1. 项目简介

  • 仓库qihang-ecom-erp-open后端多模块 + 前端 Vue 项目)
  • 定位:电商企业数字化转型的订单/商品/库存等业务中台底座
  • 特性:多平台(淘宝、京东、拼多多、抖店、微信等)、多店铺、订单/售后/库存/采购/发货

2. 技术框架与组件

  • 语言/运行时Java 17
  • Spring 家族:
    • Spring Boot 3.0.x
    • Spring Cloud 2022.xSpring Cloud Alibaba 2022.xNacos、Sentinel 等)
  • 数据访问MyBatis-Plus 3.5.x
  • 数据库MySQL 8.x
  • 缓存Redis 7.x
  • 注册中心Nacos 2.3.x
  • 流量治理Sentinel 1.8.x可选
  • 网络/HTTPOpenFeign、OkHttp
  • 鉴权与安全Spring Security 6 + JWT
  • 前端Vue 2 + Element-UINode.js 16

注意oms-api 依赖本地 libs/open-sdk-2.1.12.jarsystemPath 方式),建议在 CI/CD 中明确提供或上传到私服后改为普通依赖。

3. 模块结构概览

  • 顶层聚合qihang-ecom-erp-openpom packaging
    • api微服务
      • gatewayAPI 网关Spring Cloud Gateway + Sentinel
      • sys-api系统域用户/角色/菜单/字典/配置/任务、登录鉴权等)
      • erp-apiERP 核心域(商品、库存、入出库、采购、订单/发货/售后、报表等)
      • oms-api开放平台对接淘宝/京东/拼多多/抖店/微信/快手等:授权、拉单、发货、商品同步)
    • core公共能力
      • common通用工具、异常、返回封装、配置
      • security鉴权、安全、JWT、登录、权限校验
      • interfaces领域服务接口契约与实现解耦
    • model实体、DTO/VO/BO、查询与请求对象
    • mapperMyBatis-Plus Mapper 接口与 XML 映射
    • service业务服务实现实现 interfaces编排 mapper、领域逻辑
    • serviceImpl历史/备用实现(现阶段以 service 为主)
    • vue前端Vue2 + Element-UI

依赖关系自上而下api -> service -> interfaces/mapper -> model所有模块共享 core/common & core/security。

4. 环境准备

  • 必备JDK 17、Maven 3.8+、Node.js 16.x、MySQL 8、Redis 7、Nacos 2.3.x
  • 可选Sentinel 1.8.7
  • 数据库:导入 docs/qihang-erp.sql 到新库 qihang-erp

5. 快速启动

  1. 启动基础设施
  • MySQL、Redis 正常可用
  • 启动 Nacos单机示例
    • 下载 nacos-server 2.3.x解压后
    • Linux/Macsh bin/startup.sh -m standalone
    • Windowsbin\startup.cmd -m standalone
  • 可选:启动 Sentinel 控制台
  1. 构建后端
  • 在仓库根目录执行
    • mvn clean install -DskipTests
    • mvn clean package -DskipTests
  • 依次启动微服务(本地 IDE 或 java -jar
    • api/oms-api开放平台服务
    • api/sys-api系统服务
    • api/erp-apiERP 服务)
    • api/gateway网关
  1. 启动前端
  • 切换到 vue 目录,npm installnpm run dev
  • 浏览器打开:http://localhost:88
  • 默认账号:admin / admin123

6. 配置要点

  • 数据库与 Redis、Nacos 等连接在各服务的 resources/application.yml|yaml 中配置
  • sys-api 使用 Spring Security + JWT首次需 GET /captchaImage 再 POST /login 获取 token
  • oms-api 需确保 libs/open-sdk-2.1.12.jar 存在(用于平台 SDK 调用);必要时替换为私服依赖

7. 常见问题FAQ

  • 服务注册不到 Nacos
    • 检查 Nacos 是否启动、地址配置是否正确ip/端口/命名空间)
  • 启动报数据源/表不存在
    • 确认已导入 docs/qihang-erp.sql 并与配置库名一致
  • 登录失败/权限问题
    • 确认 Redis 正常、JWT 密钥与过期时间配置正确;使用 admin/admin123 测试
  • oms-api 调用平台接口报 SDK 相关错误
    • 检查 open-sdk-2.1.12.jar 是否存在;或将 SDK 发布到私服并在 pom 中改为普通依赖
  • 构建失败报版本冲突
    • 统一使用 api/pom.xml 中的 dependencyManagement 约束版本,避免子模块写死不一致版本

8. 开发建议

  • 入口类:
    • api/sys-api/src/main/java/.../SysApi.java
    • api/erp-api/src/main/java/.../ErpApi.java
    • api/oms-api/src/main/java/.../OmsApi.java
    • api/gateway/src/main/java/.../Gateway.java
  • 推荐阅读顺序Controller -> Service -> Mapper(XML) -> Model
  • 新增业务:先在 interfaces 定义契约,再在 service 实现,最终由 api 层 Controller 暴露
  • 日志oms-api 引入 logstash-logback-encoder可对接 ELK

9. 目录速览(节选)

  • api/:各微服务
  • core/公共库common/security/interfaces
  • model/:实体与 DTO/VO/BO
  • mapper/DAO 与 XML 映射
  • service/:业务实现
  • vue/:前端工程
  • docs/SQL/预览图/文档

10. 后续提升建议

  • 将 oms-api 的 systemPath SDK 迁移到私服依赖
  • 在 api 父 POM 中统一 Spring Cloud 版本管理,减少子模块手动版本
  • 网关侧启用统一鉴权过滤(结合 core/security

祝你开发顺利,快速上手并跑通全链路!