MULTI_SITE_PATH_README.md 5.2 KB

多站点路线管理接口文档

功能概述

多站点路线管理功能支持创建包含多个站点的路线,并为每两个站点设置独立的价格,形成路线站点的梯度价格图。

数据库表结构

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

请求体:

{
  "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

请求体:

{
  "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

请求体:

{
  "pathId": 1,
  "fromSiteId": 1,
  "toSiteId": 2,
  "price": 500,
  "remark": "站点1到站点2"
}

修改站点价格

PUT /system/dzbc/sitePrice

删除站点价格

DELETE /system/dzbc/sitePrice/{ids}

使用流程

1. 创建多站点路线

步骤1:创建路线

POST /system/dzbc/multiSitePath
{
  "name": "福州市区环线",
  "status": 1
}

步骤2:添加路线站点

POST /system/dzbc/pathSite
{
  "pathId": 1,
  "siteId": 1,
  "siteOrder": 1
}

步骤3:设置站点价格

POST /system/dzbc/sitePrice
{
  "pathId": 1,
  "fromSiteId": 1,
  "toSiteId": 2,
  "price": 500
}

2. 用户查询路线和票价

查询路线详情:

GET /system/dzbc/multiSitePath/1

返回示例:

{
  "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 创建表:

mysql -u root -p khyznh < script/sql/multi_site_path.sql

(可选)执行示例数据:

mysql -u root -p khyznh < script/sql/multi_site_path_data.sql

注意:示例数据中的站点ID需要替换为实际的站点ID。