# 学校与专业标签联动接口补充文档

本文档仅说明本次新增字段：

- `/art/school`：新增 `schoolTags`
- `/art/schoolMajor`：新增 `majorTags`

## 1. /art/school 接口补充

### 1.1 GET `/art/school/{schoolId}`

返回对象 `data` 中新增：

| 字段 | 类型 | 说明 |
|---|---|---|
| schoolTags | string[] | 学校标签列表 |

示例：

```json
{
  "code": 200,
  "msg": "操作成功",
  "data": {
    "schoolId": 1001,
    "mainCode": "10531",
    "mainName": "某某大学",
    "enrollCodes": ["10531", "A10531"],
    "schoolTags": ["985", "211", "双一流"]
  }
}
```

### 1.2 POST `/art/school`

请求体 `ArtSchoolSubmitBo` 新增：

| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| schoolTags | string[] | 否 | 学校标签列表（全量替换语义） |

### 1.3 PUT `/art/school`

请求体 `ArtSchoolSubmitBo` 新增：

| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| schoolTags | string[] | 否 | 学校标签列表（全量替换语义） |

### 1.4 `schoolTags` 处理语义

- `schoolTags = null`：不修改已有标签
- `schoolTags = []`：清空该学校全部标签
- `schoolTags = ["985","211"]`：按传入值全量覆盖（去重后保存）

---

## 2. /art/schoolMajor 接口补充

### 2.1 GET `/art/schoolMajor/{majorId}`

返回对象 `data` 中新增：

| 字段 | 类型 | 说明 |
|---|---|---|
| majorTags | string[] | 专业标签列表 |

示例：

```json
{
  "code": 200,
  "msg": "操作成功",
  "data": {
    "majorId": 9001,
    "majorName": "视觉传达设计",
    "majorTags": ["国家级特色专业", "一流本科专业"]
  }
}
```

### 2.2 GET `/art/schoolMajor/list`

列表项中新增字段：

| 字段 | 类型 | 说明 |
|---|---|---|
| majorTags | string[] | 专业标签列表 |

### 2.3 POST `/art/schoolMajor`

请求体 `ArtSchoolMajorBo` 新增：

| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| majorTags | string[] | 否 | 专业标签列表（全量替换语义） |

### 2.4 PUT `/art/schoolMajor`

请求体 `ArtSchoolMajorBo` 新增：

| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| majorTags | string[] | 否 | 专业标签列表（全量替换语义） |

### 2.5 `majorTags` 处理语义

- `majorTags = null`：不修改已有标签
- `majorTags = []`：清空该专业全部标签
- `majorTags = ["A","B"]`：按传入值全量覆盖（去重后保存）

---

## 3. 与旧字段兼容说明

- `ArtSchoolMajorBo` / `ArtSchoolMajorVo` 中旧字段 `tags` 仍保留，便于兼容历史前端。
- 新增推荐字段为 `majorTags`（数组），后续前端优先使用该字段。
