Files
pyGoEdge-UserPanel/reference/goedge 文档/UserService.md
2025-11-18 03:36:49 +08:00

17 KiB
Raw Blame History

UserService

用户相关服务


checkUserOTPWithUsername

根据用户名检查是否需要输入OTP

  • 角色:user
  • HTTPPOST https://backend.dooki.cloud/UserService/checkUserOTPWithUsername
  • RPCrpc checkUserOTPWithUsername (CheckUserOTPWithUsernameRequest) returns (CheckUserOTPWithUsernameResponse);

请求对象 (CheckUserOTPWithUsernameRequest)

{
  "username": "string"
}

响应对象 (CheckUserOTPWithUsernameResponse)

{
  "requireOTP": "bool"
}

调用示例

curl -X POST "https://backend.dooki.cloud/UserService/checkUserOTPWithUsername" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

checkUserUsername

检查用户名是否存在

  • 角色:user, admin
  • HTTPPOST https://backend.dooki.cloud/UserService/checkUserUsername
  • RPCrpc checkUserUsername (CheckUserUsernameRequest) returns (CheckUserUsernameResponse);

请求对象 (CheckUserUsernameRequest)

{
  "userId": "int64 // 用户ID",
  "username": "string"
}

响应对象 (CheckUserUsernameResponse)

{
  "exists": "bool"
}

调用示例

curl -X POST "https://backend.dooki.cloud/UserService/checkUserUsername" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

composeUserDashboard

取得用户Dashboard数据

  • 角色:admin, user
  • HTTPPOST https://backend.dooki.cloud/UserService/composeUserDashboard
  • RPCrpc composeUserDashboard (ComposeUserDashboardRequest) returns (ComposeUserDashboardResponse);

请求对象 (ComposeUserDashboardRequest)

{
  "userId": "int64 // 用户ID"
}

响应对象 (ComposeUserDashboardResponse)

{
  "countServers": "int64",
  "monthlyTrafficBytes": "int64",
  "monthlyPeekBandwidthBytes": "int64",
  "dailyTrafficBytes": "int64",
  "dailyPeekBandwidthBytes": "int64",
  "dailyTrafficStats": "[]DailyTrafficStat",
  "dailyPeekBandwidthStats": "[]DailyPeekBandwidthStat",
  "bandwidthPercentile": "int32 // 带宽百分位",
  "bandwidthPercentileBits": "int64 // 带宽百分位上的比特数",
  "day": "string",
  "bytes": "int64",
  "cachedBytes": "int64",
  "attackBytes": "int64",
  "countRequests": "int64",
  "countCachedRequests": "int64",
  "countAttackRequests": "int64"
}

调用示例

curl -X POST "https://backend.dooki.cloud/UserService/composeUserDashboard" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

composeUserGlobalBoard

组合全局的看板数据

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/UserService/composeUserGlobalBoard
  • RPCrpc composeUserGlobalBoard (ComposeUserGlobalBoardRequest) returns (ComposeUserGlobalBoardResponse);

请求对象 (ComposeUserGlobalBoardRequest)

{}

响应对象 (ComposeUserGlobalBoardResponse)

{
  "totalUsers": "int64",
  "countTodayUsers": "int64",
  "countWeeklyUsers": "int64",
  "countUserNodes": "int64",
  "countOfflineUserNodes": "int64",
  "countVerifyingUsers": "int64",
  "dailyStats": "[]DailyStat",
  "cpuNodeValues": "[]NodeValue",
  "memoryNodeValues": "[]NodeValue",
  "loadNodeValues": "[]NodeValue",
  "topTrafficStats": "[]TrafficStat",
  "day": "string",
  "count": "int64 // 数量",
  "userId": "int64 // 用户ID",
  "userName": "string",
  "countRequests": "int64",
  "bytes": "int64"
}

调用示例

curl -X POST "https://backend.dooki.cloud/UserService/composeUserGlobalBoard" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

countAllEnabledUsers

计算用户数量

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/UserService/countAllEnabledUsers
  • RPCrpc countAllEnabledUsers (CountAllEnabledUsersRequest) returns (RPCCountResponse);

请求对象 (CountAllEnabledUsersRequest)

{
  "keyword": "string // 关键词",
  "isVerifying": "bool",
  "mobileIsVerified": "int32 // 手机号是否已验证1表示已验证0表示未验证-1表示所有状态"
}

响应对象 (RPCCountResponse)

{
  "count": "int64 // 数量"
}

调用示例

curl -X POST "https://backend.dooki.cloud/UserService/countAllEnabledUsers" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

createUser

创建用户

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/UserService/createUser
  • RPCrpc createUser (CreateUserRequest) returns (CreateUserResponse);

请求对象 (CreateUserRequest)

{
  "username": "string",
  "password": "string",
  "fullname": "string",
  "mobile": "string",
  "tel": "string",
  "email": "string",
  "remark": "string",
  "source": "string",
  "nodeClusterId": "int64 // 集群ID"
}

响应对象 (CreateUserResponse)

{
  "userId": "int64 // 用户ID"
}

调用示例

curl -X POST "https://backend.dooki.cloud/UserService/createUser" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

deleteUser

删除用户

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/UserService/deleteUser
  • RPCrpc deleteUser (DeleteUserRequest) returns (RPCSuccess);

请求对象 (DeleteUserRequest)

{
  "userId": "int64 // 用户ID"
}

响应对象 (RPCSuccess)

{}

调用示例

curl -X POST "https://backend.dooki.cloud/UserService/deleteUser" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

findAllUserFeatureDefinitions

获取所有的功能定义

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/UserService/findAllUserFeatureDefinitions
  • RPCrpc findAllUserFeatureDefinitions (FindAllUserFeatureDefinitionsRequest) returns (FindAllUserFeatureDefinitionsResponse);

请求对象 (FindAllUserFeatureDefinitionsRequest)

{}

响应对象 (FindAllUserFeatureDefinitionsResponse)

{
  "features": "[]UserFeature"
}

调用示例

curl -X POST "https://backend.dooki.cloud/UserService/findAllUserFeatureDefinitions" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

findEnabledUser

查询单个用户信息

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/UserService/findEnabledUser
  • RPCrpc findEnabledUser (FindEnabledUserRequest) returns (FindEnabledUserResponse);

请求对象 (FindEnabledUserRequest)

{
  "userId": "int64 // 用户ID"
}

响应对象 (FindEnabledUserResponse)

{
  "user": "User"
}

调用示例

curl -X POST "https://backend.dooki.cloud/UserService/findEnabledUser" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

findUserFeatures

获取用户所有的功能列表

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/UserService/findUserFeatures
  • RPCrpc findUserFeatures (FindUserFeaturesRequest) returns (FindUserFeaturesResponse);

请求对象 (FindUserFeaturesRequest)

{
  "userId": "int64 // 用户ID"
}

响应对象 (FindUserFeaturesResponse)

{
  "features": "[]UserFeature"
}

调用示例

curl -X POST "https://backend.dooki.cloud/UserService/findUserFeatures" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

findUserNodeClusterId

获取用户所在的集群ID

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/UserService/findUserNodeClusterId
  • RPCrpc findUserNodeClusterId (FindUserNodeClusterIdRequest) returns (FindUserNodeClusterIdResponse);

请求对象 (FindUserNodeClusterIdRequest)

{
  "userId": "int64 // 用户ID"
}

响应对象 (FindUserNodeClusterIdResponse)

{
  "nodeClusterId": "int64 // 集群ID"
}

调用示例

curl -X POST "https://backend.dooki.cloud/UserService/findUserNodeClusterId" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

findUserPriceInfo

读取用户计费信息

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/UserService/findUserPriceInfo
  • RPCrpc findUserPriceInfo(FindUserPriceInfoRequest) returns (FindUserPriceInfoResponse);

请求对象 (FindUserPriceInfoRequest)

{
  "userId": "int64 // 用户ID"
}

响应对象 (FindUserPriceInfoResponse)

{
  "priceType": "string",
  "pricePeriod": "string"
}

调用示例

curl -X POST "https://backend.dooki.cloud/UserService/findUserPriceInfo" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

listEnabledUsers

列出单页用户

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/UserService/listEnabledUsers
  • RPCrpc listEnabledUsers (ListEnabledUsersRequest) returns (ListEnabledUsersResponse);

请求对象 (ListEnabledUsersRequest)

{
  "keyword": "string // 关键词",
  "isVerifying": "bool",
  "mobileIsVerified": "int32 // 手机号是否已验证1表示已验证0表示未验证-1表示所有状态",
  "offset": "int64 // 读取位置",
  "size": "int64 // 数量通常不能小于0"
}

响应对象 (ListEnabledUsersResponse)

{
  "users": "[]User"
}

调用示例

curl -X POST "https://backend.dooki.cloud/UserService/listEnabledUsers" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

loginUser

登录

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/UserService/loginUser
  • RPCrpc loginUser (LoginUserRequest) returns (LoginUserResponse);

请求对象 (LoginUserRequest)

{
  "username": "string",
  "password": "string"
}

响应对象 (LoginUserResponse)

{
  "userId": "int64 // 用户ID",
  "isOk": "bool",
  "message": "string"
}

调用示例

curl -X POST "https://backend.dooki.cloud/UserService/loginUser" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

registerUser

注册用户

  • 角色:user
  • HTTPPOST https://backend.dooki.cloud/UserService/registerUser
  • RPCrpc registerUser(RegisterUserRequest) returns (RegisterUserResponse);

请求对象 (RegisterUserRequest)

{
  "username": "string",
  "password": "string",
  "mobile": "string",
  "email": "string",
  "fullname": "string",
  "ip": "string",
  "source": "string"
}

响应对象 (RegisterUserResponse)

{
  "userId": "int64 // 用户ID",
  "requireEmailVerification": "bool // 是否需要激活邮件"
}

调用示例

curl -X POST "https://backend.dooki.cloud/UserService/registerUser" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

renewUserServersState

更新用户服务可用状态

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/UserService/renewUserServersState
  • RPCrpc renewUserServersState(RenewUserServersStateRequest) returns (RenewUserServersStateResponse);

请求对象 (RenewUserServersStateRequest)

{
  "userId": "int64 // 用户ID"
}

响应对象 (RenewUserServersStateResponse)

{
  "isEnabled": "bool"
}

调用示例

curl -X POST "https://backend.dooki.cloud/UserService/renewUserServersState" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

updateAllUsersFeatures

设置所有用户能使用的功能

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/UserService/updateAllUsersFeatures
  • RPCrpc updateAllUsersFeatures(UpdateAllUsersFeaturesRequest) returns (RPCSuccess);

请求对象 (UpdateAllUsersFeaturesRequest)

{
  "featureCodes": "[]string",
  "overwrite": "bool"
}

响应对象 (RPCSuccess)

{}

调用示例

curl -X POST "https://backend.dooki.cloud/UserService/updateAllUsersFeatures" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

updateUser

修改用户

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/UserService/updateUser
  • RPCrpc updateUser (UpdateUserRequest) returns (RPCSuccess);

请求对象 (UpdateUserRequest)

{
  "userId": "int64 // 用户ID",
  "username": "string",
  "password": "string",
  "fullname": "string",
  "mobile": "string",
  "tel": "string",
  "email": "string",
  "remark": "string",
  "isOn": "bool // 是否启用",
  "nodeClusterId": "int64 // 集群ID",
  "bandwidthAlgo": "string"
}

响应对象 (RPCSuccess)

{}

调用示例

curl -X POST "https://backend.dooki.cloud/UserService/updateUser" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

updateUserFeatures

设置单个用户能使用的功能

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/UserService/updateUserFeatures
  • RPCrpc updateUserFeatures (UpdateUserFeaturesRequest) returns (RPCSuccess);

请求对象 (UpdateUserFeaturesRequest)

{
  "userId": "int64 // 用户ID",
  "featureCodes": "[]string"
}

响应对象 (RPCSuccess)

{}

调用示例

curl -X POST "https://backend.dooki.cloud/UserService/updateUserFeatures" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

updateUserInfo

修改用户基本信息

  • 角色:user
  • HTTPPOST https://backend.dooki.cloud/UserService/updateUserInfo
  • RPCrpc updateUserInfo (UpdateUserInfoRequest) returns (RPCSuccess);

请求对象 (UpdateUserInfoRequest)

{
  "userId": "int64 // 用户ID",
  "fullname": "string",
  "mobile": "string",
  "email": "string"
}

响应对象 (RPCSuccess)

{}

调用示例

curl -X POST "https://backend.dooki.cloud/UserService/updateUserInfo" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

updateUserLogin

修改用户登录信息

  • 角色:user
  • HTTPPOST https://backend.dooki.cloud/UserService/updateUserLogin
  • RPCrpc updateUserLogin (UpdateUserLoginRequest) returns (RPCSuccess);

请求对象 (UpdateUserLoginRequest)

{
  "userId": "int64 // 用户ID",
  "username": "string",
  "password": "string"
}

响应对象 (RPCSuccess)

{}

调用示例

curl -X POST "https://backend.dooki.cloud/UserService/updateUserLogin" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

updateUserPricePeriod

修改用户计费周期

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/UserService/updateUserPricePeriod
  • RPCrpc updateUserPricePeriod(UpdateUserPricePeriodRequest) returns (RPCSuccess);

请求对象 (UpdateUserPricePeriodRequest)

{
  "userId": "int64 // 用户ID",
  "pricePeriod": "string"
}

响应对象 (RPCSuccess)

{}

调用示例

curl -X POST "https://backend.dooki.cloud/UserService/updateUserPricePeriod" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

updateUserPriceType

修改用户计费方式

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/UserService/updateUserPriceType
  • RPCrpc updateUserPriceType(UpdateUserPriceTypeRequest) returns (RPCSuccess);

请求对象 (UpdateUserPriceTypeRequest)

{
  "userId": "int64 // 用户ID",
  "priceType": "string"
}

响应对象 (RPCSuccess)

{}

调用示例

curl -X POST "https://backend.dooki.cloud/UserService/updateUserPriceType" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

verifyUser

审核用户

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/UserService/verifyUser
  • RPCrpc verifyUser(VerifyUserRequest) returns (RPCSuccess);

请求对象 (VerifyUserRequest)

{
  "userId": "int64 // 用户ID",
  "isRejected": "bool",
  "rejectReason": "string"
}

响应对象 (RPCSuccess)

{}

调用示例

curl -X POST "https://backend.dooki.cloud/UserService/verifyUser" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'