# 学校详情 JSONB 接口对接文档(前端) ## 1. 目标 JSONB 字段不在 school_detail 基础接口中返回,仅通过以下接口按需获取与编辑。 管理端页面需要呈现“可视化表单 + JSON 预览(可选)”的效果。 ## 2. 通用规范 ### 2.1 URL 规则 - 基础路径:`/art/schoolDetail/json/*` ### 2.2 通用响应 ```json { "code": 200, "msg": "success", "data": { ... } } ``` ### 2.3 通用请求 - `schoolId` 必填 - PUT 请求体统一为:`{ "schoolId": 1, "": }` ### 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` #### 返回格式(示例) ```json { "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` #### 返回格式(示例) ```json { "scholarshipJson": [ { "奖学金": "奖学金说明文本..." } ] } ``` ### 3.3 特色专业(specialMajorJson) #### 页面效果 - 按“类型”分组展示(国家级/省级等) - 每组内为专业列表 #### 接口 - GET `/art/schoolDetail/json/specialMajor?schoolId=1` - PUT `/art/schoolDetail/json/specialMajor` #### 返回格式(示例) ```json { "specialMajorJson": [ { "type": "国家级", "majorList": [ { "majorId": "247", "majorName": "智能科学与技术" } ] } ] } ``` ### 3.4 就业报告(employmentReportJson) #### 页面效果 - 列表编辑:报告名称 + 预览链接 + 下载链接 #### 接口 - GET `/art/schoolDetail/json/employmentReport?schoolId=1` - PUT `/art/schoolDetail/json/employmentReport` #### 返回格式(示例) ```json { "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` #### 返回格式(示例) ```json { "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` #### 返回格式(示例) ```json { "accommodationJson": [ { "name": "食堂", "value": "..." } ] } ``` **** ### 3.7 学科评估(subjectReviewsJson) #### 页面效果 - 评估轮次分组 - 每组内展示学科名称与评级 #### 接口 - GET `/art/schoolDetail/json/subjectReviews?schoolId=1` - PUT `/art/schoolDetail/json/subjectReviews` #### 返回格式(示例) ```json { "subjectReviewsJson": [ { "type": "第四轮", "subList": [ { "subjectName": "统计学", "assessLevel": "A+", "assessGrade": "1档" } ] } ] } ``` ### 3.8 科研信息(researchJson) #### 页面效果 - 展示“师资力量/特色/学科/实验室”等区块 - 支持富文本编辑 #### 接口 - GET `/art/schoolDetail/json/research?schoolId=1` - PUT `/art/schoolDetail/json/research` #### 返回格式(示例) ```json { "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` #### 返回格式(示例) ```json { "univMajorsJson": [ { "className": "国家特色", "majorList": [ { "majorId": "1", "majorName": "哲学", "majorTag": "国家特色", "year": "四年" } ] } ] } ``` ### 3.10 保研信息(univPostgraduateJson) #### 页面效果 - 年份列表 + 保研率 #### 接口 - GET `/art/schoolDetail/json/univPostgraduate?schoolId=1` - PUT `/art/schoolDetail/json/univPostgraduate` #### 返回格式(示例) ```json { "univPostgraduateJson": [ { "year": 2024, "exemption": 64.6 } ] } ``` ### 3.11 JSONB 全量获取(all) #### 页面效果 - 管理端初始化时一次性加载所有 JSONB 数据(用于整页编辑或预览) #### 接口 - GET `/art/schoolDetail/json/all?schoolId=1` #### 返回格式(示例) ```json { "satisfactionJson": { "details": [] }, "scholarshipJson": [], "specialMajorJson": [], "employmentReportJson": [], "photoJson": {}, "accommodationJson": [], "subjectReviewsJson": [], "researchJson": {}, "univMajorsJson": [], "univPostgraduateJson": [] } ``` ## 4. 前端交互建议 - JSONB 独立页/弹窗编辑,保存后局部刷新。 - 列表型 JSON 建议用“可增删行”的表单组件。 - 保留原始 JSON 结构,避免字段名变更。