Files
Web_BAI_Manage_ApiServer/pocket-base/spec/openapi-wx.yaml

1936 lines
70 KiB
YAML
Raw Normal View History

openapi: 3.1.0
info:
title: BAI PocketBase WeChat API
version: 1.0.0-wx
description: |
面向微信端的小程序接口文档。
本文档只包含微信登录、微信资料完善,以及微信端会共用的系统接口。
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: 微信登录、资料完善与 token 刷新接口
- name: 企业信息
description: 通过 PocketBase 原生 records API 访问 `tbl_company`
- name: 附件信息
description: 通过 PocketBase 原生 records API 访问 `tbl_attachments`
- name: 文档信息
description: 通过 PocketBase 原生 records API 访问 `tbl_document`
paths:
/pb/api/system/users-count:
post:
operationId: postSystemUsersCount
security: []
tags:
- 系统
summary: 查询用户总数
description: 统计 `tbl_auth_users` 集合中的记录总数。
responses:
'200':
description: 查询成功
content:
application/json:
schema:
$ref: '#/components/schemas/UsersCountResponse'
'400':
description: 请求参数错误
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: 服务端错误
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/pb/api/system/refresh-token:
post:
operationId: postSystemRefreshToken
security:
- bearerAuth: []
- {}
tags:
- 系统
summary: 刷新认证 token
description: |
当当前 `Authorization` 仍有效时,直接基于当前 auth 用户续签。
当 token 失效时,可传入 `users_wx_code` 走微信 code 重新签发。
requestBody:
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/SystemRefreshTokenRequest'
responses:
'200':
description: 刷新成功
content:
application/json:
schema:
$ref: '#/components/schemas/RefreshTokenResponse'
'400':
description: 参数错误或微信 code 换取失败
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: token 无效,且未提供有效的 `users_wx_code`
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: 当前用户不存在
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'415':
description: 请求体不是 JSON
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'429':
description: 请求过于频繁
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: 服务端错误
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/pb/api/wechat/login:
post:
operationId: postWechatLogin
security: []
tags:
- 微信认证
summary: 微信登录或首次注册
description: |
使用微信 `users_wx_code` 换取微信 openid。
若 `tbl_auth_users` 中不存在对应用户,则自动创建新 auth 用户并返回 token。
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WechatLoginRequest'
responses:
'200':
description: 登录或注册成功
content:
application/json:
schema:
$ref: '#/components/schemas/AuthSuccessResponse'
'400':
description: 参数错误或保存用户失败
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: 认证失败
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'415':
description: 请求体不是 JSON
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'429':
description: 请求过于频繁
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: 服务端错误
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/pb/api/wechat/profile:
post:
operationId: postWechatProfile
security:
- bearerAuth: []
tags:
- 微信认证
summary: 更新微信用户资料
description: |
基于当前 `Authorization` 对应的 auth 用户按“非空字段增量更新”资料。
更新规则:
- 所有字段都不是必填
- 如果传了 `users_phone_code`,服务端优先调用微信接口换取真实手机号并写入 `users_phone`
- 如果没传 `users_phone_code`,但传了 `users_phone`,则直接将该手机号写入数据库
- 如果某个字段未传或传空,则不会清空数据库中的已有值
- 只有请求体里非空的字段才会更新到数据库
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WechatProfileRequest'
responses:
'200':
description: 更新成功
content:
application/json:
schema:
$ref: '#/components/schemas/WechatProfileResponse'
'400':
description: 参数错误、手机号已被占用、微信手机号换取失败或资料更新失败
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: token 无效或缺少 openid
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'415':
description: 请求体不是 JSON
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'429':
description: 请求过于频繁
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: 服务端错误
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/pb/api/collections/tbl_company/records:
post:
operationId: postPocketBaseCompanyRecord
security: []
tags:
- 企业信息
summary: 创建公司
description: |
使用 PocketBase 原生 records create 接口向 `tbl_company` 新增一行记录。
当前线上权限规则:
- `createRule = ""`,因此任何客户端都可直接创建
- 其他原生操作中,`update/delete/view` 仅管理员或管理后台用户允许
注意:
- 这是 PocketBase 原生返回结构,不是 hooks 统一 `{ code, msg, data }` 包装
- `company_id` 由数据库自动生成,客户端创建时不需要传
- `company_id` 仍带唯一索引,可用于后续按业务 id 查询
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PocketBaseCompanyCreateRequest'
examples:
default:
value:
company_name: 微信侧测试企业
company_type: 渠道商
company_entity: 张三
company_usci: '91310000123456789A'
company_nationality: 中国
company_nationality_code: CN
company_province: 上海
company_province_code: '310000'
company_city: 上海
company_city_code: '310100'
company_district: 浦东新区
company_district_code: '310115'
company_postalcode: '200000'
company_add: 上海市浦东新区XX路1号
company_status: 有效
company_level: A
company_owner_openid: wx-openid-owner-001
company_remark: 小程序公开创建示例
responses:
'200':
description: 创建成功
content:
application/json:
schema:
$ref: '#/components/schemas/PocketBaseCompanyRecord'
'400':
description: 参数错误或违反当前集合约束
content:
application/json:
schema:
$ref: '#/components/schemas/PocketBaseNativeError'
'403':
description: 集合规则被锁定或服务端权限设置异常
content:
application/json:
schema:
$ref: '#/components/schemas/PocketBaseNativeError'
'500':
description: 服务端错误
content:
application/json:
schema:
$ref: '#/components/schemas/PocketBaseNativeError'
get:
operationId: getPocketBaseCompanyRecords
security: []
tags:
- 企业信息
summary: 查询整个 tbl_company 列表 / 根据 company_id 查询对应公司信息
description: |
使用 PocketBase 原生 records list 接口查询 `tbl_company`。
当前线上权限规则:
- `listRule = ""`,因此当前整个列表查询与条件查询都公开可读
- `createRule = ""`,因此创建也公开可调用
- `view/update/delete` 仅管理员或管理后台用户允许
标准调用方式有两种:
1. 根据 `company_id` 查询对应公司信息:
- `filter=company_id="WX-COMPANY-10001"`
- `perPage=1`
- `page=1`
2. 查询整个 `tbl_company` 列表:
- 不传 `filter`
- 按需传 `page`、`perPage`
注意:
- 这是 PocketBase 原生返回结构,不是 hooks 统一 `{ code, msg, data }` 包装
- PocketBase 原生标准接口里,“按 `company_id` 查询单条”和“查询整个列表”共用同一个 `GET /records` 路径,因此文档以同一个 GET operation 展示两种调用模式
parameters:
- name: filter
in: query
required: false
description: |
PocketBase 标准过滤表达式。
- 根据 `company_id` 查询单条时:`company_id="WX-COMPANY-10001"`
- 查询整个列表时:不传该参数
schema:
type: string
example: company_id="WX-COMPANY-10001"
- name: page
in: query
required: false
description: 页码
schema:
type: integer
minimum: 1
default: 1
- name: perPage
in: query
required: false
description: 每页条数;按 `company_id` 单查时建议固定为 `1`
schema:
type: integer
minimum: 1
default: 20
responses:
'200':
description: 查询成功
content:
application/json:
schema:
$ref: '#/components/schemas/PocketBaseCompanyListResponse'
examples:
byCompanyId:
value:
page: 页码 | integer
perPage: 每页条数 | integer
totalItems: 总记录数 | integer
totalPages: 总页数 | integer
items:
- id: PocketBase记录主键 | string
collectionId: 集合ID | string
collectionName: 集合名称 | string
created: 记录创建时间 | string
updated: 记录更新时间 | 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
listAll:
value:
page: 页码 | integer
perPage: 每页条数 | integer
totalItems: 总记录数 | integer
totalPages: 总页数 | integer
items:
- id: PocketBase记录主键 | string
collectionId: 集合ID | string
collectionName: 集合名称 | string
created: 记录创建时间 | string
updated: 记录更新时间 | 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
notFoundByCompanyId:
value:
page: 页码 | integer
perPage: 每页条数 | integer
totalItems: 总记录数 | integer
totalPages: 总页数 | integer
items: []
'400':
description: 查询参数错误
content:
application/json:
schema:
$ref: '#/components/schemas/PocketBaseNativeError'
'403':
description: 集合规则被锁定或服务端权限设置异常
content:
application/json:
schema:
$ref: '#/components/schemas/PocketBaseNativeError'
'500':
description: 服务端错误
content:
application/json:
schema:
$ref: '#/components/schemas/PocketBaseNativeError'
/pb/api/collections/tbl_company/records/{recordId}:
patch:
operationId: patchPocketBaseCompanyRecordByRecordId
security:
- bearerAuth: []
tags:
- 企业信息
summary: 通过 company_id 定位后修改公司信息
description: |
这是 PocketBase 原生标准更新接口,实际写入路径参数仍然必须使用记录主键 `recordId`。
如果前端手里只有 `company_id`,标准调用流程是:
1. 先调用 `GET /pb/api/collections/tbl_company/records?filter=company_id="..."&perPage=1&page=1`
2. 从返回结果 `items[0].id` 中取出 PocketBase 原生记录主键
3. 再调用当前 `PATCH /pb/api/collections/tbl_company/records/{recordId}` 完成更新
当前线上权限规则:
- `updateRule` 仅管理员或管理后台用户允许
- 普通公开调用不能直接更新
parameters:
- name: recordId
in: path
required: true
description: 通过 `company_id` 查询结果拿到的 PocketBase 记录主键 `id`
schema:
type: string
example: l2r3nq7rqhuob0h
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PocketBaseCompanyUpdateRequest'
examples:
default:
value:
company_name: 微信侧测试企业(更新)
company_status: 有效
company_level: S
company_owner_openid: wx-openid-owner-001
company_district: 徐汇区
company_district_code: '310104'
company_remark: 通过 company_id 先定位再修改
responses:
'200':
description: 更新成功
content:
application/json:
schema:
$ref: '#/components/schemas/PocketBaseCompanyRecord'
'400':
description: 参数错误或违反集合约束
content:
application/json:
schema:
$ref: '#/components/schemas/PocketBaseNativeError'
'403':
description: 当前调用方没有 update 权限
content:
application/json:
schema:
$ref: '#/components/schemas/PocketBaseNativeError'
'404':
description: 记录不存在
content:
application/json:
schema:
$ref: '#/components/schemas/PocketBaseNativeError'
'500':
description: 服务端错误
content:
application/json:
schema:
$ref: '#/components/schemas/PocketBaseNativeError'
/pb/api/collections/tbl_attachments/records:
get:
operationId: getPocketBaseAttachmentRecords
security: []
tags:
- 附件信息
summary: 根据 attachments_id 查询附件信息
description: |
使用 PocketBase 原生 records list 接口查询 `tbl_attachments`。
当前线上权限规则:
- `listRule = ""`,因此任何客户端都可直接读取
- 原生 `create/update/delete` 仍仅管理员或管理后台用户允许
标准调用方式:
- `filter=attachments_id="ATT-1774599142438-8n1UcU"`
- `perPage=1`
- `page=1`
注意:
- 这是 PocketBase 原生返回结构,不是 hooks 统一 `{ code, msg, data }` 包装
- `attachments_link` 返回的是 PocketBase 文件字段值,不是完整下载地址
- 若需文件流地址,可按 PocketBase 标准文件路径自行拼接:`/pb/api/files/{collectionId}/{recordId}/{attachments_link}`
parameters:
- name: filter
in: query
required: true
description: |
PocketBase 标准过滤表达式。
按 `attachments_id` 精确查询时固定写法为:
- `attachments_id="ATT-1774599142438-8n1UcU"`
schema:
type: string
example: attachments_id="ATT-1774599142438-8n1UcU"
- name: page
in: query
required: false
description: 页码
schema:
type: integer
minimum: 1
default: 1
- name: perPage
in: query
required: false
description: 每页条数;按 `attachments_id` 单查时建议固定为 `1`
schema:
type: integer
minimum: 1
default: 1
responses:
'200':
description: 查询成功
content:
application/json:
schema:
$ref: '#/components/schemas/PocketBaseAttachmentListResponse'
examples:
byAttachmentsId:
value:
page: 页码 | integer
perPage: 每页条数 | integer
totalItems: 总记录数 | integer
totalPages: 总页数 | integer
items:
- id: PocketBase记录主键 | string
collectionId: 集合ID | string
collectionName: 集合名称 | string
attachments_id: 附件业务ID | string
attachments_link: PocketBase文件字段值可拼接文件流地址 | 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
'400':
description: 查询参数错误
content:
application/json:
schema:
$ref: '#/components/schemas/PocketBaseNativeError'
'403':
description: 集合规则被锁定或服务端权限设置异常
content:
application/json:
schema:
$ref: '#/components/schemas/PocketBaseNativeError'
'500':
description: 服务端错误
content:
application/json:
schema:
$ref: '#/components/schemas/PocketBaseNativeError'
/pb/api/collections/tbl_document/records:
get:
operationId: getPocketBaseDocumentRecords
security: []
tags:
- 文档信息
summary: 分页查询文档列表 / 按 system_dict_id 与 enum 双条件分页筛选文档
description: |
使用 PocketBase 原生 records list 接口查询 `tbl_document`。
当前线上权限规则:
- `listRule = ""`,因此任何客户端都可直接分页查询
- `viewRule = ""`,因此单条详情也可公开读取
- `create/update/delete` 仍仅管理员或管理后台用户允许
`document_type` 的存储格式为:
- `system_dict_id@dict_word_enum|system_dict_id@dict_word_enum`
业务上这里是两个独立条件,并且查询时两个条件都要满足:
- 条件 1包含某个 `system_dict_id`
- 条件 2包含某个 `enum`
PocketBase 原生标准接口实际只有一个 `filter` 参数,因此应在同一个 `filter` 中写成两个 `contains` 条件,例如:
- `system_dict_id = DICT-1774599144591-hAEFQj`
- `enum = UT1`
- 最终:`document_type ~ "DICT-1774599144591-hAEFQj" && document_type ~ "@UT1"`
这条写法已经按线上真实数据验证通过。
排序说明:
- 当前线上统一按 `document_create` 排序
- 若要“最新上传的排在最前面”,请传 `sort=-document_create`
标准调用方式有两种:
1. 查询整个文档列表:
- 不传 `filter`
- 按需传 `page`、`perPage`
- 若要按最新上传倒序,传 `sort=-document_create`
2. 根据 `system_dict_id` 和 `enum` 两个业务条件分页筛选:
- 直接传 `filter=document_type ~ "<system_dict_id>" && document_type ~ "@<enum>"`
- 传 `page`、`perPage`
- 若要按最新上传倒序,传 `sort=-document_create`
注意:
- 这是 PocketBase 原生返回结构,不是 hooks 统一 `{ code, msg, data }` 包装
- 如果需要更复杂的条件组合,可继续使用 PocketBase 原生 `filter` 语法自行扩展
parameters:
- name: filter
in: query
required: false
description: |
PocketBase 标准过滤表达式。
- 查全部列表时:不传
- 按业务条件筛选时,同时写两个 `contains` 条件
- 第二个条件建议带上 `@` 前缀,避免误命中
- 例如:`document_type ~ "DICT-1774599144591-hAEFQj" && document_type ~ "@UT1"`
schema:
type: string
example: document_type ~ "DICT-1774599144591-hAEFQj" && document_type ~ "@UT1"
- name: page
in: query
required: false
description: 页码
schema:
type: integer
minimum: 1
default: 1
- name: perPage
in: query
required: false
description: 每页条数
schema:
type: integer
minimum: 1
default: 20
- name: sort
in: query
required: false
description: |
PocketBase 原生排序表达式。
当前线上建议使用:
- `-document_create`:按最新上传倒序返回
schema:
type: string
example: -document_create
responses:
'200':
description: 查询成功
content:
application/json:
schema:
$ref: '#/components/schemas/PocketBaseDocumentListResponse'
examples:
listAll:
value:
page: 页码 | integer
perPage: 每页条数 | integer
totalItems: 总记录数 | integer
totalPages: 总页数 | integer
items:
- id: PocketBase记录主键 | string
collectionId: 集合ID | string
collectionName: 集合名称 | string
created: 记录创建时间 | string
updated: 记录更新时间 | string
document_id: 文档业务ID | string
document_create: 文档创建时间,由数据库自动生成 | string
document_title: 文档标题 | string
document_type: 文档类型按system_dict_id@dict_word_enum保存 | string
document_status: 文档状态 | string
document_owner: 上传者openid | string
filterByTypeToken:
value:
page: 页码 | integer
perPage: 每页条数 | integer
totalItems: 总记录数 | integer
totalPages: 总页数 | integer
items:
- id: PocketBase记录主键 | string
collectionId: 集合ID | string
collectionName: 集合名称 | string
created: 记录创建时间 | string
updated: 记录更新时间 | string
document_id: 文档业务ID | string
document_create: 文档创建时间,由数据库自动生成 | string
document_title: 文档标题 | string
document_type: 文档类型按system_dict_id@dict_word_enum保存 | string
document_status: 文档状态 | string
document_owner: 上传者openid | string
- id: ofy47wp9mmm0aub
collectionId: pbc_3636602973
collectionName: tbl_document
created: '2026-03-28 07:20:00.000Z'
updated: '2026-03-28 07:20:00.000Z'
document_id: DOC-1774680568340-TeUSQn
document_create: '2026-03-28 08:22:48.000Z'
document_title: 易从碳达人节能系统,为酒店每天每间房省二元,以智能推动酒店ESG双碳落地!上海酒店用品展我们在E7A01等您!!
document_type: DICT-1774599144591-hAEFQj@UT1
document_status: 有效
document_owner: su13106859882
'400':
description: 查询参数错误
content:
application/json:
schema:
$ref: '#/components/schemas/PocketBaseNativeError'
'403':
description: 集合规则被锁定或服务端权限设置异常
content:
application/json:
schema:
$ref: '#/components/schemas/PocketBaseNativeError'
'500':
description: 服务端错误
content:
application/json:
schema:
$ref: '#/components/schemas/PocketBaseNativeError'
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
schemas:
ApiResponseBase:
type: object
required:
- code
- msg
- data
properties:
code:
type:
- integer
- string
description: "业务状态码"
example: 业务状态码 | integer
msg:
type: string
description: "业务提示信息"
example: 业务提示信息 | string
data:
description: "业务响应数据"
type: object
additionalProperties: true
example:
code: 业务状态码 | integer
msg: 业务提示信息 | string
data:
任意业务字段: 业务响应数据 | object
ErrorResponse:
type: object
required:
- code
- msg
- data
properties:
code:
type:
- integer
- string
description: "业务状态码"
example: 业务状态码 | integer
msg:
type: string
description: "业务提示信息"
example: 失败原因提示 | string
data:
description: "业务响应数据"
type: object
additionalProperties: true
example:
code: 业务状态码 | integer
msg: 失败原因提示 | string
data:
任意错误字段: 错误附加信息 | object
CompanyInfo:
anyOf:
- type: object
description: 用户所属公司信息;当用户尚未绑定公司时返回 `null`
properties:
pb_id:
type: string
description: PocketBase 记录主键 id
example: PocketBase记录主键id | string
company_id:
type: string
description: 公司业务 id由数据库自动生成
example: 公司业务id由数据库自动生成 | string
company_name:
type: string
description: 公司名称
example: 公司名称 | string
company_type:
type: string
description: 公司类型
example: 公司类型 | string
company_entity:
type: string
description: 公司法人
example: 公司法人 | string
company_usci:
type: string
description: 统一社会信用代码
example: 统一社会信用代码 | string
company_nationality:
type: string
description: 国家名称
example: 国家名称 | string
company_nationality_code:
type: string
description: 国家编码
example: 国家编码 | string
company_province:
type: string
description: 省份名称
example: 省份名称 | string
company_province_code:
type: string
description: 省份编码
example: 省份编码 | string
company_city:
type: string
description: 城市名称
example: 城市名称 | string
company_city_code:
type: string
description: 城市编码
example: 城市编码 | string
company_district:
type: string
description: 区/县名称
example: 区县名称 | string
company_district_code:
type: string
description: 区/县编码
example: 区县编码 | string
company_postalcode:
type: string
description: 邮政编码
example: 邮政编码 | string
company_add:
type: string
description: 公司地址
example: 公司地址 | string
company_status:
type: string
description: 公司状态
example: 公司状态 | string
company_level:
type: string
description: 公司等级
example: 公司等级 | string
company_owner_openid:
type: string
description: 公司所有者 openid
example: 公司所有者openid | string
company_remark:
type: string
description: 备注
example: 备注 | string
created:
type: string
description: 记录创建时间
example: 记录创建时间 | string
updated:
type: string
description: 记录更新时间
example: 记录更新时间 | string
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
- type: 'null'
PocketBaseRecordBase:
type: object
required:
- id
- collectionId
- collectionName
- created
- updated
properties:
id:
type: string
description: "PocketBase 记录主键"
example: PocketBase记录主键 | string
collectionId:
type: string
example: 集合ID | string
collectionName:
type: string
example: 集合名称 | string
created:
type: string
description: "记录创建时间"
example: 记录创建时间 | string
updated:
type: string
description: "记录更新时间"
example: 记录更新时间 | string
example:
id: PocketBase记录主键 | string
collectionId: 集合ID | string
collectionName: 集合名称 | string
created: 记录创建时间 | string
updated: 记录更新时间 | string
PocketBaseCompanyFields:
type: object
properties:
company_id:
type: string
description: 公司业务 id由数据库自动生成
example: 公司业务id由数据库自动生成 | string
company_name:
type: string
description: 公司名称
example: 公司名称 | string
company_type:
type: string
description: 公司类型
example: 公司类型 | string
company_entity:
type: string
description: 公司法人
example: 公司法人 | string
company_usci:
type: string
description: 统一社会信用代码
example: 统一社会信用代码 | string
company_nationality:
type: string
description: 国家名称
example: 国家名称 | string
company_nationality_code:
type: string
description: 国家编码
example: 国家编码 | string
company_province:
type: string
description: 省份名称
example: 省份名称 | string
company_province_code:
type: string
description: 省份编码
example: 省份编码 | string
company_city:
type: string
description: 城市名称
example: 城市名称 | string
company_city_code:
type: string
description: 城市编码
example: 城市编码 | string
company_district:
type: string
description: 区/县名称
example: 区县名称 | string
company_district_code:
type: string
description: 区/县编码
example: 区县编码 | string
company_postalcode:
type: string
description: 邮政编码
example: 邮政编码 | string
company_add:
type: string
description: 公司地址
example: 公司地址 | string
company_status:
type: string
description: 公司状态
example: 公司状态 | string
company_level:
type: string
description: 公司等级
example: 公司等级 | string
company_owner_openid:
type: string
description: 公司所有者 openid
example: 公司所有者openid | string
company_remark:
type: string
description: 备注
example: 备注 | string
PocketBaseCompanyRecord:
allOf:
- $ref: '#/components/schemas/PocketBaseRecordBase'
- $ref: '#/components/schemas/PocketBaseCompanyFields'
example:
id: PocketBase记录主键 | string
collectionId: 集合ID | string
collectionName: 集合名称 | string
created: 记录创建时间 | string
updated: 记录更新时间 | 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
PocketBaseCompanyCreateRequest:
type: object
properties:
company_name:
description: "公司名称"
type: string
company_type:
description: "公司类型"
type: string
company_entity:
description: "公司法人"
type: string
company_usci:
description: "统一社会信用代码"
type: string
company_nationality:
description: "国家名称"
type: string
company_nationality_code:
description: "国家编码"
type: string
company_province:
description: "省份名称"
type: string
company_province_code:
description: "省份编码"
type: string
company_city:
description: "城市名称"
type: string
company_city_code:
description: "城市编码"
type: string
company_district:
description: "区 / 县名称"
type: string
company_district_code:
description: "区 / 县编码"
type: string
company_postalcode:
description: "邮编"
type: string
company_add:
description: "地址"
type: string
company_status:
description: "公司状态"
type: string
company_level:
description: "公司等级"
type: string
company_owner_openid:
description: "公司所有者 openid"
type: string
company_remark:
description: "备注"
type: string
additionalProperties: false
PocketBaseCompanyUpdateRequest:
type: object
properties:
company_id:
description: "所属公司业务 ID"
type: string
company_name:
description: "公司名称"
type: string
company_type:
description: "公司类型"
type: string
company_entity:
description: "公司法人"
type: string
company_usci:
description: "统一社会信用代码"
type: string
company_nationality:
description: "国家名称"
type: string
company_nationality_code:
description: "国家编码"
type: string
company_province:
description: "省份名称"
type: string
company_province_code:
description: "省份编码"
type: string
company_city:
description: "城市名称"
type: string
company_city_code:
description: "城市编码"
type: string
company_district:
description: "区 / 县名称"
type: string
company_district_code:
description: "区 / 县编码"
type: string
company_postalcode:
description: "邮编"
type: string
company_add:
description: "地址"
type: string
company_status:
description: "公司状态"
type: string
company_level:
description: "公司等级"
type: string
company_owner_openid:
description: "公司所有者 openid"
type: string
company_remark:
description: "备注"
type: string
additionalProperties: false
PocketBaseCompanyListResponse:
type: object
required:
- page
- perPage
- totalItems
- totalPages
- items
properties:
page:
type:
- integer
- string
example: 页码 | integer
perPage:
type:
- integer
- string
example: 每页条数 | integer
totalItems:
type:
- integer
- string
example: 总记录数 | integer
totalPages:
type:
- integer
- string
example: 总页数 | integer
items:
type: array
items:
$ref: '#/components/schemas/PocketBaseCompanyRecord'
example:
page: 页码 | integer
perPage: 每页条数 | integer
totalItems: 总记录数 | integer
totalPages: 总页数 | integer
items:
- id: PocketBase记录主键 | string
collectionId: 集合ID | string
collectionName: 集合名称 | string
created: 记录创建时间 | string
updated: 记录更新时间 | 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
PocketBaseAttachmentRecord:
type: object
properties:
id:
type: string
description: PocketBase 记录主键
example: PocketBase记录主键 | string
collectionId:
type: string
description: 集合ID
example: 集合ID | string
collectionName:
type: string
description: 集合名称
example: 集合名称 | string
attachments_id:
type: string
description: 附件业务 ID
example: 附件业务ID | string
attachments_link:
type: string
description: PocketBase 文件字段值,可按标准文件路径拼接文件流地址
example: PocketBase文件字段值可拼接文件流地址 | string
attachments_filename:
type: string
description: 原始文件名
example: 原始文件名 | string
attachments_filetype:
type: string
description: 文件类型 / MIME
example: 文件类型或MIME | string
attachments_size:
type:
- number
- integer
- string
description: 文件大小
example: 文件大小 | number
attachments_owner:
type: string
description: 上传者业务标识
example: 上传者业务标识 | string
attachments_md5:
type: string
description: 文件 MD5
example: 文件MD5 | string
attachments_ocr:
type: string
description: OCR 识别结果
example: OCR识别结果 | string
attachments_status:
type: string
description: 附件状态
example: 附件状态 | string
attachments_remark:
type: string
description: 备注
example: 备注 | string
example:
id: PocketBase记录主键 | string
collectionId: 集合ID | string
collectionName: 集合名称 | string
attachments_id: 附件业务ID | string
attachments_link: PocketBase文件字段值可拼接文件流地址 | 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
PocketBaseAttachmentListResponse:
type: object
required:
- page
- perPage
- totalItems
- totalPages
- items
properties:
page:
type:
- integer
- string
example: 页码 | integer
perPage:
type:
- integer
- string
example: 每页条数 | integer
totalItems:
type:
- integer
- string
example: 总记录数 | integer
totalPages:
type:
- integer
- string
example: 总页数 | integer
items:
type: array
items:
$ref: '#/components/schemas/PocketBaseAttachmentRecord'
example:
page: 页码 | integer
perPage: 每页条数 | integer
totalItems: 总记录数 | integer
totalPages: 总页数 | integer
items:
- id: PocketBase记录主键 | string
collectionId: 集合ID | string
collectionName: 集合名称 | string
attachments_id: 附件业务ID | string
attachments_link: PocketBase文件字段值可拼接文件流地址 | 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
PocketBaseDocumentFields:
type: object
properties:
document_id:
type: string
description: "文档业务 ID"
example: 文档业务ID | string
document_create:
type: string
description: "文档创建时间,由数据库自动生成"
example: 文档创建时间,由数据库自动生成 | string
document_title:
type: string
description: "文档标题"
example: 文档标题 | string
document_type:
type: string
example: 文档类型按system_dict_id@dict_word_enum保存 | string
document_status:
type: string
description: "文档状态,仅 `有效` / `过期`"
example: 文档状态 | string
document_owner:
type: string
description: "上传者 openid"
example: 上传者openid | string
PocketBaseDocumentRecord:
allOf:
- $ref: '#/components/schemas/PocketBaseRecordBase'
- $ref: '#/components/schemas/PocketBaseDocumentFields'
example:
id: PocketBase记录主键 | string
collectionId: 集合ID | string
collectionName: 集合名称 | string
created: 记录创建时间 | string
updated: 记录更新时间 | string
document_id: 文档业务ID | string
document_create: 文档创建时间,由数据库自动生成 | string
document_title: 文档标题 | string
document_type: 文档类型按system_dict_id@dict_word_enum保存 | string
document_status: 文档状态 | string
document_owner: 上传者openid | string
PocketBaseDocumentListResponse:
type: object
required:
- page
- perPage
- totalItems
- totalPages
- items
properties:
page:
type:
- integer
- string
example: 页码 | integer
perPage:
type:
- integer
- string
example: 每页条数 | integer
totalItems:
type:
- integer
- string
example: 总记录数 | integer
totalPages:
type:
- integer
- string
example: 总页数 | integer
items:
type: array
items:
$ref: '#/components/schemas/PocketBaseDocumentRecord'
example:
page: 页码 | integer
perPage: 每页条数 | integer
totalItems: 总记录数 | integer
totalPages: 总页数 | integer
items:
- id: PocketBase记录主键 | string
collectionId: 集合ID | string
collectionName: 集合名称 | string
created: 记录创建时间 | string
updated: 记录更新时间 | string
document_id: 文档业务ID | string
document_create: 文档创建时间,由数据库自动生成 | string
document_title: 文档标题 | string
document_type: 文档类型按system_dict_id@dict_word_enum保存 | string
document_status: 文档状态 | string
document_owner: 上传者openid | string
PocketBaseNativeError:
type: object
properties:
code:
type:
- integer
- string
description: "业务状态码"
example: 错误状态码 | integer
message:
type: string
example: PocketBase原生错误信息 | string
data:
description: "业务响应数据"
type: object
additionalProperties: true
example:
code: 错误状态码 | integer
message: PocketBase原生错误信息 | string
data:
任意错误字段: 原生错误附加信息 | object
UserInfo:
type: object
properties:
pb_id:
description: "PocketBase 记录主键 id"
type: string
users_convers_id:
description: "会话侧用户 ID"
type: string
users_id:
description: "用户业务 ID"
type: string
users_idtype:
description: "身份来源类型或证件类型"
anyOf:
- type: string
enum:
- WeChat
- ManagePlatform
- type: string
users_id_number:
description: "证件号"
type: string
users_type:
description: "用户类型"
anyOf:
- type: string
enum:
- 游客
- 注册用户
- type: string
users_name:
description: "用户姓名 / 昵称"
type: string
users_status:
description: "用户状态"
type:
- string
- number
users_rank_level:
description: "用户星级数值"
type:
- number
- integer
- string
users_auth_type:
description: "账户类型"
type:
- number
- integer
- string
users_phone:
description: "手机号"
type: string
users_phone_masked:
type: string
users_level:
type: string
description: 用户等级
users_tag:
type: string
description: 用户标签
users_picture:
type: string
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` 自动解析出的文件流链接
openid:
type: string
description: 全平台统一身份标识
company_id:
type: string
description: 公司业务 id存储 `tbl_company.company_id`
users_parent_id:
type: string
description: 上级用户业务 id
users_promo_code:
type: string
description: 推广码
usergroups_id:
type: string
description: 用户组业务 id
company:
$ref: '#/components/schemas/CompanyInfo'
created:
type: string
description: 用户创建时间
updated:
type: string
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
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
WechatLoginRequest:
type: object
required:
- users_wx_code
properties:
users_wx_code:
type: string
description: 微信小程序登录临时凭证 code
example: 0a1b2c3d4e5f6g
WechatProfileRequest:
type: object
properties:
users_name:
type: string
description: "用户姓名 / 昵称"
example: 张三
users_phone_code:
type: string
description: 可选。若传入,服务端优先通过微信接口换取真实手机号并写入数据库
example: 2b7d9f2e3c4a5b6d7e8f
users_phone:
type: string
description: 可选。未传 `users_phone_code` 时,可直接写入手机号
example: '13800138000'
users_tag:
type: string
description: 可选。用户标签;非空时才更新
example: 核心客户
users_picture:
type: string
description: 可选。用户头像附件的 `attachments_id`
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`
SystemRefreshTokenRequest:
type: object
properties:
users_wx_code:
type:
- string
- 'null'
description: |
可选。
当前 token 失效时,可通过该 code 重新签发 token。
example: 0a1b2c3d4e5f6g
AuthSuccessData:
type: object
properties:
status:
anyOf:
- type: string
enum:
- register_success
- login_success
- type: string
is_info_complete:
type:
- boolean
- string
user:
$ref: '#/components/schemas/UserInfo'
AuthSuccessResponse:
allOf:
- $ref: '#/components/schemas/ApiResponseBase'
- type: object
required:
- token
properties:
data:
description: "业务响应数据"
$ref: '#/components/schemas/AuthSuccessData'
token:
type: string
description: PocketBase 原生 auth token
example:
code: 业务状态码 | integer
msg: 业务提示信息 | string
data:
status: 登录或注册状态 | string
is_info_complete: 资料是否完整 | boolean
user:
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
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
token: PocketBase原生认证token | string
WechatProfileResponseData:
type: object
properties:
status:
anyOf:
- type: string
enum:
- update_success
- type: string
user:
$ref: '#/components/schemas/UserInfo'
WechatProfileResponse:
allOf:
- $ref: '#/components/schemas/ApiResponseBase'
- type: object
properties:
data:
description: "业务响应数据"
$ref: '#/components/schemas/WechatProfileResponseData'
example:
code: 业务状态码 | integer
msg: 业务提示信息 | string
data:
status: 资料更新状态 | string
user:
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
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
RefreshTokenResponse:
allOf:
- $ref: '#/components/schemas/ApiResponseBase'
- type: object
required:
- token
properties:
data:
type: object
additionalProperties: true
description: "业务响应数据"
example: {}
token:
type: string
description: 新签发的 PocketBase 原生 auth token
example:
code: 业务状态码 | integer
msg: 刷新成功 | string
data: {}
token: 新签发的PocketBase原生auth token | string
UsersCountData:
type: object
properties:
total_users:
type:
- integer
- string
example: 用户总数 | integer
UsersCountResponse:
allOf:
- $ref: '#/components/schemas/ApiResponseBase'
- type: object
properties:
data:
description: "业务响应数据"
$ref: '#/components/schemas/UsersCountData'
example:
code: 业务状态码 | integer
msg: 业务提示信息 | string
data:
total_users: 用户总数 | integer