# 学校模块接口与字段说明（给前端）

## 1. 数据字段一览

### 1.1 school（art_school）
用于学校基础信息展示与编辑。
- `school_id` 学校主键ID
- `main_code` 学校编码（国标代码）
- `main_name` 官方全称
- `short_name` 简称
- `province` 省份
- `city` 城市
- `district` 区县
- `university_type` 院校类型（综合/工科/艺术/财经等）
- `education_level` 学历层次（本科/专科）
- `school_nature` 办学性质（公办/民办/中外合作）
- `supervisor_dept` 主管部门
- `remark` 备注

### 1.2 school_detail（art_school_detail）
用于学校详情展示与编辑（JSONB 字段不直接返回）。

基础展示字段：
- `detail_id` 详情主键ID
- `school_id` 学校ID
- `introduction` 学校介绍（富文本）
- `school_icon` 校徽
- `back_ground` 背景图
- `address` 地址
- `contact` 联系方式
- `email` 邮箱
- `website` 官网
- `postcode` 邮编
- `establish_year` 建校年份
- `campus_area_mu` 占地面积(亩)
- `library_collection` 图书馆藏书量
- `male_ratio` 男生比例
- `female_ratio` 女生比例
- `is_985` 是否985
- `is_211` 是否211
- `is_double_first_class` 是否双一流
- `is_key_university` 是否省重点
- `is_public` 是否公办
- `tags` 学校标签数组
- `student_count` 在校学生数
- `teacher_count` 教职工人数
- `master_point` 硕士点数量
- `doctor_point` 博士点数量
- `key_major_count` 国家级重点专业数
- `employment_rate` 就业率
- `satisfaction_rate` 院校满意度
- `univ_id` 外部院校ID
- `master_proportion_rate` 考研率
- `abroad_proportion_rate` 出国率
- `has_regular` 是否有普通本科
- `has_junior` 是否有专科
- `has_master` 是否有硕士点
- `is_double_high_plan` 是否双高计划
- `is_strong_plan` 是否强基计划
- `twsdl_rank` 泰晤士中国排名
- `xyh_rank` 校友会排名
- `wsl_rank` 武书连排名
- `usdalu_rank` US中国排名
- `qsdalu_rank` QS排名
- `combined_score` 综合评分
- `overall_rank` 综合排名
- `env_satisfaction` 环境满意度
- `env_vote` 环境满意度投票数
- `live_satisfaction` 生活满意度
- `live_vote` 生活满意度投票数
- `combined_satisfaction` 综合满意度(原始分)
- `combined_vote` 综合满意度投票数
- `teachers` 师资力量描述
- `scholarship` 奖学金说明
- `grant_desc` 助学金说明
- `canteen` 食堂说明
- `dormitory` 宿舍说明
- `master_explain` 硕士点说明
- `doctor_explain` 博士点说明

隐藏字段（仅通过单独接口获取）：
- `satisfaction_json` 满意度明细(JSONB)
- `scholarship_json` 奖学金数组(JSONB)
- `special_major_json` 特色专业(JSONB)
- `employment_report_json` 就业报告(JSONB)
- `photo_json` 图片(JSONB)
- `accommodation_json` 建筑/配套(JSONB)
- `subject_reviews_json` 学科评估(JSONB)
- `research_json` 科研信息(JSONB)
- `univ_majors_json` 专业标签(JSONB)
- `univ_postgraduate_json` 保研信息(JSONB)

## 2. 接口说明

### 2.1 基础信息接口（已存在）
- 学校列表：`GET /art/school/list`
- 学校详情：`GET /art/school/{schoolId}`
- 新增学校：`POST /art/school`
- 修改学校：`PUT /art/school`

- 详情列表：`GET /art/schoolDetail/list`
- 详情详情：`GET /art/schoolDetail/{detailId}`
- 新增详情：`POST /art/schoolDetail`
- 修改详情：`PUT /art/schoolDetail`

说明：上述 school_detail 的返回默认不包含 JSONB 隐藏字段。

### 2.2 JSONB 单独接口（需新增）
以下接口用于前端按需加载/编辑 JSONB 字段：

1. 满意度明细  
   - `GET /art/schoolDetail/json/satisfaction?schoolId=`
   - `PUT /art/schoolDetail/json/satisfaction`
   - 请求体：`{ "schoolId": 1, "satisfactionJson": {...} }`

2. 奖学金数组  
   - `GET /art/schoolDetail/json/scholarship?schoolId=`
   - `PUT /art/schoolDetail/json/scholarship`
   - 请求体：`{ "schoolId": 1, "scholarshipJson": [...] }`

3. 特色专业  
   - `GET /art/schoolDetail/json/specialMajor?schoolId=`
   - `PUT /art/schoolDetail/json/specialMajor`
   - 请求体：`{ "schoolId": 1, "specialMajorJson": [...] }`

4. 就业报告  
   - `GET /art/schoolDetail/json/employmentReport?schoolId=`
   - `PUT /art/schoolDetail/json/employmentReport`
   - 请求体：`{ "schoolId": 1, "employmentReportJson": [...] }`

5. 学校图片  
   - `GET /art/schoolDetail/json/photo?schoolId=`
   - `PUT /art/schoolDetail/json/photo`
   - 请求体：`{ "schoolId": 1, "photoJson": {...} }`

6. 建筑/配套  
   - `GET /art/schoolDetail/json/accommodation?schoolId=`
   - `PUT /art/schoolDetail/json/accommodation`
   - 请求体：`{ "schoolId": 1, "accommodationJson": [...] }`

7. 学科评估  
   - `GET /art/schoolDetail/json/subjectReviews?schoolId=`
   - `PUT /art/schoolDetail/json/subjectReviews`
   - 请求体：`{ "schoolId": 1, "subjectReviewsJson": [...] }`

8. 科研信息  
   - `GET /art/schoolDetail/json/research?schoolId=`
   - `PUT /art/schoolDetail/json/research`
   - 请求体：`{ "schoolId": 1, "researchJson": {...} }`

9. 专业标签  
   - `GET /art/schoolDetail/json/univMajors?schoolId=`
   - `PUT /art/schoolDetail/json/univMajors`
   - 请求体：`{ "schoolId": 1, "univMajorsJson": [...] }`

10. 保研信息  
    - `GET /art/schoolDetail/json/univPostgraduate?schoolId=`
    - `PUT /art/schoolDetail/json/univPostgraduate`
    - 请求体：`{ "schoolId": 1, "univPostgraduateJson": [...] }`

## 3. 前端展示建议
- 详情主页面展示“基础字段 + 文本说明字段”即可。
- JSONB 字段按需加载，独立页/弹窗编辑更清晰。
