Files
jsowell-charger-web/README.md
2026-05-13 11:01:45 +08:00

255 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# jsowell-charger-web
万车充运营管理平台,包含一套 Java 8 + Spring Boot 的多模块后端,以及一个 Vue 2 的管理端前端工程。
项目主要面向充电桩运营场景,覆盖设备管理、订单支付、会员能力、第三方平台对接、设备通信与定时任务等业务。
## 项目组成
- 后端Maven 多模块工程,根目录 `pom.xml`
- 前端:`jsowell-charge-ui/`,基于 Vue 2 + Vue CLI
- 基础设施示例:`docker/docker-compose.yml`,包含 `RabbitMQ``Nacos`
- 补充资料:`docs/`
## 技术栈
### 后端
- Java 8
- Spring Boot 2.5.14
- MyBatis / PageHelper
- Dubbo 3.3.0
- Nacos 2.0.3
- Netty 4.1.75.Final
- Redis / RabbitMQ / MySQL
### 前端
- Vue 2.6
- Vue CLI 4
- Element UI
- Axios
## 目录结构
```text
.
├── jsowell-admin/ 后端启动模块Web 服务入口
├── jsowell-framework/ 核心框架层
├── jsowell-system/ 系统管理模块
├── jsowell-common/ 通用工具与基础能力
├── jsowell-pile/ 充电桩核心业务
├── jsowell-netty/ 设备通信与协议处理
├── jsowell-thirdparty/ 第三方平台与支付对接
├── jsowell-quartz/ 定时任务
├── jsowell-generator/ 代码生成器
├── jsowell-settlement/ 结算相关模块
├── jsowell-charge-ui/ Vue 2 管理端
├── docker/ Docker Compose 与部署说明
└── docs/ 业务文档、接口文档、SQL 与方案记录
```
## 模块说明
| 模块 | 说明 |
| --- | --- |
| `jsowell-admin` | Spring Boot 启动入口,包含控制器、配置、测试等 |
| `jsowell-framework` | 登录鉴权、拦截器、基础框架能力 |
| `jsowell-system` | 用户、角色、菜单、字典等系统管理能力 |
| `jsowell-common` | 常量、工具类、注解、异常定义 |
| `jsowell-pile` | 订单、会员、计费、支付、运营核心业务 |
| `jsowell-netty` | 充电桩 TCP/MQTT 通信与协议适配 |
| `jsowell-thirdparty` | 微信、支付宝、地图、外部平台接口 |
| `jsowell-quartz` | 定时任务调度 |
| `jsowell-generator` | 代码生成模板与生成器 |
| `jsowell-settlement` | 分账、清算与结算扩展能力 |
## 环境要求
### 本地开发建议
- JDK 1.8
- Maven 3.6+
- Node.js 14.x 或兼容的 LTS 版本
- npm 6+
- MySQL 5.7+
- Redis
- RabbitMQ
- Nacos
## 快速开始
### 1. 克隆并编译后端
```bash
git clone <your-repo-url>
cd jsowell-charger-web
mvn clean compile
```
### 2. 启动基础依赖
仓库中提供了 `RabbitMQ``Nacos` 的容器示例:
```bash
cd docker
docker-compose up -d
```
更多说明见 [docker/说明.md](/Users/think/Developer/Workspace/jsowell-charger-web/docker/%E8%AF%B4%E6%98%8E.md)。
说明:
- `docker-compose.yml` 当前只包含 `RabbitMQ``Nacos`
- `MySQL``Redis` 需要自行准备
- 首次启动前请确认宿主机挂载目录和权限配置正确
### 3. 配置后端环境
后端配置文件位于:
- [jsowell-admin/src/main/resources/application.yml](/Users/think/Developer/Workspace/jsowell-charger-web/jsowell-admin/src/main/resources/application.yml)
- [jsowell-admin/src/main/resources/application-dev.yml](/Users/think/Developer/Workspace/jsowell-charger-web/jsowell-admin/src/main/resources/application-dev.yml)
- [jsowell-admin/src/main/resources/application-sit.yml](/Users/think/Developer/Workspace/jsowell-charger-web/jsowell-admin/src/main/resources/application-sit.yml)
- [jsowell-admin/src/main/resources/application-pre.yml](/Users/think/Developer/Workspace/jsowell-charger-web/jsowell-admin/src/main/resources/application-pre.yml)
- [jsowell-admin/src/main/resources/application-prd.yml](/Users/think/Developer/Workspace/jsowell-charger-web/jsowell-admin/src/main/resources/application-prd.yml)
重点检查这些配置:
- `spring.datasource`
- `spring.redis`
- `spring.rabbitmq`
- `dubbo.registry`
- `mybatis`
默认服务端口:
- 应用:`8080`
- Prometheus / Actuator`8091`
建议:
- 本地开发优先使用 `dev` 环境
- 不要把本地密钥、生产连接串或私有凭证提交回仓库
### 4. 启动后端
在仓库根目录执行:
```bash
mvn -pl jsowell-admin spring-boot:run -Dspring-boot.run.profiles=dev
```
或先打包再运行:
```bash
mvn clean package -DskipTests
java -jar jsowell-admin/target/jsowell-admin.jar --spring.profiles.active=dev
```
后端启动类:
- [JsowellApplication.java](/Users/think/Developer/Workspace/jsowell-charger-web/jsowell-admin/src/main/java/com/jsowell/JsowellApplication.java)
### 5. 启动前端
```bash
cd jsowell-charge-ui
npm install
npm run dev
```
前端默认开发端口为 `8081`,并通过代理转发到本地后端 `http://localhost:8080`
前端常用环境文件:
- [jsowell-charge-ui/.env.exploitation](/Users/think/Developer/Workspace/jsowell-charger-web/jsowell-charge-ui/.env.exploitation)
- [jsowell-charge-ui/.env.development](/Users/think/Developer/Workspace/jsowell-charger-web/jsowell-charge-ui/.env.development)
- [jsowell-charge-ui/.env.staging](/Users/think/Developer/Workspace/jsowell-charger-web/jsowell-charge-ui/.env.staging)
- [jsowell-charge-ui/.env.production](/Users/think/Developer/Workspace/jsowell-charger-web/jsowell-charge-ui/.env.production)
## 常用命令
### 后端
```bash
# 编译全部模块
mvn clean compile
# 打包
mvn clean package -DskipTests
# 运行全部测试
mvn test
# 仅运行 admin 模块测试
mvn -pl jsowell-admin test
```
### 前端
```bash
# 本地开发
npm run dev
# 预发构建
npm run build:pre
# 测试环境构建
npm run build:sit
# 生产构建
npm run build:prd
# 代码检查
npm run lint
```
## 开发约定
### 后端
- 使用 4 空格缩进
- 类名使用 `PascalCase`
- 方法与变量使用 `camelCase`
- 常量使用 `UPPER_SNAKE_CASE`
- 尽量将改动收敛在单个业务模块内
### 前端
- 遵循 `jsowell-charge-ui/.editorconfig`
- ESLint 配置见 `jsowell-charge-ui/.eslintrc.js`
- 默认风格为 2 空格、单引号、无分号
## 测试
后端测试主要位于:
- [jsowell-admin/src/test/java](/Users/think/Developer/Workspace/jsowell-charger-web/jsowell-admin/src/test/java)
建议在提交前至少执行:
```bash
mvn -pl jsowell-admin test
cd jsowell-charge-ui && npm run lint
```
## 文档与资料
- [CLAUDE.md](/Users/think/Developer/Workspace/jsowell-charger-web/CLAUDE.md):仓库架构补充说明
- [docs/](/Users/think/Developer/Workspace/jsowell-charger-web/docs/):接口文档、需求说明、实现记录
- [docs/sql/](/Users/think/Developer/Workspace/jsowell-charger-web/docs/sql/)SQL 脚本
- [docker/](/Users/think/Developer/Workspace/jsowell-charger-web/docker/):容器与部署辅助文件
## 提交建议
- 提交信息建议使用简短前缀,如:`add ...``update ...``bugfix ...`
- 涉及数据库或接口变更时,请补充变更说明与示例
- 前端页面改动建议附带截图
## 注意事项
- 当前仓库包含多环境配置文件,启动前请先确认本地依赖地址是否可用
- 第三方平台、支付、短信等配置较多,建议优先使用本地或测试环境参数联调
- 若仅进行管理端页面开发,通常只需保证本地后端接口和前端代理可用