Industrial-image-management.../REGULATION_ANNOUNCEMENT_SEA...

3.8 KiB
Raw Permalink Blame History

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

接口定义

请求接口

GET /api/regulation
Content-Type: application/json

请求参数

{
  "page": number,           // 页码可选默认1
  "size": number,           // 每页大小可选默认10
  "status": "string",       // 状态筛选(精确匹配,固定为"PUBLISHED"
  "title": "string",        // 制度标题(模糊搜索,可选)
  "proposer": "string",     // 公示人(模糊搜索,可选)
  "confirmStatus": "string" // 确认状态(精确匹配,可选)
}

响应格式

{
  "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         // 总页数
  }
}

后端实现说明

后端已实现以下接口:

@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: 待确认 - 用户尚未确认知晓该制度
  • 空值: 全部 - 显示所有确认状态的制度