CONFIG_VERSION_README.md 4.9 KB

配置版本管理模块

概述

本模块提供了配置版本管理功能,包括Entity、Mapper、Service和Controller的完整实现。

文件结构

storlead-knowledge/
├── storlead-knowledge-core/
│   └── src/main/java/com/storlead/knowledge/
│       ├── entity/
│       │   └── ConfigVersionEntity.java          # 实体类
│       └── pojo/
│           ├── dto/
│           │   └── ConfigVersionDTO.java         # 数据传输对象
│           └── vo/
│               └── ConfigVersionVO.java          # 视图对象
├── storlead-knowledge-biz/
│   └── src/main/java/com/storlead/knowledge/
│       ├── mapper/
│       │   └── ConfigVersionMapper.java      # Mapper接口
│       └── service/impl/
│           └── ConfigVersionServiceImpl.java # Service实现类
├── storlead-knowledge-spi/
│   └── src/main/java/com/storlead/knowledge/service/
│       └── ConfigVersionService.java         # Service接口
├── storlead-knowledge-api/
│   └── src/main/java/com/storlead/knowledge/api/
│       └── ConfigVersionController.java      # Controller控制器
└── sql/
    └── config_version.sql                    # 数据库建表脚本

数据库表结构

请执行 sql/config_version.sql 文件中的SQL语句来创建数据库表。

表字段说明:

  • id: 主键ID(自增)
  • name: 名称
  • app_code: 应用编码
  • key: 键值
  • version: 版本号
  • status: 状态(0-禁用,1-启用)
  • owner_by: 所有者ID
  • create_by: 创建人ID
  • update_by: 更新人ID
  • create_time: 创建时间
  • update_time: 更新时间
  • is_delete: 是否删除(0-未删除,1-已删除)
  • enabled: 是否启用(0-禁用,1-启用)
  • sort: 排序

主要功能

基础功能

  • 配置版本的增删改查
  • 分页查询
  • 按条件查询
  • 数据验证(通过DTO)

扩展功能

  • 根据应用编码和键值查询配置版本
  • 支持关键词模糊搜索(名称、键值、版本号)
  • Entity/DTO/VO之间的自动映射转换

DTO说明

ConfigVersionDTO用于数据传输和验证:

  • 包含必填字段验证(@NotBlank
  • 用于API接口的数据接收
  • 通过Orika映射到Entity

VO说明

ConfigVersionVO用于视图展示:

  • 包含格式化后的时间字段
  • 包含状态描述等展示用字段
  • 用于API接口的数据返回

Service层说明

ConfigVersionService提供了丰富的业务方法:

  • getByAppCodeAndKey: 根据应用编码和键值查询最新配置版本
  • pageVO: 分页查询并返回VO对象,支持多条件搜索
  • saveByDTO: 通过DTO保存配置版本
  • updateByDTO: 通过DTO更新配置版本

API接口

基础CRUD接口

  • GET /knowledge/config-version/list - 获取配置版本列表
  • GET /knowledge/config-version/page - 分页获取配置版本列表(支持按应用编码和关键词搜索)
  • GET /knowledge/config-version/{id} - 根据ID获取配置版本
  • GET /knowledge/config-version/by-app-key - 根据应用编码和键值获取配置版本
  • POST /knowledge/config-version/save - 保存配置版本
  • PUT /knowledge/config-version/update - 更新配置版本
  • DELETE /knowledge/config-version/{id} - 删除配置版本

查询参数说明

分页接口 /knowledge/config-version/page 支持以下参数:

  • pageIndex: 页码(默认1)
  • pageSize: 每页大小(默认10)
  • appCode: 应用编码(可选)
  • keyword: 关键词(可选,支持名称、键值、版本号模糊搜索)

使用方法

  1. 执行SQL脚本创建数据库表
  2. 确保项目依赖正确配置
  3. 启动应用后即可通过API接口访问

测试说明

提供了完整的单元测试示例,位于: storlead-knowledge-biz/src/test/java/com/storlead/knowledge/service/impl/ConfigVersionServiceImplTest.java

运行测试:

mvn test -Dtest=ConfigVersionServiceImplTest

注意事项

  • 实体类继承了SysBaseField,包含了通用的字段如isDelete、createBy、updateBy、createTime、updateTime等
  • 使用了MyBatis Plus进行数据访问
  • 遵循了项目的分层架构规范
  • 所有时间字段由框架自动填充,无需手动设置

使用示例

1. 保存配置版本

curl -X POST http://localhost:8080/knowledge/config-version/save \
  -H "Content-Type: application/json" \
  -d '{
    "name": "数据库连接配置",
    "appCode": "USER_SERVICE",
    "key": "db.connection.url",
    "version": "1.0.0",
    "status": 1
  }'

2. 分页查询配置版本

curl -X GET "http://localhost:8080/knowledge/config-version/page?pageIndex=1&pageSize=10&appCode=USER_SERVICE&keyword=database"

3. 根据应用编码和键值获取配置

curl -X GET "http://localhost:8080/knowledge/config-version/by-app-key?appCode=USER_SERVICE&key=db.connection.url"