# 配置版本管理模块 ## 概述 本模块提供了配置版本管理功能,包括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` 运行测试: ```bash mvn test -Dtest=ConfigVersionServiceImplTest ``` ## 注意事项 - 实体类继承了SysBaseField,包含了通用的字段如isDelete、createBy、updateBy、createTime、updateTime等 - 使用了MyBatis Plus进行数据访问 - 遵循了项目的分层架构规范 - 所有时间字段由框架自动填充,无需手动设置 ## 使用示例 ### 1. 保存配置版本 ```bash 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. 分页查询配置版本 ```bash curl -X GET "http://localhost:8080/knowledge/config-version/page?pageIndex=1&pageSize=10&appCode=USER_SERVICE&keyword=database" ``` ### 3. 根据应用编码和键值获取配置 ```bash curl -X GET "http://localhost:8080/knowledge/config-version/by-app-key?appCode=USER_SERVICE&key=db.connection.url" ```