You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
504 lines
11 KiB
Protocol Buffer
504 lines
11 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package core;
|
|
option go_package="./core";
|
|
|
|
// 操作类型
|
|
enum Operator {
|
|
EQ = 0;
|
|
NEQ = 1;
|
|
IN = 2;
|
|
NotIn = 3;
|
|
GT = 4;
|
|
GTE = 5;
|
|
LT = 6;
|
|
LTE = 7;
|
|
Contains = 8;
|
|
Prefix = 9;
|
|
Suffix = 10;
|
|
EqualFold = 11;
|
|
ContainsFold = 12;
|
|
}
|
|
|
|
enum DistrictQueryType {
|
|
Normal = 0;
|
|
Children = 1;
|
|
ChildrenByLevel = 2;
|
|
Parents = 3;
|
|
}
|
|
|
|
message GetDistrictNameResp {
|
|
string code = 1;
|
|
string name = 2;
|
|
repeated string name_list = 3;
|
|
}
|
|
|
|
message LoginRecordInfo {
|
|
int64 ID = 1;
|
|
string created_at = 3;
|
|
string updated_at = 4;
|
|
int64 user_id = 5;
|
|
string last_login_at = 6;
|
|
string last_login_ipv4 = 7;
|
|
string last_login_device = 8;
|
|
string last_login_ua = 9;
|
|
uint64 login_count = 10;
|
|
}
|
|
|
|
message TokenListResp {
|
|
optional Pagination page = 1;
|
|
repeated TokenInfo data = 2;
|
|
}
|
|
|
|
message UserSocialInfo {
|
|
int64 ID = 1;
|
|
string created_at = 2;
|
|
string updated_at = 3;
|
|
int64 user_id = 4;
|
|
string provider = 5;
|
|
string access_token = 6;
|
|
string refresh_token = 7;
|
|
string uid = 8;
|
|
string open_id = 9;
|
|
string union_id = 10;
|
|
string key = 11;
|
|
uint64 expires_in = 12;
|
|
string user_profile = 13;
|
|
UserInfo user = 14;
|
|
}
|
|
|
|
message DepartmentListResp {
|
|
optional Pagination page = 1;
|
|
repeated DepartmentInfo data = 2;
|
|
}
|
|
|
|
// DistrictInfo 地址单体结构
|
|
message DistrictInfo {
|
|
int64 ID = 1;
|
|
string created_at = 2;
|
|
string updated_at = 3;
|
|
string name = 4;
|
|
string short_name = 5;
|
|
string code = 6;
|
|
string province = 7;
|
|
string city = 8;
|
|
string area = 9;
|
|
string street = 10;
|
|
uint32 level = 11;
|
|
double latitude = 12;
|
|
double longitude = 13;
|
|
repeated DistrictInfo children = 20;
|
|
}
|
|
|
|
message DistrictListResp {
|
|
optional Pagination page = 1;
|
|
repeated DistrictInfo data = 2;
|
|
}
|
|
|
|
message TokenInfo {
|
|
int64 ID = 1;
|
|
string status = 2;
|
|
string created_at = 3;
|
|
string updated_at = 4;
|
|
int64 user_id = 5;
|
|
string access_token = 6;
|
|
string refresh_token = 7;
|
|
string source = 8;
|
|
int64 expired_at = 9;
|
|
UserInfo user = 10;
|
|
}
|
|
|
|
message DepartmentInfo {
|
|
int64 ID = 1;
|
|
string status = 2;
|
|
string created_at = 3;
|
|
string updated_at = 4;
|
|
string name = 5;
|
|
string leader_id = 6;
|
|
string remark = 7;
|
|
int64 parent_id = 8;
|
|
DepartmentInfo parent = 10;
|
|
repeated DepartmentInfo children = 11;
|
|
repeated UserInfo users = 12;
|
|
UserInfo leader = 13;
|
|
}
|
|
|
|
message DistrictReq {
|
|
string code = 1;
|
|
string province = 2;
|
|
string city = 3;
|
|
string area = 4;
|
|
string street = 5;
|
|
uint32 level = 6;
|
|
string name = 7;
|
|
string parent_code = 8;
|
|
optional Pagination page = 10;
|
|
DistrictQueryType query_type = 11;
|
|
}
|
|
|
|
message OauthProviderListResp {
|
|
optional Pagination page = 1;
|
|
repeated OauthProviderInfo data = 2;
|
|
}
|
|
|
|
message UserInfo {
|
|
int64 ID = 1;
|
|
string status = 2;
|
|
string created_at = 3;
|
|
string updated_at = 4;
|
|
string username = 5;
|
|
optional string phone_number = 6;
|
|
optional string email = 7;
|
|
string password = 8;
|
|
optional string nickname = 9;
|
|
map<string,string> metas = 10;
|
|
repeated RoleInfo roles = 20;
|
|
repeated UserSocialInfo socials = 21;
|
|
repeated DepartmentInfo departments = 22;
|
|
repeated TokenInfo tokens = 23;
|
|
LoginRecordInfo login_record = 24;
|
|
}
|
|
|
|
message UserReq {
|
|
int64 ID = 1;
|
|
string username = 2;
|
|
string phone_number = 3;
|
|
string email = 4;
|
|
string nickname = 5;
|
|
bool with_role = 6;
|
|
bool with_social = 7;
|
|
bool with_department = 8;
|
|
bool with_token = 9;
|
|
bool with_login_record = 10;
|
|
optional Pagination page = 20;
|
|
}
|
|
|
|
// Base message
|
|
message Empty {}
|
|
|
|
message OauthRedirectResp {
|
|
string url = 1;
|
|
}
|
|
|
|
message TokenReq {
|
|
int64 ID = 1;
|
|
int64 user_id = 2;
|
|
string username = 3;
|
|
string phone_number = 4;
|
|
string email = 5;
|
|
bool with_user = 6;
|
|
optional Pagination page = 10;
|
|
}
|
|
|
|
message DictionaryListResp {
|
|
optional Pagination page = 1;
|
|
repeated DictionaryInfo data = 2;
|
|
}
|
|
|
|
message OauthProviderInfo {
|
|
int64 ID = 1;
|
|
string created_at = 2;
|
|
string updated_at = 3;
|
|
string name = 4;
|
|
string client_id = 5;
|
|
string client_secret = 6;
|
|
string redirect_url = 7;
|
|
string scopes = 8;
|
|
string auth_url = 9;
|
|
string token_url = 10;
|
|
string info_url = 11;
|
|
string description = 12;
|
|
bool system = 13;
|
|
bool init = 14;
|
|
}
|
|
|
|
message RoleInfo {
|
|
int64 ID = 1;
|
|
string status = 2;
|
|
string created_at = 3;
|
|
string updated_at = 4;
|
|
string code = 5;
|
|
string name = 6;
|
|
string description = 7;
|
|
repeated UserInfo users = 10;
|
|
}
|
|
|
|
message RoleReq {
|
|
int64 ID = 1;
|
|
string name = 2;
|
|
string code = 3;
|
|
optional Pagination page = 10;
|
|
}
|
|
|
|
// 基础回执
|
|
message BaseResp {
|
|
uint32 code = 1;
|
|
string msg = 2;
|
|
}
|
|
|
|
message DepartmentReq {
|
|
int64 ID = 1;
|
|
string name = 2;
|
|
int64 leader_id = 3;
|
|
int64 parent_id = 4;
|
|
bool with_leader = 5;
|
|
bool with_user = 6;
|
|
bool with_children = 7;
|
|
optional Pagination page = 10;
|
|
}
|
|
|
|
message DictionaryReq {
|
|
int64 ID = 1;
|
|
string name = 2;
|
|
string title = 3;
|
|
bool with_details = 4;
|
|
optional Pagination page = 10;
|
|
}
|
|
|
|
message DictionaryDetailListResp {
|
|
optional Pagination page = 1;
|
|
repeated DictionaryDetailInfo data = 2;
|
|
}
|
|
|
|
message DeleteDictionaryDetailReq {
|
|
repeated int64 ids = 1;
|
|
int64 dict_id = 2;
|
|
}
|
|
|
|
message OauthLoginReq {
|
|
string state = 1;
|
|
string provider = 2;
|
|
}
|
|
|
|
message RoleListResp {
|
|
optional Pagination page = 1;
|
|
repeated RoleInfo data = 2;
|
|
}
|
|
|
|
message UserListResp {
|
|
optional Pagination page = 1;
|
|
repeated UserInfo data = 2;
|
|
}
|
|
|
|
message IDReq {
|
|
uint64 id = 1;
|
|
}
|
|
|
|
message IDsReq {
|
|
repeated uint64 ids = 1;
|
|
}
|
|
|
|
message DictionaryDetailInfo {
|
|
int64 ID = 1;
|
|
string status = 2;
|
|
string created_at = 3;
|
|
string updated_at = 4;
|
|
string title = 5;
|
|
string key = 6;
|
|
string value = 7;
|
|
uint32 sort = 8;
|
|
int64 dictionary_id = 9;
|
|
DictionaryInfo dictionary = 10;
|
|
}
|
|
|
|
message UserSocialListResp {
|
|
optional Pagination page = 1;
|
|
repeated UserSocialInfo data = 2;
|
|
}
|
|
|
|
message CallbackReq {
|
|
string state = 1;
|
|
string code = 2;
|
|
}
|
|
|
|
message DictionaryDetailReq {
|
|
optional Pagination page = 1;
|
|
int64 ID = 2;
|
|
int64 dict_id = 3;
|
|
string title = 4;
|
|
string key = 5;
|
|
string value = 6;
|
|
bool with_dictionary = 7;
|
|
}
|
|
|
|
message DistrictTree {
|
|
repeated DistrictInfo tree = 1;
|
|
}
|
|
|
|
message RecordReq {
|
|
int64 user_id = 1;
|
|
}
|
|
|
|
message GetDistrictNameReq {
|
|
string code = 1;
|
|
string separator = 2;
|
|
}
|
|
|
|
message OauthProviderReq {
|
|
int64 ID = 1;
|
|
string name = 2;
|
|
string client_id = 3;
|
|
optional bool system = 4;
|
|
optional bool init = 5;
|
|
optional Pagination page = 10;
|
|
}
|
|
|
|
message TokenUserReq {
|
|
int64 user_id = 1;
|
|
}
|
|
|
|
message UserSocialReq {
|
|
int64 ID = 1;
|
|
int64 user_id = 2;
|
|
string provider = 3;
|
|
string access_token = 4;
|
|
string uid = 5;
|
|
string open_id = 6;
|
|
string union_id = 7;
|
|
bool with_user = 8;
|
|
optional Pagination page = 10;
|
|
}
|
|
|
|
// 基础回执带ID
|
|
message BaseIDResp {
|
|
uint64 id = 1;
|
|
uint32 code = 2;
|
|
string msg = 3;
|
|
}
|
|
|
|
// 分页参数
|
|
message Pagination {
|
|
uint64 size = 1;
|
|
uint64 total = 2;
|
|
uint64 current = 3;
|
|
}
|
|
|
|
message DictionaryInfo {
|
|
int64 ID = 1;
|
|
string status = 2;
|
|
string created_at = 3;
|
|
string updated_at = 4;
|
|
string title = 5;
|
|
string name = 6;
|
|
string description = 7;
|
|
repeated DictionaryDetailInfo details = 10;
|
|
}
|
|
|
|
message DistrictCodeReq {
|
|
string code = 1;
|
|
}
|
|
|
|
service Core {
|
|
// group: base
|
|
rpc initDatabase(Empty) returns (BaseResp);
|
|
// Role management
|
|
// group: department
|
|
rpc createDepartment(DepartmentInfo) returns (BaseIDResp);
|
|
// group: department
|
|
rpc updateDepartment(DepartmentInfo) returns (BaseResp);
|
|
// group: department
|
|
rpc getDepartmentList(DepartmentReq) returns (DepartmentListResp);
|
|
// group: department
|
|
rpc getDepartment(DepartmentReq) returns (DepartmentInfo);
|
|
// group: department
|
|
rpc deleteDepartment(IDsReq) returns (BaseResp);
|
|
// Dictionary Management
|
|
// group: dictionary
|
|
rpc createDictionary(DictionaryInfo) returns (BaseIDResp);
|
|
// group: dictionary
|
|
rpc updateDictionary(DictionaryInfo) returns (BaseResp);
|
|
// group: dictionary
|
|
rpc getDictionaryList(UserReq) returns (UserListResp);
|
|
// group: dictionary
|
|
rpc getDictionary(UserReq) returns (DictionaryInfo);
|
|
// group: dictionary
|
|
rpc deleteDictionary(IDsReq) returns (BaseResp);
|
|
// Details
|
|
// group: dictionary
|
|
rpc createDictionaryDetail(DictionaryDetailInfo) returns (BaseIDResp);
|
|
// group: dictionary
|
|
rpc updateDictionaryDetail(DictionaryDetailInfo) returns (BaseResp);
|
|
// group: dictionary
|
|
rpc getDictionaryDetailList(DictionaryDetailReq) returns (DictionaryDetailListResp);
|
|
// group: dictionary
|
|
rpc getDictionaryDetail(DictionaryDetailReq) returns (DictionaryDetailInfo);
|
|
// group: dictionary
|
|
rpc deleteDictionaryDetail(DeleteDictionaryDetailReq) returns (BaseResp);
|
|
// District management
|
|
// group: district
|
|
rpc getDistrict(DistrictCodeReq) returns (DistrictInfo);
|
|
// group: district
|
|
rpc getDistrictList(DistrictReq) returns (DistrictListResp);
|
|
// group: district
|
|
rpc getDistrictTree(DistrictCodeReq) returns (DistrictTree);
|
|
// group: district
|
|
rpc getDistrictName(GetDistrictNameReq) returns (GetDistrictNameResp);
|
|
// Login Record management
|
|
// group: login_record
|
|
rpc getRecord(RecordReq) returns (LoginRecordInfo);
|
|
// group: login_record
|
|
rpc record(LoginRecordInfo) returns (BaseResp);
|
|
// OauthProvider management
|
|
// group: oauth_provider
|
|
rpc createOauthProvider(OauthProviderInfo) returns (BaseIDResp);
|
|
// group: oauth_provider
|
|
rpc updateOauthProvider(OauthProviderInfo) returns (BaseResp);
|
|
// group: oauth_provider
|
|
rpc getOauthProviderList(OauthProviderReq) returns (OauthProviderListResp);
|
|
// group: oauth_provider
|
|
rpc getOauthProvider(OauthProviderReq) returns (OauthProviderInfo);
|
|
// group: oauth_provider
|
|
rpc deleteOauthProvider(IDsReq) returns (BaseResp);
|
|
// group: oauth_provider
|
|
rpc oauthLogin(OauthLoginReq) returns (OauthRedirectResp);
|
|
// group: oauth_provider
|
|
rpc oauthCallback(CallbackReq) returns (UserInfo);
|
|
// Role management
|
|
// group: role
|
|
rpc createRole(RoleInfo) returns (BaseIDResp);
|
|
// group: role
|
|
rpc updateRole(RoleInfo) returns (BaseResp);
|
|
// group: role
|
|
rpc getRoleList(RoleReq) returns (RoleListResp);
|
|
// group: role
|
|
rpc getRole(RoleReq) returns (RoleInfo);
|
|
// group: role
|
|
rpc deleteRole(IDsReq) returns (BaseResp);
|
|
// Token management
|
|
// group: token
|
|
rpc createToken(TokenInfo) returns (BaseIDResp);
|
|
// group: token
|
|
rpc updateToken(TokenInfo) returns (BaseResp);
|
|
// group: token
|
|
rpc getTokenList(TokenReq) returns (TokenListResp);
|
|
// group: token
|
|
rpc getToken(TokenReq) returns (TokenInfo);
|
|
// group: token
|
|
rpc deleteToken(IDsReq) returns (BaseResp);
|
|
// group: token
|
|
rpc blockUserAllToken(TokenUserReq) returns (BaseResp);
|
|
// User Management
|
|
// group: user
|
|
rpc createUser(UserInfo) returns (BaseIDResp);
|
|
// group: user
|
|
rpc updateUser(UserInfo) returns (BaseResp);
|
|
// group: user
|
|
rpc getUserList(UserReq) returns (UserListResp);
|
|
// group: user
|
|
rpc getUser(UserReq) returns (UserInfo);
|
|
// group: user
|
|
rpc deleteUser(IDsReq) returns (BaseResp);
|
|
// User Management
|
|
// group: user_social
|
|
rpc createUserSocial(UserSocialInfo) returns (BaseIDResp);
|
|
// group: user_social
|
|
rpc updateUserSocial(UserSocialInfo) returns (BaseResp);
|
|
// group: user_social
|
|
rpc getUserSocialList(UserSocialReq) returns (UserSocialListResp);
|
|
// group: user_social
|
|
rpc getUserSocial(UserSocialReq) returns (UserSocialInfo);
|
|
// group: user_social
|
|
rpc deleteUserSocial(IDsReq) returns (BaseResp);
|
|
}
|
|
|