Files
jiapuapp/家谱.openapi.json
T
2026-07-27 06:50:23 +08:00

11571 lines
332 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"openapi": "3.0.1",
"info": {
"title": "家谱",
"description": "家谱业务 APP/PC 用户侧接口文档,用于 Apifox 导入。\n\n导入方式:Apifox -> 导入 API 数据 -> OpenAPI/Swagger -> 选择本文件。\n\n约定:\n- APP 路径前缀为 `/genealogy/app`\n- PC/H5 路径前缀为 `/genealogy/pc`\n- 后台管理接口不包含在本文件内\n- 登录后接口需要携带 token,且请求 Header 需携带 `clientid`\n",
"version": "1.0.0"
},
"tags": [
{
"name": "验证中心"
},
{
"name": "认证登录"
},
{
"name": "文件上传"
},
{
"name": "行政区划"
},
{
"name": "家谱"
},
{
"name": "家谱成员"
},
{
"name": "字辈谱"
},
{
"name": "世系人物"
},
{
"name": "家族圈"
},
{
"name": "内容文章"
},
{
"name": "相册"
},
{
"name": "祭祀"
},
{
"name": "族务记录"
},
{
"name": "消息通知"
},
{
"name": "意见反馈"
},
{
"name": "VIP"
},
{
"name": "视频"
},
{
"name": "贺礼邀约"
}
],
"paths": {
"/genealogy/app/auth/verification/{operationCode}/require": {
"get": {
"summary": "查询 APP 认证动作是否需要验证",
"deprecated": false,
"description": "服务端按 operationCode 对应 APP 路由的当前激活绑定解析验证场景,前端不得提交 sceneCode。",
"tags": [
"验证中心"
],
"parameters": [
{
"name": "operationCode",
"in": "path",
"description": "APP 认证业务动作",
"required": true,
"example": "",
"schema": {
"type": "string",
"enum": [
"password-login",
"sms-login",
"register",
"forgot-password",
"phone-change",
"account-deactivate"
]
}
},
{
"name": "tenantId",
"in": "query",
"description": "租户ID,用于区分不同租户的数据和验证策略",
"required": true,
"example": "000000",
"schema": {
"type": "string"
}
},
{
"name": "subject",
"in": "query",
"description": "验证主体,通常为手机号、用户ID或登录账号",
"required": false,
"example": "13800000000",
"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/VerificationRequireResult",
"description": "验证需求查询结果"
}
},
"security": [
{
"SaToken": []
}
]
}
},
"/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_LOGIN,短信登录验证码使用 APP_SMS_LOGIN",
"required": true,
"example": "APP_LOGIN",
"schema": {
"type": "string",
"enum": [
"APP_LOGIN",
"APP_SMS_LOGIN",
"APP_REGISTER",
"APP_FORGOT_PASSWORD",
"APP_PHONE_CHANGE",
"APP_ACCOUNT_DEACTIVATE"
]
}
},
{
"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": []
}
]
}
},
"/genealogy/app/auth/verification/{operationCode}/challenge": {
"post": {
"summary": "生成 APP 认证动作验证挑战",
"deprecated": false,
"description": "服务端按 operationCode 的激活绑定解析场景。tenantId、subject 必须完整提交;clientid 仅从 Header 读取,前端不得提交 clientId 或 sceneCode。",
"tags": [
"验证中心"
],
"parameters": [
{
"name": "operationCode",
"in": "path",
"description": "APP 认证业务动作",
"required": true,
"example": "",
"schema": {
"type": "string",
"enum": [
"password-login",
"sms-login",
"register",
"forgot-password",
"phone-change",
"account-deactivate"
]
}
},
{
"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/VerificationChallengeBody"
},
"example": {
"tenantId": "000000",
"subject": "13800000000"
}
}
},
"required": true
},
"responses": {
"200": {
"$ref": "#/components/responses/VerificationChallengeResult",
"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": []
}
]
}
},
"/genealogy/app/auth/verification/{operationCode}/verify": {
"post": {
"summary": "校验 APP 认证动作验证结果并换取 validToken",
"deprecated": false,
"description": "必须使用生成挑战时相同的 operationCode、tenantId、subject 和 challengeId。clientid 仅从 Header 读取;服务端重新解析同一路由的激活场景,前端不得提交 clientId 或 sceneCode。",
"tags": [
"验证中心"
],
"parameters": [
{
"name": "operationCode",
"in": "path",
"description": "APP 认证业务动作",
"required": true,
"example": "",
"schema": {
"type": "string",
"enum": [
"password-login",
"sms-login",
"register",
"forgot-password",
"phone-change",
"account-deactivate"
]
}
},
{
"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/VerificationCheckBody"
},
"examples": {
"tianai_behavior": {
"value": {
"tenantId": "000000",
"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",
"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": []
}
]
}
},
"/captcha/verify": {
"post": {
"summary": "校验验证结果并换取 validToken",
"deprecated": false,
"description": "必须提交生成挑战时相同的 tenantId、clientId、sceneCode、subject 和 challengeId。验证通过后返回 validToken;该票据只能由租户、客户端、场景、主体和 IP 完全一致的目标业务入口单次消费。APP_LOGIN 由密码登录接口消费,短信业务场景由短信验证码发送接口消费。",
"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",
"validToken": "valid-token-from-captcha-verify"
}
}
},
"required": true
},
"responses": {
"200": {
"$ref": "#/components/responses/LoginResult",
"description": "登录结果"
},
"400": {
"$ref": "#/components/responses/LoginResult",
"description": "后端按 APP_PASSWORD_LOGIN 路由的当前激活绑定解析场景;该场景策略要求验证时必须提交匹配的 validToken,不要求验证时 validToken 可为空;请求携带已废弃的 sceneCode 或其他未知字段返回 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/{operationCode}/code": {
"post": {
"summary": "APP 发送短信验证码",
"deprecated": false,
"description": "operationCode 决定短信业务动作,服务端按对应 APP 路由的激活绑定解析验证场景。策略开启时需提交 validToken,关闭时可为空;前端不得提交 sceneCode 或短信供应商配置 ID。",
"tags": [
"认证登录"
],
"parameters": [
{
"name": "operationCode",
"in": "path",
"description": "支持发送短信验证码的 APP 认证业务动作",
"required": true,
"example": "",
"schema": {
"type": "string",
"enum": [
"sms-login",
"register",
"forgot-password",
"phone-change",
"account-deactivate"
]
}
},
{
"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",
"validToken": "captcha-ticket"
}
}
},
"required": true
},
"responses": {
"200": {
"$ref": "#/components/responses/VoidResult",
"description": "通用成功响应"
},
"400": {
"description": "拒绝原因:票据缺失;票据与租户不匹配(错租户);票据与客户端不匹配(错客户端);票据与场景不匹配(错场景);票据过期;票据已被使用(重复使用);手机号主体不匹配;请求携带供应商配置或历史字段。",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RVoid"
}
}
},
"headers": {}
}
},
"security": [
{
"SaToken": []
}
]
}
},
"/genealogy/app/auth/sms/code": {
"post": {
"summary": "APP 发送短信验证码",
"deprecated": false,
"description": "按后台验证策略发送短信验证码。策略开启时需先完成验证中心校验并提交 validToken;策略关闭时 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": {
"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": {
"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/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/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/quota": {
"get": {
"summary": "APP 查询当前用户家谱配额",
"deprecated": false,
"description": "查询已创建和已加入的家谱数量、上限、剩余额度及是否还能继续操作。加入总数包含自己创建的家谱;limit 和 remaining 为 -1 时表示不限。",
"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/GenealogyQuotaResult",
"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/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/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": "德承家亦\n忠厚传芳",
"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": "德承家亦\n忠厚传芳",
"disableMissing": false
}
}
},
"required": true
},
"responses": {
"200": {
"$ref": "#/components/responses/VoidResult",
"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/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}/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/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": "<p>article content</p>",
"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": "<p>article content</p>",
"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": "祠堂",
"locationAddress": "四川省成都市示例路1号",
"longitude": 104.066541,
"latitude": 30.572269,
"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": []
}
]
},
"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": []
}
]
},
"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": "祠堂",
"locationAddress": "四川省成都市示例路1号",
"longitude": 104.066541,
"latitude": 30.572269,
"coverOssId": "2060000000000000000",
"sortOrder": 1,
"status": "0"
}
}
},
"required": true
},
"responses": {
"200": {
"$ref": "#/components/responses/ObjectResult",
"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": []
}
]
},
"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": []
}
]
},
"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": []
}
]
}
},
"/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": []
}
]
},
"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": []
}
]
},
"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": []
}
]
}
},
"/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": "readStatus",
"in": "query",
"description": "阅读状态,0未读,1已读;不传则查询全部",
"required": false,
"schema": {
"type": "string",
"enum": [
"0",
"1"
]
}
},
{
"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/unread-count": {
"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/LongResult",
"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": []
}
]
}
},
"/genealogy/app/genealogies/{genealogyId}/ceremonies/{ceremonyId}/invitees": {
"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/CeremonyInviteesBody"
},
"example": {
"inviteeUserIds": [
900000001,
900000002
]
}
}
},
"required": true
},
"responses": {
"200": {
"$ref": "#/components/responses/CeremonyInvitationListResult",
"description": "贺礼邀约列表响应"
}
},
"security": [
{
"SaToken": []
}
]
}
},
"/genealogy/app/genealogies/{genealogyId}/ceremonies/{ceremonyId}/invitations": {
"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/CeremonyInvitationListResult",
"description": "贺礼邀约列表响应"
}
},
"security": [
{
"SaToken": []
}
]
}
},
"/genealogy/app/genealogies/{genealogyId}/ceremonies/{ceremonyId}/invitations/me": {
"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/CeremonyInvitationResponseBody"
},
"example": {
"inviteStatus": "ACCEPTED"
}
}
},
"required": true
},
"responses": {
"200": {
"$ref": "#/components/responses/CeremonyInvitationResult",
"description": "贺礼邀约详情响应"
}
},
"security": [
{
"SaToken": []
}
]
}
},
"/genealogy/app/genealogies/ceremony-invitations/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/CeremonyInvitationListResult",
"description": "贺礼邀约列表响应"
}
},
"security": [
{
"SaToken": []
}
]
}
}
},
"components": {
"schemas": {
"JsonObject": {
"type": "object",
"additionalProperties": true,
"properties": {}
},
"RVoid": {
"type": "object",
"properties": {
"code": {
"description": "系统图形验证码或响应状态码",
"type": "integer",
"example": 200
},
"msg": {
"description": "响应消息",
"type": "string",
"example": "操作成功"
},
"data": {
"description": "响应数据主体",
"type": "null"
}
}
},
"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"
}
}
},
"RFileUpload": {
"type": "object",
"properties": {
"code": {
"description": "系统图形验证码或响应状态码",
"type": "integer",
"example": 200
},
"msg": {
"description": "响应消息",
"type": "string",
"example": "操作成功"
},
"data": {
"description": "响应数据主体",
"$ref": "#/components/schemas/FileUploadVo"
}
}
},
"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"
}
}
},
"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"
}
}
},
"PasswordRegisterBody": {
"type": "object",
"additionalProperties": false,
"required": [
"grantType",
"tenantId",
"phone",
"password",
"smsCode"
],
"properties": {
"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": {
"description": "APP 用户密码登录请求;验证场景由后端按 APP_PASSWORD_LOGIN 路由的当前激活绑定解析,前端不得提交 sceneCode;validToken 是否需要由解析后场景的策略决定。",
"type": "object",
"additionalProperties": false,
"required": [
"grantType",
"tenantId",
"phone",
"password"
],
"properties": {
"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"
},
"validToken": {
"description": "验证中心通过后返回的一次性票据;后台验证策略关闭时可为空,开启时必须提交。",
"type": "string"
}
}
},
"SmsLoginBody": {
"type": "object",
"additionalProperties": false,
"required": [
"grantType",
"tenantId",
"phone",
"smsCode"
],
"properties": {
"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": [
"grantType",
"tenantId",
"phone"
],
"properties": {
"grantType": {
"description": "授权类型,例如password、sms、wechat、apple",
"type": "string",
"example": "sms"
},
"tenantId": {
"description": "租户ID,用于区分不同租户的数据和验证策略",
"type": "string",
"example": "000000"
},
"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": [
"grantType",
"tenantId",
"phone",
"smsCode",
"newPassword"
],
"properties": {
"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": [
"phone",
"smsCode"
],
"properties": {
"phone": {
"description": "新手机号",
"type": "string"
},
"smsCode": {
"description": "4 位短信验证码",
"type": "string",
"pattern": "^\\d{4}$",
"example": "1234"
}
}
},
"AccountDeactivateBody": {
"type": "object",
"additionalProperties": false,
"required": [
"smsCode"
],
"properties": {
"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": "德承家亦\n忠厚传芳"
},
"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": "<p>article content</p>",
"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"
},
"locationAddress": {
"description": "详细地址",
"type": "string",
"maxLength": 300
},
"longitude": {
"description": "经度,必须与纬度同时提供",
"type": "number",
"minimum": -180,
"maximum": 180
},
"latitude": {
"description": "纬度,必须与经度同时提供",
"type": "number",
"minimum": -90,
"maximum": 90
},
"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": "祠堂",
"locationAddress": "四川省成都市示例路1号",
"longitude": 104.066541,
"latitude": 30.572269,
"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"
}
},
"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",
"additionalProperties": false,
"required": [
"tenantId",
"subject"
],
"properties": {
"tenantId": {
"type": "string",
"description": "租户 ID"
},
"subject": {
"type": "string",
"description": "验证主体,如手机号/用户名/IP"
}
},
"example": {
"tenantId": "000000",
"subject": "13800000000"
}
},
"VerificationCheckBody": {
"type": "object",
"additionalProperties": false,
"required": [
"tenantId",
"subject",
"challengeId"
],
"properties": {
"tenantId": {
"description": "租户ID,用于区分不同租户的数据和验证策略",
"type": "string"
},
"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"
}
]
}
}
},
"VerificationRequireVo": {
"type": "object",
"properties": {
"required": {
"description": "当前场景是否需要验证",
"type": "boolean"
},
"providerCode": {
"description": "第三方服务商编码",
"type": "string"
},
"captchaType": {
"description": "验证码类型,例如SLIDER、ROTATE、CONCAT、WORD_IMAGE_CLICK",
"type": "string"
},
"sceneCode": {
"description": "服务端按当前业务动作和激活绑定解析出的实际验证场景编码",
"type": "string"
},
"ttlSeconds": {
"description": "验证或票据有效秒数",
"type": "integer"
}
},
"example": {
"required": true,
"providerCode": "tianai",
"captchaType": "SLIDER",
"sceneCode": "APP_LOGIN_ACTIVE_SCENE",
"ttlSeconds": 300
}
},
"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
}
},
"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": "验证通过"
}
},
"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,..."
}
},
"RVerificationRequire": {
"type": "object",
"properties": {
"code": {
"description": "系统图形验证码或响应状态码",
"type": "integer",
"example": 200
},
"msg": {
"description": "响应消息",
"type": "string",
"example": "操作成功"
},
"data": {
"description": "响应数据主体",
"$ref": "#/components/schemas/VerificationRequireVo"
}
}
},
"RVerificationChallenge": {
"type": "object",
"properties": {
"code": {
"description": "系统图形验证码或响应状态码",
"type": "integer",
"example": 200
},
"msg": {
"description": "响应消息",
"type": "string",
"example": "操作成功"
},
"data": {
"description": "响应数据主体",
"$ref": "#/components/schemas/VerificationChallengeVo"
}
}
},
"RVerificationCheck": {
"type": "object",
"properties": {
"code": {
"description": "系统图形验证码或响应状态码",
"type": "integer",
"example": 200
},
"msg": {
"description": "响应消息",
"type": "string",
"example": "操作成功"
},
"data": {
"description": "响应数据主体",
"$ref": "#/components/schemas/VerificationCheckVo"
}
}
},
"RLegacyCaptcha": {
"type": "object",
"properties": {
"code": {
"description": "系统图形验证码或响应状态码",
"type": "integer",
"example": 200
},
"msg": {
"description": "响应消息",
"type": "string",
"example": "操作成功"
},
"data": {
"description": "响应数据主体",
"$ref": "#/components/schemas/LegacyCaptchaVo"
}
}
},
"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"
}
}
},
"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"
}
}
},
"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"
}
}
}
},
"RGenerationPoem": {
"type": "object",
"properties": {
"code": {
"description": "响应状态码",
"type": "integer",
"example": 200
},
"msg": {
"description": "响应消息",
"type": "string"
},
"data": {
"$ref": "#/components/schemas/GenerationPoemView"
}
}
},
"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"
}
}
},
"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"
}
}
},
"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"
}
}
}
}
]
},
"RLineagePerson": {
"type": "object",
"properties": {
"code": {
"description": "响应状态码",
"type": "integer",
"example": 200
},
"msg": {
"description": "响应消息",
"type": "string",
"example": "操作成功"
},
"data": {
"$ref": "#/components/schemas/LineagePersonView"
}
}
},
"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"
}
}
}
},
"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
}
}
},
"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": "父评论 IDnull 或 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"
}
}
},
"RFamilyFeedComment": {
"type": "object",
"properties": {
"code": {
"description": "响应状态码",
"type": "integer",
"example": 200
},
"msg": {
"description": "响应消息",
"type": "string"
},
"data": {
"$ref": "#/components/schemas/FamilyFeedCommentView"
}
}
},
"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"
}
}
},
"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"
}
}
},
"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": "用户填写的图形验证码答案"
}
}
},
"GenealogyQuota": {
"type": "object",
"required": [
"createUsed",
"createLimit",
"createRemaining",
"canCreate",
"joinUsed",
"joinLimit",
"joinRemaining",
"canJoin"
],
"properties": {
"createUsed": {
"description": "当前用户已创建的家谱数量",
"type": "integer",
"format": "int64",
"minimum": 0,
"example": 1
},
"createLimit": {
"description": "每用户可创建家谱上限,-1 表示不限,0 表示禁止,正数表示上限",
"type": "integer",
"format": "int64",
"minimum": -1,
"example": 3
},
"createRemaining": {
"description": "还可创建的家谱数量,-1 表示不限",
"type": "integer",
"format": "int64",
"minimum": -1,
"example": 2
},
"canCreate": {
"description": "当前用户是否还能创建家谱",
"type": "boolean",
"example": true
},
"joinUsed": {
"description": "已加入的家谱总数,包含自己创建的家谱",
"type": "integer",
"format": "int64",
"minimum": 0,
"example": 2
},
"joinLimit": {
"description": "每用户可加入家谱总数上限,-1 表示不限,0 表示禁止,正数表示上限",
"type": "integer",
"format": "int64",
"minimum": -1,
"example": 10
},
"joinRemaining": {
"description": "还可加入的家谱数量,-1 表示不限",
"type": "integer",
"format": "int64",
"minimum": -1,
"example": 8
},
"canJoin": {
"description": "当前用户是否还能加入其他家谱",
"type": "boolean",
"example": true
}
}
},
"RGenealogyQuota": {
"type": "object",
"properties": {
"code": {
"description": "响应状态码",
"type": "integer",
"example": 200
},
"msg": {
"description": "响应消息",
"type": "string",
"example": "操作成功"
},
"data": {
"$ref": "#/components/schemas/GenealogyQuota"
}
}
},
"RLong": {
"type": "object",
"properties": {
"code": {
"description": "响应状态码",
"type": "integer",
"example": 200
},
"msg": {
"description": "响应消息",
"type": "string",
"example": "操作成功"
},
"data": {
"description": "当前业务用户未读通知数量",
"type": "integer",
"format": "int64",
"example": 3
}
}
},
"CeremonyInviteesBody": {
"type": "object",
"required": [
"inviteeUserIds"
],
"properties": {
"inviteeUserIds": {
"description": "完整受邀业务用户ID列表;空数组表示取消全部尚未响应的邀请",
"type": "array",
"uniqueItems": true,
"items": {
"type": "integer",
"format": "int64"
}
}
},
"example": {
"inviteeUserIds": [
900000001,
900000002
]
}
},
"CeremonyInvitationResponseBody": {
"type": "object",
"required": [
"inviteStatus"
],
"properties": {
"inviteStatus": {
"description": "当前用户的邀约响应,只允许接受或拒绝",
"type": "string",
"enum": [
"ACCEPTED",
"DECLINED"
]
}
},
"example": {
"inviteStatus": "ACCEPTED"
}
},
"CeremonyInvitationVo": {
"type": "object",
"properties": {
"invitationId": {
"description": "邀约ID",
"type": "integer",
"format": "int64"
},
"genealogyId": {
"description": "家谱ID",
"type": "integer",
"format": "int64"
},
"ceremonyId": {
"description": "贺礼活动ID",
"type": "integer",
"format": "int64"
},
"inviteeUserId": {
"description": "受邀业务用户ID",
"type": "integer",
"format": "int64"
},
"inviteStatus": {
"description": "邀约状态",
"type": "string",
"enum": [
"PENDING",
"ACCEPTED",
"DECLINED",
"CANCELED"
]
},
"inviteVersion": {
"description": "邀请版本,取消后重新邀请时递增",
"type": "integer"
},
"deliveredTime": {
"description": "邀请投递时间",
"type": "string",
"format": "date-time"
},
"readTime": {
"description": "邀请阅读时间",
"type": "string",
"format": "date-time"
},
"responseTime": {
"description": "接受或拒绝时间",
"type": "string",
"format": "date-time"
},
"ceremonyTitle": {
"description": "贺礼活动标题",
"type": "string"
},
"ceremonyTime": {
"description": "贺礼活动时间",
"type": "string",
"format": "date-time"
},
"location": {
"description": "地点名称",
"type": "string"
},
"locationAddress": {
"description": "详细地址",
"type": "string"
},
"longitude": {
"description": "经度",
"type": "number"
},
"latitude": {
"description": "纬度",
"type": "number"
}
}
},
"RCeremonyInvitation": {
"type": "object",
"properties": {
"code": {
"description": "响应状态码",
"type": "integer",
"example": 200
},
"msg": {
"description": "响应消息",
"type": "string",
"example": "操作成功"
},
"data": {
"$ref": "#/components/schemas/CeremonyInvitationVo"
}
}
},
"RCeremonyInvitationList": {
"type": "object",
"properties": {
"code": {
"description": "响应状态码",
"type": "integer",
"example": 200
},
"msg": {
"description": "响应消息",
"type": "string",
"example": "操作成功"
},
"data": {
"description": "贺礼邀约列表",
"type": "array",
"items": {
"$ref": "#/components/schemas/CeremonyInvitationVo"
}
}
}
}
},
"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"
}
}
}
},
"GenealogyQuotaResult": {
"description": "当前业务用户家谱配额响应",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RGenealogyQuota"
}
}
}
},
"LongResult": {
"description": "长整型数据响应",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RLong"
}
}
}
},
"CeremonyInvitationResult": {
"description": "贺礼邀约详情响应",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RCeremonyInvitation"
}
}
}
},
"CeremonyInvitationListResult": {
"description": "贺礼邀约列表响应",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RCeremonyInvitationList"
}
}
}
}
},
"securitySchemes": {
"Author": {
"type": "http",
"scheme": "bearer"
},
"SaToken": {
"type": "apiKey",
"in": "header",
"name": "Authorization",
"description": "登录后返回的 token。若本地配置使用 sa-token 名称,请按项目实际 token-name 调整。"
}
},
"parameters": {
"ClientIdHeader": {
"name": "clientid",
"description": "APP 认证业务请求的 clientid Header 必填;是业务客户端唯一来源;请求体不得提交 clientId,且客户端 clientKey 必须为 app 并与 APP 路由一致。",
"in": "header",
"required": true,
"schema": {
"type": "string"
},
"example": "428a8310cd442757ae699df5d894f051"
},
"PageNum": {
"name": "pageNum",
"description": "页码,从1开始",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 1
}
},
"PageSize": {
"name": "pageSize",
"description": "每页条数",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 10
}
},
"GenealogyId": {
"name": "genealogyId",
"description": "家谱ID",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
},
"example": 900001001
},
"MemberId": {
"name": "memberId",
"description": "家谱成员ID",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
"PersonId": {
"name": "personId",
"description": "世系人物ID",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
"FeedId": {
"name": "feedId",
"description": "家族动态ID",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
"RegionCode": {
"name": "regionCode",
"description": "行政区划编码",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"example": "510000"
},
"BizTable": {
"name": "bizTable",
"description": "业务表名,用于文件引用绑定",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"example": "gen_family_feed"
},
"BizId": {
"name": "bizId",
"description": "业务数据ID,用于文件引用绑定",
"in": "query",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
},
"example": 900013001
},
"BizField": {
"name": "bizField",
"description": "业务字段名,例如avatar_oss_id、cover_oss_id",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"example": "media_ids"
}
},
"requestBodies": {
"JsonObject": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
},
"PasswordRegister": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PasswordRegisterBody"
},
"example": {
"grantType": "password",
"tenantId": "000000",
"phone": "13800000000",
"password": "e10adc3949ba59abbe56e057f20f883e",
"nickName": "测试用户",
"registerSource": "app",
"smsCode": "1234"
}
}
}
},
"PasswordLogin": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PasswordLoginBody"
},
"example": {
"grantType": "password",
"tenantId": "000000",
"phone": "13800000000",
"password": "e10adc3949ba59abbe56e057f20f883e",
"validToken": "valid-token-from-captcha-verify"
}
}
}
},
"SmsLogin": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SmsLoginBody"
},
"example": {
"grantType": "sms",
"tenantId": "000000",
"phone": "13800000000",
"smsCode": "1234"
}
}
}
},
"SmsCode": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SmsCodeBody"
},
"example": {
"tenantId": "000000",
"phone": "13800000000",
"grantType": "sms",
"validToken": "captcha-ticket"
}
}
}
},
"ProfileUpdate": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProfileUpdateBody"
},
"example": {
"nickName": "张三",
"avatarOssId": 2060000000000000000,
"sex": "0",
"birthday": "1990-01-01",
"regionCode": "110101",
"addressDetail": "北京市东城区"
}
}
}
},
"PasswordChange": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PasswordChangeBody"
},
"example": {
"oldPassword": "e10adc3949ba59abbe56e057f20f883e",
"newPassword": "25d55ad283aa400af464c76d713c07ad"
}
}
}
},
"PasswordReset": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PasswordResetBody"
},
"example": {
"grantType": "password",
"tenantId": "000000",
"phone": "13800000000",
"smsCode": "1234",
"newPassword": "25d55ad283aa400af464c76d713c07ad"
}
}
}
},
"PhoneChange": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PhoneChangeBody"
},
"example": {
"phone": "13900000000",
"smsCode": "1234"
}
}
}
},
"AccountDeactivate": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AccountDeactivateBody"
},
"example": {
"smsCode": "1234"
}
}
}
},
"FileUpload": {
"required": true,
"content": {
"multipart/form-data": {
"schema": {
"type": "object",
"required": [
"file"
],
"properties": {
"file": {
"type": "string",
"format": "binary"
}
}
}
}
}
},
"ChunkUpload": {
"required": true,
"content": {
"multipart/form-data": {
"schema": {
"type": "object",
"required": [
"uploadId",
"chunkIndex",
"chunkMd5",
"file"
],
"properties": {
"uploadId": {
"type": "string"
},
"chunkIndex": {
"type": "integer",
"example": 0
},
"chunkMd5": {
"type": "string",
"example": "d41d8cd98f00b204e9800998ecf8427e"
},
"file": {
"type": "string",
"format": "binary"
}
}
}
}
}
},
"ResumableInit": {
"required": true,
"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"
}
}
}
},
"ResumableComplete": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ResumableCompleteBody"
},
"example": {
"uploadId": "UPLOAD202607090001",
"fileMd5": "d41d8cd98f00b204e9800998ecf8427e",
"fileSize": 9532
}
}
}
},
"FileReference": {
"required": true,
"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"
}
}
}
},
"GenerationPoemBatch": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GenerationPoemBatchBody"
},
"example": {
"poemText": "德承家亦\n忠厚传芳",
"disableMissing": false
}
}
}
},
"LineagePerson": {
"required": true,
"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
}
}
}
},
"FamilyFeed": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FamilyFeedBody"
},
"example": {
"feedType": "text",
"feedContent": "今天上传一张老照片。",
"mediaOssIds": "2060000000000000001,2060000000000000002",
"sortOrder": 0,
"status": "0"
}
}
}
},
"FamilyFeedComment": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FamilyFeedCommentBody"
},
"example": {
"parentCommentId": null,
"commentContent": "这张照片很有年代感。"
}
}
}
},
"GenealogyCreate": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GenealogyCreateBody"
},
"example": {
"genealogyName": "彭氏家谱",
"surname": "彭",
"ancestralHall": "陇西堂",
"originPlace": "江西吉安",
"regionCode": "360800",
"addressDetail": "江西省吉安市",
"coverOssId": 2060000000000000000,
"intro": "彭氏家谱简介",
"visibility": "1",
"joinMode": "1"
}
}
}
},
"GenealogyUpdate": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GenealogyUpdateBody"
},
"example": {
"genealogyName": "彭氏家谱",
"surname": "彭",
"ancestralHall": "陇西堂",
"originPlace": "江西吉安",
"regionCode": "360800",
"addressDetail": "江西省吉安市",
"coverOssId": 2060000000000000000,
"intro": "更新后的家谱简介",
"visibility": "1",
"joinMode": "1"
}
}
}
},
"GenealogyJoinApply": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GenealogyJoinApplyBody"
},
"example": {
"applicantName": "彭小明",
"phone": "13800000000",
"relationDesc": "本族成员",
"applyReason": "申请加入家谱维护",
"inviterUserId": 900000001
}
}
}
},
"GenealogyJoinAudit": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GenealogyJoinAuditBody"
},
"example": {
"status": "1",
"auditRemark": "信息核验通过"
}
}
}
},
"GenealogyMemberUpdate": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GenealogyMemberUpdateBody"
},
"example": {
"memberName": "彭小明",
"relationName": "族亲",
"roleType": "member",
"lineagePersonId": 900020001
}
}
}
},
"GenealogyOwnerTransfer": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GenealogyOwnerTransferBody"
},
"example": {
"targetMemberId": 900010002
}
}
}
},
"GenerationPoem": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GenerationPoemBody"
},
"example": {
"generationNo": 5,
"generationText": "忠",
"description": "fifth generation poem",
"sortOrder": 5,
"status": "0"
}
}
}
},
"Article": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ArticleBody"
},
"example": {
"categoryId": 900040001,
"articleTitle": "族谱源流",
"articleSummary": "介绍本支源流",
"coverOssId": 2060000000000000000,
"articleContent": "<p>article content</p>",
"authorName": "族谱管理员",
"sortOrder": 1,
"status": "0"
}
}
}
},
"Album": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AlbumBody"
},
"example": {
"albumName": "老照片",
"albumDesc": "family old photos",
"coverOssId": 2060000000000000000,
"sortOrder": 1,
"status": "0"
}
}
}
},
"AlbumPhoto": {
"required": true,
"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"
}
}
}
},
"Ceremony": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CeremonyBody"
},
"example": {
"ceremonyType": "ancestor",
"ceremonyTitle": "清明祭祖",
"ceremonyDesc": "online ancestor ceremony",
"ceremonyTime": "2026-04-04 09:00:00",
"location": "祠堂",
"locationAddress": "四川省成都市示例路1号",
"longitude": 104.066541,
"latitude": 30.572269,
"coverOssId": 2060000000000000000,
"sortOrder": 1,
"status": "0"
}
}
}
},
"CeremonyGift": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CeremonyGiftBody"
},
"example": {
"giverName": "彭小明",
"giftAmount": 66.66,
"giftMessage": "缅怀先祖"
}
}
}
},
"GrowthRecord": {
"required": true,
"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"
}
}
}
},
"Memo": {
"required": true,
"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"
}
}
}
},
"MeritRecord": {
"required": true,
"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"
}
}
}
},
"Feedback": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FeedbackBody"
},
"example": {
"feedbackType": "bug",
"feedbackContent": "upload image failed",
"contactInfo": "13800000000"
}
}
}
},
"VipOrder": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VipOrderBody"
},
"example": {
"packageId": 900060001,
"genealogyId": 900001001,
"payType": "wechat"
}
}
}
},
"VerificationChallenge": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VerificationChallengeBody"
},
"example": {
"tenantId": "000000",
"subject": "13800000000"
}
}
}
},
"VerificationCheck": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VerificationCheckBody"
},
"examples": {
"tianai_behavior": {
"summary": "天爱滑块/旋转/滑动还原/文字点选验证",
"value": {
"tenantId": "000000",
"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"
}
]
}
}
}
},
"system_image": {
"summary": "系统图形验证码",
"value": {
"tenantId": "000000",
"subject": "13800000000",
"challengeId": "CAPTCHA_CHALLENGE_ID",
"providerCode": "ruoyi_image",
"captchaType": "math",
"payload": {
"uuid": "captcha-uuid",
"code": "6"
}
}
}
}
}
}
},
"RelativeRecord": {
"required": true,
"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"
}
}
}
},
"CeremonyInvitees": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CeremonyInviteesBody"
},
"example": {
"inviteeUserIds": [
900000001,
900000002
]
}
}
}
},
"CeremonyInvitationResponse": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CeremonyInvitationResponseBody"
},
"example": {
"inviteStatus": "ACCEPTED"
}
}
}
}
}
},
"servers": [],
"security": [
{
"SaToken": []
}
]
}