2026-03-27 19:26:25 +08:00
|
|
|
|
openapi: 3.1.0
|
|
|
|
|
|
info:
|
|
|
|
|
|
title: BAI PocketBase Manage API
|
|
|
|
|
|
description: |
|
|
|
|
|
|
基于 PocketBase `bai_api_pb_hooks` 的对外接口文档,可直接导入 Postman。
|
|
|
|
|
|
当前 `tbl_auth_users.openid` 已被定义为全平台统一身份锚点:
|
|
|
|
|
|
- 微信用户:`openid = 微信 openid`
|
|
|
|
|
|
- 平台用户:`openid = 服务端生成的 GUID`
|
|
|
|
|
|
请在 Apifox 环境中统一设置全局 Header:`Authorization: Bearer {{token}}`。
|
|
|
|
|
|
version: 1.0.0-manage
|
|
|
|
|
|
license:
|
|
|
|
|
|
name: Proprietary
|
|
|
|
|
|
identifier: LicenseRef-Proprietary
|
|
|
|
|
|
servers:
|
|
|
|
|
|
- url: https://bai-api.blv-oa.com
|
|
|
|
|
|
description: "生产环境"
|
|
|
|
|
|
- url: http://localhost:8090
|
|
|
|
|
|
description: "PocketBase 本地环境"
|
|
|
|
|
|
tags:
|
|
|
|
|
|
- name: 系统
|
|
|
|
|
|
description: "基础检查接口"
|
|
|
|
|
|
- name: 平台认证
|
|
|
|
|
|
description: "面向平台用户的认证接口;平台用户会生成 GUID 并写入统一 `openid` 字段。"
|
|
|
|
|
|
- name: 字典管理
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "字典读接口公开;字典写接口面向 ManagePlatform 用户。"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
- name: 附件管理
|
|
|
|
|
|
description: "面向 ManagePlatform 用户的附件上传、查询与删除接口。"
|
|
|
|
|
|
- name: 文档管理
|
|
|
|
|
|
description: "面向 ManagePlatform 用户的文档新增、查询、修改、删除接口;查询时会自动返回关联附件的 PocketBase 文件流链接。"
|
|
|
|
|
|
- name: 文档历史
|
|
|
|
|
|
description: "面向 ManagePlatform 用户的文档操作历史查询接口。"
|
|
|
|
|
|
components:
|
|
|
|
|
|
schemas:
|
|
|
|
|
|
ApiResponse:
|
|
|
|
|
|
type: object
|
2026-03-29 19:57:04 +08:00
|
|
|
|
required: [statusCode, errMsg, data]
|
2026-03-27 19:26:25 +08:00
|
|
|
|
properties:
|
2026-03-29 19:57:04 +08:00
|
|
|
|
statusCode:
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: integer
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "业务状态码"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
example: 200
|
2026-03-29 19:57:04 +08:00
|
|
|
|
errMsg:
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "业务提示信息"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
example: 操作成功
|
|
|
|
|
|
data:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "业务响应数据"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: object
|
|
|
|
|
|
additionalProperties: true
|
|
|
|
|
|
HealthData:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
status:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
example: healthy
|
|
|
|
|
|
version:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "当前已部署 hooks 版本号,用于确认发布是否生效"
|
|
|
|
|
|
example: 2026.03.26-health-probe.1
|
|
|
|
|
|
timestamp:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
format: date-time
|
|
|
|
|
|
UsersCountData:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
total_users:
|
|
|
|
|
|
type: integer
|
|
|
|
|
|
description: "tbl_auth_users 表中的用户总数"
|
|
|
|
|
|
example: 128
|
|
|
|
|
|
HelloWorldData:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
message:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
example: Hello, World!
|
|
|
|
|
|
timestamp:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
format: date-time
|
|
|
|
|
|
status:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
example: success
|
|
|
|
|
|
build_time:
|
|
|
|
|
|
type:
|
|
|
|
|
|
- string
|
|
|
|
|
|
- 'null'
|
|
|
|
|
|
format: date-time
|
|
|
|
|
|
CompanyInfo:
|
|
|
|
|
|
anyOf:
|
|
|
|
|
|
- type: object
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: 用户所属公司信息;当用户尚未绑定公司时返回 `null`
|
|
|
|
|
|
properties:
|
|
|
|
|
|
pb_id:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: PocketBase 记录主键 id
|
|
|
|
|
|
company_id:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 公司业务 id,由数据库自动生成
|
|
|
|
|
|
company_name:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 公司名称
|
|
|
|
|
|
company_type:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 公司类型
|
|
|
|
|
|
company_entity:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 公司法人
|
|
|
|
|
|
company_usci:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 统一社会信用代码
|
|
|
|
|
|
company_nationality:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 国家名称
|
|
|
|
|
|
company_nationality_code:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 国家编码
|
|
|
|
|
|
company_province:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 省份名称
|
|
|
|
|
|
company_province_code:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 省份编码
|
|
|
|
|
|
company_city:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 城市名称
|
|
|
|
|
|
company_city_code:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 城市编码
|
|
|
|
|
|
company_district:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 区/县名称
|
|
|
|
|
|
company_district_code:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 区/县编码
|
|
|
|
|
|
company_postalcode:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 邮政编码
|
|
|
|
|
|
company_add:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 公司地址
|
|
|
|
|
|
company_status:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 公司状态
|
|
|
|
|
|
company_level:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 公司等级
|
|
|
|
|
|
company_owner_openid:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 公司所有者 openid
|
|
|
|
|
|
company_remark:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 备注
|
|
|
|
|
|
created:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 记录创建时间
|
|
|
|
|
|
updated:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 记录更新时间
|
|
|
|
|
|
example:
|
|
|
|
|
|
pb_id: PocketBase记录主键id | string
|
|
|
|
|
|
company_id: 公司业务id,由数据库自动生成 | string
|
|
|
|
|
|
company_name: 公司名称 | string
|
|
|
|
|
|
company_type: 公司类型 | string
|
|
|
|
|
|
company_entity: 公司法人 | string
|
|
|
|
|
|
company_usci: 统一社会信用代码 | string
|
|
|
|
|
|
company_nationality: 国家名称 | string
|
|
|
|
|
|
company_nationality_code: 国家编码 | string
|
|
|
|
|
|
company_province: 省份名称 | string
|
|
|
|
|
|
company_province_code: 省份编码 | string
|
|
|
|
|
|
company_city: 城市名称 | string
|
|
|
|
|
|
company_city_code: 城市编码 | string
|
|
|
|
|
|
company_district: 区县名称 | string
|
|
|
|
|
|
company_district_code: 区县编码 | string
|
|
|
|
|
|
company_postalcode: 邮政编码 | string
|
|
|
|
|
|
company_add: 公司地址 | string
|
|
|
|
|
|
company_status: 公司状态 | string
|
|
|
|
|
|
company_level: 公司等级 | string
|
|
|
|
|
|
company_owner_openid: 公司所有者openid | string
|
|
|
|
|
|
company_remark: 备注 | string
|
|
|
|
|
|
created: 记录创建时间 | string
|
|
|
|
|
|
updated: 记录更新时间 | string
|
2026-03-27 19:26:25 +08:00
|
|
|
|
- type: 'null'
|
|
|
|
|
|
UserInfo:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
description: |
|
|
|
|
|
|
统一用户视图。
|
|
|
|
|
|
其中 `openid` 为全平台统一身份标识:微信用户使用微信 openid,平台用户使用服务端生成 GUID。
|
|
|
|
|
|
properties:
|
|
|
|
|
|
pb_id:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "PocketBase 记录主键 id"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
users_convers_id:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "会话侧用户 ID"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
users_id:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "用户业务 ID"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
users_idtype:
|
|
|
|
|
|
description: "用户身份来源类型"
|
2026-03-29 16:21:34 +08:00
|
|
|
|
anyOf:
|
|
|
|
|
|
- type: string
|
|
|
|
|
|
enum: [WeChat, ManagePlatform]
|
|
|
|
|
|
- type: string
|
2026-03-27 19:26:25 +08:00
|
|
|
|
users_id_number:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "证件号"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
users_status:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "用户状态"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
users_rank_level:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "用户星级数值"
|
|
|
|
|
|
type: [number, string]
|
2026-03-27 19:26:25 +08:00
|
|
|
|
users_auth_type:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "账户类型"
|
|
|
|
|
|
type: [number, string]
|
2026-03-27 19:26:25 +08:00
|
|
|
|
users_type:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "用户类型"
|
|
|
|
|
|
anyOf:
|
|
|
|
|
|
- type: string
|
|
|
|
|
|
enum: [游客, 注册用户]
|
|
|
|
|
|
- type: string
|
2026-03-27 19:26:25 +08:00
|
|
|
|
users_name:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "用户姓名 / 昵称"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
users_phone:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "手机号"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
users_phone_masked:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
users_level:
|
|
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "用户等级"
|
2026-04-03 18:35:50 +08:00
|
|
|
|
users_level_name:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "用户等级名称,按 `users_level -> 数据-会员等级` 字典描述实时解析"
|
2026-03-29 16:21:34 +08:00
|
|
|
|
users_tag:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "用户标签"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
users_picture:
|
|
|
|
|
|
type: string
|
2026-03-28 15:13:04 +08:00
|
|
|
|
description: "用户头像附件的 `attachments_id`"
|
|
|
|
|
|
users_picture_url:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "根据 `users_picture -> tbl_attachments` 自动解析出的头像文件流链接"
|
|
|
|
|
|
users_id_pic_a:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "证件正面附件的 `attachments_id`"
|
|
|
|
|
|
users_id_pic_a_url:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "根据 `users_id_pic_a -> tbl_attachments` 自动解析出的文件流链接"
|
|
|
|
|
|
users_id_pic_b:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "证件反面附件的 `attachments_id`"
|
|
|
|
|
|
users_id_pic_b_url:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "根据 `users_id_pic_b -> tbl_attachments` 自动解析出的文件流链接"
|
|
|
|
|
|
users_title_picture:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "资质附件的 `attachments_id`"
|
|
|
|
|
|
users_title_picture_url:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "根据 `users_title_picture -> tbl_attachments` 自动解析出的文件流链接"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
openid:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "全平台统一身份标识;微信用户为微信 openid,平台用户为服务端生成的 GUID"
|
|
|
|
|
|
company_id:
|
|
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "公司业务 id,存储 `tbl_company.company_id`"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
users_parent_id:
|
|
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "上级用户业务 id"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
users_promo_code:
|
|
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "推广码"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
usergroups_id:
|
|
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "用户组业务 id"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
company:
|
|
|
|
|
|
$ref: '#/components/schemas/CompanyInfo'
|
|
|
|
|
|
created:
|
|
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "用户创建时间"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
updated:
|
|
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "用户更新时间"
|
|
|
|
|
|
example:
|
|
|
|
|
|
pb_id: PocketBase记录主键id | string
|
|
|
|
|
|
users_convers_id: 会话侧用户ID | string
|
|
|
|
|
|
users_id: 用户业务ID | string
|
|
|
|
|
|
users_idtype: 用户身份来源类型 | string
|
|
|
|
|
|
users_id_number: 证件号 | string
|
|
|
|
|
|
users_type: 用户类型 | string
|
|
|
|
|
|
users_name: 用户姓名或昵称 | string
|
|
|
|
|
|
users_status: 用户状态 | string
|
|
|
|
|
|
users_rank_level: 用户星级数值 | number
|
|
|
|
|
|
users_auth_type: 账户类型 | number
|
|
|
|
|
|
users_phone: 手机号 | string
|
|
|
|
|
|
users_phone_masked: 手机号脱敏值 | string
|
|
|
|
|
|
users_level: 用户等级 | string
|
2026-04-03 18:35:50 +08:00
|
|
|
|
users_level_name: 用户等级名称 | string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
users_tag: 用户标签 | string
|
|
|
|
|
|
users_picture: 用户头像附件ID | string
|
|
|
|
|
|
users_picture_url: 用户头像文件流链接 | string
|
|
|
|
|
|
users_id_pic_a: 证件正面附件ID | string
|
|
|
|
|
|
users_id_pic_a_url: 证件正面文件流链接 | string
|
|
|
|
|
|
users_id_pic_b: 证件反面附件ID | string
|
|
|
|
|
|
users_id_pic_b_url: 证件反面文件流链接 | string
|
|
|
|
|
|
users_title_picture: 资质附件ID | string
|
|
|
|
|
|
users_title_picture_url: 资质附件文件流链接 | string
|
|
|
|
|
|
openid: 全平台统一身份标识 | string
|
|
|
|
|
|
company_id: 公司业务id | string
|
|
|
|
|
|
users_parent_id: 上级用户业务id | string
|
|
|
|
|
|
users_promo_code: 推广码 | string
|
|
|
|
|
|
usergroups_id: 用户组业务id | string
|
|
|
|
|
|
company:
|
|
|
|
|
|
pb_id: PocketBase记录主键id | string
|
|
|
|
|
|
company_id: 公司业务id,由数据库自动生成 | string
|
|
|
|
|
|
company_name: 公司名称 | string
|
|
|
|
|
|
company_type: 公司类型 | string
|
|
|
|
|
|
company_entity: 公司法人 | string
|
|
|
|
|
|
company_usci: 统一社会信用代码 | string
|
|
|
|
|
|
company_nationality: 国家名称 | string
|
|
|
|
|
|
company_nationality_code: 国家编码 | string
|
|
|
|
|
|
company_province: 省份名称 | string
|
|
|
|
|
|
company_province_code: 省份编码 | string
|
|
|
|
|
|
company_city: 城市名称 | string
|
|
|
|
|
|
company_city_code: 城市编码 | string
|
|
|
|
|
|
company_district: 区县名称 | string
|
|
|
|
|
|
company_district_code: 区县编码 | string
|
|
|
|
|
|
company_postalcode: 邮政编码 | string
|
|
|
|
|
|
company_add: 公司地址 | string
|
|
|
|
|
|
company_status: 公司状态 | string
|
|
|
|
|
|
company_level: 公司等级 | string
|
|
|
|
|
|
company_owner_openid: 公司所有者openid | string
|
|
|
|
|
|
company_remark: 备注 | string
|
|
|
|
|
|
created: 记录创建时间 | string
|
|
|
|
|
|
updated: 记录更新时间 | string
|
|
|
|
|
|
created: 用户创建时间 | string
|
|
|
|
|
|
updated: 用户更新时间 | string
|
2026-03-27 19:26:25 +08:00
|
|
|
|
PocketBaseAuthResponse:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
description: |
|
|
|
|
|
|
项目统一认证响应。
|
2026-03-29 19:57:04 +08:00
|
|
|
|
所有对外接口统一返回 `statusCode`、`errMsg`、`data`,认证成功时额外返回顶层 `token`。
|
2026-03-27 19:26:25 +08:00
|
|
|
|
properties:
|
2026-03-29 19:57:04 +08:00
|
|
|
|
statusCode:
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: integer
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "业务状态码"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
example: 200
|
2026-03-29 19:57:04 +08:00
|
|
|
|
errMsg:
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "业务提示信息"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
example: 登录成功
|
|
|
|
|
|
data:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "业务响应数据"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
status:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
anyOf:
|
|
|
|
|
|
- type: string
|
|
|
|
|
|
enum: [register_success, login_success]
|
|
|
|
|
|
- type: string
|
2026-03-27 19:26:25 +08:00
|
|
|
|
is_info_complete:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
type: [boolean, string]
|
2026-03-27 19:26:25 +08:00
|
|
|
|
user:
|
|
|
|
|
|
$ref: '#/components/schemas/UserInfo'
|
|
|
|
|
|
token:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "PocketBase 原生 auth token;仅认证类接口在成功时额外返回"
|
|
|
|
|
|
example:
|
2026-03-29 19:57:04 +08:00
|
|
|
|
statusCode: 200
|
|
|
|
|
|
errMsg: 登录成功
|
2026-03-27 19:26:25 +08:00
|
|
|
|
data:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
status: 登录或注册状态 | string
|
|
|
|
|
|
is_info_complete: 资料是否完整 | boolean
|
2026-03-27 19:26:25 +08:00
|
|
|
|
user:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
pb_id: PocketBase记录主键id | string
|
|
|
|
|
|
users_id: 用户业务ID | string
|
|
|
|
|
|
users_idtype: 用户身份来源类型 | string
|
|
|
|
|
|
users_name: 用户姓名或昵称 | string
|
|
|
|
|
|
users_phone: 手机号 | string
|
|
|
|
|
|
users_phone_masked: 手机号脱敏值 | string
|
|
|
|
|
|
users_status: 用户状态 | string
|
|
|
|
|
|
users_rank_level: 用户星级数值 | number
|
|
|
|
|
|
users_auth_type: 账户类型 | number
|
|
|
|
|
|
users_type: 用户类型 | string
|
|
|
|
|
|
users_picture: 用户头像附件ID | string
|
|
|
|
|
|
users_picture_url: 用户头像文件流链接 | string
|
|
|
|
|
|
users_id_pic_a: 证件正面附件ID | string
|
|
|
|
|
|
users_id_pic_a_url: 证件正面文件流链接 | string
|
|
|
|
|
|
users_id_pic_b: 证件反面附件ID | string
|
|
|
|
|
|
users_id_pic_b_url: 证件反面文件流链接 | string
|
|
|
|
|
|
users_title_picture: 资质附件ID | string
|
|
|
|
|
|
users_title_picture_url: 资质附件文件流链接 | string
|
|
|
|
|
|
openid: 全平台统一身份标识 | string
|
|
|
|
|
|
company_id: 公司业务id | string
|
|
|
|
|
|
users_parent_id: 上级用户业务id | string
|
|
|
|
|
|
users_promo_code: 推广码 | string
|
|
|
|
|
|
usergroups_id: 用户组业务id | string
|
|
|
|
|
|
company:
|
|
|
|
|
|
pb_id: PocketBase记录主键id | string
|
|
|
|
|
|
company_id: 公司业务id,由数据库自动生成 | string
|
|
|
|
|
|
company_name: 公司名称 | string
|
|
|
|
|
|
company_type: 公司类型 | string
|
|
|
|
|
|
company_entity: 公司法人 | string
|
|
|
|
|
|
company_usci: 统一社会信用代码 | string
|
|
|
|
|
|
company_nationality: 国家名称 | string
|
|
|
|
|
|
company_nationality_code: 国家编码 | string
|
|
|
|
|
|
company_province: 省份名称 | string
|
|
|
|
|
|
company_province_code: 省份编码 | string
|
|
|
|
|
|
company_city: 城市名称 | string
|
|
|
|
|
|
company_city_code: 城市编码 | string
|
|
|
|
|
|
company_district: 区县名称 | string
|
|
|
|
|
|
company_district_code: 区县编码 | string
|
|
|
|
|
|
company_postalcode: 邮政编码 | string
|
|
|
|
|
|
company_add: 公司地址 | string
|
|
|
|
|
|
company_status: 公司状态 | string
|
|
|
|
|
|
company_level: 公司等级 | string
|
|
|
|
|
|
company_owner_openid: 公司所有者openid | string
|
|
|
|
|
|
company_remark: 备注 | string
|
|
|
|
|
|
created: 记录创建时间 | string
|
|
|
|
|
|
updated: 记录更新时间 | string
|
|
|
|
|
|
created: 用户创建时间 | string
|
|
|
|
|
|
updated: 用户更新时间 | string
|
|
|
|
|
|
token: PocketBase原生认证token | string
|
2026-03-27 19:26:25 +08:00
|
|
|
|
WechatLoginRequest:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required: [users_wx_code]
|
|
|
|
|
|
description: "微信小程序登录/注册请求体。"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
users_wx_code:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "微信小程序登录临时凭证 code"
|
|
|
|
|
|
example: 0a1b2c3d4e5f6g
|
|
|
|
|
|
WechatProfileRequest:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
description: "微信用户资料完善请求体。"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
users_name:
|
|
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "用户姓名 / 昵称"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
example: 张三
|
|
|
|
|
|
users_phone_code:
|
|
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "可选。若传入,服务端优先通过微信接口换取真实手机号并写入数据库"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
example: 2b7d9f2e3c4a5b6d7e8f
|
2026-03-29 16:21:34 +08:00
|
|
|
|
users_phone:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "可选。未传 `users_phone_code` 时,可直接写入手机号"
|
|
|
|
|
|
example: '13800138000'
|
2026-03-29 19:57:04 +08:00
|
|
|
|
users_type:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "可选。用户类型;仅在传入非空值时更新"
|
|
|
|
|
|
example: 服务商
|
|
|
|
|
|
company_id:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "可选。公司业务 id;仅在传入非空值时更新"
|
|
|
|
|
|
example: WX-COMPANY-10001
|
2026-03-29 16:21:34 +08:00
|
|
|
|
users_tag:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "可选。用户标签;非空时才更新"
|
|
|
|
|
|
example: 核心客户
|
2026-03-27 19:26:25 +08:00
|
|
|
|
users_picture:
|
|
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "可选。用户头像附件的 `attachments_id`"
|
2026-03-28 15:13:04 +08:00
|
|
|
|
example: ATT-1743123456789-abc123
|
|
|
|
|
|
users_id_pic_a:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "可选。证件正面附件的 `attachments_id`"
|
|
|
|
|
|
users_id_pic_b:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "可选。证件反面附件的 `attachments_id`"
|
|
|
|
|
|
users_title_picture:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "可选。资质附件的 `attachments_id`"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
WechatProfileResponseData:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
status:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
enum: [update_success]
|
|
|
|
|
|
user:
|
|
|
|
|
|
$ref: '#/components/schemas/UserInfo'
|
|
|
|
|
|
PlatformRegisterRequest:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required: [users_name, users_phone, password, passwordConfirm, users_picture]
|
|
|
|
|
|
description: "平台用户注册请求体;注册成功后将生成 GUID 并写入统一 `openid` 字段。"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
users_name:
|
|
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "用户姓名 / 昵称"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
example: 张三
|
|
|
|
|
|
users_phone:
|
|
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "手机号"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
example: 13800138000
|
|
|
|
|
|
password:
|
|
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "PocketBase 认证密码"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
example: 12345678
|
|
|
|
|
|
passwordConfirm:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
example: 12345678
|
|
|
|
|
|
users_picture:
|
|
|
|
|
|
type: string
|
2026-03-28 15:13:04 +08:00
|
|
|
|
description: "用户头像附件的 `attachments_id`"
|
|
|
|
|
|
example: ATT-1743123456789-abc123
|
2026-03-27 19:26:25 +08:00
|
|
|
|
users_id_number:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "证件号"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
2026-03-28 15:13:04 +08:00
|
|
|
|
users_id_pic_a:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "可选。证件正面附件的 `attachments_id`"
|
|
|
|
|
|
users_id_pic_b:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "可选。证件反面附件的 `attachments_id`"
|
|
|
|
|
|
users_title_picture:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "可选。资质附件的 `attachments_id`"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
users_level:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "用户等级文本"
|
|
|
|
|
|
type: string
|
|
|
|
|
|
users_tag:
|
|
|
|
|
|
description: "用户标签"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
users_type:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "用户类型"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
company_id:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "所属公司业务 ID"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
users_parent_id:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "上级用户业务 ID"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
users_promo_code:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "推广码"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
usergroups_id:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "用户组 / 角色 ID"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
PlatformLoginRequest:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required: [login_account, password]
|
|
|
|
|
|
description: "平台用户登录请求体;前端使用邮箱或手机号 + 密码提交,服务端内部转换为 PocketBase 原生 password auth。"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
login_account:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "支持邮箱或手机号"
|
|
|
|
|
|
example: admin@example.com
|
|
|
|
|
|
password:
|
|
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "PocketBase 认证密码"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
example: 12345678
|
|
|
|
|
|
SystemRefreshTokenRequest:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
description: |
|
|
|
|
|
|
系统刷新 token 请求体。
|
|
|
|
|
|
`users_wx_code` 允许为空。
|
|
|
|
|
|
当 `Authorization` 对应 token 有效时,可不传或传空;
|
|
|
|
|
|
当 token 失效时,需提供 `users_wx_code` 走微信 code 重新签发流程。
|
|
|
|
|
|
properties:
|
|
|
|
|
|
users_wx_code:
|
|
|
|
|
|
type:
|
|
|
|
|
|
- string
|
|
|
|
|
|
- 'null'
|
|
|
|
|
|
description: "微信小程序登录临时凭证 code"
|
|
|
|
|
|
example: 0a1b2c3d4e5f6g
|
|
|
|
|
|
RefreshTokenData:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties: {}
|
|
|
|
|
|
DictionaryItem:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required: [enum, description, sortOrder]
|
|
|
|
|
|
properties:
|
|
|
|
|
|
enum:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
example: enabled
|
|
|
|
|
|
description:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
example: 启用
|
|
|
|
|
|
image:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "对应图片附件的 `attachments_id`,允许为空"
|
|
|
|
|
|
example: ATT-1743037200000-abc123
|
|
|
|
|
|
imageUrl:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "根据 `image -> tbl_attachments` 自动解析出的图片文件流链接"
|
|
|
|
|
|
imageAttachment:
|
|
|
|
|
|
anyOf:
|
|
|
|
|
|
- $ref: '#/components/schemas/AttachmentRecord'
|
|
|
|
|
|
- type: 'null'
|
|
|
|
|
|
sortOrder:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
type: [integer, string]
|
2026-03-27 19:26:25 +08:00
|
|
|
|
example: 1
|
2026-03-29 16:21:34 +08:00
|
|
|
|
example:
|
|
|
|
|
|
enum: 枚举值 | string
|
|
|
|
|
|
description: 枚举描述 | string
|
|
|
|
|
|
image: 图片附件ID | string
|
|
|
|
|
|
imageUrl: 图片文件流链接 | string
|
|
|
|
|
|
imageAttachment:
|
|
|
|
|
|
attachments_id: 附件业务ID | string
|
|
|
|
|
|
attachments_filename: 原始文件名 | string
|
|
|
|
|
|
sortOrder: 排序值 | integer
|
2026-03-27 19:26:25 +08:00
|
|
|
|
DictionaryRecord:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
pb_id:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "PocketBase 记录主键 id"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
system_dict_id:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "字典业务 ID"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
dict_name:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "字典名称,当前按全局唯一维护"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
dict_word_is_enabled:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "字典是否启用"
|
|
|
|
|
|
type: [boolean, string]
|
2026-03-27 19:26:25 +08:00
|
|
|
|
dict_word_parent_id:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "父级字典业务 ID"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
dict_word_remark:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "备注"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
items:
|
|
|
|
|
|
type: array
|
|
|
|
|
|
items:
|
|
|
|
|
|
$ref: '#/components/schemas/DictionaryItem'
|
|
|
|
|
|
created:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "记录创建时间"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
updated:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "记录更新时间"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
example:
|
|
|
|
|
|
pb_id: PocketBase记录主键id | string
|
|
|
|
|
|
system_dict_id: 字典业务ID | string
|
|
|
|
|
|
dict_name: 字典名称 | string
|
|
|
|
|
|
dict_word_is_enabled: 字典是否启用 | boolean
|
|
|
|
|
|
dict_word_parent_id: 父级字典业务ID | string
|
|
|
|
|
|
dict_word_remark: 备注 | string
|
|
|
|
|
|
items:
|
|
|
|
|
|
- enum: UT1
|
|
|
|
|
|
description: 枚举描述 | string
|
|
|
|
|
|
image: 图片附件ID | string
|
|
|
|
|
|
imageUrl: 图片文件流链接 | string
|
|
|
|
|
|
sortOrder: 排序值 | integer
|
|
|
|
|
|
created: 记录创建时间 | string
|
|
|
|
|
|
updated: 记录更新时间 | string
|
2026-03-27 19:26:25 +08:00
|
|
|
|
DictionaryListRequest:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
keyword:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "对 `dict_name` 的模糊搜索关键字"
|
|
|
|
|
|
example: 状态
|
|
|
|
|
|
DictionaryDetailRequest:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required: [dict_name]
|
|
|
|
|
|
properties:
|
|
|
|
|
|
dict_name:
|
|
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "字典名称,当前按全局唯一维护"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
example: 用户状态
|
|
|
|
|
|
DictionaryMutationRequest:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required: [dict_name, items]
|
|
|
|
|
|
properties:
|
|
|
|
|
|
original_dict_name:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "更新时用于定位原始记录;新增时可不传"
|
|
|
|
|
|
example: 用户状态
|
|
|
|
|
|
dict_name:
|
|
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "字典名称,当前按全局唯一维护"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
example: 用户状态
|
|
|
|
|
|
dict_word_is_enabled:
|
|
|
|
|
|
type: boolean
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "字典是否启用"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
example: true
|
|
|
|
|
|
dict_word_parent_id:
|
|
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "父级字典业务 ID"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
example: ''
|
|
|
|
|
|
dict_word_remark:
|
|
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "备注"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
example: 系统状态字典
|
|
|
|
|
|
items:
|
|
|
|
|
|
type: array
|
|
|
|
|
|
minItems: 1
|
|
|
|
|
|
description: "每项会分别序列化写入 `dict_word_enum`、`dict_word_description`、`dict_word_image`、`dict_word_sort_order`"
|
|
|
|
|
|
items:
|
|
|
|
|
|
$ref: '#/components/schemas/DictionaryItem'
|
|
|
|
|
|
DictionaryDeleteRequest:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required: [dict_name]
|
|
|
|
|
|
properties:
|
|
|
|
|
|
dict_name:
|
|
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "字典名称,当前按全局唯一维护"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
example: 用户状态
|
|
|
|
|
|
AttachmentRecord:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
pb_id:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "PocketBase 记录主键 id"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
attachments_id:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "附件业务 ID"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
attachments_link:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "PocketBase 实际存储的文件名"
|
|
|
|
|
|
attachments_url:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "附件文件流访问链接"
|
|
|
|
|
|
attachments_download_url:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "附件下载链接"
|
|
|
|
|
|
attachments_filename:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "原始文件名"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
attachments_filetype:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "文件类型 / MIME"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
attachments_size:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "文件大小"
|
|
|
|
|
|
type: [number, string]
|
2026-03-27 19:26:25 +08:00
|
|
|
|
attachments_owner:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "上传者业务标识"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
attachments_md5:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "文件 MD5"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
attachments_ocr:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "OCR 识别结果"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
attachments_status:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "附件状态"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
attachments_remark:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "备注"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
created:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "记录创建时间"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
updated:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "记录更新时间"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
example:
|
|
|
|
|
|
pb_id: PocketBase记录主键id | string
|
|
|
|
|
|
attachments_id: 附件业务ID | string
|
|
|
|
|
|
attachments_link: PocketBase实际存储文件名 | string
|
|
|
|
|
|
attachments_url: 附件文件流访问链接 | string
|
|
|
|
|
|
attachments_download_url: 附件下载链接 | string
|
|
|
|
|
|
attachments_filename: 原始文件名 | string
|
|
|
|
|
|
attachments_filetype: 文件类型或MIME | string
|
|
|
|
|
|
attachments_size: 文件大小 | number
|
|
|
|
|
|
attachments_owner: 上传者业务标识 | string
|
|
|
|
|
|
attachments_md5: 文件MD5 | string
|
|
|
|
|
|
attachments_ocr: OCR识别结果 | string
|
|
|
|
|
|
attachments_status: 附件状态 | string
|
|
|
|
|
|
attachments_remark: 备注 | string
|
|
|
|
|
|
created: 记录创建时间 | string
|
|
|
|
|
|
updated: 记录更新时间 | string
|
2026-03-27 19:26:25 +08:00
|
|
|
|
AttachmentListRequest:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
keyword:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "对 `attachments_id`、`attachments_filename` 的模糊搜索关键字"
|
|
|
|
|
|
example: 手册
|
|
|
|
|
|
status:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "按附件状态过滤"
|
|
|
|
|
|
example: active
|
|
|
|
|
|
AttachmentDetailRequest:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required: [attachments_id]
|
|
|
|
|
|
properties:
|
|
|
|
|
|
attachments_id:
|
|
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "附件业务 ID"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
example: ATT-1743037200000-abc123
|
|
|
|
|
|
AttachmentUploadRequest:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required: [attachments_link]
|
|
|
|
|
|
properties:
|
|
|
|
|
|
attachments_link:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
format: binary
|
|
|
|
|
|
description: "要上传到 `tbl_attachments` 的单个文件"
|
|
|
|
|
|
attachments_filename:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "原始文件名;不传时可由前端直接使用文件名"
|
|
|
|
|
|
attachments_filetype:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "文件 MIME 类型"
|
|
|
|
|
|
attachments_size:
|
|
|
|
|
|
type: number
|
|
|
|
|
|
description: "文件大小"
|
|
|
|
|
|
attachments_md5:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "文件 MD5"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
attachments_ocr:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "OCR 识别结果"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
attachments_status:
|
|
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "附件状态"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
example: active
|
|
|
|
|
|
attachments_remark:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "备注"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
DocumentRecord:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
pb_id:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "PocketBase 记录主键 id"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
document_id:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "文档业务 ID"
|
|
|
|
|
|
type: string
|
|
|
|
|
|
document_create:
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "文档创建时间,由数据库自动生成"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
document_effect_date:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "文档生效日期"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
document_expiry_date:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "文档到期日期"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
document_type:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "多选时按 `system_dict_id@dict_word_enum|...` 保存"
|
|
|
|
|
|
document_title:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "文档标题"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
document_subtitle:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "文档副标题"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
document_summary:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "文档摘要"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
document_content:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "正文内容,保存 Markdown"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
document_image:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "关联多个 `attachments_id`,底层使用 `|` 分隔保存"
|
|
|
|
|
|
document_image_ids:
|
|
|
|
|
|
type: array
|
|
|
|
|
|
description: "`document_image` 解析后的附件 id 列表"
|
|
|
|
|
|
items:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
document_image_urls:
|
|
|
|
|
|
type: array
|
|
|
|
|
|
description: "根据 `document_image -> tbl_attachments` 自动解析出的图片文件流链接列表"
|
|
|
|
|
|
items:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
document_image_url:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "兼容字段,返回第一张图片的文件流链接"
|
|
|
|
|
|
document_image_attachments:
|
|
|
|
|
|
type: array
|
|
|
|
|
|
items:
|
|
|
|
|
|
$ref: '#/components/schemas/AttachmentRecord'
|
|
|
|
|
|
document_image_attachment:
|
|
|
|
|
|
anyOf:
|
|
|
|
|
|
- $ref: '#/components/schemas/AttachmentRecord'
|
|
|
|
|
|
- type: 'null'
|
|
|
|
|
|
document_video:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "关联多个 `attachments_id`,底层使用 `|` 分隔保存"
|
|
|
|
|
|
document_video_ids:
|
|
|
|
|
|
type: array
|
|
|
|
|
|
description: "`document_video` 解析后的附件 id 列表"
|
|
|
|
|
|
items:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
document_video_urls:
|
|
|
|
|
|
type: array
|
|
|
|
|
|
description: "根据 `document_video -> tbl_attachments` 自动解析出的视频文件流链接列表"
|
|
|
|
|
|
items:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
document_video_url:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "兼容字段,返回第一个视频的文件流链接"
|
|
|
|
|
|
document_video_attachments:
|
|
|
|
|
|
type: array
|
|
|
|
|
|
items:
|
|
|
|
|
|
$ref: '#/components/schemas/AttachmentRecord'
|
|
|
|
|
|
document_video_attachment:
|
|
|
|
|
|
anyOf:
|
|
|
|
|
|
- $ref: '#/components/schemas/AttachmentRecord'
|
|
|
|
|
|
- type: 'null'
|
2026-03-28 15:13:04 +08:00
|
|
|
|
document_file:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "关联多个 `attachments_id`,底层使用 `|` 分隔保存"
|
|
|
|
|
|
document_file_ids:
|
|
|
|
|
|
type: array
|
|
|
|
|
|
description: "`document_file` 解析后的附件 id 列表"
|
|
|
|
|
|
items:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
document_file_urls:
|
|
|
|
|
|
type: array
|
|
|
|
|
|
description: "根据 `document_file -> tbl_attachments` 自动解析出的文件流链接列表"
|
|
|
|
|
|
items:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
document_file_url:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "兼容字段,返回第一个文件的文件流链接"
|
|
|
|
|
|
document_file_attachments:
|
|
|
|
|
|
type: array
|
|
|
|
|
|
items:
|
|
|
|
|
|
$ref: '#/components/schemas/AttachmentRecord'
|
|
|
|
|
|
document_file_attachment:
|
|
|
|
|
|
anyOf:
|
|
|
|
|
|
- $ref: '#/components/schemas/AttachmentRecord'
|
|
|
|
|
|
- type: 'null'
|
2026-03-27 19:26:25 +08:00
|
|
|
|
document_owner:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "上传者 openid"
|
|
|
|
|
|
document_relation_model:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "关联机型 / 模型标识"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
document_keywords:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "固定字典多选字段,使用 `|` 分隔"
|
|
|
|
|
|
document_share_count:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "分享次数"
|
|
|
|
|
|
type: [number, string]
|
2026-03-27 19:26:25 +08:00
|
|
|
|
document_download_count:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "下载次数"
|
|
|
|
|
|
type: [number, string]
|
2026-03-27 19:26:25 +08:00
|
|
|
|
document_favorite_count:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "收藏次数"
|
|
|
|
|
|
type: [number, string]
|
2026-03-27 19:26:25 +08:00
|
|
|
|
document_status:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "文档状态,仅允许 `有效` 或 `过期`,由系统根据生效日期和到期日期自动计算;当两者都为空时默认 `有效`"
|
|
|
|
|
|
document_embedding_status:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "文档嵌入状态"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
document_embedding_error:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "文档嵌入错误原因"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
document_embedding_lasttime:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "最后一次嵌入更新时间"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
document_vector_version:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "向量版本号 / 模型名称"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
document_product_categories:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "固定字典多选字段,使用 `|` 分隔"
|
|
|
|
|
|
document_application_scenarios:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "固定字典多选字段,使用 `|` 分隔"
|
|
|
|
|
|
document_hotel_type:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "固定字典多选字段,使用 `|` 分隔"
|
|
|
|
|
|
document_remark:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "备注"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
created:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "记录创建时间"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
updated:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "记录更新时间"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
example:
|
|
|
|
|
|
pb_id: PocketBase记录主键id | string
|
|
|
|
|
|
document_id: 文档业务ID | string
|
|
|
|
|
|
document_create: 文档创建时间,由数据库自动生成 | string
|
|
|
|
|
|
document_effect_date: 文档生效日期 | string
|
|
|
|
|
|
document_expiry_date: 文档到期日期 | string
|
|
|
|
|
|
document_type: 文档类型,按system_dict_id@dict_word_enum保存 | string
|
|
|
|
|
|
document_title: 文档标题 | string
|
|
|
|
|
|
document_subtitle: 文档副标题 | string
|
|
|
|
|
|
document_summary: 文档摘要 | string
|
|
|
|
|
|
document_content: 正文内容Markdown | string
|
|
|
|
|
|
document_image: 图片附件ID列表,使用竖线分隔 | string
|
|
|
|
|
|
document_image_ids:
|
|
|
|
|
|
- 图片附件ID | string
|
|
|
|
|
|
document_image_urls:
|
|
|
|
|
|
- 图片文件流链接 | string
|
|
|
|
|
|
document_image_url: 第一张图片文件流链接 | string
|
|
|
|
|
|
document_video: 视频附件ID列表,使用竖线分隔 | string
|
|
|
|
|
|
document_video_ids:
|
|
|
|
|
|
- 视频附件ID | string
|
|
|
|
|
|
document_video_urls:
|
|
|
|
|
|
- 视频文件流链接 | string
|
|
|
|
|
|
document_video_url: 第一个视频文件流链接 | string
|
|
|
|
|
|
document_file: 文件附件ID列表,使用竖线分隔 | string
|
|
|
|
|
|
document_file_ids:
|
|
|
|
|
|
- 文件附件ID | string
|
|
|
|
|
|
document_file_urls:
|
|
|
|
|
|
- 文件流链接 | string
|
|
|
|
|
|
document_file_url: 第一个文件流链接 | string
|
|
|
|
|
|
document_owner: 上传者openid | string
|
|
|
|
|
|
document_relation_model: 关联机型或模型标识 | string
|
|
|
|
|
|
document_keywords: 关键词多选,使用竖线分隔 | string
|
|
|
|
|
|
document_share_count: 分享次数 | number
|
|
|
|
|
|
document_download_count: 下载次数 | number
|
|
|
|
|
|
document_favorite_count: 收藏次数 | number
|
|
|
|
|
|
document_status: 文档状态 | string
|
|
|
|
|
|
document_embedding_status: 文档嵌入状态 | string
|
|
|
|
|
|
document_embedding_error: 文档嵌入错误原因 | string
|
|
|
|
|
|
document_embedding_lasttime: 最后一次嵌入更新时间 | string
|
|
|
|
|
|
document_vector_version: 向量版本号或模型名称 | string
|
|
|
|
|
|
document_product_categories: 产品关联文档多选,使用竖线分隔 | string
|
|
|
|
|
|
document_application_scenarios: 筛选依据多选,使用竖线分隔 | string
|
|
|
|
|
|
document_hotel_type: 适用场景多选,使用竖线分隔 | string
|
|
|
|
|
|
document_remark: 备注 | string
|
|
|
|
|
|
created: 记录创建时间 | string
|
|
|
|
|
|
updated: 记录更新时间 | string
|
2026-03-27 19:26:25 +08:00
|
|
|
|
DocumentListRequest:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
keyword:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "对 `document_id`、`document_title`、`document_subtitle`、`document_summary`、`document_keywords` 的模糊搜索关键字"
|
|
|
|
|
|
example: 安装
|
|
|
|
|
|
status:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
example: active
|
|
|
|
|
|
document_type:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "支持按存储值过滤;多选时格式为 `system_dict_id@dict_word_enum|...`"
|
|
|
|
|
|
example: 说明书
|
|
|
|
|
|
DocumentDetailRequest:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required: [document_id]
|
|
|
|
|
|
properties:
|
|
|
|
|
|
document_id:
|
|
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "文档业务 ID"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
example: DOC-1743037200000-abc123
|
|
|
|
|
|
DocumentMutationRequest:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required: [document_title, document_type]
|
|
|
|
|
|
properties:
|
|
|
|
|
|
document_id:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "创建时可不传,由服务端自动生成;更新时必填"
|
|
|
|
|
|
example: DOC-1743037200000-abc123
|
|
|
|
|
|
document_effect_date:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "支持 `YYYY-MM-DD` 或 PocketBase 可识别日期时间字符串"
|
|
|
|
|
|
example: 2026-03-27
|
|
|
|
|
|
document_expiry_date:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "支持 `YYYY-MM-DD` 或 PocketBase 可识别日期时间字符串"
|
|
|
|
|
|
example: 2027-03-27
|
|
|
|
|
|
document_type:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "必填;前端显示为字典项描述,存库时按 `system_dict_id@dict_word_enum|...` 保存"
|
|
|
|
|
|
document_title:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "文档标题"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
document_subtitle:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "文档副标题"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
document_summary:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "文档摘要"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
document_content:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "正文内容,保存 Markdown"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
document_image:
|
|
|
|
|
|
oneOf:
|
|
|
|
|
|
- type: string
|
|
|
|
|
|
description: "多个图片附件 id 使用 `|` 分隔"
|
|
|
|
|
|
- type: array
|
|
|
|
|
|
items:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "图片附件 id 列表;支持数组或 `|` 分隔字符串"
|
|
|
|
|
|
document_video:
|
|
|
|
|
|
oneOf:
|
|
|
|
|
|
- type: string
|
|
|
|
|
|
description: "多个视频附件 id 使用 `|` 分隔"
|
|
|
|
|
|
- type: array
|
|
|
|
|
|
items:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "视频附件 id 列表;支持数组或 `|` 分隔字符串"
|
2026-03-28 15:13:04 +08:00
|
|
|
|
document_file:
|
|
|
|
|
|
oneOf:
|
|
|
|
|
|
- type: string
|
|
|
|
|
|
description: "多个文件附件 id 使用 `|` 分隔"
|
|
|
|
|
|
- type: array
|
|
|
|
|
|
items:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "文件附件 id 列表;支持数组或 `|` 分隔字符串"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
document_relation_model:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "关联机型 / 模型标识"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
document_keywords:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "从 `文档-关键词` 字典多选后使用 `|` 分隔保存"
|
|
|
|
|
|
document_share_count:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "分享次数"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: number
|
|
|
|
|
|
document_download_count:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "下载次数"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: number
|
|
|
|
|
|
document_favorite_count:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "收藏次数"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: number
|
|
|
|
|
|
document_status:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "文档状态,仅允许 `有效` 或 `过期`,由系统根据生效日期和到期日期自动计算;当两者都为空时默认 `有效`"
|
|
|
|
|
|
document_embedding_status:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "文档嵌入状态"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
document_embedding_error:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "文档嵌入错误原因"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
document_embedding_lasttime:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "最后一次嵌入更新时间"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
document_vector_version:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "向量版本号 / 模型名称"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
document_product_categories:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "从 `文档-产品关联文档` 字典多选后使用 `|` 分隔保存"
|
|
|
|
|
|
document_application_scenarios:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "从 `文档-筛选依据` 字典多选后使用 `|` 分隔保存"
|
|
|
|
|
|
document_hotel_type:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "从 `文档-适用场景` 字典多选后使用 `|` 分隔保存"
|
|
|
|
|
|
document_remark:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "备注"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
DocumentDeleteRequest:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required: [document_id]
|
|
|
|
|
|
properties:
|
|
|
|
|
|
document_id:
|
|
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "文档业务 ID"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
example: DOC-1743037200000-abc123
|
|
|
|
|
|
DocumentHistoryRecord:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
pb_id:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "PocketBase 记录主键 id"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
doh_id:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "文档操作历史业务 ID"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
doh_document_id:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "关联文档业务 ID"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
doh_operation_type:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "操作类型"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
doh_user_id:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "操作人业务 ID"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
doh_current_count:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "本次操作对应次数"
|
|
|
|
|
|
type: [number, string]
|
2026-03-27 19:26:25 +08:00
|
|
|
|
doh_remark:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "备注"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
created:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "记录创建时间"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
|
|
|
|
|
updated:
|
2026-03-29 16:21:34 +08:00
|
|
|
|
description: "记录更新时间"
|
2026-03-27 19:26:25 +08:00
|
|
|
|
type: string
|
2026-03-29 16:21:34 +08:00
|
|
|
|
example:
|
|
|
|
|
|
pb_id: PocketBase记录主键id | string
|
|
|
|
|
|
doh_id: 文档操作历史业务ID | string
|
|
|
|
|
|
doh_document_id: 关联文档业务ID | string
|
|
|
|
|
|
doh_operation_type: 操作类型 | string
|
|
|
|
|
|
doh_user_id: 操作人业务ID | string
|
|
|
|
|
|
doh_current_count: 本次操作对应次数 | number
|
|
|
|
|
|
doh_remark: 备注 | string
|
|
|
|
|
|
created: 记录创建时间 | string
|
|
|
|
|
|
updated: 记录更新时间 | string
|
2026-03-27 19:26:25 +08:00
|
|
|
|
DocumentHistoryListRequest:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
document_id:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: "可选;传入时仅查询指定文档的操作历史"
|
|
|
|
|
|
example: DOC-1743037200000-abc123
|
|
|
|
|
|
paths:
|
|
|
|
|
|
/pb/api/system/test-helloworld:
|
|
|
|
|
|
post:
|
|
|
|
|
|
tags: [系统]
|
|
|
|
|
|
summary: HelloWorld 测试接口
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: "成功"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
2026-03-29 19:57:04 +08:00
|
|
|
|
description: "业务响应数据"
|
|
|
|
|
|
$ref: '#/components/schemas/HelloWorldData'
|
2026-03-27 19:26:25 +08:00
|
|
|
|
/pb/api/system/health:
|
|
|
|
|
|
post:
|
|
|
|
|
|
tags: [系统]
|
|
|
|
|
|
summary: 健康检查
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: "成功"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
2026-03-29 19:57:04 +08:00
|
|
|
|
description: "业务响应数据"
|
|
|
|
|
|
$ref: '#/components/schemas/HealthData'
|
2026-03-27 19:26:25 +08:00
|
|
|
|
/pb/api/system/users-count:
|
|
|
|
|
|
post:
|
|
|
|
|
|
tags: [系统]
|
|
|
|
|
|
summary: 查询用户总数
|
|
|
|
|
|
description: "统计 `tbl_auth_users` 集合中的记录总数,并返回一个数值。"
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: "成功"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
2026-03-29 19:57:04 +08:00
|
|
|
|
description: "业务响应数据"
|
|
|
|
|
|
$ref: '#/components/schemas/UsersCountData'
|
2026-03-27 19:26:25 +08:00
|
|
|
|
/pb/api/platform/register:
|
|
|
|
|
|
post:
|
|
|
|
|
|
tags: [平台认证]
|
|
|
|
|
|
summary: 平台用户注册
|
|
|
|
|
|
description: |
|
|
|
|
|
|
创建平台用户 auth record。
|
|
|
|
|
|
服务端会自动生成 GUID 并写入统一身份字段 `openid`,同时写入 `users_idtype = ManagePlatform`。
|
|
|
|
|
|
前端以 `users_phone + password/passwordConfirm` 注册,但服务端仍会创建 PocketBase 原生 auth 用户。
|
2026-04-03 18:35:50 +08:00
|
|
|
|
首次注册创建时,`users_level` 默认保持为空,不自动写入会员等级。
|
2026-03-27 19:26:25 +08:00
|
|
|
|
注册成功后直接返回 PocketBase 原生 auth token。
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: true
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/PlatformRegisterRequest'
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: "注册成功"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/PocketBaseAuthResponse'
|
|
|
|
|
|
'400':
|
|
|
|
|
|
description: "参数错误或手机号已存在"
|
|
|
|
|
|
'500':
|
|
|
|
|
|
description: "GUID 生成失败、auth identity 缺失或保存用户失败"
|
|
|
|
|
|
'415':
|
|
|
|
|
|
description: "请求体必须为 application/json"
|
|
|
|
|
|
'429':
|
|
|
|
|
|
description: "重复请求过于频繁"
|
|
|
|
|
|
/pb/api/platform/login:
|
|
|
|
|
|
post:
|
|
|
|
|
|
tags: [平台认证]
|
|
|
|
|
|
summary: 平台用户登录
|
|
|
|
|
|
description: |
|
|
|
|
|
|
前端使用平台注册时保存的 `邮箱或手机号 + password` 登录。
|
|
|
|
|
|
仅允许 `users_idtype = ManagePlatform` 的用户通过该接口登录。
|
|
|
|
|
|
服务端会根据 `login_account` 自动判断邮箱或手机号,并定位平台用户,再使用该用户的 PocketBase 原生 identity(当前为 `email`)执行原生 password auth。
|
2026-04-03 18:35:50 +08:00
|
|
|
|
返回体中的 `user.users_level_name` 为服务端按“数据-会员等级”字典实时解析后的等级名称。
|
2026-03-27 19:26:25 +08:00
|
|
|
|
登录成功后直接返回 PocketBase 原生 auth token。
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: true
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/PlatformLoginRequest'
|
|
|
|
|
|
example:
|
|
|
|
|
|
login_account: 13509214696
|
|
|
|
|
|
password: Momo123456
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: "登录成功"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/PocketBaseAuthResponse'
|
|
|
|
|
|
example:
|
2026-03-29 19:57:04 +08:00
|
|
|
|
statusCode: 200
|
|
|
|
|
|
errMsg: 登录成功
|
2026-03-27 19:26:25 +08:00
|
|
|
|
data:
|
|
|
|
|
|
status: login_success
|
|
|
|
|
|
is_info_complete: false
|
|
|
|
|
|
user:
|
|
|
|
|
|
pb_id: vtukf6agem2xbcv
|
|
|
|
|
|
users_id: ''
|
|
|
|
|
|
users_idtype: ManagePlatform
|
|
|
|
|
|
users_name: momo
|
|
|
|
|
|
users_phone: '13509214696'
|
|
|
|
|
|
users_phone_masked: '135****4696'
|
|
|
|
|
|
users_status: ''
|
|
|
|
|
|
users_rank_level: 0
|
|
|
|
|
|
users_auth_type: 0
|
|
|
|
|
|
users_type: ''
|
|
|
|
|
|
users_picture: ''
|
|
|
|
|
|
openid: app_momo
|
|
|
|
|
|
company_id: ''
|
|
|
|
|
|
users_parent_id: ''
|
|
|
|
|
|
users_promo_code: ''
|
|
|
|
|
|
usergroups_id: ''
|
|
|
|
|
|
company: null
|
|
|
|
|
|
created: ''
|
|
|
|
|
|
updated: ''
|
|
|
|
|
|
token: eyJhbGciOi...
|
|
|
|
|
|
'400':
|
|
|
|
|
|
description: "参数错误、密码错误或用户类型不匹配"
|
|
|
|
|
|
'404':
|
|
|
|
|
|
description: "平台用户不存在"
|
|
|
|
|
|
'500':
|
|
|
|
|
|
description: "平台用户缺少原生登录 identity 或服务端内部错误"
|
|
|
|
|
|
'415':
|
|
|
|
|
|
description: "请求体必须为 application/json"
|
|
|
|
|
|
'429':
|
|
|
|
|
|
description: "重复请求过于频繁"
|
|
|
|
|
|
/pb/api/dictionary/list:
|
|
|
|
|
|
post:
|
|
|
|
|
|
tags: [字典管理]
|
|
|
|
|
|
summary: 查询字典列表
|
|
|
|
|
|
description: |
|
2026-03-29 16:21:34 +08:00
|
|
|
|
公开读接口,无需 token。
|
2026-03-27 19:26:25 +08:00
|
|
|
|
支持按 `dict_name` 模糊搜索,返回字典全量信息,并将三个聚合字段组装为 `items`。
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: false
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/DictionaryListRequest'
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: "查询成功"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
2026-03-29 19:57:04 +08:00
|
|
|
|
description: "业务响应数据"
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
items:
|
|
|
|
|
|
type: array
|
|
|
|
|
|
items:
|
|
|
|
|
|
$ref: '#/components/schemas/DictionaryRecord'
|
2026-03-27 19:26:25 +08:00
|
|
|
|
'415':
|
|
|
|
|
|
description: "请求体必须为 application/json"
|
|
|
|
|
|
/pb/api/dictionary/detail:
|
|
|
|
|
|
post:
|
|
|
|
|
|
tags: [字典管理]
|
|
|
|
|
|
summary: 查询指定字典
|
|
|
|
|
|
description: |
|
2026-03-29 16:21:34 +08:00
|
|
|
|
公开读接口,无需 token。
|
2026-03-27 19:26:25 +08:00
|
|
|
|
按唯一键 `dict_name` 查询单条字典,并返回组装后的 `items`。
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: true
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/DictionaryDetailRequest'
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: "查询成功"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
2026-03-29 19:57:04 +08:00
|
|
|
|
description: "业务响应数据"
|
|
|
|
|
|
$ref: '#/components/schemas/DictionaryRecord'
|
2026-03-27 19:26:25 +08:00
|
|
|
|
'400':
|
|
|
|
|
|
description: "参数错误"
|
|
|
|
|
|
'404':
|
|
|
|
|
|
description: "未找到对应字典"
|
|
|
|
|
|
'415':
|
|
|
|
|
|
description: "请求体必须为 application/json"
|
|
|
|
|
|
/pb/api/dictionary/create:
|
|
|
|
|
|
post:
|
|
|
|
|
|
tags: [字典管理]
|
|
|
|
|
|
summary: 新增字典
|
|
|
|
|
|
description: |
|
|
|
|
|
|
仅允许 `ManagePlatform` 用户访问。
|
|
|
|
|
|
`system_dict_id` 由服务端自动生成;`dict_name` 必须唯一;
|
|
|
|
|
|
`items` 会分别序列化写入 `dict_word_enum`、`dict_word_description`、`dict_word_image`、`dict_word_sort_order` 四个字段。
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: true
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/DictionaryMutationRequest'
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: "新增成功"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
2026-03-29 19:57:04 +08:00
|
|
|
|
description: "业务响应数据"
|
|
|
|
|
|
$ref: '#/components/schemas/DictionaryRecord'
|
2026-03-27 19:26:25 +08:00
|
|
|
|
'400':
|
|
|
|
|
|
description: "参数错误或 dict_name 已存在"
|
|
|
|
|
|
'401':
|
|
|
|
|
|
description: "token 无效或已过期"
|
|
|
|
|
|
'403':
|
|
|
|
|
|
description: "非 ManagePlatform 用户无权访问"
|
|
|
|
|
|
'415':
|
|
|
|
|
|
description: "请求体必须为 application/json"
|
|
|
|
|
|
'429':
|
|
|
|
|
|
description: "重复请求过于频繁"
|
|
|
|
|
|
/pb/api/dictionary/update:
|
|
|
|
|
|
post:
|
|
|
|
|
|
tags: [字典管理]
|
|
|
|
|
|
summary: 修改字典
|
|
|
|
|
|
description: |
|
|
|
|
|
|
仅允许 `ManagePlatform` 用户访问。
|
|
|
|
|
|
根据 `original_dict_name`(未传时回退为 `dict_name`)定位原记录并更新。
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: true
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/DictionaryMutationRequest'
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: "修改成功"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
2026-03-29 19:57:04 +08:00
|
|
|
|
description: "业务响应数据"
|
|
|
|
|
|
$ref: '#/components/schemas/DictionaryRecord'
|
2026-03-27 19:26:25 +08:00
|
|
|
|
'400':
|
|
|
|
|
|
description: "参数错误或 dict_name 冲突"
|
|
|
|
|
|
'401':
|
|
|
|
|
|
description: "token 无效或已过期"
|
|
|
|
|
|
'403':
|
|
|
|
|
|
description: "非 ManagePlatform 用户无权访问"
|
|
|
|
|
|
'404':
|
|
|
|
|
|
description: "未找到待修改字典"
|
|
|
|
|
|
'415':
|
|
|
|
|
|
description: "请求体必须为 application/json"
|
|
|
|
|
|
'429':
|
|
|
|
|
|
description: "重复请求过于频繁"
|
|
|
|
|
|
/pb/api/dictionary/delete:
|
|
|
|
|
|
post:
|
|
|
|
|
|
tags: [字典管理]
|
|
|
|
|
|
summary: 删除字典
|
|
|
|
|
|
description: |
|
|
|
|
|
|
仅允许 `ManagePlatform` 用户访问。
|
|
|
|
|
|
按 `dict_name` 真删除对应记录。
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: true
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/DictionaryDeleteRequest'
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: "删除成功"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
2026-03-29 19:57:04 +08:00
|
|
|
|
description: "业务响应数据"
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
dict_name:
|
|
|
|
|
|
description: "字典名称,当前按全局唯一维护"
|
|
|
|
|
|
type: string
|
2026-03-27 19:26:25 +08:00
|
|
|
|
'400':
|
|
|
|
|
|
description: "参数错误或删除失败"
|
|
|
|
|
|
'401':
|
|
|
|
|
|
description: "token 无效或已过期"
|
|
|
|
|
|
'403':
|
|
|
|
|
|
description: "非 ManagePlatform 用户无权访问"
|
|
|
|
|
|
'404':
|
|
|
|
|
|
description: "未找到待删除字典"
|
|
|
|
|
|
'415':
|
|
|
|
|
|
description: "请求体必须为 application/json"
|
|
|
|
|
|
'429':
|
|
|
|
|
|
description: "重复请求过于频繁"
|
|
|
|
|
|
/pb/api/attachment/list:
|
|
|
|
|
|
post:
|
|
|
|
|
|
tags: [附件管理]
|
|
|
|
|
|
summary: 查询附件列表
|
|
|
|
|
|
description: |
|
|
|
|
|
|
仅允许 `ManagePlatform` 用户访问。
|
|
|
|
|
|
支持按 `attachments_id`、`attachments_filename` 模糊搜索,并可按 `attachments_status` 过滤。
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: false
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/AttachmentListRequest'
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: "查询成功"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
2026-03-29 19:57:04 +08:00
|
|
|
|
description: "业务响应数据"
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
items:
|
|
|
|
|
|
type: array
|
|
|
|
|
|
items:
|
|
|
|
|
|
$ref: '#/components/schemas/AttachmentRecord'
|
2026-03-27 19:26:25 +08:00
|
|
|
|
'401':
|
|
|
|
|
|
description: "token 无效或已过期"
|
|
|
|
|
|
'403':
|
|
|
|
|
|
description: "非 ManagePlatform 用户无权访问"
|
|
|
|
|
|
'415':
|
|
|
|
|
|
description: "请求体必须为 application/json"
|
|
|
|
|
|
/pb/api/attachment/detail:
|
|
|
|
|
|
post:
|
|
|
|
|
|
tags: [附件管理]
|
|
|
|
|
|
summary: 查询附件详情
|
|
|
|
|
|
description: |
|
|
|
|
|
|
仅允许 `ManagePlatform` 用户访问。
|
|
|
|
|
|
按 `attachments_id` 查询单条附件,并返回 PocketBase 文件流链接与下载链接。
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: true
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/AttachmentDetailRequest'
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: "查询成功"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
2026-03-29 19:57:04 +08:00
|
|
|
|
description: "业务响应数据"
|
|
|
|
|
|
$ref: '#/components/schemas/AttachmentRecord'
|
2026-03-27 19:26:25 +08:00
|
|
|
|
'400':
|
|
|
|
|
|
description: "参数错误"
|
|
|
|
|
|
'401':
|
|
|
|
|
|
description: "token 无效或已过期"
|
|
|
|
|
|
'403':
|
|
|
|
|
|
description: "非 ManagePlatform 用户无权访问"
|
|
|
|
|
|
'404':
|
|
|
|
|
|
description: "未找到对应附件"
|
|
|
|
|
|
'415':
|
|
|
|
|
|
description: "请求体必须为 application/json"
|
|
|
|
|
|
/pb/api/attachment/upload:
|
|
|
|
|
|
post:
|
|
|
|
|
|
tags: [附件管理]
|
|
|
|
|
|
summary: 上传附件
|
|
|
|
|
|
description: |
|
|
|
|
|
|
仅允许 `ManagePlatform` 用户访问。
|
|
|
|
|
|
使用 `multipart/form-data` 上传单个文件到 `tbl_attachments`,服务端会自动生成 `attachments_id`,
|
|
|
|
|
|
并返回可直接访问的 PocketBase 文件流链接。
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: true
|
|
|
|
|
|
content:
|
|
|
|
|
|
multipart/form-data:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/AttachmentUploadRequest'
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: "上传成功"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
2026-03-29 19:57:04 +08:00
|
|
|
|
description: "业务响应数据"
|
|
|
|
|
|
$ref: '#/components/schemas/AttachmentRecord'
|
2026-03-27 19:26:25 +08:00
|
|
|
|
'400':
|
|
|
|
|
|
description: "参数错误、缺少文件或附件保存失败"
|
|
|
|
|
|
'401':
|
|
|
|
|
|
description: "token 无效或已过期"
|
|
|
|
|
|
'403':
|
|
|
|
|
|
description: "非 ManagePlatform 用户无权访问"
|
|
|
|
|
|
/pb/api/attachment/delete:
|
|
|
|
|
|
post:
|
|
|
|
|
|
tags: [附件管理]
|
|
|
|
|
|
summary: 删除附件
|
|
|
|
|
|
description: |
|
|
|
|
|
|
仅允许 `ManagePlatform` 用户访问。
|
2026-03-28 15:13:04 +08:00
|
|
|
|
按 `attachments_id` 真删除附件;若附件已被 `tbl_document.document_image`、`document_video` 或 `document_file` 引用,则拒绝删除。
|
2026-03-27 19:26:25 +08:00
|
|
|
|
requestBody:
|
|
|
|
|
|
required: true
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/AttachmentDetailRequest'
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: "删除成功"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
2026-03-29 19:57:04 +08:00
|
|
|
|
description: "业务响应数据"
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
attachments_id:
|
|
|
|
|
|
description: "附件业务 ID"
|
|
|
|
|
|
type: string
|
2026-03-27 19:26:25 +08:00
|
|
|
|
'400':
|
|
|
|
|
|
description: "参数错误、附件已被文档引用或删除失败"
|
|
|
|
|
|
'401':
|
|
|
|
|
|
description: "token 无效或已过期"
|
|
|
|
|
|
'403':
|
|
|
|
|
|
description: "非 ManagePlatform 用户无权访问"
|
|
|
|
|
|
'404':
|
|
|
|
|
|
description: "未找到待删除附件"
|
|
|
|
|
|
'415':
|
|
|
|
|
|
description: "请求体必须为 application/json"
|
|
|
|
|
|
'429':
|
|
|
|
|
|
description: "重复请求过于频繁"
|
|
|
|
|
|
/pb/api/document/list:
|
|
|
|
|
|
post:
|
|
|
|
|
|
tags: [文档管理]
|
|
|
|
|
|
summary: 查询文档列表
|
|
|
|
|
|
description: |
|
|
|
|
|
|
仅允许 `ManagePlatform` 用户访问。
|
|
|
|
|
|
支持按标题、摘要、关键词等字段模糊搜索,并可按 `document_status`、`document_type` 过滤。
|
2026-03-28 15:13:04 +08:00
|
|
|
|
返回结果会自动根据 `document_image`、`document_video`、`document_file` 中的多个 `attachments_id` 关联 `tbl_attachments`,
|
|
|
|
|
|
额外补充 `document_image_urls`、`document_video_urls`、`document_file_urls` 以及对应附件对象数组。
|
2026-03-27 19:26:25 +08:00
|
|
|
|
requestBody:
|
|
|
|
|
|
required: false
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/DocumentListRequest'
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: "查询成功"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
2026-03-29 19:57:04 +08:00
|
|
|
|
description: "业务响应数据"
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
items:
|
|
|
|
|
|
type: array
|
|
|
|
|
|
items:
|
|
|
|
|
|
$ref: '#/components/schemas/DocumentRecord'
|
2026-03-27 19:26:25 +08:00
|
|
|
|
'401':
|
|
|
|
|
|
description: "token 无效或已过期"
|
|
|
|
|
|
'403':
|
|
|
|
|
|
description: "非 ManagePlatform 用户无权访问"
|
|
|
|
|
|
'415':
|
|
|
|
|
|
description: "请求体必须为 application/json"
|
|
|
|
|
|
/pb/api/document/detail:
|
|
|
|
|
|
post:
|
|
|
|
|
|
tags: [文档管理]
|
|
|
|
|
|
summary: 查询文档详情
|
|
|
|
|
|
description: |
|
|
|
|
|
|
仅允许 `ManagePlatform` 用户访问。
|
|
|
|
|
|
按 `document_id` 查询单条文档,并返回与附件表联动解析后的多文件流链接。
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: true
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/DocumentDetailRequest'
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: "查询成功"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
2026-03-29 19:57:04 +08:00
|
|
|
|
description: "业务响应数据"
|
|
|
|
|
|
$ref: '#/components/schemas/DocumentRecord'
|
2026-03-27 19:26:25 +08:00
|
|
|
|
'400':
|
|
|
|
|
|
description: "参数错误"
|
|
|
|
|
|
'401':
|
|
|
|
|
|
description: "token 无效或已过期"
|
|
|
|
|
|
'403':
|
|
|
|
|
|
description: "非 ManagePlatform 用户无权访问"
|
|
|
|
|
|
'404':
|
|
|
|
|
|
description: "未找到对应文档"
|
|
|
|
|
|
'415':
|
|
|
|
|
|
description: "请求体必须为 application/json"
|
|
|
|
|
|
/pb/api/document/create:
|
|
|
|
|
|
post:
|
|
|
|
|
|
tags: [文档管理]
|
|
|
|
|
|
summary: 新增文档
|
|
|
|
|
|
description: |
|
|
|
|
|
|
仅允许 `ManagePlatform` 用户访问。
|
|
|
|
|
|
`document_id` 可选;未传时服务端自动生成。
|
|
|
|
|
|
`document_title`、`document_type` 为必填;其余字段均允许为空。
|
2026-03-28 15:13:04 +08:00
|
|
|
|
`document_image`、`document_video`、`document_file` 支持传入多个已存在于 `tbl_attachments` 的 `attachments_id`。
|
2026-03-27 19:26:25 +08:00
|
|
|
|
成功后会同步写入一条 `tbl_document_operation_history`,操作类型为 `create`。
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: true
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/DocumentMutationRequest'
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: "新增成功"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
2026-03-29 19:57:04 +08:00
|
|
|
|
description: "业务响应数据"
|
|
|
|
|
|
$ref: '#/components/schemas/DocumentRecord'
|
2026-03-27 19:26:25 +08:00
|
|
|
|
'400':
|
|
|
|
|
|
description: "参数错误、附件不存在或文档创建失败"
|
|
|
|
|
|
'401':
|
|
|
|
|
|
description: "token 无效或已过期"
|
|
|
|
|
|
'403':
|
|
|
|
|
|
description: "非 ManagePlatform 用户无权访问"
|
|
|
|
|
|
'415':
|
|
|
|
|
|
description: "请求体必须为 application/json"
|
|
|
|
|
|
'429':
|
|
|
|
|
|
description: "重复请求过于频繁"
|
|
|
|
|
|
/pb/api/document/update:
|
|
|
|
|
|
post:
|
|
|
|
|
|
tags: [文档管理]
|
|
|
|
|
|
summary: 修改文档
|
|
|
|
|
|
description: |
|
|
|
|
|
|
仅允许 `ManagePlatform` 用户访问。
|
|
|
|
|
|
按 `document_id` 定位现有文档并更新。
|
|
|
|
|
|
`document_title`、`document_type` 为必填;其余字段均允许为空。
|
2026-03-28 15:13:04 +08:00
|
|
|
|
若传入 `document_image`、`document_video`、`document_file`,则支持多个 `attachments_id`,并会逐一校验是否存在。
|
2026-03-27 19:26:25 +08:00
|
|
|
|
成功后会同步写入一条 `tbl_document_operation_history`,操作类型为 `update`。
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: true
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/DocumentMutationRequest'
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: "修改成功"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
2026-03-29 19:57:04 +08:00
|
|
|
|
description: "业务响应数据"
|
|
|
|
|
|
$ref: '#/components/schemas/DocumentRecord'
|
2026-03-27 19:26:25 +08:00
|
|
|
|
'400':
|
|
|
|
|
|
description: "参数错误、附件不存在或修改失败"
|
|
|
|
|
|
'401':
|
|
|
|
|
|
description: "token 无效或已过期"
|
|
|
|
|
|
'403':
|
|
|
|
|
|
description: "非 ManagePlatform 用户无权访问"
|
|
|
|
|
|
'404':
|
|
|
|
|
|
description: "未找到待修改文档"
|
|
|
|
|
|
'415':
|
|
|
|
|
|
description: "请求体必须为 application/json"
|
|
|
|
|
|
'429':
|
|
|
|
|
|
description: "重复请求过于频繁"
|
|
|
|
|
|
/pb/api/document/delete:
|
|
|
|
|
|
post:
|
|
|
|
|
|
tags: [文档管理]
|
|
|
|
|
|
summary: 删除文档
|
|
|
|
|
|
description: |
|
|
|
|
|
|
仅允许 `ManagePlatform` 用户访问。
|
|
|
|
|
|
按 `document_id` 真删除文档,并在删除前同步写入一条 `tbl_document_operation_history`,操作类型为 `delete`。
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: true
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/DocumentDeleteRequest'
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: "删除成功"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
2026-03-29 19:57:04 +08:00
|
|
|
|
description: "业务响应数据"
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
document_id:
|
|
|
|
|
|
description: "文档业务 ID"
|
|
|
|
|
|
type: string
|
2026-03-27 19:26:25 +08:00
|
|
|
|
'400':
|
|
|
|
|
|
description: "参数错误或删除失败"
|
|
|
|
|
|
'401':
|
|
|
|
|
|
description: "token 无效或已过期"
|
|
|
|
|
|
'403':
|
|
|
|
|
|
description: "非 ManagePlatform 用户无权访问"
|
|
|
|
|
|
'404':
|
|
|
|
|
|
description: "未找到待删除文档"
|
|
|
|
|
|
'415':
|
|
|
|
|
|
description: "请求体必须为 application/json"
|
|
|
|
|
|
'429':
|
|
|
|
|
|
description: "重复请求过于频繁"
|
|
|
|
|
|
/pb/api/document-history/list:
|
|
|
|
|
|
post:
|
|
|
|
|
|
tags: [文档历史]
|
|
|
|
|
|
summary: 查询文档操作历史
|
|
|
|
|
|
description: |
|
|
|
|
|
|
仅允许 `ManagePlatform` 用户访问。
|
|
|
|
|
|
若 body 传入 `document_id`,则仅查询该文档的历史;否则返回全部文档操作历史,按创建时间倒序排列。
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: false
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/DocumentHistoryListRequest'
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: "查询成功"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
2026-03-29 19:57:04 +08:00
|
|
|
|
description: "业务响应数据"
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
items:
|
|
|
|
|
|
type: array
|
|
|
|
|
|
items:
|
|
|
|
|
|
$ref: '#/components/schemas/DocumentHistoryRecord'
|
2026-03-27 19:26:25 +08:00
|
|
|
|
'401':
|
|
|
|
|
|
description: "token 无效或已过期"
|
|
|
|
|
|
'403':
|
|
|
|
|
|
description: "非 ManagePlatform 用户无权访问"
|
|
|
|
|
|
'415':
|
|
|
|
|
|
description: "请求体必须为 application/json"
|