wz-management-backend/docs/art_school_jsonb_api_spec.md

6.2 KiB
Raw Permalink Blame History

学校详情 JSONB 接口对接文档(前端)

1. 目标

JSONB 字段不在 school_detail 基础接口中返回,仅通过以下接口按需获取与编辑。
管理端页面需要呈现“可视化表单 + JSON 预览(可选)”的效果。

2. 通用规范

2.1 URL 规则

  • 基础路径:/art/schoolDetail/json/*

2.2 通用响应

{
  "code": 200,
  "msg": "success",
  "data": { ... }
}

2.3 通用请求

  • schoolId 必填
  • PUT 请求体统一为:{ "schoolId": 1, "<fieldName>": <JSON> }

2.4 字段命名

后端字段统一使用:

  • satisfactionJson
  • scholarshipJson
  • specialMajorJson
  • employmentReportJson
  • photoJson
  • accommodationJson
  • subjectReviewsJson
  • researchJson
  • univMajorsJson
  • univPostgraduateJson

3. 页面效果与接口格式

3.1 满意度明细satisfactionJson

页面效果

  • 展示“综合满意度明细”列表:维度名称、投票数、分档人数等
  • 支持新增/删除/编辑一行

接口

  • GET /art/schoolDetail/json/satisfaction?schoolId=1
  • PUT /art/schoolDetail/json/satisfaction

返回格式(示例)

{
  "satisfactionJson": {
    "details": [
      {
        "name": "综合满意度",
        "votes": "1207",
        "score": "4.8",
        "s1": "2",
        "s2": "1",
        "s3": "3",
        "s4": "7",
        "s5": "87"
      }
    ]
  }
}

3.2 奖学金数组scholarshipJson

页面效果

  • 展示可编辑文本列表(支持多条)

接口

  • GET /art/schoolDetail/json/scholarship?schoolId=1
  • PUT /art/schoolDetail/json/scholarship

返回格式(示例)

{
  "scholarshipJson": [
    { "奖学金": "奖学金说明文本..." }
  ]
}

3.3 特色专业specialMajorJson

页面效果

  • 按“类型”分组展示(国家级/省级等)
  • 每组内为专业列表

接口

  • GET /art/schoolDetail/json/specialMajor?schoolId=1
  • PUT /art/schoolDetail/json/specialMajor

返回格式(示例)

{
  "specialMajorJson": [
    {
      "type": "国家级",
      "majorList": [
        { "majorId": "247", "majorName": "智能科学与技术" }
      ]
    }
  ]
}

3.4 就业报告employmentReportJson

页面效果

  • 列表编辑:报告名称 + 预览链接 + 下载链接

接口

  • GET /art/schoolDetail/json/employmentReport?schoolId=1
  • PUT /art/schoolDetail/json/employmentReport

返回格式(示例)

{
  "employmentReportJson": [
    {
      "reportName": "北京大学2021年度就业报告",
      "onlinePreview": "https://m.51sdx.com/images/employment_report/PDF/北京大学2021年度就业报告.PDF",
      "reportUrl": "https://scc.pku.edu.cn/home!downloadCenter.action"
    }
  ]
}

3.5 学校图片photoJson

页面效果

  • 分类展示(如校园风光)
  • 支持上传/删除/排序

接口

  • GET /art/schoolDetail/json/photo?schoolId=1
  • PUT /art/schoolDetail/json/photo

返回格式(示例)

{
  "photoJson": {
    "staticUrl": "https://static.51sdx.com",
    "scenerys": [
      {
        "cover": "https://sdxedu.oss-cn-beijing.aliyuncs.com/univ/scenerys/d7c0b4e9a0c746d2a23f45c24793db94.jpeg",
        "size": 1,
        "scenery": "河流"
      }
    ]
  }
}

3.6 建筑/配套accommodationJson

页面效果

  • 图文块列表(如食堂/宿舍/配套)

接口

  • GET /art/schoolDetail/json/accommodation?schoolId=1
  • PUT /art/schoolDetail/json/accommodation

返回格式(示例)

{
  "accommodationJson": [
    { "name": "食堂", "value": "..." }
  ]
}

3.7 学科评估subjectReviewsJson

页面效果

  • 评估轮次分组
  • 每组内展示学科名称与评级

接口

  • GET /art/schoolDetail/json/subjectReviews?schoolId=1
  • PUT /art/schoolDetail/json/subjectReviews

返回格式(示例)

{
  "subjectReviewsJson": [
    {
      "type": "第四轮",
      "subList": [
        { "subjectName": "统计学", "assessLevel": "A+", "assessGrade": "1档" }
      ]
    }
  ]
}

3.8 科研信息researchJson

页面效果

  • 展示“师资力量/特色/学科/实验室”等区块
  • 支持富文本编辑

接口

  • GET /art/schoolDetail/json/research?schoolId=1
  • PUT /art/schoolDetail/json/research

返回格式(示例)

{
  "researchJson": {
    "features": { "name": "国家级特色专业", "value": "..." },
    "teacher": { "name": "师资力量", "value": "..." },
    "laboratory": [ { "name": "国家实验室", "value": "..." } ],
    "subject": [ { "name": "一级学科国家重点学科", "value": "..." } ],
    "program": [ { "name": "硕士点说明", "value": "..." } ],
    "base": { "硕士点数量": "333", "博士点数量": "307" }
  }
}

3.9 专业标签univMajorsJson

页面效果

  • 标签分组 + 专业列表

接口

  • GET /art/schoolDetail/json/univMajors?schoolId=1
  • PUT /art/schoolDetail/json/univMajors

返回格式(示例)

{
  "univMajorsJson": [
    {
      "className": "国家特色",
      "majorList": [
        { "majorId": "1", "majorName": "哲学", "majorTag": "国家特色", "year": "四年" }
      ]
    }
  ]
}

3.10 保研信息univPostgraduateJson

页面效果

  • 年份列表 + 保研率

接口

  • GET /art/schoolDetail/json/univPostgraduate?schoolId=1
  • PUT /art/schoolDetail/json/univPostgraduate

返回格式(示例)

{
  "univPostgraduateJson": [
    { "year": 2024, "exemption": 64.6 }
  ]
}

3.11 JSONB 全量获取all

页面效果

  • 管理端初始化时一次性加载所有 JSONB 数据(用于整页编辑或预览)

接口

  • GET /art/schoolDetail/json/all?schoolId=1

返回格式(示例)

{
  "satisfactionJson": { "details": [] },
  "scholarshipJson": [],
  "specialMajorJson": [],
  "employmentReportJson": [],
  "photoJson": {},
  "accommodationJson": [],
  "subjectReviewsJson": [],
  "researchJson": {},
  "univMajorsJson": [],
  "univPostgraduateJson": []
}

4. 前端交互建议

  • JSONB 独立页/弹窗编辑,保存后局部刷新。
  • 列表型 JSON 建议用“可增删行”的表单组件。
  • 保留原始 JSON 结构,避免字段名变更。