1
This commit is contained in:
+53
@@ -0,0 +1,53 @@
|
||||
######################################################################
|
||||
# Build Tools
|
||||
|
||||
.gradle
|
||||
/build/
|
||||
!gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
target/
|
||||
!.mvn/wrapper/maven-wrapper.jar
|
||||
|
||||
######################################################################
|
||||
# IDE
|
||||
|
||||
### STS ###
|
||||
.apt_generated
|
||||
.classpath
|
||||
.factorypath
|
||||
.project
|
||||
.settings
|
||||
.springBeans
|
||||
|
||||
### IntelliJ IDEA ###
|
||||
.idea
|
||||
*.iws
|
||||
*.iml
|
||||
*.ipr
|
||||
|
||||
### JRebel ###
|
||||
rebel.xml
|
||||
|
||||
### NetBeans ###
|
||||
nbproject/private/
|
||||
build/*
|
||||
nbbuild/
|
||||
nbdist/
|
||||
.nb-gradle/
|
||||
|
||||
######################################################################
|
||||
# Others
|
||||
*.log
|
||||
*.log.gz
|
||||
*.xml.versionsBackup
|
||||
*.swp
|
||||
|
||||
!*/build/*.java
|
||||
!*/build/*.html
|
||||
!*/build/*.xml
|
||||
|
||||
.flattened-pom.xml
|
||||
/.maven-home/.msp/incrementMark
|
||||
|
||||
robots.txt
|
||||
sitemap.xml
|
||||
-883
@@ -1,883 +0,0 @@
|
||||
# 已废弃:本文件保留仅用于追溯此前的账号闭环方案。
|
||||
# 正式接口源为 PC.openapi2.json;代码、测试和后续开发不得再以本文件为依据。
|
||||
openapi: 3.0.3
|
||||
info:
|
||||
title: 代代相传 PC 用户端 API
|
||||
version: 1.1.0
|
||||
description: |
|
||||
本文档是当前 PC 用户端唯一接口契约。
|
||||
范围仅包含账号认证、个人资料、安全设置、头像上传、验证码与行政区划。
|
||||
家谱、社区、内容、会员、支付及平台运营能力不在本期范围内。
|
||||
servers:
|
||||
- url: https://{host}
|
||||
variables:
|
||||
host:
|
||||
default: api.example.com
|
||||
description: 由部署环境配置的 HTTPS API 域名
|
||||
tags:
|
||||
- name: 认证登录
|
||||
- name: 验证中心
|
||||
- name: 文件上传
|
||||
- name: 行政区划
|
||||
paths:
|
||||
/genealogy/pc/auth/register:
|
||||
post:
|
||||
tags: [认证登录]
|
||||
summary: PC 用户注册
|
||||
security: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/ClientIdHeader'
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/RegisterRequest'
|
||||
responses:
|
||||
'200':
|
||||
description: 注册结果;客户端不保存注册响应中的令牌
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/LoginResponse'
|
||||
/genealogy/pc/auth/login:
|
||||
post:
|
||||
tags: [认证登录]
|
||||
summary: PC 密码登录
|
||||
security: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/ClientIdHeader'
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/PasswordLoginRequest'
|
||||
responses:
|
||||
'200':
|
||||
description: 登录成功并返回令牌
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/LoginResponse'
|
||||
/genealogy/pc/auth/login/sms:
|
||||
post:
|
||||
tags: [认证登录]
|
||||
summary: PC 短信登录
|
||||
security: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/ClientIdHeader'
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/SmsLoginRequest'
|
||||
responses:
|
||||
'200':
|
||||
description: 登录成功并返回令牌
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/LoginResponse'
|
||||
/genealogy/pc/auth/sms/code:
|
||||
post:
|
||||
tags: [认证登录]
|
||||
summary: 发送短信验证码
|
||||
security: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/ClientIdHeader'
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/SmsCodeRequest'
|
||||
responses:
|
||||
'200':
|
||||
description: 短信已受理
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/VoidResponse'
|
||||
/genealogy/pc/auth/profile:
|
||||
get:
|
||||
tags: [认证登录]
|
||||
summary: 获取当前用户资料
|
||||
security:
|
||||
- BearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/ClientIdHeader'
|
||||
responses:
|
||||
'200':
|
||||
description: 当前登录用户资料
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/ProfileResponse'
|
||||
put:
|
||||
tags: [认证登录]
|
||||
summary: 更新当前用户资料
|
||||
security:
|
||||
- BearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/ClientIdHeader'
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/ProfileUpdateRequest'
|
||||
responses:
|
||||
'200':
|
||||
description: 更新后的用户资料
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/ProfileResponse'
|
||||
/genealogy/pc/auth/password:
|
||||
put:
|
||||
tags: [认证登录]
|
||||
summary: 修改当前用户密码
|
||||
security:
|
||||
- BearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/ClientIdHeader'
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/PasswordChangeRequest'
|
||||
responses:
|
||||
'200':
|
||||
description: 密码修改成功
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/VoidResponse'
|
||||
/genealogy/pc/auth/password/reset:
|
||||
put:
|
||||
tags: [认证登录]
|
||||
summary: 找回密码
|
||||
security: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/ClientIdHeader'
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/PasswordResetRequest'
|
||||
responses:
|
||||
'200':
|
||||
description: 密码重置成功
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/VoidResponse'
|
||||
/genealogy/pc/auth/phone:
|
||||
put:
|
||||
tags: [认证登录]
|
||||
summary: 换绑手机号
|
||||
security:
|
||||
- BearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/ClientIdHeader'
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/PhoneChangeRequest'
|
||||
responses:
|
||||
'200':
|
||||
description: 换绑后的用户资料
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/ProfileResponse'
|
||||
/genealogy/pc/auth/account/deactivate:
|
||||
post:
|
||||
tags: [认证登录]
|
||||
summary: 注销当前账号
|
||||
security:
|
||||
- BearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/ClientIdHeader'
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/AccountDeactivateRequest'
|
||||
responses:
|
||||
'200':
|
||||
description: 注销申请已受理
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/VoidResponse'
|
||||
/genealogy/pc/auth/logout:
|
||||
delete:
|
||||
tags: [认证登录]
|
||||
summary: 退出登录
|
||||
security:
|
||||
- BearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/ClientIdHeader'
|
||||
responses:
|
||||
'200':
|
||||
description: 服务端会话已退出
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/VoidResponse'
|
||||
/captcha/require:
|
||||
get:
|
||||
tags: [验证中心]
|
||||
summary: 查询场景是否需要验证码
|
||||
security: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/ClientIdHeader'
|
||||
- name: tenantId
|
||||
in: query
|
||||
schema:
|
||||
type: string
|
||||
default: '000000'
|
||||
- name: clientId
|
||||
in: query
|
||||
schema:
|
||||
type: string
|
||||
- $ref: '#/components/parameters/SceneCode'
|
||||
- name: subject
|
||||
in: query
|
||||
description: 手机号或其他待验证主体
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: 当前场景验证码策略
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/CaptchaRequirementResponse'
|
||||
/captcha/challenge:
|
||||
post:
|
||||
tags: [验证中心]
|
||||
summary: 创建验证码挑战
|
||||
security: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/ClientIdHeader'
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/CaptchaChallengeRequest'
|
||||
responses:
|
||||
'200':
|
||||
description: 验证码挑战
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/CaptchaChallengeResponse'
|
||||
/captcha/verify:
|
||||
post:
|
||||
tags: [验证中心]
|
||||
summary: 校验验证码并换取业务票据
|
||||
security: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/ClientIdHeader'
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/CaptchaVerifyRequest'
|
||||
responses:
|
||||
'200':
|
||||
description: 返回可提交给后续业务接口的 validToken
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/CaptchaVerifyResponse'
|
||||
/genealogy/pc/files/upload:
|
||||
post:
|
||||
tags: [文件上传]
|
||||
summary: 上传个人头像文件
|
||||
security:
|
||||
- BearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/ClientIdHeader'
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
multipart/form-data:
|
||||
schema:
|
||||
type: object
|
||||
required: [file]
|
||||
properties:
|
||||
file:
|
||||
type: string
|
||||
format: binary
|
||||
responses:
|
||||
'200':
|
||||
description: 上传结果
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/FileUploadResponse'
|
||||
/genealogy/region/children:
|
||||
get:
|
||||
tags: [行政区划]
|
||||
summary: 查询下级行政区划
|
||||
security: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/ClientIdHeader'
|
||||
- name: parentCode
|
||||
in: query
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: 下级地区列表
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/RegionListResponse'
|
||||
/genealogy/region/path/{regionCode}:
|
||||
get:
|
||||
tags: [行政区划]
|
||||
summary: 查询地区完整路径
|
||||
security: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/ClientIdHeader'
|
||||
- $ref: '#/components/parameters/RegionCode'
|
||||
responses:
|
||||
'200':
|
||||
description: 根节点到目标地区的路径
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/RegionListResponse'
|
||||
/genealogy/region/search:
|
||||
get:
|
||||
tags: [行政区划]
|
||||
summary: 搜索行政区划
|
||||
security: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/ClientIdHeader'
|
||||
- name: keyword
|
||||
in: query
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
- name: limit
|
||||
in: query
|
||||
schema:
|
||||
type: integer
|
||||
default: 20
|
||||
maximum: 50
|
||||
responses:
|
||||
'200':
|
||||
description: 匹配的地区列表
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/RegionListResponse'
|
||||
/genealogy/region/{regionCode}:
|
||||
get:
|
||||
tags: [行政区划]
|
||||
summary: 查询行政区划详情
|
||||
security: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/ClientIdHeader'
|
||||
- $ref: '#/components/parameters/RegionCode'
|
||||
responses:
|
||||
'200':
|
||||
description: 地区详情
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/RegionResponse'
|
||||
components:
|
||||
parameters:
|
||||
ClientIdHeader:
|
||||
name: clientid
|
||||
in: header
|
||||
required: true
|
||||
description: PC 客户端标识
|
||||
schema:
|
||||
type: string
|
||||
example: ced7e5f0498645c6ec642dcf450b036f
|
||||
RegionCode:
|
||||
name: regionCode
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
example: '110101'
|
||||
SceneCode:
|
||||
name: sceneCode
|
||||
in: query
|
||||
required: true
|
||||
schema:
|
||||
$ref: '#/components/schemas/CaptchaSceneCode'
|
||||
schemas:
|
||||
CaptchaSceneCode:
|
||||
type: string
|
||||
enum:
|
||||
- WEB_H5_LOGIN
|
||||
- WEB_H5_REGISTER
|
||||
- WEB_H5_FORGOT_PASSWORD
|
||||
- WEB_H5_CHANGE_PASSWORD
|
||||
- WEB_H5_CHANGE_PHONE
|
||||
RegisterRequest:
|
||||
type: object
|
||||
required: [grantType, tenantId, phone, password]
|
||||
properties:
|
||||
grantType:
|
||||
type: string
|
||||
enum: [password]
|
||||
tenantId:
|
||||
type: string
|
||||
example: '000000'
|
||||
clientId:
|
||||
type: string
|
||||
phone:
|
||||
type: string
|
||||
pattern: '^1[3-9]\\d{9}$'
|
||||
password:
|
||||
type: string
|
||||
description: 32 位 MD5 值;传输层必须使用 HTTPS
|
||||
pattern: '^[a-fA-F0-9]{32}$'
|
||||
nickName:
|
||||
type: string
|
||||
maxLength: 32
|
||||
registerSource:
|
||||
type: string
|
||||
enum: [PC]
|
||||
validToken:
|
||||
type: string
|
||||
PasswordLoginRequest:
|
||||
type: object
|
||||
required: [grantType, tenantId, phone, password]
|
||||
properties:
|
||||
grantType:
|
||||
type: string
|
||||
enum: [password]
|
||||
tenantId:
|
||||
type: string
|
||||
clientId:
|
||||
type: string
|
||||
phone:
|
||||
type: string
|
||||
pattern: '^1[3-9]\\d{9}$'
|
||||
password:
|
||||
type: string
|
||||
pattern: '^[a-fA-F0-9]{32}$'
|
||||
validToken:
|
||||
type: string
|
||||
SmsLoginRequest:
|
||||
type: object
|
||||
required: [grantType, tenantId, phone, smsCode]
|
||||
properties:
|
||||
grantType:
|
||||
type: string
|
||||
enum: [sms]
|
||||
tenantId:
|
||||
type: string
|
||||
clientId:
|
||||
type: string
|
||||
phone:
|
||||
type: string
|
||||
pattern: '^1[3-9]\\d{9}$'
|
||||
smsCode:
|
||||
type: string
|
||||
pattern: '^\\d{4,8}$'
|
||||
validToken:
|
||||
type: string
|
||||
SmsCodeRequest:
|
||||
type: object
|
||||
required: [tenantId, phone, sceneCode]
|
||||
properties:
|
||||
tenantId:
|
||||
type: string
|
||||
clientId:
|
||||
type: string
|
||||
phone:
|
||||
type: string
|
||||
pattern: '^1[3-9]\\d{9}$'
|
||||
sceneCode:
|
||||
$ref: '#/components/schemas/CaptchaSceneCode'
|
||||
validToken:
|
||||
type: string
|
||||
PasswordChangeRequest:
|
||||
type: object
|
||||
required: [oldPassword, newPassword]
|
||||
properties:
|
||||
oldPassword:
|
||||
type: string
|
||||
pattern: '^[a-fA-F0-9]{32}$'
|
||||
newPassword:
|
||||
type: string
|
||||
pattern: '^[a-fA-F0-9]{32}$'
|
||||
validToken:
|
||||
type: string
|
||||
PasswordResetRequest:
|
||||
type: object
|
||||
required: [tenantId, phone, smsCode, newPassword]
|
||||
properties:
|
||||
tenantId:
|
||||
type: string
|
||||
phone:
|
||||
type: string
|
||||
pattern: '^1[3-9]\\d{9}$'
|
||||
smsCode:
|
||||
type: string
|
||||
pattern: '^\\d{4,8}$'
|
||||
newPassword:
|
||||
type: string
|
||||
pattern: '^[a-fA-F0-9]{32}$'
|
||||
validToken:
|
||||
type: string
|
||||
PhoneChangeRequest:
|
||||
type: object
|
||||
required: [newPhone, smsCode]
|
||||
properties:
|
||||
newPhone:
|
||||
type: string
|
||||
pattern: '^1[3-9]\\d{9}$'
|
||||
smsCode:
|
||||
type: string
|
||||
pattern: '^\\d{4,8}$'
|
||||
validToken:
|
||||
type: string
|
||||
AccountDeactivateRequest:
|
||||
type: object
|
||||
required: [password]
|
||||
properties:
|
||||
password:
|
||||
type: string
|
||||
pattern: '^[a-fA-F0-9]{32}$'
|
||||
reason:
|
||||
type: string
|
||||
maxLength: 200
|
||||
ProfileUpdateRequest:
|
||||
type: object
|
||||
properties:
|
||||
nickName:
|
||||
type: string
|
||||
maxLength: 32
|
||||
avatarOssId:
|
||||
type: integer
|
||||
format: int64
|
||||
sex:
|
||||
type: string
|
||||
enum: ['0', '1', '2']
|
||||
birthday:
|
||||
type: string
|
||||
format: date
|
||||
provinceCode:
|
||||
type: string
|
||||
cityCode:
|
||||
type: string
|
||||
districtCode:
|
||||
type: string
|
||||
addressDetail:
|
||||
type: string
|
||||
maxLength: 100
|
||||
Profile:
|
||||
type: object
|
||||
required: [userId, phone]
|
||||
properties:
|
||||
userId:
|
||||
type: integer
|
||||
format: int64
|
||||
phone:
|
||||
type: string
|
||||
nickName:
|
||||
type: string
|
||||
avatarOssId:
|
||||
type: integer
|
||||
format: int64
|
||||
nullable: true
|
||||
avatarUrl:
|
||||
type: string
|
||||
format: uri
|
||||
nullable: true
|
||||
sex:
|
||||
type: string
|
||||
nullable: true
|
||||
birthday:
|
||||
type: string
|
||||
format: date
|
||||
nullable: true
|
||||
provinceCode:
|
||||
type: string
|
||||
nullable: true
|
||||
cityCode:
|
||||
type: string
|
||||
nullable: true
|
||||
districtCode:
|
||||
type: string
|
||||
nullable: true
|
||||
addressDetail:
|
||||
type: string
|
||||
nullable: true
|
||||
LoginData:
|
||||
type: object
|
||||
required: [accessToken, userId, tenantId, clientId]
|
||||
properties:
|
||||
accessToken:
|
||||
type: string
|
||||
userId:
|
||||
type: integer
|
||||
format: int64
|
||||
tenantId:
|
||||
type: string
|
||||
clientId:
|
||||
type: string
|
||||
FileUpload:
|
||||
type: object
|
||||
required: [ossId, url, fileName, originalName]
|
||||
properties:
|
||||
ossId:
|
||||
type: integer
|
||||
format: int64
|
||||
url:
|
||||
type: string
|
||||
format: uri
|
||||
thumbnailUrl:
|
||||
type: string
|
||||
format: uri
|
||||
nullable: true
|
||||
fileName:
|
||||
type: string
|
||||
originalName:
|
||||
type: string
|
||||
Region:
|
||||
type: object
|
||||
required: [regionCode, regionName]
|
||||
properties:
|
||||
regionCode:
|
||||
type: string
|
||||
regionName:
|
||||
type: string
|
||||
parentCode:
|
||||
type: string
|
||||
nullable: true
|
||||
level:
|
||||
type: integer
|
||||
minimum: 0
|
||||
CaptchaRequirement:
|
||||
type: object
|
||||
required: [required, sceneCode]
|
||||
properties:
|
||||
required:
|
||||
type: boolean
|
||||
sceneCode:
|
||||
$ref: '#/components/schemas/CaptchaSceneCode'
|
||||
providerCode:
|
||||
type: string
|
||||
nullable: true
|
||||
captchaType:
|
||||
type: string
|
||||
nullable: true
|
||||
CaptchaChallengeRequest:
|
||||
type: object
|
||||
required: [tenantId, clientId, sceneCode]
|
||||
properties:
|
||||
tenantId:
|
||||
type: string
|
||||
clientId:
|
||||
type: string
|
||||
sceneCode:
|
||||
$ref: '#/components/schemas/CaptchaSceneCode'
|
||||
subject:
|
||||
type: string
|
||||
CaptchaChallenge:
|
||||
type: object
|
||||
required: [challengeId, providerCode, captchaType]
|
||||
properties:
|
||||
challengeId:
|
||||
type: string
|
||||
providerCode:
|
||||
type: string
|
||||
captchaType:
|
||||
type: string
|
||||
backgroundImage:
|
||||
type: string
|
||||
format: uri
|
||||
nullable: true
|
||||
templateImage:
|
||||
type: string
|
||||
format: uri
|
||||
nullable: true
|
||||
uuid:
|
||||
type: string
|
||||
nullable: true
|
||||
image:
|
||||
type: string
|
||||
nullable: true
|
||||
CaptchaVerifyRequest:
|
||||
type: object
|
||||
required: [tenantId, clientId, sceneCode, challengeId, providerCode, captchaType, payload]
|
||||
properties:
|
||||
tenantId:
|
||||
type: string
|
||||
clientId:
|
||||
type: string
|
||||
sceneCode:
|
||||
$ref: '#/components/schemas/CaptchaSceneCode'
|
||||
subject:
|
||||
type: string
|
||||
challengeId:
|
||||
type: string
|
||||
providerCode:
|
||||
type: string
|
||||
captchaType:
|
||||
type: string
|
||||
payload:
|
||||
oneOf:
|
||||
- $ref: '#/components/schemas/TianaiCaptchaPayload'
|
||||
- $ref: '#/components/schemas/SystemImageCaptchaPayload'
|
||||
TianaiCaptchaPayload:
|
||||
type: object
|
||||
required: [track]
|
||||
properties:
|
||||
track:
|
||||
type: object
|
||||
required: [trackList]
|
||||
properties:
|
||||
trackList:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
required: [x, y, t, type]
|
||||
properties:
|
||||
x:
|
||||
type: integer
|
||||
y:
|
||||
type: integer
|
||||
t:
|
||||
type: integer
|
||||
type:
|
||||
type: string
|
||||
SystemImageCaptchaPayload:
|
||||
type: object
|
||||
required: [uuid, code]
|
||||
properties:
|
||||
uuid:
|
||||
type: string
|
||||
code:
|
||||
type: string
|
||||
CaptchaVerify:
|
||||
type: object
|
||||
required: [validToken]
|
||||
properties:
|
||||
validToken:
|
||||
type: string
|
||||
expireAt:
|
||||
type: string
|
||||
format: date-time
|
||||
nullable: true
|
||||
VoidResponse:
|
||||
type: object
|
||||
required: [code, msg]
|
||||
properties:
|
||||
code:
|
||||
type: integer
|
||||
example: 200
|
||||
msg:
|
||||
type: string
|
||||
data:
|
||||
nullable: true
|
||||
LoginResponse:
|
||||
type: object
|
||||
required: [code, msg, data]
|
||||
properties:
|
||||
code:
|
||||
type: integer
|
||||
msg:
|
||||
type: string
|
||||
data:
|
||||
$ref: '#/components/schemas/LoginData'
|
||||
ProfileResponse:
|
||||
type: object
|
||||
required: [code, msg, data]
|
||||
properties:
|
||||
code:
|
||||
type: integer
|
||||
msg:
|
||||
type: string
|
||||
data:
|
||||
$ref: '#/components/schemas/Profile'
|
||||
FileUploadResponse:
|
||||
type: object
|
||||
required: [code, msg, data]
|
||||
properties:
|
||||
code:
|
||||
type: integer
|
||||
msg:
|
||||
type: string
|
||||
data:
|
||||
$ref: '#/components/schemas/FileUpload'
|
||||
RegionResponse:
|
||||
type: object
|
||||
required: [code, msg, data]
|
||||
properties:
|
||||
code:
|
||||
type: integer
|
||||
msg:
|
||||
type: string
|
||||
data:
|
||||
$ref: '#/components/schemas/Region'
|
||||
RegionListResponse:
|
||||
type: object
|
||||
required: [code, msg, data]
|
||||
properties:
|
||||
code:
|
||||
type: integer
|
||||
msg:
|
||||
type: string
|
||||
data:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/Region'
|
||||
CaptchaRequirementResponse:
|
||||
type: object
|
||||
required: [code, msg, data]
|
||||
properties:
|
||||
code:
|
||||
type: integer
|
||||
msg:
|
||||
type: string
|
||||
data:
|
||||
$ref: '#/components/schemas/CaptchaRequirement'
|
||||
CaptchaChallengeResponse:
|
||||
type: object
|
||||
required: [code, msg, data]
|
||||
properties:
|
||||
code:
|
||||
type: integer
|
||||
msg:
|
||||
type: string
|
||||
data:
|
||||
$ref: '#/components/schemas/CaptchaChallenge'
|
||||
CaptchaVerifyResponse:
|
||||
type: object
|
||||
required: [code, msg, data]
|
||||
properties:
|
||||
code:
|
||||
type: integer
|
||||
msg:
|
||||
type: string
|
||||
data:
|
||||
$ref: '#/components/schemas/CaptchaVerify'
|
||||
securitySchemes:
|
||||
BearerAuth:
|
||||
type: http
|
||||
scheme: bearer
|
||||
bearerFormat: JWT
|
||||
-3580
File diff suppressed because it is too large
Load Diff
@@ -12,10 +12,10 @@
|
||||
// 这里只维护运行环境和后端基础地址,具体接口路径统一放在 ApiClient 中。
|
||||
var ENVIRONMENTS = {
|
||||
development: {
|
||||
apiBaseUrl: 'http://182.61.18.23:8080'
|
||||
apiBaseUrl: 'https://backend-api.ddxcjp.cn/'
|
||||
},
|
||||
production: {
|
||||
apiBaseUrl: 'http://182.61.18.23:8080'
|
||||
apiBaseUrl: 'https://backend-api.ddxcjp.cn/'
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
<!doctype html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>工单详情 - 代代相传</title>
|
||||
<link rel="stylesheet" href="public/css/public.css" />
|
||||
<link rel="stylesheet" href="public/css/site-info.css" />
|
||||
</head>
|
||||
<body data-feature-status="pending" data-feature-message="在线工单查询服务正在开发中,当前页面仅保留设计预览。">
|
||||
<header class="site-header">
|
||||
<div class="container nav">
|
||||
<a class="brand magnetic" href="index.html">
|
||||
<img class="brand-logo" src="public/images/logo.png" alt="我们的家谱,代代相传" />
|
||||
</a>
|
||||
<nav class="nav-links">
|
||||
<a href="index.html">首页</a>
|
||||
<a class="active" href="help.html">帮助中心</a>
|
||||
<a href="news.html">新闻资讯</a>
|
||||
</nav>
|
||||
<div class="nav-actions"><a href="login.html">登录</a></div>
|
||||
</div>
|
||||
</header>
|
||||
<main>
|
||||
<section class="site-info-hero">
|
||||
<div class="container">
|
||||
<div>
|
||||
<div class="site-info-kicker">Ticket Detail</div>
|
||||
<h1>工单详情</h1>
|
||||
<p>问题记录、处理状态和客服回复会在工单详情接口交付后显示。</p>
|
||||
</div>
|
||||
<div class="site-info-mark">详</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="site-info-section alt">
|
||||
<div class="container">
|
||||
<div class="site-info-status">
|
||||
<h2>暂未开放详情查询</h2>
|
||||
<p>当前不能读取工单编号或展示处理内容。</p>
|
||||
<div class="site-info-actions">
|
||||
<a class="btn ghost magnetic" href="help.html" data-feature-link="available">返回帮助中心</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
<footer class="footer">
|
||||
<div class="container">
|
||||
<div class="footer-legal">
|
||||
<div>© 2026 代代相传. All rights reserved.</div>
|
||||
<a href="privacy.html">隐私政策</a>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
<script src="public/js/pending-pages.js"></script>
|
||||
<script src="public/js/page-effects.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user