# 制度公告搜索接口实现指南

## 接口定义

### 请求接口
```
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**: 待确认 - 用户尚未确认知晓该制度
- 空值: 全部 - 显示所有确认状态的制度 