本文档详细描述了酒店数据管理系统中 hotel_positions
(酒店职位)和 hotel_group_brands
(酒店集团品牌)两个数据表的完整CRUD操作API接口。
/api/data-parse
YYYY-MM-DD HH:MM:SS
所有API接口都遵循统一的返回格式:
{
"code": 200,
"success": true,
"message": "操作成功信息",
"data": "具体数据内容"
}
状态码 | 含义 | 说明 |
---|---|---|
200 | OK | 请求成功 |
201 | Created | 资源创建成功 |
400 | Bad Request | 请求参数错误 |
404 | Not Found | 资源不存在 |
409 | Conflict | 资源冲突(重复) |
500 | Internal Server Error | 服务器内部错误 |
/get-hotel-positions-list
GET
无需请求参数
字段名 | 类型 | 说明 |
---|---|---|
code | integer | 响应状态码 |
success | boolean | 操作是否成功 |
message | string | 响应消息 |
data | array | 职位记录数组 |
count | integer | 记录总数 |
字段名 | 类型 | 说明 |
---|---|---|
id | integer | 主键ID |
department_zh | string | 部门中文名称 |
department_en | string | 部门英文名称 |
position_zh | string | 职位中文名称 |
position_en | string | 职位英文名称 |
position_abbr | string | 职位英文缩写(可为null) |
level_zh | string | 职级中文名称 |
level_en | string | 职级英文名称 |
created_at | string | 创建时间 |
updated_at | string | 更新时间 |
created_by | string | 创建者 |
updated_by | string | 更新者 |
status | string | 状态(active/inactive) |
请求示例:
GET /api/data-parse/get-hotel-positions-list
成功响应示例:
{
"code": 200,
"success": true,
"message": "获取酒店职位列表成功",
"data": [
{
"id": 1,
"department_zh": "餐饮部",
"department_en": "Food & Beverage Department",
"position_zh": "总经理",
"position_en": "General Manager",
"position_abbr": "GM",
"level_zh": "总经理级",
"level_en": "General Manager Level",
"created_at": "2025-01-19 10:00:00",
"updated_at": "2025-01-19 10:00:00",
"created_by": "system",
"updated_by": "system",
"status": "active"
}
],
"count": 1
}
/add-hotel-positions
POST
字段名 | 类型 | 必填 | 说明 |
---|---|---|---|
department_zh | string | 是 | 部门中文名称 |
department_en | string | 是 | 部门英文名称 |
position_zh | string | 是 | 职位中文名称 |
position_en | string | 是 | 职位英文名称 |
position_abbr | string | 否 | 职位英文缩写 |
level_zh | string | 是 | 职级中文名称 |
level_en | string | 是 | 职级英文名称 |
created_by | string | 否 | 创建者(默认system) |
updated_by | string | 否 | 更新者(默认system) |
status | string | 否 | 状态(默认active) |
同职位记录字段说明
请求示例:
POST /api/data-parse/add-hotel-positions
Content-Type: application/json
{
"department_zh": "餐饮部",
"department_en": "Food & Beverage Department",
"position_zh": "副总经理",
"position_en": "Deputy General Manager",
"position_abbr": "DGM",
"level_zh": "总监级",
"level_en": "Director Level",
"created_by": "admin"
}
成功响应示例:
{
"code": 200,
"success": true,
"message": "酒店职位记录创建成功",
"data": {
"id": 151,
"department_zh": "餐饮部",
"department_en": "Food & Beverage Department",
"position_zh": "副总经理",
"position_en": "Deputy General Manager",
"position_abbr": "DGM",
"level_zh": "总监级",
"level_en": "Director Level",
"created_at": "2025-01-19 15:30:00",
"updated_at": "2025-01-19 15:30:00",
"created_by": "admin",
"updated_by": "admin",
"status": "active"
}
}
重复记录错误响应:
{
"code": 409,
"success": false,
"message": "职位记录已存在:餐饮部 - 副总经理",
"data": {
"id": 100,
"department_zh": "餐饮部",
"position_zh": "副总经理",
"..."
}
}
/update-hotel-positions/<int:position_id>
PUT
参数名 | 类型 | 说明 |
---|---|---|
position_id | integer | 职位记录ID |
字段名 | 类型 | 必填 | 说明 |
---|---|---|---|
department_zh | string | 否 | 部门中文名称 |
department_en | string | 否 | 部门英文名称 |
position_zh | string | 否 | 职位中文名称 |
position_en | string | 否 | 职位英文名称 |
position_abbr | string | 否 | 职位英文缩写 |
level_zh | string | 否 | 职级中文名称 |
level_en | string | 否 | 职级英文名称 |
updated_by | string | 否 | 更新者 |
status | string | 否 | 状态 |
请求示例:
PUT /api/data-parse/update-hotel-positions/1
Content-Type: application/json
{
"position_abbr": "AGM",
"updated_by": "admin"
}
成功响应示例:
{
"code": 200,
"success": true,
"message": "酒店职位记录更新成功",
"data": {
"id": 1,
"department_zh": "餐饮部",
"department_en": "Food & Beverage Department",
"position_zh": "总经理",
"position_en": "General Manager",
"position_abbr": "AGM",
"level_zh": "总经理级",
"level_en": "General Manager Level",
"created_at": "2025-01-19 10:00:00",
"updated_at": "2025-01-19 16:00:00",
"created_by": "system",
"updated_by": "admin",
"status": "active"
}
}
/query-hotel-positions/<int:position_id>
GET
参数名 | 类型 | 说明 |
---|---|---|
position_id | integer | 职位记录ID |
请求示例:
GET /api/data-parse/query-hotel-positions/1
成功响应示例:
{
"code": 200,
"success": true,
"message": "查找职位记录成功",
"data": {
"id": 1,
"department_zh": "餐饮部",
"department_en": "Food & Beverage Department",
"position_zh": "总经理",
"position_en": "General Manager",
"position_abbr": "GM",
"level_zh": "总经理级",
"level_en": "General Manager Level",
"created_at": "2025-01-19 10:00:00",
"updated_at": "2025-01-19 15:45:00",
"created_by": "system",
"updated_by": "admin",
"status": "active"
}
}
记录不存在响应:
{
"code": 404,
"success": false,
"message": "未找到ID为999的职位记录",
"data": null
}
/delete-hotel-positions/<int:position_id>
DELETE
参数名 | 类型 | 说明 |
---|---|---|
position_id | integer | 职位记录ID |
请求示例:
DELETE /api/data-parse/delete-hotel-positions/1
成功响应示例:
{
"code": 200,
"success": true,
"message": "职位记录删除成功",
"data": {
"id": 1,
"department_zh": "餐饮部",
"department_en": "Food & Beverage Department",
"position_zh": "总经理",
"position_en": "General Manager",
"position_abbr": "GM",
"level_zh": "总经理级",
"level_en": "General Manager Level",
"created_at": "2025-01-19 10:00:00",
"updated_at": "2025-01-19 15:45:00",
"created_by": "system",
"updated_by": "admin",
"status": "active"
}
}
/get-hotel-group-brands-list
GET
无需请求参数
字段名 | 类型 | 说明 |
---|---|---|
code | integer | 响应状态码 |
success | boolean | 操作是否成功 |
message | string | 响应消息 |
data | array | 品牌记录数组 |
count | integer | 记录总数 |
字段名 | 类型 | 说明 |
---|---|---|
id | integer | 主键ID |
group_name_en | string | 集团英文名称 |
group_name_zh | string | 集团中文名称 |
brand_name_en | string | 品牌英文名称 |
brand_name_zh | string | 品牌中文名称 |
positioning_level_en | string | 定位级别英文名称 |
positioning_level_zh | string | 定位级别中文名称 |
created_at | string | 创建时间 |
updated_at | string | 更新时间 |
created_by | string | 创建者 |
updated_by | string | 更新者 |
status | string | 状态(active/inactive) |
请求示例:
GET /api/data-parse/get-hotel-group-brands-list
成功响应示例:
{
"code": 200,
"success": true,
"message": "获取酒店集团品牌列表成功",
"data": [
{
"id": 1,
"group_name_en": "IHG Hotels & Resorts",
"group_name_zh": "洲际酒店集团",
"brand_name_en": "InterContinental",
"brand_name_zh": "洲际酒店及度假村",
"positioning_level_en": "Upper Upscale",
"positioning_level_zh": "超高端",
"created_at": "2025-01-19 10:00:00",
"updated_at": "2025-01-19 10:00:00",
"created_by": "system",
"updated_by": "system",
"status": "active"
}
],
"count": 1
}
/add-hotel-group-brands
POST
字段名 | 类型 | 必填 | 说明 |
---|---|---|---|
group_name_en | string | 是 | 集团英文名称 |
group_name_zh | string | 是 | 集团中文名称 |
brand_name_en | string | 是 | 品牌英文名称 |
brand_name_zh | string | 是 | 品牌中文名称 |
positioning_level_en | string | 是 | 定位级别英文名称 |
positioning_level_zh | string | 是 | 定位级别中文名称 |
created_by | string | 否 | 创建者(默认system) |
updated_by | string | 否 | 更新者(默认system) |
status | string | 否 | 状态(默认active) |
请求示例:
POST /api/data-parse/add-hotel-group-brands
Content-Type: application/json
{
"group_name_en": "Marriott International",
"group_name_zh": "万豪国际",
"brand_name_en": "The Ritz-Carlton",
"brand_name_zh": "丽思卡尔顿",
"positioning_level_en": "Luxury",
"positioning_level_zh": "奢华型",
"created_by": "admin"
}
成功响应示例:
{
"code": 200,
"success": true,
"message": "酒店集团品牌记录创建成功",
"data": {
"id": 296,
"group_name_en": "Marriott International",
"group_name_zh": "万豪国际",
"brand_name_en": "The Ritz-Carlton",
"brand_name_zh": "丽思卡尔顿",
"positioning_level_en": "Luxury",
"positioning_level_zh": "奢华型",
"created_at": "2025-01-19 16:00:00",
"updated_at": "2025-01-19 16:00:00",
"created_by": "admin",
"updated_by": "admin",
"status": "active"
}
}
重复记录错误响应:
{
"code": 409,
"success": false,
"message": "品牌记录已存在:万豪国际 - 丽思卡尔顿",
"data": {
"id": 200,
"group_name_zh": "万豪国际",
"brand_name_zh": "丽思卡尔顿",
"..."
}
}
/update-hotel-group-brands/<int:brand_id>
PUT
参数名 | 类型 | 说明 |
---|---|---|
brand_id | integer | 品牌记录ID |
字段名 | 类型 | 必填 | 说明 |
---|---|---|---|
group_name_en | string | 否 | 集团英文名称 |
group_name_zh | string | 否 | 集团中文名称 |
brand_name_en | string | 否 | 品牌英文名称 |
brand_name_zh | string | 否 | 品牌中文名称 |
positioning_level_en | string | 否 | 定位级别英文名称 |
positioning_level_zh | string | 否 | 定位级别中文名称 |
updated_by | string | 否 | 更新者 |
status | string | 否 | 状态 |
请求示例:
PUT /api/data-parse/update-hotel-group-brands/1
Content-Type: application/json
{
"positioning_level_en": "Luxury",
"positioning_level_zh": "奢华型",
"updated_by": "admin"
}
成功响应示例:
{
"code": 200,
"success": true,
"message": "酒店集团品牌记录更新成功",
"data": {
"id": 1,
"group_name_en": "IHG Hotels & Resorts",
"group_name_zh": "洲际酒店集团",
"brand_name_en": "InterContinental",
"brand_name_zh": "洲际酒店及度假村",
"positioning_level_en": "Luxury",
"positioning_level_zh": "奢华型",
"created_at": "2025-01-19 10:00:00",
"updated_at": "2025-01-19 16:30:00",
"created_by": "system",
"updated_by": "admin",
"status": "active"
}
}
/query-hotel-group-brands/<int:brand_id>
GET
参数名 | 类型 | 说明 |
---|---|---|
brand_id | integer | 品牌记录ID |
请求示例:
GET /api/data-parse/query-hotel-group-brands/1
成功响应示例:
{
"code": 200,
"success": true,
"message": "查找品牌记录成功",
"data": {
"id": 1,
"group_name_en": "IHG Hotels & Resorts",
"group_name_zh": "洲际酒店集团",
"brand_name_en": "InterContinental",
"brand_name_zh": "洲际酒店及度假村",
"positioning_level_en": "Upper Upscale",
"positioning_level_zh": "超高端",
"created_at": "2025-01-19 10:00:00",
"updated_at": "2025-01-19 16:30:00",
"created_by": "system",
"updated_by": "admin",
"status": "active"
}
}
记录不存在响应:
{
"code": 404,
"success": false,
"message": "未找到ID为999的品牌记录",
"data": null
}
/delete-hotel-group-brands/<int:brand_id>
DELETE
参数名 | 类型 | 说明 |
---|---|---|
brand_id | integer | 品牌记录ID |
请求示例:
DELETE /api/data-parse/delete-hotel-group-brands/1
成功响应示例:
{
"code": 200,
"success": true,
"message": "品牌记录删除成功",
"data": {
"id": 1,
"group_name_en": "IHG Hotels & Resorts",
"group_name_zh": "洲际酒店集团",
"brand_name_en": "InterContinental",
"brand_name_zh": "洲际酒店及度假村",
"positioning_level_en": "Upper Upscale",
"positioning_level_zh": "超高端",
"created_at": "2025-01-19 10:00:00",
"updated_at": "2025-01-19 16:30:00",
"created_by": "system",
"updated_by": "admin",
"status": "active"
}
}
{
"code": 400,
"success": false,
"message": "缺少必填字段: department_zh, position_zh",
"data": null
}
{
"code": 404,
"success": false,
"message": "未找到ID为999的职位记录",
"data": null
}
{
"code": 409,
"success": false,
"message": "职位记录已存在:餐饮部 - 总经理",
"data": {
"id": 1,
"department_zh": "餐饮部",
"position_zh": "总经理",
"..."
}
}
{
"code": 500,
"success": false,
"message": "创建酒店职位记录失败: 数据库连接超时",
"data": null
}
可以导入以下Postman集合来快速测试所有API接口:
{
"info": {
"name": "酒店数据管理API",
"description": "酒店职位和集团品牌管理API测试集合"
},
"item": [
{
"name": "获取所有职位",
"request": {
"method": "GET",
"url": "{{baseUrl}}/api/data-parse/get-hotel-positions-list"
}
},
{
"name": "新增职位",
"request": {
"method": "POST",
"url": "{{baseUrl}}/api/data-parse/add-hotel-positions",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"raw": "{\n \"department_zh\": \"餐饮部\",\n \"department_en\": \"Food & Beverage Department\",\n \"position_zh\": \"副总经理\",\n \"position_en\": \"Deputy General Manager\",\n \"position_abbr\": \"DGM\",\n \"level_zh\": \"总监级\",\n \"level_en\": \"Director Level\"\n}"
}
}
}
]
}
curl -X GET "http://localhost:5000/api/data-parse/get-hotel-positions-list" \
-H "Content-Type: application/json"
curl -X POST "http://localhost:5000/api/data-parse/add-hotel-positions" \
-H "Content-Type: application/json" \
-d '{
"department_zh": "餐饮部",
"department_en": "Food & Beverage Department",
"position_zh": "副总经理",
"position_en": "Deputy General Manager",
"position_abbr": "DGM",
"level_zh": "总监级",
"level_en": "Director Level"
}'
版本 | 日期 | 修改内容 | 作者 |
---|---|---|---|
1.0 | 2025-01-19 | 初始版本,包含完整CRUD API | 系统 |
文档结束
如有疑问或需要技术支持,请联系开发团队。