# 多站点路线管理接口文档 ## 功能概述 多站点路线管理功能支持创建包含多个站点的路线,并为每两个站点设置独立的价格,形成路线站点的梯度价格图。 ## 数据库表结构 ### 1. 多站点路线表 (tbl_dzbc_multi_site_path) - id: 编号 - name: 路线名称 - status: 状态 (0-禁用, 1-启用) - remark: 备注 - ext1, ext2: 扩展字段 ### 2. 路线站点关联表 (tbl_dzbc_path_site) - id: 编号 - path_id: 路线ID - site_id: 站点ID(复用 tbl_dzbc_site 表) - site_order: 站点顺序 - remark: 备注 - ext1, ext2: 扩展字段 ### 3. 站点价格表 (tbl_dzbc_site_price) - id: 编号 - path_id: 路线ID - from_site_id: 出发站点ID - to_site_id: 到达站点ID - price: 价格(单位:分) - remark: 备注 - ext1, ext2: 扩展字段 ## 接口列表 ### 1. 多站点路线管理 #### 查询路线列表 ``` GET /system/dzbc/multiSitePath/list ``` 参数: - name: 路线名称(模糊查询) - status: 状态 - pageNum: 页码 - pageSize: 每页大小 #### 查询路线详情(包含站点和价格) ``` GET /system/dzbc/multiSitePath/{id} ``` 返回数据包含: - 路线基本信息 - sites: 路线站点列表(按站点顺序排列) - prices: 站点价格列表 #### 新增路线 ``` POST /system/dzbc/multiSitePath ``` 请求体: ```json { "name": "福州市区环线", "status": 1, "remark": "福州市区环线路线" } ``` #### 修改路线 ``` PUT /system/dzbc/multiSitePath ``` #### 删除路线 ``` DELETE /system/dzbc/multiSitePath/{ids} ``` ### 2. 路线站点管理 #### 查询路线站点列表 ``` GET /system/dzbc/pathSite/list ``` #### 根据路线ID查询站点 ``` GET /system/dzbc/pathSite/path/{pathId} ``` 返回数据包含: - siteId: 站点ID - siteName: 站点名称 - siteAddr: 站点地址 - siteOrder: 站点顺序 #### 新增路线站点 ``` POST /system/dzbc/pathSite ``` 请求体: ```json { "pathId": 1, "siteId": 1, "siteOrder": 1, "remark": "第一站" } ``` #### 修改路线站点 ``` PUT /system/dzbc/pathSite ``` #### 删除路线站点 ``` DELETE /system/dzbc/pathSite/{ids} ``` ### 3. 站点价格管理 #### 查询站点价格列表 ``` GET /system/dzbc/sitePrice/list ``` #### 根据路线ID查询所有价格 ``` GET /system/dzbc/sitePrice/path/{pathId} ``` 返回数据包含: - fromSiteId: 出发站点ID - fromSiteName: 出发站点名称 - toSiteId: 到达站点ID - toSiteName: 到达站点名称 - price: 价格(单位:分) #### 新增站点价格 ``` POST /system/dzbc/sitePrice ``` 请求体: ```json { "pathId": 1, "fromSiteId": 1, "toSiteId": 2, "price": 500, "remark": "站点1到站点2" } ``` #### 修改站点价格 ``` PUT /system/dzbc/sitePrice ``` #### 删除站点价格 ``` DELETE /system/dzbc/sitePrice/{ids} ``` ## 使用流程 ### 1. 创建多站点路线 步骤1:创建路线 ```bash POST /system/dzbc/multiSitePath { "name": "福州市区环线", "status": 1 } ``` 步骤2:添加路线站点 ```bash POST /system/dzbc/pathSite { "pathId": 1, "siteId": 1, "siteOrder": 1 } ``` 步骤3:设置站点价格 ```bash POST /system/dzbc/sitePrice { "pathId": 1, "fromSiteId": 1, "toSiteId": 2, "price": 500 } ``` ### 2. 用户查询路线和票价 查询路线详情: ```bash GET /system/dzbc/multiSitePath/1 ``` 返回示例: ```json { "code": 200, "data": { "id": 1, "name": "福州市区环线", "status": 1, "sites": [ { "siteId": 1, "siteName": "火车站", "siteAddr": "福州市晋安区火车站", "siteOrder": 1 }, { "siteId": 2, "siteName": "市政府", "siteAddr": "福州市鼓楼市政府", "siteOrder": 2 }, { "siteId": 3, "siteName": "仓山万达", "siteAddr": "福州市仓山区万达广场", "siteOrder": 3 } ], "prices": [ { "fromSiteId": 1, "fromSiteName": "火车站", "toSiteId": 2, "toSiteName": "市政府", "price": 500 }, { "fromSiteId": 2, "fromSiteName": "市政府", "toSiteId": 3, "toSiteName": "仓山万达", "price": 600 }, { "fromSiteId": 1, "fromSiteName": "火车站", "toSiteId": 3, "toSiteName": "仓山万达", "price": 1100 } ] } } ``` ### 3. 用户购票 用户根据站点价格表选择出发站点和到达站点,获取对应的价格进行购票。 ## 注意事项 1. **站点顺序**:site_order 字段定义了路线的站点顺序,从小到大排列。 2. **价格设置**:可以为任意两个站点设置价格,包括相邻站点和跨站点。 3. **价格单位**:价格单位为分,例如 500 代表 5 元。 4. **站点复用**:站点使用已有的 tbl_dzbc_site 表中的数据。 5. **删除路线**:删除路线时,建议同时删除关联的站点和价格数据(可手动处理)。 ## 数据库初始化 执行以下 SQL 创建表: ```bash mysql -u root -p khyznh < script/sql/multi_site_path.sql ``` (可选)执行示例数据: ```bash mysql -u root -p khyznh < script/sql/multi_site_path_data.sql ``` 注意:示例数据中的站点ID需要替换为实际的站点ID。