Name Last Update
..
src Loading commit data...
README.md Loading commit data...
pom.xml Loading commit data...

Apple经销商ERP系统 - 后端项目

项目简介

这是Apple经销商ERP系统的后端服务,基于Spring Boot框架开发,提供RESTful API接口。

技术栈

  • 框架: Spring Boot 2.7.x
  • 数据库: MySQL 8.0
  • 缓存: Redis 6.0
  • ORM: MyBatis Plus 3.5.x
  • 安全: Spring Security + JWT
  • 构建工具: Maven 3.8.x
  • JDK版本: OpenJDK 8

项目结构

backend/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/apple/erp/
│   │   │       ├── AppleErpApplication.java
│   │   │       ├── config/          # 配置类
│   │   │       ├── controller/      # 控制器层
│   │   │       ├── service/         # 服务层
│   │   │       ├── mapper/          # 数据访问层
│   │   │       ├── entity/          # 实体类
│   │   │       ├── dto/             # 数据传输对象
│   │   │       ├── vo/              # 视图对象
│   │   │       ├── utils/           # 工具类
│   │   │       ├── exception/       # 异常处理
│   │   │       ├── aspect/          # 切面
│   │   │       └── enums/           # 枚举类
│   │   └── resources/
│   │       ├── application.yml      # 主配置文件
│   │       ├── mapper/              # MyBatis映射文件
│   │       ├── static/              # 静态资源
│   │       └── templates/           # 模板文件
│   └── test/                        # 测试代码
├── target/                          # 编译输出目录
├── pom.xml                          # Maven配置文件
└── README.md                        # 项目说明

核心功能模块

系统管理模块

  • 用户管理 (SysUser)
  • 角色管理 (SysRole)
  • 菜单管理 (SysMenu)
  • 字典管理 (SysDict)
  • 日志管理 (SysLog)

业务功能模块

  • 订单管理 (Order)
  • 出库管理 (Delivery)
  • 发票管理 (Invoice)
  • 返利管理 (Rebate)
  • 异常处理 (Exception)
  • 产品管理 (Product)
  • 经销商管理 (Dealer)

开发规范

代码规范

  • 遵循阿里巴巴Java开发手册
  • 使用统一的代码格式化配置
  • 类名使用大驼峰命名
  • 方法名和变量名使用小驼峰命名
  • 常量使用全大写下划线分隔

接口规范

  • RESTful API设计
  • 统一返回格式
  • 统一异常处理
  • 接口文档使用Swagger

数据库规范

  • 表名使用下划线分隔
  • 字段名使用下划线分隔
  • 主键统一使用id
  • 创建时间字段:create_time
  • 更新时间字段:update_time
  • 逻辑删除字段:deleted

环境配置

开发环境

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/apple_erp?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: root
    password: MySQL@123
    driver-class-name: com.mysql.cj.jdbc.Driver

测试环境

spring:
  datasource:
    url: jdbc:mysql://test-server:3306/apple_erp?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: test_user
    password: test_password
    driver-class-name: com.mysql.cj.jdbc.Driver

生产环境

spring:
  datasource:
    url: jdbc:mysql://prod-server:3306/apple_erp?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: prod_user
    password: ${DB_PASSWORD}
    driver-class-name: com.mysql.cj.jdbc.Driver

快速开始

1. 环境准备

  • 安装JDK 8+
  • 安装Maven 3.8+
  • 安装MySQL 8.0+
  • 安装Redis 6.0+

2. 数据库初始化

# 创建数据库
mysql -u root -p < ../database/scripts/init/01_create_database.sql

# 创建表结构
mysql -u root -p apple_erp < ../database/scripts/init/02_create_tables.sql

# 初始化数据
mysql -u root -p apple_erp < ../database/scripts/data/01_init_system_data.sql

3. 启动服务

# 编译项目
mvn clean compile

# 运行测试
mvn test

# 启动服务
mvn spring-boot:run

4. 访问接口

开发指南

1. 新增业务模块

  1. 创建Entity实体类
  2. 创建Mapper接口和XML文件
  3. 创建Service接口和实现类
  4. 创建Controller控制器
  5. 创建DTO和VO类
  6. 编写单元测试

2. 数据库操作

  • 使用MyBatis Plus进行数据库操作
  • 复杂查询使用XML映射文件
  • 简单CRUD使用注解方式

3. 异常处理

  • 使用全局异常处理器
  • 自定义业务异常类
  • 统一错误码定义

4. 日志记录

  • 使用SLF4J + Logback
  • 操作日志使用AOP记录
  • 错误日志记录详细堆栈信息

测试

单元测试

mvn test

集成测试

mvn verify

性能测试

mvn test -Dtest=PerformanceTest

部署

Docker部署

# 构建镜像
docker build -t apple-erp-backend .

# 运行容器
docker run -d -p 8083:8083 apple-erp-backend

传统部署

# 打包
mvn clean package

# 运行
java -jar target/apple-erp-backend.jar

监控

健康检查

  • Spring Boot Actuator
  • 自定义健康检查指标

日志监控

  • 应用日志
  • 访问日志
  • 错误日志

性能监控

  • JVM监控
  • 数据库监控
  • 接口性能监控

常见问题

1. 数据库连接问题

  • 检查数据库服务是否启动
  • 检查连接配置是否正确
  • 检查网络连接是否正常

2. Redis连接问题

  • 检查Redis服务是否启动
  • 检查连接配置是否正确
  • 检查防火墙设置

3. 端口占用问题

  • 检查端口是否被占用
  • 修改配置文件中的端口号
  • 停止占用端口的进程

更新日志

v1.0.0 (2024-01-01)

  • 初始版本发布
  • 基础功能模块完成
  • 系统管理模块完成

贡献指南

  1. Fork项目
  2. 创建功能分支
  3. 提交代码
  4. 创建Pull Request

许可证

MIT License