6.2 KiB
6.2 KiB
学校详情 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 字段命名
后端字段统一使用:
satisfactionJsonscholarshipJsonspecialMajorJsonemploymentReportJsonphotoJsonaccommodationJsonsubjectReviewsJsonresearchJsonunivMajorsJsonunivPostgraduateJson
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 结构,避免字段名变更。