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 中。
|
// 这里只维护运行环境和后端基础地址,具体接口路径统一放在 ApiClient 中。
|
||||||
var ENVIRONMENTS = {
|
var ENVIRONMENTS = {
|
||||||
development: {
|
development: {
|
||||||
apiBaseUrl: 'http://182.61.18.23:8080'
|
apiBaseUrl: 'https://backend-api.ddxcjp.cn/'
|
||||||
},
|
},
|
||||||
production: {
|
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