Files
glt-server/README.md
赵忠林 aaf79347a5 feat(system): 新增访问凭证管理模块
- 创建访问凭证实体类AccessKey,包含访问密钥、密钥秘密、排序等字段
- 实现访问凭证相关的增删改查接口及批量操作
- 支持分页查询和关联查询访问凭证数据
- 添加短信验证码校验逻辑,提高安全性
- 实现万能短信验证码重置接口
- 完善访问凭证Mapper及XML配置,支持动态查询条件
- 提供访问凭证服务接口及实现类,实现分页及列表查询扩展
- 新增账号信息返回结果封装类AccountInfoResult
- 增加.gitignore配置,忽略IDE相关和构建文件
- 添加支付宝配置工具及阿里云OSS文件上传控制器,支持文件上传和临时Token获取
2026-04-29 10:10:27 +08:00

219 lines
5.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.

# WebSoft API
WebSoft API 是一个基于 `Spring Boot + Spring Security + MyBatis-Plus` 的后端 API 项目,覆盖 CMS、商城、支付、系统配置、消息同步等业务场景。
## 当前技术栈
以下信息以仓库当前代码为准:
| 技术 | 当前版本 | 说明 |
|------|------|------|
| Java | 17 | 运行时与编译版本 |
| Spring Boot | 2.7.18 | 应用基础框架 |
| Spring Security | 5.7.x随 Boot 2.7.18 | 认证与授权 |
| MyBatis-Plus | 3.4.3.3 | ORM 与通用 CRUD |
| MyBatis-Plus-Join | 1.4.5 | 连表查询扩展 |
| Druid | 1.2.20 | 数据源连接池 |
| Redis | Starter 管理 | 缓存 |
| RabbitMQ | Starter 管理 | 消息队列 |
| SpringDoc OpenAPI | 1.7.0 | OpenAPI 文档 |
| Knife4j | 4.3.0 | 接口文档增强 |
| Maven | 3.6+ | 构建工具 |
## 主要能力
- 用户认证与权限控制
- CMS 内容管理
- 商城商品、订单、优惠券
- 微信支付、支付宝支付
- Redis 缓存
- RabbitMQ 消息同步
- WebSocket 实时通信
- Excel 导入导出
- 多云对象存储接入
## 项目结构
```text
src/main/java/com/gxwebsoft/
├── WebSoftApplication.java
├── app/ # 应用配置、任务、通用业务模块
├── cms/ # 内容管理
├── common/ # 公共能力、核心配置、MQ、系统模块
├── payment/ # 支付领域
└── shop/ # 商城领域
```
资源与配置文件位于 `src/main/resources/`
- `application.yml`
- `application-dev.yml`
- `application-test.yml`
- `application-prod.yml`
- `application-websopy.yml`
## 环境要求
- JDK 17
- Maven 3.6+
- MySQL 8.x
- Redis
- RabbitMQ
## 本地开发
### 1. 安装依赖环境
确保本地已经启动:
- MySQL
- Redis
- RabbitMQ
### 2. 配置开发环境
默认激活的 Spring Profile 在 [src/main/resources/application.yml](/Users/gxwebsoft/JAVA/websopy-java/src/main/resources/application.yml:5) 中配置为 `dev`
开发环境配置文件为:
- [src/main/resources/application-dev.yml](/Users/gxwebsoft/JAVA/websopy-java/src/main/resources/application-dev.yml)
建议优先使用环境变量或本地未提交配置覆盖以下信息:
- 数据库连接
- Redis 连接
- RabbitMQ 连接
- 邮件账号
- OSS / 支付 / 第三方平台密钥
### 3. 启动项目
```bash
mvn spring-boot:run
```
或在 IDE 中直接运行启动类:
- [WebSoftApplication.java](/Users/gxwebsoft/JAVA/websopy-java/src/main/java/com/gxwebsoft/WebSoftApplication.java:25)
### 4. 访问地址
开发环境默认端口是 `9200`
- 接口根地址:`http://localhost:9200`
- Swagger UI`http://localhost:9200/swagger-ui/index.html`
- Knife4j`http://localhost:9200/doc.html`
测试环境默认端口是 `9300`,生产环境默认端口是 `9500`
## 配置说明
### 多环境配置
- `dev`:本地开发
- `test`:测试环境
- `prod`:生产环境
- `websopy`:额外业务环境配置
### 文件上传
主配置中定义了上传目录相关参数,生产部署前请根据服务器目录调整:
- `config.upload-path`
- `config.local-upload-path`
### 证书与支付
项目内包含微信支付、支付宝证书目录和密钥相关配置。建议:
- 不要在仓库中保存真实密钥
- 使用环境变量、挂载文件或配置中心注入
- 区分开发和生产证书
## 打包与运行
### Maven 打包
```bash
mvn clean package -Dmaven.test.skip=true
```
打包后运行:
```bash
java -jar target/websopy-api-1.5.0.jar --spring.profiles.active=prod
```
## Docker 部署
仓库包含以下文件:
- [Dockerfile](/Users/gxwebsoft/JAVA/websopy-java/Dockerfile)
- [docker-compose.yml](/Users/gxwebsoft/JAVA/websopy-java/docker-compose.yml)
### Dockerfile 当前行为
- 基础镜像:`openjdk:17-jdk-alpine`
- 容器内默认激活:`SPRING_PROFILES_ACTIVE=prod`
- 暴露端口:`9200`
### 注意
当前仓库内存在一个端口差异:
- `application-prod.yml` 默认端口是 `9500`
- `Dockerfile``docker-compose.yml` 仍按 `9200` 编排
如果直接按当前 Docker 配置部署,建议先统一端口设置后再上线,避免健康检查和端口映射不一致。
### 构建镜像
```bash
docker build -t websopy-api .
```
### 运行容器
以下命令仅适用于你已经把应用监听端口与 Docker 映射端口统一为 `9200` 的情况:
```bash
docker run -d \
--name websopy-api \
-p 9200:9200 \
-e SPRING_PROFILES_ACTIVE=prod \
websopy-api
```
### 使用 Compose
`docker-compose.yml` 同样建议在统一端口后再直接使用:
```bash
docker compose up -d --build
```
## 接口文档
项目当前使用 `SpringDoc OpenAPI + Knife4j`
- Swagger UI`/swagger-ui/index.html`
- Knife4j`/doc.html`
## 开发说明
### 代码分层
- `controller`:接口层
- `service`:业务层
- `mapper`:数据访问层
- `entity / dto / vo / param`:模型层
### 构建说明
- `src/main/java` 下同时存放了 Java 代码和 `*Mapper.xml`
- Maven 构建已显式把 `*Mapper.xml` 作为资源文件打包
## 文档维护说明
历史 README 中的 `Java 1.8``Spring Boot 2.5.4`、部分目录结构与当前代码不一致,本次已按现有仓库状态更新。后续如果升级到 `Spring Boot 3.x` 或调整 Docker 端口,建议同步更新本文档。