openapi: 3.0.1 info: title: APP description: | 家谱业务 APP/PC 用户侧接口文档,用于 Apifox 导入。 导入方式:Apifox -> 导入 API 数据 -> OpenAPI/Swagger -> 选择本文件。 约定: - APP 路径前缀为 `/genealogy/app` - PC/H5 路径前缀为 `/genealogy/pc` - 后台管理接口不包含在本文件内 - 登录后接口需要携带 token,且请求 Header 需携带 `clientid` version: 1.0.0 tags: - name: 验证中心 - name: 认证登录 - name: 文件上传 - name: 行政区划 - name: 家谱 - name: 家谱成员 - name: 字辈谱 - name: 世系人物 - name: 家族圈 - name: 内容文章 - name: 相册 - name: 祭祀 - name: 族务记录 - name: 消息通知 - name: 意见反馈 - name: VIP - name: 视频 paths: /captcha/require: get: summary: 查询当前场景是否需要验证 deprecated: false description: 用于登录、注册、换绑手机等场景。按租户、客户端和场景编码匹配后台验证策略。 tags: - 验证中心 parameters: - name: tenantId in: query description: 租户ID,用于区分不同租户的数据和验证策略 required: false example: '000000' schema: type: string - name: clientId in: query description: 客户端ID,对应后台客户端管理中的APP/PC/小程序等终端 required: false example: 428a8310cd442757ae699df5d894f051 schema: type: string - name: sceneCode in: query description: APP 短信场景编码,例如APP_SMS_LOGIN、APP_REGISTER required: true example: APP_SMS_LOGIN schema: type: string - name: subject in: query description: 验证主体,通常为手机号、用户ID或登录账号 required: false example: '13800000000' schema: type: string - name: clientid in: header description: 客户端ID example: ced7e5f0498645c6ec642dcf450b036f schema: type: string default: ced7e5f0498645c6ec642dcf450b036f responses: '200': $ref: '#/components/responses/VerificationRequireResult' description: 验证需求查询结果 security: - SaToken: [] /captcha/challenge: post: summary: 生成验证挑战 deprecated: false description: >- 统一生成验证码。tenantId、clientId、sceneCode、subject 必须完整提交;挑战仅可由同一租户、客户端、场景、主体和请求 IP 校验。策略为天爱时返回行为验证数据;策略为系统图形时返回 uuid 和 img。 tags: - 验证中心 parameters: - name: clientid in: header description: 客户端ID example: ced7e5f0498645c6ec642dcf450b036f schema: type: string default: ced7e5f0498645c6ec642dcf450b036f requestBody: content: application/json: schema: $ref: '#/components/schemas/VerificationChallengeBody' example: tenantId: '000000' clientId: 428a8310cd442757ae699df5d894f051 sceneCode: APP_SMS_LOGIN subject: '13800000000' required: true responses: '200': $ref: '#/components/responses/VerificationChallengeResult' description: 验证挑战生成结果 security: - SaToken: [] /captcha/verify: post: summary: 校验验证结果并换取 validToken deprecated: false description: >- 必须提交生成挑战时相同的 tenantId、clientId、sceneCode、subject 和 challengeId。验证通过后返回 validToken;该票据仅随发送短信验证码接口一起提交,由发送入口单次消费。 tags: - 验证中心 parameters: - name: clientid in: header description: 客户端ID example: ced7e5f0498645c6ec642dcf450b036f schema: type: string default: ced7e5f0498645c6ec642dcf450b036f requestBody: content: application/json: schema: $ref: '#/components/schemas/VerificationCheckBody' examples: tianai_behavior: value: tenantId: '000000' clientId: 428a8310cd442757ae699df5d894f051 sceneCode: APP_SMS_LOGIN subject: '13800000000' challengeId: CAPTCHA_CHALLENGE_ID providerCode: tianai captchaType: SLIDER payload: track: bgImageWidth: 340 bgImageHeight: 180 templateImageWidth: 50 templateImageHeight: 50 startTime: 1720000000000 stopTime: 1720000001500 left: 120 top: 0 trackList: - x: 0 'y': 0 t: 0 type: down - x: 120 'y': 0 t: 650 type: move - x: 120 'y': 0 t: 700 type: up summary: 天爱滑块/旋转/滑动还原/文字点选验证 system_image: value: tenantId: '000000' clientId: 428a8310cd442757ae699df5d894f051 sceneCode: APP_SMS_LOGIN subject: '13800000000' challengeId: CAPTCHA_CHALLENGE_ID providerCode: ruoyi_image captchaType: math payload: uuid: captcha-uuid code: '6' summary: 系统图形验证码 required: true responses: '200': $ref: '#/components/responses/VerificationCheckResult' description: 验证校验结果 security: - SaToken: [] /auth/code: get: summary: 兼容旧系统图形验证码 deprecated: false description: >- 老版后台登录图形验证码入口。新的 APP/PC 业务优先使用 /captcha/require + /captcha/challenge + /captcha/verify。 tags: - 验证中心 parameters: - name: clientid in: header description: 客户端ID example: ced7e5f0498645c6ec642dcf450b036f schema: type: string default: ced7e5f0498645c6ec642dcf450b036f responses: '200': $ref: '#/components/responses/LegacyCaptchaResult' description: 兼容旧图形验证码结果 security: - SaToken: [] /genealogy/app/auth/register: post: summary: APP 用户注册 deprecated: false description: '' tags: - 认证登录 parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/PasswordRegisterBody' example: grantType: password tenantId: '000000' phone: '13800000000' password: e10adc3949ba59abbe56e057f20f883e nickName: 测试用户 registerSource: app smsCode: '1234' required: true responses: '200': $ref: '#/components/responses/LoginResult' description: 登录结果 '400': $ref: '#/components/responses/LoginResult' description: >- 短信验证码必须为 4 位数字;验证码错误、过期、重复使用,或租户、客户端、场景不匹配时拒绝;携带 validToken、code、uuid、供应商配置等旧字段返回 HTTP 400。 headers: {} security: - SaToken: [] /genealogy/app/auth/login: post: summary: APP 密码登录 deprecated: false description: '' tags: - 认证登录 parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/PasswordLoginBody' example: grantType: password tenantId: '000000' phone: '13800000000' password: e10adc3949ba59abbe56e057f20f883e required: true responses: '200': $ref: '#/components/responses/LoginResult' description: 登录结果 '400': $ref: '#/components/responses/LoginResult' description: 密码登录仅接收租户、客户端、手机号和密码;不需要短信验证码或行为验证票据,携带验证码及其他未知旧字段返回 HTTP 400。 headers: {} security: - SaToken: [] /genealogy/app/auth/login/sms: post: summary: APP 短信登录 deprecated: false description: '' tags: - 认证登录 parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/SmsLoginBody' example: grantType: sms tenantId: '000000' phone: '13800000000' smsCode: '1234' required: true responses: '200': $ref: '#/components/responses/LoginResult' description: 登录结果 '400': $ref: '#/components/responses/LoginResult' description: >- 短信验证码必须为 4 位数字;验证码错误、过期、重复使用,或租户、客户端、场景不匹配时拒绝;携带 validToken、code、uuid、供应商配置等旧字段返回 HTTP 400。 headers: {} security: - SaToken: [] /genealogy/app/auth/sms/code: post: summary: APP 发送短信验证码 deprecated: false description: >- 先完成验证中心校验,再提交 validToken。sceneCode 仅允许 APP_SMS_LOGIN、APP_REGISTER、APP_FORGOT_PASSWORD、APP_PHONE_CHANGE、APP_ACCOUNT_DEACTIVATE;服务端按租户、APP 客户端、场景和手机号主体校验票据,不接收短信供应商配置 ID。 tags: - 认证登录 parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/SmsCodeBody' example: tenantId: '000000' phone: '13800000000' grantType: sms sceneCode: APP_SMS_LOGIN validToken: captcha-ticket required: true responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 '400': $ref: '#/components/responses/VoidResult' description: >- 拒绝原因:票据缺失;票据与租户不匹配(错租户);票据与客户端不匹配(错客户端);票据与场景不匹配(错场景);票据过期;票据已被使用(重复使用);手机号主体不匹配;请求携带供应商配置或历史字段。 headers: {} security: - SaToken: [] /genealogy/app/auth/profile: get: summary: APP 当前用户资料 deprecated: false description: '' tags: - 认证登录 parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] put: summary: APP 修改用户资料 deprecated: false description: '' tags: - 认证登录 parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ProfileUpdateBody' example: nickName: 张三 avatarOssId: '2060000000000000000' sex: '0' birthday: '1990-01-01' regionCode: '110101' addressDetail: 北京市东城区 required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] /genealogy/app/auth/password: put: summary: APP 修改密码 deprecated: false description: '' tags: - 认证登录 parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/PasswordChangeBody' example: oldPassword: e10adc3949ba59abbe56e057f20f883e newPassword: 25d55ad283aa400af464c76d713c07ad required: true responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/app/auth/password/reset: put: summary: APP 找回密码 deprecated: false description: '' tags: - 认证登录 parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/PasswordResetBody' example: grantType: password tenantId: '000000' phone: '13800000000' smsCode: '1234' newPassword: 25d55ad283aa400af464c76d713c07ad required: true responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 '400': $ref: '#/components/responses/VoidResult' description: >- 短信验证码必须为 4 位数字;验证码错误、过期、重复使用,或租户、客户端、场景不匹配时拒绝;携带 validToken、code、uuid、供应商配置等旧字段返回 HTTP 400。 headers: {} security: - SaToken: [] /genealogy/app/auth/phone: put: summary: APP 换绑手机号 deprecated: false description: '' tags: - 认证登录 parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/PhoneChangeBody' example: clientId: 428a8310cd442757ae699df5d894f051 phone: '13900000000' smsCode: '1234' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 '400': $ref: '#/components/responses/ObjectResult' description: >- 短信验证码必须为 4 位数字;验证码错误、过期、重复使用,或租户、客户端、场景不匹配时拒绝;携带 validToken、code、uuid、供应商配置等旧字段返回 HTTP 400。 headers: {} security: - SaToken: [] /genealogy/app/auth/account/deactivate: post: summary: APP 注销账号 deprecated: false description: '' tags: - 认证登录 parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountDeactivateBody' example: clientId: 428a8310cd442757ae699df5d894f051 smsCode: '1234' required: true responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 '400': $ref: '#/components/responses/VoidResult' description: >- 短信验证码必须为 4 位数字;验证码错误、过期、重复使用,或租户、客户端、场景不匹配时拒绝;携带 validToken、code、uuid、供应商配置等旧字段返回 HTTP 400。 headers: {} security: - SaToken: [] /genealogy/app/auth/logout: delete: summary: APP 退出登录 deprecated: false description: '' tags: - 认证登录 parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/pc/auth/register: post: summary: PC 用户注册 deprecated: false description: '' tags: - 认证登录 parameters: - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/PasswordRegisterBody' required: true responses: '200': $ref: '#/components/responses/LoginResult' description: 登录结果 security: - SaToken: [] /genealogy/pc/auth/login: post: summary: PC 密码登录 deprecated: false description: '' tags: - 认证登录 parameters: - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/PasswordLoginBody' required: true responses: '200': $ref: '#/components/responses/LoginResult' description: 登录结果 security: - SaToken: [] /genealogy/pc/auth/login/sms: post: summary: PC 短信登录 deprecated: false description: '' tags: - 认证登录 parameters: - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/SmsLoginBody' required: true responses: '200': $ref: '#/components/responses/LoginResult' description: 登录结果 security: - SaToken: [] /genealogy/pc/auth/sms/code: post: summary: PC 发送短信验证码 deprecated: false description: '' tags: - 认证登录 parameters: - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/SmsCodeBody' required: true responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/pc/auth/profile: get: summary: PC 当前用户资料 deprecated: false description: '' tags: - 认证登录 parameters: - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] put: summary: PC 修改用户资料 deprecated: false description: '' tags: - 认证登录 parameters: - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ProfileUpdateBody' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] /genealogy/pc/auth/password: put: summary: PC 修改密码 deprecated: false description: '' tags: - 认证登录 parameters: - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/PasswordChangeBody' required: true responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/pc/auth/password/reset: put: summary: PC 找回密码 deprecated: false description: '' tags: - 认证登录 parameters: - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/PasswordResetBody' required: true responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/pc/auth/phone: put: summary: PC 换绑手机号 deprecated: false description: '' tags: - 认证登录 parameters: - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/PhoneChangeBody' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] /genealogy/pc/auth/account/deactivate: post: summary: PC 注销账号 deprecated: false description: '' tags: - 认证登录 parameters: - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountDeactivateBody' required: true responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/pc/auth/logout: delete: summary: PC 退出登录 deprecated: false description: '' tags: - 认证登录 parameters: - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/app/files/upload: post: summary: APP 单文件上传 deprecated: false description: '' tags: - 文件上传 parameters: - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: multipart/form-data: schema: type: object properties: file: type: string format: binary example: '' required: - file example: file: '' required: true responses: '200': $ref: '#/components/responses/FileUploadResult' description: 文件上传结果 security: - SaToken: [] /genealogy/app/files/resumable/init: post: summary: APP 分片上传初始化 deprecated: false description: 所有文件统一使用分片上传;普通小文件可设置为一个分片。返回 instant=true 时直接使用返回的 OSS 信息,跳过分片上传和合并。 tags: - 文件上传 parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ResumableInitBody' example: fileName: cover.jpg fileSize: 9532 fileMd5: d41d8cd98f00b204e9800998ecf8427e contentType: image/jpeg chunkSize: 4194304 totalChunks: 1 bizType: genealogy usageScene: cover required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] /genealogy/app/files/resumable/chunk: post: summary: APP 上传分片 deprecated: false description: '' tags: - 文件上传 parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: multipart/form-data: schema: type: object properties: uploadId: type: string example: '' chunkIndex: type: integer example: 0 chunkMd5: type: string example: d41d8cd98f00b204e9800998ecf8427e file: type: string format: binary example: '' required: - uploadId - chunkIndex - chunkMd5 - file example: uploadId: '' chunkIndex: 0 chunkMd5: d41d8cd98f00b204e9800998ecf8427e file: '' required: true responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/app/files/resumable/complete: post: summary: APP 完成分片上传 deprecated: false description: '' tags: - 文件上传 parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ResumableCompleteBody' example: uploadId: UPLOAD202607090001 fileMd5: d41d8cd98f00b204e9800998ecf8427e fileSize: 9532 required: true responses: '200': $ref: '#/components/responses/FileUploadResult' description: 文件上传结果 security: - SaToken: [] /genealogy/app/files/reference: post: summary: APP 绑定文件业务引用 deprecated: false description: '' tags: - 文件上传 parameters: - name: clientid in: header description: 客户端ID,请求Header携带,用于区分APP/PC/小程序等终端 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/FileReferenceBody' example: bizType: family_feed bizName: family feed image bizTable: gen_family_feed bizId: 900013001 bizField: media_oss_ids ossId: '2060000000000000000' usageScene: feed_image required: true responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] delete: summary: APP 释放文件业务引用 deprecated: false description: '' tags: - 文件上传 parameters: - name: bizTable in: query description: 业务表名,用于文件引用绑定 required: true example: gen_family_feed schema: type: string - name: bizId in: query description: 业务数据ID,用于文件引用绑定 required: true example: 900013001 schema: type: integer format: int64 - name: bizField in: query description: 业务字段名,例如avatar_oss_id、cover_oss_id required: true example: media_ids schema: type: string - name: clientid in: header description: 客户端ID,请求Header携带,用于区分APP/PC/小程序等终端 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/pc/files/upload: post: summary: PC 单文件上传 deprecated: false description: '' tags: - 文件上传 parameters: - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: multipart/form-data: schema: type: object properties: file: type: string format: binary example: '' required: - file example: file: '' required: true responses: '200': $ref: '#/components/responses/FileUploadResult' description: 文件上传结果 security: - SaToken: [] /genealogy/pc/files/resumable/init: post: summary: PC 分片上传初始化 deprecated: false description: '' tags: - 文件上传 parameters: - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ResumableInitBody' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] /genealogy/pc/files/resumable/chunk: post: summary: PC 上传分片 deprecated: false description: '' tags: - 文件上传 parameters: - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: multipart/form-data: schema: type: object properties: uploadId: type: string example: '' chunkIndex: type: integer example: 0 chunkMd5: type: string example: d41d8cd98f00b204e9800998ecf8427e file: type: string format: binary example: '' required: - uploadId - chunkIndex - chunkMd5 - file example: uploadId: '' chunkIndex: 0 chunkMd5: d41d8cd98f00b204e9800998ecf8427e file: '' required: true responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/pc/files/resumable/complete: post: summary: PC 完成分片上传 deprecated: false description: '' tags: - 文件上传 parameters: - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ResumableCompleteBody' required: true responses: '200': $ref: '#/components/responses/FileUploadResult' description: 文件上传结果 security: - SaToken: [] /genealogy/region/children: get: summary: 查询下级行政区划 deprecated: false description: '' tags: - 行政区划 parameters: - name: parentCode in: query description: 父级行政区划编码,不传或传0查省级 required: false example: '51' schema: type: string - name: clientid in: header description: 客户端ID example: ced7e5f0498645c6ec642dcf450b036f schema: type: string default: ced7e5f0498645c6ec642dcf450b036f responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] /genealogy/region/path/{regionCode}: get: summary: 查询行政区划路径 deprecated: false description: '' tags: - 行政区划 parameters: - name: regionCode in: path description: 行政区划编码 required: true example: '510000' schema: type: string - name: clientid in: header description: 客户端ID example: ced7e5f0498645c6ec642dcf450b036f schema: type: string default: ced7e5f0498645c6ec642dcf450b036f responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] /genealogy/region/search: get: summary: 搜索行政区划 deprecated: false description: '' tags: - 行政区划 parameters: - name: keyword in: query description: 搜索关键词,支持地区名称或编码模糊查询 required: true example: 北京 schema: type: string - name: level in: query description: 行政区划级别,1省、2市、3区县、4乡镇街道、5村社区 required: false example: 3 schema: type: integer - name: limit in: query description: 返回数量上限 required: false example: 20 schema: type: integer - name: clientid in: header description: 客户端ID example: ced7e5f0498645c6ec642dcf450b036f schema: type: string default: ced7e5f0498645c6ec642dcf450b036f responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] /genealogy/region/{regionCode}: get: summary: 查询行政区划详情 deprecated: false description: '' tags: - 行政区划 parameters: - name: regionCode in: path description: 行政区划编码 required: true example: '510000' schema: type: string - name: clientid in: header description: 客户端ID example: ced7e5f0498645c6ec642dcf450b036f schema: type: string default: ced7e5f0498645c6ec642dcf450b036f responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] /genealogy/app/genealogies: post: summary: APP 创建家谱 deprecated: false description: '' tags: - 家谱 parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/GenealogyCreateBody' example: genealogyName: 彭氏家谱 surname: 彭 ancestralHall: 陇西堂 originPlace: 江西吉安 regionCode: '360800' addressDetail: 江西省吉安市 coverOssId: '2060000000000000000' intro: 彭氏家谱简介 visibility: '1' joinMode: '1' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] /genealogy/app/genealogies/mine: get: summary: APP 我的家谱 deprecated: false description: '' tags: - 家谱 parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] /genealogy/app/genealogies/public: get: summary: APP 公开家谱 deprecated: false description: '' tags: - 家谱 parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] /genealogy/app/genealogies/options: get: summary: APP 家谱下拉选项 deprecated: false description: '' tags: - 家谱 parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}: get: summary: APP 家谱详情 deprecated: false description: '' tags: - 家谱 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] put: summary: APP 修改家谱 deprecated: false description: '' tags: - 家谱 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/GenealogyUpdateBody' example: genealogyName: 彭氏家谱 surname: 彭 ancestralHall: 陇西堂 originPlace: 江西吉安 regionCode: '360800' addressDetail: 江西省吉安市 coverOssId: '2060000000000000000' intro: 更新后的家谱简介 visibility: '1' joinMode: '1' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/overview: get: summary: APP 家谱概览 deprecated: false description: '' tags: - 家谱 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/join-applies: post: summary: APP 申请加入家谱 deprecated: false description: '' tags: - 家谱 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/GenealogyJoinApplyBody' example: applicantName: 彭小明 phone: '13800000000' relationDesc: 本族成员 applyReason: 申请加入家谱维护 inviterUserId: 900000001 required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] /genealogy/app/genealogies/join-applies/mine: get: summary: APP 我的加入申请 deprecated: false description: '' tags: - 家谱 parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/join-applies/pending: get: summary: APP 待审核加入申请 deprecated: false description: '' tags: - 家谱 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/join-applies/{applyId}/audit: put: summary: APP 审核加入申请 deprecated: false description: '' tags: - 家谱 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: applyId in: path description: 加入家谱申请ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/GenealogyJoinAuditBody' example: status: '1' auditRemark: 信息核验通过 required: true responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/app/genealogies/join-applies/{applyId}: delete: summary: APP 撤销加入申请 deprecated: false description: '' tags: - 家谱 parameters: - name: applyId in: path description: 加入家谱申请ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/members: get: summary: APP 家谱成员列表 deprecated: false description: '' tags: - 家谱成员 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/members/options: get: summary: APP 家谱成员选项 deprecated: false description: '' tags: - 家谱成员 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/members/{memberId}: put: summary: APP 修改成员 deprecated: false description: '' tags: - 家谱成员 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: memberId in: path description: 家谱成员ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/GenealogyMemberUpdateBody' example: memberName: 彭小明 relationName: 族亲 roleType: member lineagePersonId: 900020001 required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] delete: summary: APP 移除成员 deprecated: false description: '' tags: - 家谱成员 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: memberId in: path description: 家谱成员ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/members/me: delete: summary: APP 退出家谱 deprecated: false description: '' tags: - 家谱成员 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/members/owner-transfer: put: summary: APP 转让家谱所有者 deprecated: false description: '' tags: - 家谱成员 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/GenealogyOwnerTransferBody' example: targetMemberId: 900010002 required: true responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/generation-poems: get: summary: APP 查询正常字辈谱 deprecated: false description: 对可查看家谱的业务用户开放;仅返回正常状态字辈,供世系人物录入和展示使用。 tags: - 字辈谱 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/GenerationPoemListResult' description: 字辈列表响应 security: - SaToken: [] post: summary: APP 新增字辈 deprecated: false description: '' tags: - 字辈谱 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/GenerationPoemBody' example: generationNo: 5 generationText: 忠 description: fifth generation poem sortOrder: 5 status: '0' required: true responses: '200': $ref: '#/components/responses/GenerationPoemResult' description: 字辈详情响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/generation-poems/batch/preview: post: summary: APP 批量字辈预览 deprecated: false description: '' tags: - 字辈谱 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/GenerationPoemBatchBody' example: poemText: |- 德承家亦 忠厚传芳 disableMissing: false required: true responses: '200': $ref: '#/components/responses/GenerationPoemBatchPreviewResult' description: 字辈批量预览响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/generation-poems/batch/save: post: summary: APP 批量保存字辈 deprecated: false description: 保存时会重新按当前数据生成差异;停用不删除历史字辈记录。 tags: - 字辈谱 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/GenerationPoemBatchBody' example: poemText: |- 德承家亦 忠厚传芳 disableMissing: false required: true responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/generation-poems/management: get: summary: APP 查询字辈维护列表 deprecated: false description: 仅家谱内容编辑者可访问,返回正常和停用字辈,用于恢复、纠错和排序调整。 tags: - 字辈谱 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/GenerationPoemListResult' description: 字辈列表响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/generation-poems/{poemId}: put: summary: APP 修改、停用或恢复字辈 deprecated: false description: '' tags: - 字辈谱 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: poemId in: path description: 字辈记录ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/GenerationPoemBody' example: generationNo: 5 generationText: 忠 description: fifth generation poem sortOrder: 5 status: '0' required: true responses: '200': $ref: '#/components/responses/GenerationPoemResult' description: 字辈详情响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/lineage/persons: get: summary: APP 世系人物列表 deprecated: false description: '' tags: - 世系人物 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/LineagePersonListResult' description: 世系人物列表或选项响应 security: - SaToken: [] post: summary: APP 新增世系人物 deprecated: false description: '' tags: - 世系人物 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/LineagePersonBody' example: appUserId: 900000001 personNo: P202607090001 name: 彭德明 aliasName: 德明 sex: '0' generation: 1 generationName: 德 avatarOssId: '2060000000000000000' birthDate: '1950-01-01' birthLunar: '0' birthPlace: 江西吉安 personStatus: '0' biography: 第一世人物简介 sortOrder: 1 required: true responses: '200': $ref: '#/components/responses/LineagePersonResult' description: 世系人物详情响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/lineage/persons/page: get: summary: APP 世系人物分页 deprecated: false description: '' tags: - 世系人物 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: pageNum in: query description: 页码,从1开始 required: false schema: type: integer default: 1 - name: pageSize in: query description: 每页条数 required: false schema: type: integer default: 10 - name: keyword in: query description: 姓名、别名或人物编号关键词 required: false schema: type: string - name: generation in: query description: 世代序号 required: false schema: type: integer format: int64 - name: personStatus in: query description: 人物状态字典值 required: false schema: type: string - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/LineagePersonPageResult' description: 世系人物分页响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/lineage/persons/options: get: summary: APP 世系人物选项 deprecated: false description: '' tags: - 世系人物 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: keyword in: query description: 姓名、别名或人物编号关键词 required: false schema: type: string - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/LineagePersonListResult' description: 世系人物列表或选项响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/lineage/tree: get: summary: APP 世系树 deprecated: false description: '' tags: - 世系人物 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/LineagePersonTreeResult' description: 世系树响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/lineage/persons/{personId}: get: summary: APP 世系人物详情 deprecated: false description: '' tags: - 世系人物 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: personId in: path description: 世系人物ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/LineagePersonResult' description: 世系人物详情响应 security: - SaToken: [] put: summary: APP 修改世系人物 deprecated: false description: '' tags: - 世系人物 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: personId in: path description: 世系人物ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/LineagePersonBody' example: appUserId: 900000001 personNo: P202607090001 name: 彭德明 aliasName: 德明 sex: '0' generation: 1 generationName: 德 avatarOssId: '2060000000000000000' birthDate: '1950-01-01' birthLunar: '0' birthPlace: 江西吉安 personStatus: '0' biography: 第一世人物简介 sortOrder: 1 required: true responses: '200': $ref: '#/components/responses/LineagePersonResult' description: 世系人物详情响应 security: - SaToken: [] delete: summary: APP 停用世系人物 deprecated: false description: 逻辑停用人物,不执行物理删除;存在正常子女时拒绝停用。 tags: - 世系人物 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: personId in: path description: 世系人物ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/lineage/persons/{personId}/children: post: summary: APP 给人物添加子女 deprecated: false description: '' tags: - 世系人物 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: personId in: path description: 世系人物ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/LineagePersonBody' example: appUserId: 900000001 personNo: P202607090001 name: 彭德明 aliasName: 德明 sex: '0' generation: 1 generationName: 德 avatarOssId: '2060000000000000000' birthDate: '1950-01-01' birthLunar: '0' birthPlace: 江西吉安 personStatus: '0' biography: 第一世人物简介 sortOrder: 1 required: true responses: '200': $ref: '#/components/responses/LineagePersonResult' description: 世系人物详情响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/lineage/persons/{personId}/parents: post: summary: APP 给人物添加父母 deprecated: false description: '' tags: - 世系人物 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: personId in: path description: 世系人物ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/LineagePersonBody' example: appUserId: 900000001 personNo: P202607090001 name: 彭德明 aliasName: 德明 sex: '0' generation: 1 generationName: 德 avatarOssId: '2060000000000000000' birthDate: '1950-01-01' birthLunar: '0' birthPlace: 江西吉安 personStatus: '0' biography: 第一世人物简介 sortOrder: 1 required: true responses: '200': $ref: '#/components/responses/LineagePersonResult' description: 世系人物详情响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/lineage/persons/{personId}/siblings: post: summary: APP 给人物添加兄弟姐妹 deprecated: false description: '' tags: - 世系人物 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: personId in: path description: 世系人物ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/LineagePersonBody' example: appUserId: 900000001 personNo: P202607090001 name: 彭德明 aliasName: 德明 sex: '0' generation: 1 generationName: 德 avatarOssId: '2060000000000000000' birthDate: '1950-01-01' birthLunar: '0' birthPlace: 江西吉安 personStatus: '0' biography: 第一世人物简介 sortOrder: 1 required: true responses: '200': $ref: '#/components/responses/LineagePersonResult' description: 世系人物详情响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/lineage/persons/{personId}/spouses: post: summary: APP 给人物添加配偶 deprecated: false description: '' tags: - 世系人物 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: personId in: path description: 世系人物ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/LineagePersonBody' example: appUserId: 900000001 personNo: P202607090001 name: 彭德明 aliasName: 德明 sex: '0' generation: 1 generationName: 德 avatarOssId: '2060000000000000000' birthDate: '1950-01-01' birthLunar: '0' birthPlace: 江西吉安 personStatus: '0' biography: 第一世人物简介 sortOrder: 1 required: true responses: '200': $ref: '#/components/responses/LineagePersonResult' description: 世系人物详情响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/feeds: get: summary: APP 家族圈动态列表 deprecated: false description: '' tags: - 家族圈 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] post: summary: APP 发布家族圈动态 deprecated: false description: '' tags: - 家族圈 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/FamilyFeedBody' example: feedType: text feedContent: 今天上传一张老照片。 mediaOssIds: 2060000000000000001,2060000000000000002 sortOrder: 0 status: '0' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/feeds/page: get: summary: APP 家族圈动态分页 deprecated: false description: '' tags: - 家族圈 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: pageNum in: query description: 页码,从1开始 required: false schema: type: integer default: 1 - name: pageSize in: query description: 每页条数 required: false schema: type: integer default: 10 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/PageResult' description: 通用分页响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/feeds/{feedId}: get: summary: APP 家族圈动态详情 deprecated: false description: '' tags: - 家族圈 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: feedId in: path description: 家族动态ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] put: summary: APP 修改家族圈动态 deprecated: false description: '' tags: - 家族圈 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: feedId in: path description: 家族动态ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/FamilyFeedBody' example: feedType: text feedContent: 今天上传一张老照片。 mediaOssIds: 2060000000000000001,2060000000000000002 sortOrder: 0 status: '0' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] delete: summary: APP 删除家族圈动态 deprecated: false description: '' tags: - 家族圈 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: feedId in: path description: 家族动态ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/feeds/{feedId}/likes: post: summary: APP 点赞动态 deprecated: false description: '' tags: - 家族圈 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: feedId in: path description: 家族动态ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] delete: summary: APP 取消点赞动态 deprecated: false description: '' tags: - 家族圈 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: feedId in: path description: 家族动态ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/feeds/{feedId}/comments: get: summary: APP 动态一级评论列表 deprecated: false description: 仅返回正常展示的一级评论;每条评论的 replyCount 为正常展示的直接回复数量。 tags: - 家族圈 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: feedId in: path description: 家族动态ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/FamilyFeedCommentListResult' description: 家族圈评论列表响应 security: - SaToken: [] post: summary: APP 评论动态 deprecated: false description: '' tags: - 家族圈 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: feedId in: path description: 家族动态ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/FamilyFeedCommentBody' example: parentCommentId: null commentContent: 这张照片很有年代感。 required: true responses: '200': $ref: '#/components/responses/FamilyFeedCommentResult' description: 家族圈评论对象响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/feeds/{feedId}/comments/page: get: summary: APP 动态一级评论分页 deprecated: false description: 仅返回正常展示的一级评论;展开回复时请调用 replies 接口。 tags: - 家族圈 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: feedId in: path description: 家族动态ID required: true example: '' schema: type: integer format: int64 - name: pageNum in: query description: 页码,从1开始 required: false schema: type: integer default: 1 - name: pageSize in: query description: 每页条数 required: false schema: type: integer default: 10 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/FamilyFeedCommentPageResult' description: 家族圈评论分页响应 security: - SaToken: [] /genealogy/pc/genealogies/{genealogyId}/feeds: get: summary: PC 家族圈动态列表 deprecated: false description: '' tags: - 家族圈 parameters: - name: genealogyId in: path description: '' required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] post: summary: PC 发布家族圈动态 deprecated: false description: '' tags: - 家族圈 parameters: - name: genealogyId in: path description: '' required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/FamilyFeedBody' example: feedType: text feedContent: 今天上传一张老照片。 mediaOssIds: 2060000000000000001,2060000000000000002 sortOrder: 0 status: '0' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] /genealogy/pc/genealogies/{genealogyId}/feeds/page: get: summary: PC 家族圈动态分页 deprecated: false description: '' tags: - 家族圈 parameters: - name: genealogyId in: path description: '' required: true example: 900001001 schema: type: integer format: int64 - name: pageNum in: query description: '' required: false schema: type: integer default: 1 - name: pageSize in: query description: '' required: false schema: type: integer default: 10 - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/PageResult' description: 通用分页响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/feeds/{feedId}/comments/{commentId}: delete: summary: APP 删除本人动态评论;有回复时保留删除占位 deprecated: false description: '' tags: - 家族圈 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: feedId in: path description: 家族动态ID required: true example: '' schema: type: integer format: int64 - name: commentId in: path description: 评论ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/pc/genealogies/{genealogyId}/feeds/{feedId}: get: summary: PC 家族圈动态详情 deprecated: false description: '' tags: - 家族圈 parameters: - name: genealogyId in: path description: '' required: true example: 900001001 schema: type: integer format: int64 - name: feedId in: path description: '' required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] put: summary: PC 修改家族圈动态 deprecated: false description: '' tags: - 家族圈 parameters: - name: genealogyId in: path description: '' required: true example: 900001001 schema: type: integer format: int64 - name: feedId in: path description: '' required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/FamilyFeedBody' example: feedType: text feedContent: 今天上传一张老照片。 mediaOssIds: 2060000000000000001,2060000000000000002 sortOrder: 0 status: '0' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] delete: summary: PC 删除家族圈动态 deprecated: false description: '' tags: - 家族圈 parameters: - name: genealogyId in: path description: '' required: true example: 900001001 schema: type: integer format: int64 - name: feedId in: path description: '' required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/pc/genealogies/{genealogyId}/feeds/{feedId}/likes: post: summary: PC 点赞动态 deprecated: false description: '' tags: - 家族圈 parameters: - name: genealogyId in: path description: '' required: true example: 900001001 schema: type: integer format: int64 - name: feedId in: path description: '' required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] delete: summary: PC 取消点赞动态 deprecated: false description: '' tags: - 家族圈 parameters: - name: genealogyId in: path description: '' required: true example: 900001001 schema: type: integer format: int64 - name: feedId in: path description: '' required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/pc/genealogies/{genealogyId}/feeds/{feedId}/comments: get: summary: PC 动态评论列表 deprecated: false description: '' tags: - 家族圈 parameters: - name: genealogyId in: path description: '' required: true example: 900001001 schema: type: integer format: int64 - name: feedId in: path description: '' required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] post: summary: PC 评论动态 deprecated: false description: '' tags: - 家族圈 parameters: - name: genealogyId in: path description: '' required: true example: 900001001 schema: type: integer format: int64 - name: feedId in: path description: '' required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/FamilyFeedCommentBody' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] /genealogy/pc/genealogies/{genealogyId}/feeds/{feedId}/comments/page: get: summary: PC 动态评论分页 deprecated: false description: '' tags: - 家族圈 parameters: - name: genealogyId in: path description: '' required: true example: 900001001 schema: type: integer format: int64 - name: feedId in: path description: '' required: true example: '' schema: type: integer format: int64 - name: pageNum in: query description: '' required: false schema: type: integer default: 1 - name: pageSize in: query description: '' required: false schema: type: integer default: 10 - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/PageResult' description: 通用分页响应 security: - SaToken: [] /genealogy/pc/genealogies/{genealogyId}/feeds/{feedId}/comments/{commentId}: delete: summary: PC 删除动态评论 deprecated: false description: '' tags: - 家族圈 parameters: - name: genealogyId in: path description: '' required: true example: 900001001 schema: type: integer format: int64 - name: feedId in: path description: '' required: true example: '' schema: type: integer format: int64 - name: commentId in: path description: 评论ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: '' required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/feeds/{feedId}/comments/{commentId}/replies: get: summary: APP 获取评论的直接回复列表 deprecated: false description: 仅返回指定正常评论的正常展示直接回复;回复的 replyCount 可用于继续按需展开下一层。 tags: - 家族圈 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: feedId in: path description: 家族动态ID required: true example: '' schema: type: integer format: int64 - name: commentId in: path description: 父评论 ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/FamilyFeedCommentListResult' description: 家族圈评论列表响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/feeds/{feedId}/comments/{commentId}/replies/page: get: summary: APP 分页获取评论的直接回复 deprecated: false description: '' tags: - 家族圈 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: feedId in: path description: 家族动态ID required: true example: '' schema: type: integer format: int64 - name: commentId in: path description: 父评论 ID required: true example: '' schema: type: integer format: int64 - name: pageNum in: query description: 页码,从1开始 required: false schema: type: integer default: 1 - name: pageSize in: query description: 每页条数 required: false schema: type: integer default: 10 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/FamilyFeedCommentPageResult' description: 家族圈评论分页响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/article-categories: get: summary: APP 谱文分类 deprecated: false description: '' tags: - 内容文章 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/articles: get: summary: APP 谱文列表 deprecated: false description: '' tags: - 内容文章 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] post: summary: APP 新增谱文 deprecated: false description: '' tags: - 内容文章 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ArticleBody' example: categoryId: 900040001 articleTitle: 族谱源流 articleSummary: 介绍本支源流 coverOssId: '2060000000000000000' articleContent:
article content
authorName: 族谱管理员 sortOrder: 1 status: '0' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/articles/{articleId}: get: summary: APP 谱文详情 deprecated: false description: '' tags: - 内容文章 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: articleId in: path description: 谱文/官网文章ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] put: summary: APP 修改谱文 deprecated: false description: '' tags: - 内容文章 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: articleId in: path description: 谱文/官网文章ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ArticleBody' example: categoryId: 900040001 articleTitle: 族谱源流 articleSummary: 介绍本支源流 coverOssId: '2060000000000000000' articleContent:article content
authorName: 族谱管理员 sortOrder: 1 status: '0' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] delete: summary: APP 删除谱文 deprecated: false description: '' tags: - 内容文章 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: articleId in: path description: 要删除的谱文ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/app/help-articles: get: summary: APP 帮助文章列表 deprecated: false description: '' tags: - 内容文章 parameters: - name: clientid in: header description: 客户端ID example: ced7e5f0498645c6ec642dcf450b036f schema: type: string default: ced7e5f0498645c6ec642dcf450b036f responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] /genealogy/app/help-articles/{helpId}: get: summary: APP 帮助文章详情 deprecated: false description: '' tags: - 内容文章 parameters: - name: helpId in: path description: 帮助文章ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: 客户端ID example: ced7e5f0498645c6ec642dcf450b036f schema: type: string default: ced7e5f0498645c6ec642dcf450b036f responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] /genealogy/app/promotions: get: summary: APP 应用推广列表 deprecated: false description: '' tags: - 内容文章 parameters: - name: clientid in: header description: 客户端ID example: ced7e5f0498645c6ec642dcf450b036f schema: type: string default: ced7e5f0498645c6ec642dcf450b036f responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/albums: get: summary: APP 相册列表 deprecated: false description: '' tags: - 相册 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] post: summary: APP 创建相册 deprecated: false description: '' tags: - 相册 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/AlbumBody' example: albumName: 老照片 albumDesc: family old photos coverOssId: '2060000000000000000' sortOrder: 1 status: '0' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/albums/{albumId}: put: summary: APP 修改相册 deprecated: false description: '' tags: - 相册 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: albumId in: path description: 相册ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/AlbumBody' example: albumName: 老照片 albumDesc: family old photos coverOssId: '2060000000000000000' sortOrder: 1 status: '0' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] delete: summary: APP 删除相册 deprecated: false description: 逻辑删除相册及其照片,并释放封面和照片文件引用。 tags: - 相册 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: albumId in: path description: 要删除的相册ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/albums/{albumId}/photos: get: summary: APP 相册图片列表 deprecated: false description: '' tags: - 相册 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: albumId in: path description: 相册ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] post: summary: APP 上传相册图片记录 deprecated: false description: '' tags: - 相册 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: albumId in: path description: 相册ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/AlbumPhotoBody' example: ossId: '2060000000000000000' photoTitle: 老宅合影 photoDesc: old house photo photographer: 彭小明 shootTime: '2026-07-09 10:00:00' sortOrder: 1 status: '0' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/albums/{albumId}/photos/{photoId}: delete: summary: APP 删除单张相册图片 deprecated: false description: '' tags: - 相册 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: albumId in: path description: 相册ID required: true example: '' schema: type: integer format: int64 - name: photoId in: path description: 要删除的相册图片ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/ceremonies: get: summary: APP 祭祀列表 deprecated: false description: '' tags: - 祭祀 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] post: summary: APP 创建祭祀 deprecated: false description: '' tags: - 祭祀 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/CeremonyBody' example: ceremonyType: ancestor ceremonyTitle: 清明祭祖 ceremonyDesc: online ancestor ceremony ceremonyTime: '2026-04-04 09:00:00' location: 祠堂 coverOssId: '2060000000000000000' sortOrder: 1 status: '0' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/ceremonies/{ceremonyId}: get: summary: APP 祭祀详情 deprecated: false description: '' tags: - 祭祀 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: ceremonyId in: path description: 祭祀/活动ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] put: summary: APP 修改祭祀 deprecated: false description: '' tags: - 祭祀 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: ceremonyId in: path description: 祭祀/活动ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/CeremonyBody' example: ceremonyType: ancestor ceremonyTitle: 清明祭祖 ceremonyDesc: online ancestor ceremony ceremonyTime: '2026-04-04 09:00:00' location: 祠堂 coverOssId: '2060000000000000000' sortOrder: 1 status: '0' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] delete: summary: APP 删除祭祀活动 deprecated: false description: 逻辑删除祭祀活动及其祭品,并释放活动封面文件引用。 tags: - 祭祀 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: ceremonyId in: path description: 要删除的祭祀活动ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/ceremonies/{ceremonyId}/gifts: get: summary: APP 祭祀献礼列表 deprecated: false description: '' tags: - 祭祀 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: ceremonyId in: path description: 祭祀/活动ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] post: summary: APP 新增祭祀献礼 deprecated: false description: '' tags: - 祭祀 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: ceremonyId in: path description: 祭祀/活动ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/CeremonyGiftBody' example: giverName: 彭小明 giftAmount: 66.66 giftMessage: 缅怀先祖 required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/ceremonies/{ceremonyId}/gifts/{giftId}: delete: summary: APP 删除单条祭品 deprecated: false description: '' tags: - 祭祀 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: ceremonyId in: path description: 祭祀活动ID required: true example: '' schema: type: integer format: int64 - name: giftId in: path description: 要删除的祭品ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/growth-records: get: summary: APP 成长记录列表 deprecated: false description: '' tags: - 族务记录 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] post: summary: APP 新增成长记录 deprecated: false description: '' tags: - 族务记录 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/GrowthRecordBody' example: lineagePersonId: 900020001 recordType: birth recordTitle: 出生记录 recordContent: birth record recordDate: '2026-07-09 10:00:00' remindTime: '2027-07-09 10:00:00' mediaOssIds: '2060000000000000001' sortOrder: 1 status: '0' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/growth-records/{recordId}: get: summary: APP 成长记录详情 deprecated: false description: '' tags: - 族务记录 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: recordId in: path description: 记录ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] put: summary: APP 修改成长记录 deprecated: false description: '' tags: - 族务记录 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: recordId in: path description: 记录ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/GrowthRecordBody' example: lineagePersonId: 900020001 recordType: birth recordTitle: 出生记录 recordContent: birth record recordDate: '2026-07-09 10:00:00' remindTime: '2027-07-09 10:00:00' mediaOssIds: '2060000000000000001' sortOrder: 1 status: '0' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] delete: summary: APP 删除成长记录 deprecated: false description: '' tags: - 族务记录 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: recordId in: path description: 要删除的成长记录ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/memos: get: summary: APP 备忘录列表 deprecated: false description: '' tags: - 族务记录 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] post: summary: APP 新增备忘录 deprecated: false description: '' tags: - 族务记录 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/MemoBody' example: memoTitle: 修谱事项 memoContent: contact family members remindTime: '2026-08-01 09:00:00' completed: '0' mediaOssIds: '2060000000000000001' sortOrder: 1 status: '0' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/memos/{memoId}: get: summary: APP 备忘录详情 deprecated: false description: '' tags: - 族务记录 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: memoId in: path description: '' required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] put: summary: APP 修改备忘录 deprecated: false description: '' tags: - 族务记录 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: memoId in: path description: '' required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/MemoBody' example: memoTitle: 修谱事项 memoContent: contact family members remindTime: '2026-08-01 09:00:00' completed: '0' mediaOssIds: '2060000000000000001' sortOrder: 1 status: '0' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] delete: summary: APP 删除备忘录 deprecated: false description: '' tags: - 族务记录 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: memoId in: path description: 要删除的备忘录ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/relative-records: get: summary: APP 亲友记录列表 deprecated: false description: '' tags: - 族务记录 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] post: summary: APP 新增亲友记录 deprecated: false description: '' tags: - 族务记录 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/RelativeRecordBody' example: relativeName: 张三 relationName: 亲友 eventName: 礼尚往来 eventTime: '2026-07-16 10:00:00' giftAmount: 100 recordContent: 往来记录 mediaOssIds: '2060000000000000001' sortOrder: 1 status: '0' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/relative-records/{relativeId}: get: summary: APP 亲友记录详情 deprecated: false description: '' tags: - 族务记录 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: relativeId in: path description: 亲友记录ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] put: summary: APP 修改亲友记录 deprecated: false description: '' tags: - 族务记录 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: relativeId in: path description: 亲友记录ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/RelativeRecordBody' example: relativeName: 张三 relationName: 亲友 eventName: 礼尚往来 eventTime: '2026-07-16 10:00:00' giftAmount: 100 recordContent: 往来记录 mediaOssIds: '2060000000000000001' sortOrder: 1 status: '0' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] delete: summary: APP 删除亲友记录 deprecated: false description: '' tags: - 族务记录 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: relativeId in: path description: 要删除的亲友记录ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/merit-records: get: summary: APP 功德记录列表 deprecated: false description: '' tags: - 族务记录 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] post: summary: APP 新增功德记录 deprecated: false description: '' tags: - 族务记录 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/MeritRecordBody' example: donorName: 彭小明 meritType: donation meritTitle: 修谱捐款 meritContent: support genealogy work amount: 100 meritTime: '2026-07-09 10:00:00' sortOrder: 1 status: '0' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/merit-records/{meritId}: delete: summary: APP 删除功德记录 deprecated: false description: '' tags: - 族务记录 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: meritId in: path description: 要删除的功德记录ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/app/notifications: get: summary: APP 消息通知列表 deprecated: false description: '' tags: - 消息通知 parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] /genealogy/app/notifications/{notificationId}/read: post: summary: APP 标记通知已读 deprecated: false description: '' tags: - 消息通知 parameters: - name: notificationId in: path description: 通知ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/app/notifications/read-all: post: summary: APP 全部标记已读 deprecated: false description: '' tags: - 消息通知 parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] /genealogy/app/feedback: get: summary: APP 我的反馈列表 deprecated: false description: '' tags: - 意见反馈 parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] post: summary: APP 提交反馈 deprecated: false description: '' tags: - 意见反馈 parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/FeedbackBody' example: feedbackType: bug feedbackContent: upload image failed contactInfo: '13800000000' required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] /genealogy/app/vip/packages: get: summary: APP VIP 套餐列表 deprecated: false description: '' tags: - VIP parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] /genealogy/app/vip/orders: get: summary: APP VIP 订单列表 deprecated: false description: '' tags: - VIP parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/ListResult' description: 通用列表响应 security: - SaToken: [] post: summary: APP 创建 VIP 订单 deprecated: false description: '' tags: - VIP parameters: - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/VipOrderBody' example: packageId: 900060001 genealogyId: 900001001 payType: wechat required: true responses: '200': $ref: '#/components/responses/ObjectResult' description: 通用对象响应 security: - SaToken: [] /genealogy/app/genealogies/{genealogyId}/videos/{videoId}: delete: summary: APP 删除视频 deprecated: false description: 逻辑删除视频,并释放视频文件和封面文件引用。 tags: - 视频 parameters: - name: genealogyId in: path description: 家谱ID required: true example: 900001001 schema: type: integer format: int64 - name: videoId in: path description: 要删除的视频ID required: true example: '' schema: type: integer format: int64 - name: clientid in: header description: >- APP 认证业务请求的 clientid Header 必填;必须与请求体 clientId(如提交)一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 required: true example: 428a8310cd442757ae699df5d894f051 schema: type: string responses: '200': $ref: '#/components/responses/VoidResult' description: 通用成功响应 security: - SaToken: [] components: schemas: RVoid: type: object properties: code: description: 系统图形验证码或响应状态码 type: integer example: 200 msg: description: 响应消息 type: string example: 操作成功 data: description: 响应数据主体 type: 'null' PasswordRegisterBody: type: object additionalProperties: false required: - clientId - grantType - tenantId - phone - password - smsCode properties: clientId: description: 必填;必须与 clientid Header 一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 type: string grantType: description: 授权类型,例如password、sms、wechat、apple type: string example: password tenantId: description: 租户ID,用于区分不同租户的数据和验证策略 type: string example: '000000' phone: description: 手机号 type: string example: '13800000000' password: type: string description: 32 位 MD5 example: e10adc3949ba59abbe56e057f20f883e nickName: description: 用户昵称 type: string registerSource: description: 注册来源,例如APP、PC、H5、MINI_PROGRAM type: string smsCode: description: 4 位短信验证码 type: string pattern: ^\d{4}$ example: '1234' PasswordLoginBody: type: object additionalProperties: false required: - clientId - grantType - tenantId - phone - password properties: clientId: description: 必填;必须与 clientid Header 一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 type: string grantType: description: 授权类型,例如password、sms、wechat、apple type: string example: password tenantId: description: 租户ID,用于区分不同租户的数据和验证策略 type: string example: '000000' phone: description: 手机号 type: string example: '13800000000' password: type: string description: 32 位 MD5 example: e10adc3949ba59abbe56e057f20f883e SmsLoginBody: type: object additionalProperties: false required: - clientId - grantType - tenantId - phone - smsCode properties: clientId: description: 必填;必须与 clientid Header 一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 type: string grantType: description: 授权类型,例如password、sms、wechat、apple type: string example: sms tenantId: description: 租户ID,用于区分不同租户的数据和验证策略 type: string example: '000000' phone: description: 手机号 type: string example: '13800000000' smsCode: description: 4 位短信验证码 type: string pattern: ^\d{4}$ example: '1234' SmsCodeBody: type: object additionalProperties: false required: - clientId - grantType - tenantId - sceneCode - phone - validToken properties: clientId: description: 必填;必须与 clientid Header 一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 type: string grantType: description: 授权类型,例如password、sms、wechat、apple type: string example: sms tenantId: description: 租户ID,用于区分不同租户的数据和验证策略 type: string example: '000000' sceneCode: description: APP 短信场景编码 type: string enum: - APP_SMS_LOGIN - APP_REGISTER - APP_FORGOT_PASSWORD - APP_PHONE_CHANGE - APP_ACCOUNT_DEACTIVATE example: APP_SMS_LOGIN phone: description: 手机号 type: string example: '13800000000' validToken: description: 验证中心通过后返回的票据,仅用于发送短信验证码 type: string ProfileUpdateBody: type: object properties: nickName: description: 用户昵称 type: string avatarOssId: description: 头像文件OSS ID type: integer format: int64 sex: description: 性别,建议使用系统字典值 type: string birthday: description: 生日,格式 yyyy-MM-dd type: string format: date provinceCode: type: string cityCode: type: string districtCode: type: string PasswordChangeBody: type: object required: - oldPassword - newPassword properties: oldPassword: type: string description: 32 位 MD5 newPassword: type: string description: 32 位 MD5 PasswordResetBody: type: object additionalProperties: false required: - clientId - grantType - tenantId - phone - smsCode - newPassword properties: clientId: description: 必填;必须与 clientid Header 一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 type: string grantType: description: 授权类型 type: string example: password tenantId: description: 租户ID,用于区分不同租户的数据和验证策略 type: string example: '000000' phone: description: 手机号 type: string smsCode: description: 4 位短信验证码 type: string pattern: ^\d{4}$ example: '1234' newPassword: type: string description: 32 位 MD5 PhoneChangeBody: type: object additionalProperties: false required: - clientId - phone - smsCode properties: clientId: description: 必填;必须与 clientid Header 一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 type: string phone: description: 新手机号 type: string smsCode: description: 4 位短信验证码 type: string pattern: ^\d{4}$ example: '1234' AccountDeactivateBody: type: object additionalProperties: false required: - clientId - smsCode properties: clientId: description: 必填;必须与 clientid Header 一致,且客户端 clientKey 必须为 app 并与 APP 路由一致。 type: string smsCode: description: 4 位短信验证码 type: string pattern: ^\d{4}$ example: '1234' ResumableInitBody: type: object required: - fileName - fileSize - fileMd5 - chunkSize - totalChunks properties: fileName: description: 原始文件名 type: string fileSize: description: 文件大小,单位字节 type: integer format: int64 fileMd5: description: 完整文件MD5,用于秒传和完整性校验 type: string contentType: description: 文件MIME类型,例如 image/jpeg、video/mp4 type: string chunkSize: description: 单个分片大小,单位字节 type: integer example: 4194304 totalChunks: description: 总分片数 type: integer bizType: description: 业务类型,例如avatar、cover、feed_image type: string usageScene: description: 文件使用场景,便于后续引用统计和清理 type: string ResumableCompleteBody: type: object required: - uploadId - fileMd5 - fileSize properties: uploadId: description: 分片上传任务ID type: string fileMd5: description: 完整文件MD5,用于秒传和完整性校验 type: string fileSize: description: 文件大小,单位字节 type: integer format: int64 FileReferenceBody: type: object required: - bizType - bizTable - bizId - bizField properties: bizType: description: 业务类型,例如avatar、cover、feed_image type: string example: family_feed bizName: description: 业务名称,用于后台展示文件引用来源 type: string example: 家族圈动态 bizTable: description: 业务表名,用于文件引用绑定 type: string example: gen_family_feed bizId: description: 业务数据ID,用于文件引用绑定 type: integer format: int64 bizField: description: 业务字段名,例如avatar_oss_id、cover_oss_id type: string example: media_ids ossId: description: OSS文件ID,表单内部使用,用户侧应通过上传组件获取 type: integer format: int64 ossIds: type: string example: 2060001,2060002 usageScene: description: 文件使用场景,便于后续引用统计和清理 type: string usageName: type: string GenerationPoemBatchBody: type: object required: - poemText properties: poemText: description: 字辈文本。无分隔符时按单个字拆分;可用空格、逗号、分号、顿号、斜杠或竖线分隔多个字辈。单个字辈最多50个字符,一次最多500个世代。 type: string maxLength: 26000 example: |- 德承家亦 忠厚传芳 disableMissing: description: 保存时是否停用未出现在新文本中的后续世代;不会删除历史记录。 type: boolean example: false LineagePersonBody: type: object additionalProperties: false required: - name properties: appUserId: description: 绑定的业务用户ID;仅家谱管理员可绑定,且用户必须属于当前租户并处于正常状态 type: integer format: int64 personNo: description: 人物编号;不传时由服务端生成 type: string name: description: 姓名 type: string aliasName: description: 别名或曾用名 type: string sex: description: 性别,建议使用系统字典值 type: string example: '0' generation: description: 世代序号 type: integer format: int64 generationName: description: 字辈或辈分 type: string fatherId: description: 父亲人物ID,必须属于当前家谱 type: integer format: int64 motherId: description: 母亲人物ID,必须属于当前家谱 type: integer format: int64 avatarOssId: description: 头像文件OSS ID;用户界面应通过统一上传组件获得,不允许手工录入 type: integer format: int64 nullable: true birthDate: type: string format: date-time nullable: true birthLunar: description: 生日是否农历,使用项目字典值 type: string birthPlace: description: 出生地 type: string deathDate: type: string format: date-time nullable: true deathLunar: description: 逝世日期是否农历,使用项目字典值 type: string deathPlace: description: 逝世地 type: string burialPlace: description: 安葬地 type: string personStatus: description: 人物状态字典值 type: string biography: description: 人物简介 type: string sortOrder: description: 排序值,数值越小越靠前 type: integer format: int64 remark: description: 备注 type: string relationName: description: 通过添加配偶快捷接口提交时使用的关系显示名称 type: string FamilyFeedBody: type: object required: - feedContent properties: feedType: description: 动态类型,未传时默认为 text type: string example: text feedContent: description: 动态内容,不能为空 type: string example: 今天上传一张老照片。 mediaOssIds: description: 媒体文件 OSS ID 列表,多个 ID 使用英文逗号分隔 type: string example: 2060000000000000001,2060000000000000002 sortOrder: description: 排序值,未传时默认为 0 type: integer format: int64 example: 0 status: description: 动态状态,未传时默认为正常状态 type: string example: '0' FamilyFeedCommentBody: type: object required: - commentContent properties: parentCommentId: description: 父评论 ID;不传或传 null 表示发布一级评论 type: integer format: int64 nullable: true commentContent: description: 评论内容,最多 1000 个字符 type: string GenealogyCreateBody: type: object required: - genealogyName - surname - regionCode properties: genealogyName: description: 家谱名称 type: string surname: description: 姓氏 type: string ancestralHall: description: 堂号/祠堂名称 type: string originPlace: description: 籍贯/起源地 type: string regionCode: description: 行政区划编码 type: string addressDetail: description: 详细地址 type: string coverOssId: description: 封面图片OSS ID type: integer format: int64 intro: description: 简介 type: string visibility: description: 可见范围,例如0私密、1公开、2成员可见 type: string joinMode: description: 加入方式,例如0关闭、1审核、2邀请码 type: string example: genealogyName: 彭氏家谱 surname: 彭 ancestralHall: 陇西堂 originPlace: 江西吉安 regionCode: '360800' addressDetail: 江西省吉安市 coverOssId: 2060000000000000000 intro: 彭氏家谱简介 visibility: '1' joinMode: '1' GenealogyUpdateBody: type: object properties: genealogyName: description: 家谱名称 type: string surname: description: 姓氏 type: string ancestralHall: description: 堂号/祠堂名称 type: string originPlace: description: 籍贯/起源地 type: string regionCode: description: 行政区划编码 type: string addressDetail: description: 详细地址 type: string coverOssId: description: 封面图片OSS ID type: integer format: int64 intro: description: 简介 type: string visibility: description: 可见范围,例如0私密、1公开、2成员可见 type: string joinMode: description: 加入方式,例如0关闭、1审核、2邀请码 type: string example: genealogyName: 彭氏家谱 surname: 彭 ancestralHall: 陇西堂 originPlace: 江西吉安 regionCode: '360800' addressDetail: 江西省吉安市 coverOssId: 2060000000000000000 intro: 更新后的家谱简介 visibility: '1' joinMode: '1' GenealogyJoinApplyBody: type: object properties: applicantName: description: 申请人姓名 type: string phone: description: 手机号 type: string relationDesc: description: 与家谱/人物的关系说明 type: string applyReason: description: 申请理由 type: string inviterUserId: description: 邀请人业务用户ID type: integer format: int64 example: applicantName: 彭小明 phone: '13800000000' relationDesc: 本族成员 applyReason: 申请加入家谱维护 inviterUserId: 900000001 GenealogyJoinAuditBody: type: object required: - status properties: status: description: 状态,建议使用对应字典值 type: string auditRemark: description: 审核备注 type: string example: status: '1' auditRemark: 信息核验通过 GenealogyMemberUpdateBody: type: object properties: memberName: description: 成员姓名 type: string relationName: description: 成员关系名称 type: string roleType: description: 成员角色类型,例如创建者、管理员、普通成员 type: string lineagePersonId: description: 绑定的世系人物ID type: integer format: int64 example: memberName: 彭小明 relationName: 族亲 roleType: member lineagePersonId: 900020001 GenealogyOwnerTransferBody: type: object required: - targetMemberId properties: targetMemberId: description: 目标成员ID type: integer format: int64 example: targetMemberId: 900010002 GenerationPoemBody: type: object required: - generationNo - generationText properties: generationNo: description: 世代序号 type: integer format: int64 minimum: 1 maximum: 2147483647 generationText: description: 当前世代的字辈文字,最长50个字符 type: string maxLength: 50 description: description: 字辈说明,最长500个字符 type: string maxLength: 500 sortOrder: description: 排序值,数值越小越靠前 type: integer format: int64 minimum: -2147483648 maximum: 2147483647 status: description: 状态,0正常,1停用 type: string example: generationNo: 5 generationText: 忠 description: fifth generation poem sortOrder: 5 status: '0' ArticleBody: type: object required: - articleTitle - articleContent properties: categoryId: description: 分类ID type: integer format: int64 articleTitle: description: 文章标题 type: string articleSummary: description: 文章摘要 type: string coverOssId: description: 封面图片OSS ID type: integer format: int64 articleContent: description: 文章内容 type: string authorName: description: 作者名称 type: string sortOrder: description: 排序值,数值越小越靠前 type: integer format: int64 status: description: 状态,建议使用对应字典值 type: string example: categoryId: 900040001 articleTitle: 族谱源流 articleSummary: 介绍本支源流 coverOssId: 2060000000000000000 articleContent:article content
authorName: 族谱管理员 sortOrder: 1 status: '0' AlbumBody: type: object required: - albumName properties: albumName: description: 相册名称 type: string albumDesc: description: 相册说明 type: string coverOssId: description: 封面图片OSS ID type: integer format: int64 sortOrder: description: 排序值,数值越小越靠前 type: integer format: int64 status: description: 状态,建议使用对应字典值 type: string example: albumName: 老照片 albumDesc: family old photos coverOssId: 2060000000000000000 sortOrder: 1 status: '0' AlbumPhotoBody: type: object required: - ossId properties: ossId: description: OSS文件ID,表单内部使用,用户侧应通过上传组件获取 type: integer format: int64 photoTitle: description: 图片标题 type: string photoDesc: description: 图片说明 type: string photographer: description: 拍摄人 type: string shootTime: description: 拍摄时间 type: string sortOrder: description: 排序值,数值越小越靠前 type: integer format: int64 status: description: 状态,建议使用对应字典值 type: string example: ossId: 2060000000000000000 photoTitle: 老宅合影 photoDesc: old house photo photographer: 彭小明 shootTime: '2026-07-09 10:00:00' sortOrder: 1 status: '0' CeremonyBody: type: object required: - ceremonyType - ceremonyTitle properties: ceremonyType: description: 祭祀/活动类型 type: string ceremonyTitle: description: 祭祀/活动标题 type: string ceremonyDesc: description: 祭祀/活动说明 type: string ceremonyTime: description: 祭祀/活动时间 type: string location: description: 地点 type: string coverOssId: description: 封面图片OSS ID type: integer format: int64 sortOrder: description: 排序值,数值越小越靠前 type: integer format: int64 status: description: 状态,建议使用对应字典值 type: string example: ceremonyType: ancestor ceremonyTitle: 清明祭祖 ceremonyDesc: online ancestor ceremony ceremonyTime: '2026-04-04 09:00:00' location: 祠堂 coverOssId: 2060000000000000000 sortOrder: 1 status: '0' CeremonyGiftBody: type: object required: - giftAmount properties: giverName: description: 赠送人/献礼人姓名 type: string giftAmount: description: 礼物金额 type: number format: double giftMessage: description: 礼物留言 type: string example: giverName: 彭小明 giftAmount: 66.66 giftMessage: 缅怀先祖 GrowthRecordBody: type: object required: - recordTitle properties: lineagePersonId: description: 绑定的世系人物ID type: integer format: int64 recordType: description: 记录类型 type: string recordTitle: description: 记录标题 type: string recordContent: description: 记录内容 type: string recordDate: description: 记录日期 type: string remindTime: description: 提醒时间 type: string mediaOssIds: description: 媒体文件 OSS ID 列表;多个正整数 ID 使用英文逗号分隔,禁止空项和其他字符 type: string pattern: ^$|^[1-9][0-9]*(,[1-9][0-9]*)*$ sortOrder: description: 排序值,数值越小越靠前 type: integer format: int64 status: description: 状态,建议使用对应字典值 type: string example: lineagePersonId: 900020001 recordType: birth recordTitle: 出生记录 recordContent: birth record recordDate: '2026-07-09 10:00:00' remindTime: '2027-07-09 10:00:00' mediaOssIds: '2060000000000000001' sortOrder: 1 status: '0' MemoBody: type: object required: - memoTitle properties: memoTitle: description: 备忘标题 type: string memoContent: description: 备忘内容 type: string remindTime: description: 提醒时间 type: string completed: description: 是否已完成 type: string mediaOssIds: description: 媒体文件 OSS ID 列表;多个正整数 ID 使用英文逗号分隔,禁止空项和其他字符 type: string pattern: ^$|^[1-9][0-9]*(,[1-9][0-9]*)*$ sortOrder: description: 排序值,数值越小越靠前 type: integer format: int64 status: description: 状态,建议使用对应字典值 type: string example: memoTitle: 修谱事项 memoContent: contact family members remindTime: '2026-08-01 09:00:00' completed: '0' mediaOssIds: '2060000000000000001' sortOrder: 1 status: '0' RelativeRecordBody: type: object required: - relativeName properties: relativeName: description: 亲友姓名 type: string relationName: description: 关系名称 type: string eventName: description: 事件名称 type: string eventTime: description: 事件时间 type: string giftAmount: description: 礼金金额 type: number recordContent: description: 记录内容 type: string mediaOssIds: description: 媒体文件 OSS ID 列表;多个正整数 ID 使用英文逗号分隔,禁止空项和其他字符 type: string pattern: ^$|^[1-9][0-9]*(,[1-9][0-9]*)*$ sortOrder: description: 排序值,数值越小越靠前 type: integer format: int64 status: description: 状态,建议使用对应字典值 type: string MeritRecordBody: type: object required: - donorName - meritTitle properties: donorName: description: 功德人/捐赠人姓名 type: string meritType: description: 功德类型 type: string meritTitle: description: 功德标题 type: string meritContent: description: 功德内容 type: string amount: description: 金额 type: number format: double meritTime: description: 功德时间 type: string sortOrder: description: 排序值,数值越小越靠前 type: integer format: int64 status: description: 状态,建议使用对应字典值 type: string example: donorName: 彭小明 meritType: donation meritTitle: 修谱捐款 meritContent: support genealogy work amount: 100 meritTime: '2026-07-09 10:00:00' sortOrder: 1 status: '0' FeedbackBody: type: object required: - feedbackContent properties: feedbackType: description: 反馈类型 type: string feedbackContent: description: 反馈内容 type: string contactInfo: description: 联系方式 type: string example: feedbackType: bug feedbackContent: upload image failed contactInfo: '13800000000' VipOrderBody: type: object required: - packageId properties: packageId: description: VIP套餐ID type: integer format: int64 genealogyId: description: 家谱ID type: integer format: int64 payType: description: 支付方式 type: string example: packageId: 900060001 genealogyId: 900001001 payType: wechat VerificationChallengeBody: type: object required: - tenantId - clientId - sceneCode - subject properties: tenantId: type: string description: 租户 ID clientId: type: string description: 客户端 ID sceneCode: type: string description: APP 短信场景编码 enum: - APP_SMS_LOGIN - APP_REGISTER - APP_FORGOT_PASSWORD - APP_PHONE_CHANGE - APP_ACCOUNT_DEACTIVATE subject: type: string description: 验证主体,如手机号/用户名/IP example: tenantId: '000000' clientId: 428a8310cd442757ae699df5d894f051 sceneCode: APP_SMS_LOGIN subject: '13800000000' VerificationCheckBody: type: object required: - tenantId - clientId - sceneCode - subject - challengeId properties: tenantId: description: 租户ID,用于区分不同租户的数据和验证策略 type: string clientId: description: 客户端ID,对应后台客户端管理中的APP/PC/小程序等终端 type: string sceneCode: description: APP 短信场景编码 type: string enum: - APP_SMS_LOGIN - APP_REGISTER - APP_FORGOT_PASSWORD - APP_PHONE_CHANGE - APP_ACCOUNT_DEACTIVATE subject: description: 验证主体,通常为手机号、用户ID或登录账号 type: string challengeId: description: 验证挑战ID,由验证挑战接口返回 type: string providerCode: type: string description: 验证服务,tianai 或 ruoyi_image captchaType: type: string description: SLIDER/ROTATE/CONCAT/WORD_IMAGE_CLICK/math/char payload: description: 验证结果载荷。天爱行为验证码提交 payload.track;系统图形验证码提交 payload.uuid 和 payload.code oneOf: - $ref: '#/components/schemas/TianaiVerificationPayload' - $ref: '#/components/schemas/SystemImageVerificationPayload' TianaiVerificationPayload: type: object description: >- 将天爱 1.5.5 前端验证回调中的 data 原样放入 track;回调 id 不放入 payload,挑战标识统一提交顶层 challengeId required: - track properties: track: $ref: '#/components/schemas/TianaiCaptchaTrack' TianaiCaptchaTrack: type: object required: - bgImageWidth - bgImageHeight - startTime - stopTime - trackList properties: bgImageWidth: type: integer description: 验证码背景图片在前端实际显示的宽度,单位像素 bgImageHeight: type: integer description: 验证码背景图片在前端实际显示的高度,单位像素 templateImageWidth: type: integer description: 滑块或旋转模板图片在前端实际显示的宽度,单位像素 templateImageHeight: type: integer description: 滑块或旋转模板图片在前端实际显示的高度,单位像素 startTime: type: integer format: int64 description: 用户开始操作的时间戳,单位毫秒 stopTime: type: integer format: int64 description: 用户结束操作的时间戳,单位毫秒 left: type: integer description: 滑块最终水平偏移量,单位像素;由天爱前端控件生成 top: type: integer description: 点选或模板最终垂直偏移量,单位像素;由天爱前端控件生成 trackList: type: array minItems: 1 description: 用户操作轨迹,不能为空,必须直接使用天爱前端控件产生的数据 items: $ref: '#/components/schemas/TianaiCaptchaTrackPoint' data: type: object additionalProperties: true description: 不同验证码类型附带的扩展数据,由天爱前端控件原样提交 properties: {} nullable: true TianaiCaptchaTrackPoint: type: object required: - x - 'y' - t - type properties: x: type: number format: float description: 当前轨迹点的水平坐标 'y': type: number format: float description: 当前轨迹点的垂直坐标 t: type: number format: float description: 当前轨迹点相对操作开始时的时间,单位毫秒 type: type: string description: 轨迹事件类型,例如 down、move、up SystemImageVerificationPayload: type: object required: - uuid - code properties: uuid: type: string description: 系统图形验证码接口返回的唯一标识 code: type: string description: 用户填写的图形验证码答案 RObject: type: object properties: code: description: 系统图形验证码或响应状态码 type: integer example: 200 msg: description: 响应消息 type: string example: 操作成功 data: description: 响应数据主体 type: object additionalProperties: true properties: {} RList: type: object properties: code: description: 系统图形验证码或响应状态码 type: integer example: 200 msg: description: 响应消息 type: string example: 操作成功 data: description: 响应数据主体 type: array items: type: object additionalProperties: true properties: {} PageResult: type: object properties: code: description: 系统图形验证码或响应状态码 type: integer example: 200 msg: description: 响应消息 type: string example: 操作成功 rows: description: 分页数据列表 type: array items: type: object additionalProperties: true properties: {} total: type: integer example: 0 RLogin: type: object properties: code: description: 系统图形验证码或响应状态码 type: integer example: 200 msg: description: 响应消息 type: string example: 操作成功 data: description: 响应数据主体 $ref: '#/components/schemas/LoginVo' LoginVo: type: object properties: token: type: string accessToken: type: string tokenValue: type: string userId: type: integer format: int64 tenantId: description: 租户ID,用于区分不同租户的数据和验证策略 type: string clientId: description: 客户端ID,对应后台客户端管理中的APP/PC/小程序等终端 type: string clientKey: type: string RFileUpload: type: object properties: code: description: 系统图形验证码或响应状态码 type: integer example: 200 msg: description: 响应消息 type: string example: 操作成功 data: description: 响应数据主体 $ref: '#/components/schemas/FileUploadVo' FileUploadVo: type: object properties: ossId: description: OSS文件ID,表单内部使用,用户侧应通过上传组件获取 type: integer format: int64 url: type: string thumbnailUrl: type: string nullable: true fileName: description: 原始文件名 type: string originalName: type: string RVerificationRequire: type: object properties: code: description: 系统图形验证码或响应状态码 type: integer example: 200 msg: description: 响应消息 type: string example: 操作成功 data: description: 响应数据主体 $ref: '#/components/schemas/VerificationRequireVo' VerificationRequireVo: type: object properties: required: description: 当前场景是否需要验证 type: boolean providerCode: description: 第三方服务商编码 type: string captchaType: description: 验证码类型,例如SLIDER、ROTATE、CONCAT、WORD_IMAGE_CLICK type: string sceneCode: description: APP 短信场景编码 type: string enum: - APP_SMS_LOGIN - APP_REGISTER - APP_FORGOT_PASSWORD - APP_PHONE_CHANGE - APP_ACCOUNT_DEACTIVATE ttlSeconds: description: 验证或票据有效秒数 type: integer example: required: true providerCode: tianai captchaType: SLIDER sceneCode: APP_SMS_LOGIN ttlSeconds: 300 RVerificationChallenge: type: object properties: code: description: 系统图形验证码或响应状态码 type: integer example: 200 msg: description: 响应消息 type: string example: 操作成功 data: description: 响应数据主体 $ref: '#/components/schemas/VerificationChallengeVo' VerificationChallengeVo: type: object properties: required: description: 当前场景是否需要验证 type: boolean providerCode: description: 第三方服务商编码 type: string captchaType: description: 验证码类型,例如SLIDER、ROTATE、CONCAT、WORD_IMAGE_CLICK type: string challengeId: description: 验证挑战ID,由验证挑战接口返回 type: string uuid: type: string description: 系统图形验证码 uuid img: type: string description: 系统图形验证码 base64 图片 payload: type: object additionalProperties: true description: 天爱验证码数据,包括背景图、模板图、尺寸等 properties: {} expireSeconds: description: 验证挑战过期秒数 type: integer example: required: true providerCode: tianai captchaType: SLIDER challengeId: CAPTCHA_CHALLENGE_ID payload: backgroundImage: data:image/png;base64,... templateImage: data:image/png;base64,... backgroundImageWidth: 340 backgroundImageHeight: 180 expireSeconds: 300 RVerificationCheck: type: object properties: code: description: 系统图形验证码或响应状态码 type: integer example: 200 msg: description: 响应消息 type: string example: 操作成功 data: description: 响应数据主体 $ref: '#/components/schemas/VerificationCheckVo' VerificationCheckVo: type: object properties: passed: description: 验证是否通过 type: boolean validToken: type: string description: 验证通过后交给发送短信验证码接口的票据 expireSeconds: description: 验证挑战过期秒数 type: integer message: description: 返回消息 type: string example: passed: true validToken: captcha-ticket expireSeconds: 300 message: 验证通过 RLegacyCaptcha: type: object properties: code: description: 系统图形验证码或响应状态码 type: integer example: 200 msg: description: 响应消息 type: string example: 操作成功 data: description: 响应数据主体 $ref: '#/components/schemas/LegacyCaptchaVo' LegacyCaptchaVo: type: object properties: captchaEnabled: type: boolean uuid: description: 系统图形验证码UUID type: string img: type: string description: base64 图形验证码 example: captchaEnabled: true uuid: captcha-uuid img: data:image/png;base64,... RGenerationPoem: type: object properties: code: description: 响应状态码 type: integer example: 200 msg: description: 响应消息 type: string data: $ref: '#/components/schemas/GenerationPoemView' GenerationPoemView: type: object properties: poemId: description: 字辈记录ID type: integer format: int64 genealogyId: description: 所属家谱ID type: integer format: int64 genealogyNo: description: 家谱编号 type: string genealogyName: description: 家谱名称 type: string generationNo: description: 世代序号 type: integer format: int64 generationText: description: 字辈文字 type: string description: description: 字辈说明 type: string sortOrder: description: 排序值,数值越小越靠前 type: integer format: int64 status: description: 状态,0正常,1停用 type: string RGenerationPoemList: type: object properties: code: description: 响应状态码 type: integer example: 200 msg: description: 响应消息 type: string data: type: array items: $ref: '#/components/schemas/GenerationPoemView' RGenerationPoemBatchPreview: type: object properties: code: description: 响应状态码 type: integer example: 200 msg: description: 响应消息 type: string data: $ref: '#/components/schemas/GenerationPoemBatchPreviewView' GenerationPoemBatchPreviewView: type: object properties: genealogyId: description: 所属家谱ID type: integer format: int64 genealogyNo: description: 家谱编号 type: string genealogyName: description: 家谱名称 type: string createCount: description: 将新增的字辈数量 type: integer updateCount: description: 将修改或恢复的字辈数量 type: integer keepCount: description: 保持不变的字辈数量 type: integer disableCount: description: 将停用的字辈数量 type: integer items: description: 按世代排序的逐项变更预览 type: array items: $ref: '#/components/schemas/GenerationPoemBatchItemView' GenerationPoemBatchItemView: type: object properties: poemId: description: 现有字辈记录ID;新增时为空 type: integer format: int64 generationNo: description: 世代序号 type: integer format: int64 oldGenerationText: description: 保存前字辈文字 type: string newGenerationText: description: 保存后字辈文字 type: string oldStatus: description: 保存前状态 type: string newStatus: description: 保存后状态 type: string action: description: 预览动作,create、update、keep 或 disable type: string warning: description: 需要用户确认的变更提示 type: string RLineagePerson: type: object properties: code: description: 响应状态码 type: integer example: 200 msg: description: 响应消息 type: string example: 操作成功 data: $ref: '#/components/schemas/LineagePersonView' LineagePersonView: type: object properties: personId: description: 人物ID type: integer format: int64 genealogyId: description: 家谱ID type: integer format: int64 genealogyName: description: 家谱名称 type: string genealogyNo: description: 家谱编号 type: string appUserId: description: 绑定业务用户ID type: integer format: int64 nullable: true appUserNickName: description: 绑定业务用户昵称 type: string personNo: description: 人物编号 type: string name: description: 姓名 type: string aliasName: description: 别名或曾用名 type: string sex: description: 性别字典值 type: string generation: description: 世代序号 type: integer format: int64 generationName: description: 字辈或辈分 type: string fatherId: description: 父亲人物ID type: integer format: int64 nullable: true fatherName: description: 父亲姓名 type: string motherId: description: 母亲人物ID type: integer format: int64 nullable: true motherName: description: 母亲姓名 type: string spouseNames: description: 配偶姓名,多个使用顿号分隔 type: string avatarOssId: description: 头像文件OSS ID type: integer format: int64 nullable: true birthDate: description: 出生日期 type: string format: date-time nullable: true birthLunar: description: 生日是否农历字典值 type: string birthPlace: description: 出生地 type: string deathDate: description: 逝世日期 type: string format: date-time nullable: true deathLunar: description: 逝世日期是否农历字典值 type: string deathPlace: description: 逝世地 type: string burialPlace: description: 安葬地 type: string personStatus: description: 人物状态字典值 type: string biography: description: 人物简介 type: string sortOrder: description: 排序值 type: integer format: int64 status: description: 数据状态,0正常、1停用 type: string remark: description: 备注 type: string RLineagePersonList: type: object properties: code: description: 响应状态码 type: integer example: 200 msg: description: 响应消息 type: string example: 操作成功 data: type: array items: $ref: '#/components/schemas/LineagePersonView' RLineagePersonTreeList: type: object properties: code: description: 响应状态码 type: integer example: 200 msg: description: 响应消息 type: string example: 操作成功 data: type: array items: $ref: '#/components/schemas/LineagePersonTreeView' LineagePersonTreeView: allOf: - $ref: '#/components/schemas/LineagePersonView' - type: object properties: relationType: description: 与当前树节点的关系类型 type: string relationName: description: 关系显示名称 type: string spouses: description: 配偶节点 type: array items: $ref: '#/components/schemas/LineagePersonTreeView' children: description: 子女节点 type: array items: $ref: '#/components/schemas/LineagePersonTreeView' LineagePersonPageResult: type: object properties: code: description: 响应状态码 type: integer example: 200 msg: description: 响应消息 type: string example: 操作成功 rows: description: 当前页世系人物 type: array items: $ref: '#/components/schemas/LineagePersonView' total: description: 总记录数 type: integer format: int64 example: 0 RFamilyFeedComment: type: object properties: code: description: 响应状态码 type: integer example: 200 msg: description: 响应消息 type: string data: $ref: '#/components/schemas/FamilyFeedCommentView' FamilyFeedCommentView: type: object properties: commentId: description: 评论 ID type: integer format: int64 genealogyId: description: 所属家谱 ID type: integer format: int64 feedId: description: 所属动态 ID type: integer format: int64 parentCommentId: description: 父评论 ID;null 或 0 表示一级评论 type: integer format: int64 nullable: true appUserId: description: 评论业务用户 ID type: integer format: int64 appUserNickName: description: 评论人昵称 type: string appUserAvatar: description: 评论人头像文件 ID type: integer format: int64 nullable: true parentAppUserId: description: 被直接回复的业务用户 ID type: integer format: int64 nullable: true parentAppUserNickName: description: 被直接回复的用户昵称 type: string nullable: true commentContent: description: 评论内容;作者删除后为 null type: string nullable: true userDeleted: description: 作者删除状态,0 未删除,1 已删除并保留占位 type: string enum: - '0' - '1' example: '0' replyCount: description: 正常展示的直接回复数量 type: integer format: int64 commentLevel: description: 评论层级,root 为一级评论,reply 为回复 type: string enum: - root - reply status: description: 可见状态;会员接口仅返回 0(正常展示) type: string example: '0' createTime: description: 评论发布时间 type: string format: date-time RFamilyFeedCommentList: type: object properties: code: description: 响应状态码 type: integer example: 200 msg: description: 响应消息 type: string data: type: array items: $ref: '#/components/schemas/FamilyFeedCommentView' FamilyFeedCommentPageResult: type: object properties: code: description: 响应状态码 type: integer example: 200 msg: description: 响应消息 type: string rows: description: 评论分页数据 type: array items: $ref: '#/components/schemas/FamilyFeedCommentView' total: description: 评论总数 type: integer format: int64 responses: VoidResult: description: 通用成功响应 content: application/json: schema: $ref: '#/components/schemas/RVoid' ObjectResult: description: 通用对象响应 content: application/json: schema: $ref: '#/components/schemas/RObject' ListResult: description: 通用列表响应 content: application/json: schema: $ref: '#/components/schemas/RList' PageResult: description: 通用分页响应 content: application/json: schema: $ref: '#/components/schemas/PageResult' LoginResult: description: 登录结果 content: application/json: schema: $ref: '#/components/schemas/RLogin' FileUploadResult: description: 文件上传结果 content: application/json: schema: $ref: '#/components/schemas/RFileUpload' VerificationRequireResult: description: 验证需求查询结果 content: application/json: schema: $ref: '#/components/schemas/RVerificationRequire' VerificationChallengeResult: description: 验证挑战生成结果 content: application/json: schema: $ref: '#/components/schemas/RVerificationChallenge' VerificationCheckResult: description: 验证校验结果 content: application/json: schema: $ref: '#/components/schemas/RVerificationCheck' LegacyCaptchaResult: description: 兼容旧图形验证码结果 content: application/json: schema: $ref: '#/components/schemas/RLegacyCaptcha' GenerationPoemResult: description: 字辈详情响应 content: application/json: schema: $ref: '#/components/schemas/RGenerationPoem' GenerationPoemListResult: description: 字辈列表响应 content: application/json: schema: $ref: '#/components/schemas/RGenerationPoemList' GenerationPoemBatchPreviewResult: description: 字辈批量预览响应 content: application/json: schema: $ref: '#/components/schemas/RGenerationPoemBatchPreview' LineagePersonResult: description: 世系人物详情响应 content: application/json: schema: $ref: '#/components/schemas/RLineagePerson' LineagePersonListResult: description: 世系人物列表或选项响应 content: application/json: schema: $ref: '#/components/schemas/RLineagePersonList' LineagePersonTreeResult: description: 世系树响应 content: application/json: schema: $ref: '#/components/schemas/RLineagePersonTreeList' LineagePersonPageResult: description: 世系人物分页响应 content: application/json: schema: $ref: '#/components/schemas/LineagePersonPageResult' FamilyFeedCommentResult: description: 家族圈评论对象响应 content: application/json: schema: $ref: '#/components/schemas/RFamilyFeedComment' FamilyFeedCommentListResult: description: 家族圈评论列表响应 content: application/json: schema: $ref: '#/components/schemas/RFamilyFeedCommentList' FamilyFeedCommentPageResult: description: 家族圈评论分页响应 content: application/json: schema: $ref: '#/components/schemas/FamilyFeedCommentPageResult' securitySchemes: SaToken: type: apiKey in: header name: Authorization description: 登录后返回的 token。若本地配置使用 sa-token 名称,请按项目实际 token-name 调整。 servers: [] security: - SaToken: []