125 lines
3.8 KiB
Markdown
125 lines
3.8 KiB
Markdown
# 制度公告搜索接口实现指南
|
||
|
||
## 接口定义
|
||
|
||
### 请求接口
|
||
```
|
||
GET /api/regulation
|
||
Content-Type: application/json
|
||
```
|
||
|
||
### 请求参数
|
||
```json
|
||
{
|
||
"page": number, // 页码(可选,默认1)
|
||
"size": number, // 每页大小(可选,默认10)
|
||
"status": "string", // 状态筛选(精确匹配,固定为"PUBLISHED")
|
||
"title": "string", // 制度标题(模糊搜索,可选)
|
||
"proposer": "string", // 公示人(模糊搜索,可选)
|
||
"confirmStatus": "string" // 确认状态(精确匹配,可选)
|
||
}
|
||
```
|
||
|
||
### 响应格式
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"records": [
|
||
{
|
||
"regulationId": "string",
|
||
"title": "string",
|
||
"content": "string",
|
||
"regulationType": "string",
|
||
"status": "string",
|
||
"publishTime": "string",
|
||
"effectiveTime": "string",
|
||
"expireTime": "string",
|
||
"scope": "string",
|
||
"level": "string",
|
||
"version": "string",
|
||
"remark": "string",
|
||
"createBy": "string",
|
||
"updateBy": "string",
|
||
"createTime": "string",
|
||
"updateTime": "string",
|
||
"delFlag": "string",
|
||
"confirmStatus": "string"
|
||
}
|
||
],
|
||
"total": number, // 总记录数
|
||
"current": number, // 当前页码
|
||
"size": number, // 每页大小
|
||
"pages": number // 总页数
|
||
}
|
||
}
|
||
```
|
||
|
||
## 后端实现说明
|
||
|
||
后端已实现以下接口:
|
||
```java
|
||
@ApiOperation(value = "获取制度列表", httpMethod = "GET")
|
||
@GetMapping
|
||
public Result getRegulationList(
|
||
@RequestParam(defaultValue = "1") int page,
|
||
@RequestParam(defaultValue = "10") int size,
|
||
@RequestParam(required = false) String status,
|
||
@RequestParam(required = false) String type,
|
||
@RequestParam(required = false) String title,
|
||
@RequestParam(required = false) String proposer,
|
||
@RequestParam(required = false) String confirmStatus
|
||
) {
|
||
return regulationService.getRegulationList(page, size, status, type, title, proposer, confirmStatus);
|
||
}
|
||
```
|
||
|
||
## 前端集成说明
|
||
|
||
前端已完成以下功能:
|
||
1. ✅ 删除前端搜索逻辑(防抖、实时搜索等)
|
||
2. ✅ 调整为GET请求接口
|
||
3. ✅ 参数名匹配后端接口(createByName → proposer)
|
||
4. ✅ 简化搜索表单,只支持手动搜索
|
||
5. ✅ 移除前端过滤逻辑,由后端处理状态筛选
|
||
6. ✅ 保持原有功能不受影响
|
||
|
||
## 搜索流程
|
||
|
||
1. 用户在搜索表单中输入条件
|
||
2. 点击"搜索"按钮触发搜索
|
||
3. 调用后端GET接口 `/api/regulation`
|
||
4. 后端返回搜索结果(已过滤为PUBLISHED状态的制度)
|
||
5. 前端展示搜索结果
|
||
|
||
## 参数说明
|
||
|
||
- **page**: 页码,默认1
|
||
- **size**: 每页大小,默认10
|
||
- **status**: 状态筛选,固定为"PUBLISHED"(已公告状态)
|
||
- **title**: 制度标题,支持模糊搜索
|
||
- **proposer**: 公示人,支持模糊搜索
|
||
- **confirmStatus**: 确认状态,精确匹配(如:confirmed、pending)
|
||
|
||
## 搜索功能特性
|
||
|
||
- **模糊搜索**:title 和 proposer 字段支持模糊匹配
|
||
- **精确筛选**:confirmStatus 字段精确匹配
|
||
- **分页查询**:支持分页和排序
|
||
- **状态过滤**:后端自动过滤为PUBLISHED状态的制度
|
||
- **性能优化**:使用数据库索引提升查询性能
|
||
|
||
## 业务逻辑说明
|
||
|
||
制度公告页面专门用于展示已经公告的制度,因此:
|
||
- 后端需要自动过滤为 `status = 'PUBLISHED'` 的制度
|
||
- 支持按确认状态(confirmStatus)进行筛选
|
||
- 前端不再需要手动过滤,完全依赖后端处理
|
||
- 用户可以查看制度详情、下载PDF文件、确认知晓制度
|
||
|
||
## 确认状态说明
|
||
|
||
- **confirmed**: 已确认 - 用户已确认知晓并遵守该制度
|
||
- **pending**: 待确认 - 用户尚未确认知晓该制度
|
||
- 空值: 全部 - 显示所有确认状态的制度 |