|
|
syntax = "v1"
|
|
|
|
|
|
info(
|
|
|
title: "Model"
|
|
|
desc: "API basic"
|
|
|
author: "NorthLan"
|
|
|
email: "lan6995@gmail.com"
|
|
|
version: "v1.0"
|
|
|
)
|
|
|
|
|
|
import "../base.api"
|
|
|
|
|
|
type (
|
|
|
UserInfo {
|
|
|
BaseID
|
|
|
TimeInfo
|
|
|
|
|
|
// Status | 状态
|
|
|
Status string `json:"status,optional"`
|
|
|
// Username | 用户名
|
|
|
Username string `json:"username,optional"`
|
|
|
// Phone number | 手机号码
|
|
|
PhoneNumber *string `json:"phoneNumber,optional"`
|
|
|
// Email | 邮箱
|
|
|
Email *string `json:"email,optional"`
|
|
|
// Password | 密码
|
|
|
Password string `json:"password,optional,omitempty"`
|
|
|
// Nickname | 昵称
|
|
|
Nickname *string `json:"nickname,optional"`
|
|
|
// Roles | 角色代码列表
|
|
|
Roles []string `json:"roles,optional"`
|
|
|
// LoginRecord | 用户登录记录
|
|
|
LoginRecord *UserLoginRecordInfo `json:"loginRecord,optional"`
|
|
|
}
|
|
|
|
|
|
// 用户登录记录
|
|
|
UserLoginRecordInfo {
|
|
|
BaseID
|
|
|
TimeInfo
|
|
|
|
|
|
// 用户ID
|
|
|
UserID int64 `json:"userId,string,optional"`
|
|
|
// 最近一次登录时间
|
|
|
LastLoginAt string `json:"lastLoginAt,optional"`
|
|
|
// 最近一次登录IPv4
|
|
|
LastLoginIpv4 string `json:"lastLoginIpv4,optional"`
|
|
|
// 最近一次登录设备
|
|
|
LastLoginDevice string `json:"lastLoginDevice,optional"`
|
|
|
// 最近一次登录浏览器UA
|
|
|
LastLoginUA string `json:"lastLoginUa,optional"`
|
|
|
// 总登录次数
|
|
|
LoginCount uint64 `json:"loginCount,optional"`
|
|
|
}
|
|
|
|
|
|
// Token信息
|
|
|
TokenInfo {
|
|
|
BaseID
|
|
|
TimeInfo
|
|
|
|
|
|
// Status | 状态
|
|
|
Status string `json:"status,optional"`
|
|
|
// User's ID | 用户ID
|
|
|
UserID int64 `json:"userId,string,optional"`
|
|
|
// Token type | 凭证类型 [Bearer]
|
|
|
TokenType string `json:"tokenType,optional"`
|
|
|
// AccessToken | AccessToken 字符串
|
|
|
AccessToken string `json:"accessToken,optional"`
|
|
|
// RefreshToken | RefreshToken 字符串
|
|
|
RefreshToken string `json:"refreshYoken,optional"`
|
|
|
// Source | Token来源,PCWeb/WechatMini/AlipayMini
|
|
|
Source string `json:"source,optional"`
|
|
|
// Expire Time | 过期时间
|
|
|
ExpiredAt string `json:"expiredAt,optional"`
|
|
|
}
|
|
|
|
|
|
// 用户社交平台信息
|
|
|
UserSocialInfo {
|
|
|
BaseID
|
|
|
TimeInfo
|
|
|
|
|
|
// 系统用户ID
|
|
|
UserID int64 `json:"userId,string,optional"`
|
|
|
// OAuth Provider | 服务提供商
|
|
|
Provider string `json:"provider,optional"`
|
|
|
// Access Token | 用户在提供商最近一次登录的访问凭证
|
|
|
AccessToken string `json:"accessToken,optional"`
|
|
|
// Refresh Token | 用户在提供商最近一次登录的刷新凭证
|
|
|
RefreshToken string `json:"refreshToken,optional"`
|
|
|
// User's ID | 提供商用户ID,不一定存在
|
|
|
UID string `json:"uid,optional"`
|
|
|
// OpenID | 用户在提供商的OpenID
|
|
|
OpenID string `json:"openId,optional"`
|
|
|
// UnionID | 用户在提供商的UnionID
|
|
|
UnionID string `json:"unionId,optional"`
|
|
|
// Key | 用户在提供商的用于解密的key
|
|
|
Key string `json:"key,optional"`
|
|
|
// Expires in | 访问凭证过期时长,单位:秒
|
|
|
ExpiresIn uint64 `json:"expiresIn,optional"`
|
|
|
// User Profile | 提供商用户信息,不一定存在
|
|
|
UserProfile string `json:"userProfile,optional"`
|
|
|
}
|
|
|
)
|
|
|
|
|
|
type (
|
|
|
// 角色信息
|
|
|
RoleInfo {
|
|
|
BaseID
|
|
|
TimeInfo
|
|
|
|
|
|
// Status | 状态
|
|
|
Status string `json:"status,optional"`
|
|
|
// Role Code | 角色编码,可用于权限控制
|
|
|
Code string `json:"code,optional"`
|
|
|
// Role Name | 角色名
|
|
|
Name string `json:"name,optional"`
|
|
|
// Description | 角色描述
|
|
|
Description string `json:"description,optional"`
|
|
|
}
|
|
|
)
|
|
|
|
|
|
type (
|
|
|
DepartmentInfo {
|
|
|
BaseID
|
|
|
TimeInfo
|
|
|
|
|
|
// Status | 状态
|
|
|
Status string `json:"status,optional"`
|
|
|
// Department name | 部门名称
|
|
|
Name string `json:"name,optional"`
|
|
|
// Department leader | 部门负责人
|
|
|
LeaderID int64 `json:"leaderId,string,optional"`
|
|
|
// Remark | 备注
|
|
|
Remark string `json:"remark,optional"`
|
|
|
// Parent ID | 直接父级ID
|
|
|
ParentID int64 `json:"parentId,string,optional"`
|
|
|
|
|
|
// Leader | 部门负责人信息
|
|
|
Leader *UserInfo `json:"leader,optional"`
|
|
|
// Parent | 直接父级
|
|
|
Parent *DepartmentInfo `json:"parent,optional"`
|
|
|
// Children | 孩子列表
|
|
|
Children []*DepartmentInfo `json:"children,optional"`
|
|
|
}
|
|
|
)
|
|
|
|
|
|
type (
|
|
|
OauthProviderInfo {
|
|
|
BaseID
|
|
|
TimeInfo
|
|
|
// The provider's name | 提供商名称
|
|
|
Name string `json:"name,optional"`
|
|
|
// The client id | 客户端 id
|
|
|
ClientID string `json:"clientId,optional"`
|
|
|
// The client secret | 客户端密钥
|
|
|
ClientSecret string `json:"clientSecret,optional"`
|
|
|
// The redirect url | 跳转地址
|
|
|
RedirectURL string `json:"redirectUrl,optional"`
|
|
|
// The scopes | 权限范围
|
|
|
Scopes string `json:"scopes,optional"`
|
|
|
// The auth url of the provider | 认证地址
|
|
|
AuthURL string `json:"authUrl,optional"`
|
|
|
// The token url of the provider | 获取 Token 地址
|
|
|
TokenURL string `json:"tokenUrl,optional"`
|
|
|
// The URL to request user information by token | 用户信息请求地址
|
|
|
InfoURL string `json:"infoUrl,optional"`
|
|
|
// The description of the provider | 提供商描述
|
|
|
Description string `json:"description,optional"`
|
|
|
// The system internal oauth provider | 系统内置提供商
|
|
|
System bool `json:"system,optional"`
|
|
|
// The oauth provider init status | 提供商初始化状态
|
|
|
Init bool `json:"init,optional"`
|
|
|
}
|
|
|
)
|
|
|
|
|
|
type (
|
|
|
// District info | 地址信息
|
|
|
DistrictInfo {
|
|
|
BaseID
|
|
|
TimeInfo
|
|
|
|
|
|
// Name | 地区名称
|
|
|
Name string `json:"name"`
|
|
|
// Short name | 地区缩写,省级
|
|
|
ShortName string `json:"shortName"`
|
|
|
// Code | 地址编码
|
|
|
Code string `json:"code"`
|
|
|
// Province code | 省级行政编号,表示该地区归属
|
|
|
Province string `json:"province"`
|
|
|
// City | 地级行政编号,表示该地区归属
|
|
|
City string `json:"city"`
|
|
|
// Area | 县级行政编号,表示该地区归属
|
|
|
Area string `json:"area"`
|
|
|
// Street or Town | 乡级行政编号,表示该地区归属
|
|
|
Street string `json:"street"`
|
|
|
// Level | 地区级别 1-省、自治区、直辖市 2-地级市、地区、自治州、盟 3-市辖区、县级市、县 4-乡镇
|
|
|
Level uint32 `json:"level"`
|
|
|
// Latitude | 纬度
|
|
|
Latitude float64 `json:"latitude"`
|
|
|
// Longitude | 经度
|
|
|
Longitude float64 `json:"longitude"`
|
|
|
// Children | 子级
|
|
|
Children []*DistrictInfo `json:"children,optional"`
|
|
|
}
|
|
|
|
|
|
// 字典信息
|
|
|
DictionaryInfo {
|
|
|
BaseID
|
|
|
TimeInfo
|
|
|
|
|
|
// Status | 状态
|
|
|
Status string `json:"status,optional"`
|
|
|
// The title shown in the ui | 展示名称 (建议配合i18n)
|
|
|
Title string `json:"title,optional"`
|
|
|
// The name of dictionary for search | 字典搜索名称
|
|
|
Name string `json:"name,optional"`
|
|
|
// The description of dictionary | 字典的描述
|
|
|
Description string `json:"description,optional"`
|
|
|
|
|
|
// Details | 字典项
|
|
|
Details []*DictionaryDetailInfo `json:"details,optional"`
|
|
|
}
|
|
|
|
|
|
// 字典项信息
|
|
|
DictionaryDetailInfo {
|
|
|
BaseID
|
|
|
TimeInfo
|
|
|
|
|
|
// Status | 状态
|
|
|
Status string `json:"status,optional"`
|
|
|
// Sort number | 排序号
|
|
|
Sort uint32 `json:"sort,optional"`
|
|
|
// The title shown in the ui | 展示名称 (建议配合i18n)
|
|
|
Title string `json:"title,optional"`
|
|
|
// key | 键
|
|
|
Key string `json:"key,optional"`
|
|
|
// value | 值
|
|
|
Value string `json:"value,optional"`
|
|
|
// Dictionary ID | 字典ID
|
|
|
DictionaryID int64 `json:"dictionaryId,string,optional"`
|
|
|
|
|
|
// Dictionary | 字典信息
|
|
|
Dictionary *DictionaryInfo `json:"dictionary,optional"`
|
|
|
}
|
|
|
) |