192 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			192 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | syntax = "v1" | ||
|  | 
 | ||
|  | info ( | ||
|  | 	title:   "用户中心服务" | ||
|  | 	desc:    "用户中心服务" | ||
|  | 	author:  "Liangzai" | ||
|  | 	email:   "2440983361@qq.com" | ||
|  | 	version: "v1" | ||
|  | ) | ||
|  | 
 | ||
|  | //============================> user v1 <============================ | ||
|  | // 用户基本类型定义 | ||
|  | type User { | ||
|  | 	Id       int64  `json:"id"` | ||
|  | 	Mobile   string `json:"mobile"` | ||
|  | 	NickName string `json:"nickName"` | ||
|  | } | ||
|  | 
 | ||
|  | //no need login | ||
|  | @server ( | ||
|  | 	prefix: api/v1 | ||
|  | 	group:  user | ||
|  | ) | ||
|  | service main { | ||
|  | 	@doc "register" | ||
|  | 	@handler register | ||
|  | 	post /user/register (RegisterReq) returns (RegisterResp) | ||
|  | 
 | ||
|  | 	@doc "mobile login" | ||
|  | 	@handler mobileLogin | ||
|  | 	post /user/mobileLogin (MobileLoginReq) returns (MobileLoginResp) | ||
|  | 
 | ||
|  | 	@doc "mobile code login" | ||
|  | 	@handler mobileCodeLogin | ||
|  | 	post /user/mobileCodeLogin (MobileCodeLoginReq) returns (MobileCodeLoginResp) | ||
|  | 
 | ||
|  | 	@doc "agent mobile code login" | ||
|  | 	@handler agentMobileCodeLogin | ||
|  | 	post /user/agent_mobile_code_login (MobileCodeLoginReq) returns (MobileCodeLoginResp) | ||
|  | 
 | ||
|  | 	@doc "wechat mini auth" | ||
|  | 	@handler wxMiniAuth | ||
|  | 	post /user/wxMiniAuth (WXMiniAuthReq) returns (WXMiniAuthResp) | ||
|  | 
 | ||
|  | 	@doc "wechat h5 auth" | ||
|  | 	@handler wxH5Auth | ||
|  | 	post /user/wxh5Auth (WXH5AuthReq) returns (WXH5AuthResp) | ||
|  | } | ||
|  | 
 | ||
|  | type ( | ||
|  | 	RegisterReq { | ||
|  | 		Mobile   string `json:"mobile" validate:"required,mobile"` | ||
|  | 		Password string `json:"password" validate:"required,min=11,max=11,password"` | ||
|  | 		Code     string `json:"code" validate:"required"` | ||
|  | 	} | ||
|  | 	RegisterResp { | ||
|  | 		AccessToken  string `json:"accessToken"` | ||
|  | 		AccessExpire int64  `json:"accessExpire"` | ||
|  | 		RefreshAfter int64  `json:"refreshAfter"` | ||
|  | 	} | ||
|  | ) | ||
|  | 
 | ||
|  | type ( | ||
|  | 	MobileLoginReq { | ||
|  | 		Mobile   string `json:"mobile" validate:"required,mobile"` | ||
|  | 		Password string `json:"password" validate:"required"` | ||
|  | 	} | ||
|  | 	MobileLoginResp { | ||
|  | 		AccessToken  string `json:"accessToken"` | ||
|  | 		AccessExpire int64  `json:"accessExpire"` | ||
|  | 		RefreshAfter int64  `json:"refreshAfter"` | ||
|  | 	} | ||
|  | ) | ||
|  | 
 | ||
|  | type ( | ||
|  | 	MobileCodeLoginReq { | ||
|  | 		Mobile string `json:"mobile"` | ||
|  | 		Code   string `json:"code" validate:"required"` | ||
|  | 	} | ||
|  | 	MobileCodeLoginResp { | ||
|  | 		AccessToken  string `json:"accessToken"` | ||
|  | 		AccessExpire int64  `json:"accessExpire"` | ||
|  | 		RefreshAfter int64  `json:"refreshAfter"` | ||
|  | 	} | ||
|  | ) | ||
|  | 
 | ||
|  | type ( | ||
|  | 	WXMiniAuthReq { | ||
|  | 		Code          string `json:"code"` | ||
|  | 		IV            string `json:"iv"` | ||
|  | 		EncryptedData string `json:"encryptedData"` | ||
|  | 	} | ||
|  | 	WXMiniAuthResp { | ||
|  | 		AccessToken  string `json:"accessToken"` | ||
|  | 		AccessExpire int64  `json:"accessExpire"` | ||
|  | 		RefreshAfter int64  `json:"refreshAfter"` | ||
|  | 	} | ||
|  | ) | ||
|  | 
 | ||
|  | type ( | ||
|  | 	WXH5AuthReq { | ||
|  | 		Code string `json:"code"` | ||
|  | 	} | ||
|  | 	WXH5AuthResp { | ||
|  | 		AccessToken  string `json:"accessToken"` | ||
|  | 		AccessExpire int64  `json:"accessExpire"` | ||
|  | 		RefreshAfter int64  `json:"refreshAfter"` | ||
|  | 	} | ||
|  | ) | ||
|  | 
 | ||
|  | //need login | ||
|  | @server ( | ||
|  | 	prefix: api/v1 | ||
|  | 	group:  user | ||
|  | 	jwt:    JwtAuth | ||
|  | ) | ||
|  | service main { | ||
|  | 	@doc "get user info" | ||
|  | 	@handler detail | ||
|  | 	get /user/detail returns (UserInfoResp) | ||
|  | 
 | ||
|  | 	@doc "get new token" | ||
|  | 	@handler getToken | ||
|  | 	post /user/getToken returns (MobileCodeLoginResp) | ||
|  | 
 | ||
|  | 	@handler cancelOut | ||
|  | 	post /user/cancelOut | ||
|  | 
 | ||
|  | 	@doc "绑定手机号" | ||
|  | 	@handler bindMobile | ||
|  | 	post /user/bindMobile (BindMobileReq) returns (BindMobileResp) | ||
|  | } | ||
|  | 
 | ||
|  | type ( | ||
|  | 	UserInfoResp { | ||
|  | 		UserInfo User `json:"userInfo"` | ||
|  | 	} | ||
|  | 
 | ||
|  | 	BindMobileReq { | ||
|  | 		Mobile string `json:"mobile" validate:"required,mobile"` | ||
|  | 		Code   string `json:"code" validate:"required"` | ||
|  | 	} | ||
|  | 	BindMobileResp { | ||
|  | 	} | ||
|  | ) | ||
|  | 
 | ||
|  | //============================> auth v1 <============================ | ||
|  | @server ( | ||
|  | 	prefix: api/v1 | ||
|  | 	group:  auth | ||
|  | ) | ||
|  | service main { | ||
|  | 	@doc "get mobile verify code" | ||
|  | 	@handler sendSms | ||
|  | 	post /auth/sendSms (sendSmsReq) | ||
|  | } | ||
|  | 
 | ||
|  | type ( | ||
|  | 	sendSmsReq { | ||
|  | 		Mobile     string `json:"mobile" validate:"required,mobile"` | ||
|  | 		ActionType string `json:"actionType" validate:"required,oneof=login register query agentApply realName bindMobile"` | ||
|  | 	} | ||
|  | ) | ||
|  | 
 | ||
|  | //============================> notification v1 <============================ | ||
|  | @server ( | ||
|  | 	prefix: api/v1 | ||
|  | 	group:  notification | ||
|  | ) | ||
|  | service main { | ||
|  | 	@doc "get notifications" | ||
|  | 	@handler getNotifications | ||
|  | 	get /notification/list returns (GetNotificationsResp) | ||
|  | } | ||
|  | 
 | ||
|  | type Notification { | ||
|  | 	Title            string `json:"title"`            // 通知标题 | ||
|  | 	Content          string `json:"content"`          // 通知内容 (富文本) | ||
|  | 	NotificationPage string `json:"notificationPage"` // 通知页面 | ||
|  | 	StartDate        string `json:"startDate"`        // 通知开始日期,格式 "YYYY-MM-DD" | ||
|  | 	EndDate          string `json:"endDate"`          // 通知结束日期,格式 "YYYY-MM-DD" | ||
|  | 	StartTime        string `json:"startTime"`        // 每天通知开始时间,格式 "HH:MM:SS" | ||
|  | 	EndTime          string `json:"endTime"`          // 每天通知结束时间,格式 "HH:MM:SS" | ||
|  | } | ||
|  | 
 | ||
|  | type ( | ||
|  | 	// 获取通知响应体(分页) | ||
|  | 	GetNotificationsResp { | ||
|  | 		Notifications []Notification `json:"notifications"` // 通知列表 | ||
|  | 		Total         int64          `json:"total"`         // 总记录数 | ||
|  | 	} | ||
|  | ) |