183 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			183 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | syntax = "v1" | |||
|  | 
 | |||
|  | info ( | |||
|  | 	title:   "推广服务" | |||
|  | 	desc:    "推广服务" | |||
|  | 	author:  "Liangzai" | |||
|  | 	email:   "2440983361@qq.com" | |||
|  | 	version: "v1" | |||
|  | ) | |||
|  | 
 | |||
|  | @server ( | |||
|  | 	prefix: api/v1/admin/promotion/link | |||
|  | 	group:  admin_promotion | |||
|  | 	jwt:    JwtAuth | |||
|  | ) | |||
|  | service main { | |||
|  | 	@doc "获取推广链接列表" | |||
|  | 	@handler GetPromotionLinkList | |||
|  | 	get /list (GetPromotionLinkListReq) returns (GetPromotionLinkListResp) | |||
|  | 
 | |||
|  | 	@doc "获取推广链接详情" | |||
|  | 	@handler GetPromotionLinkDetail | |||
|  | 	get /detail/:id (GetPromotionLinkDetailReq) returns (GetPromotionLinkDetailResp) | |||
|  | 
 | |||
|  | 	@doc "创建推广链接" | |||
|  | 	@handler CreatePromotionLink | |||
|  | 	post /create (CreatePromotionLinkReq) returns (CreatePromotionLinkResp) | |||
|  | 
 | |||
|  | 	@doc "更新推广链接" | |||
|  | 	@handler UpdatePromotionLink | |||
|  | 	put /update/:id (UpdatePromotionLinkReq) returns (UpdatePromotionLinkResp) | |||
|  | 
 | |||
|  | 	@doc "删除推广链接" | |||
|  | 	@handler DeletePromotionLink | |||
|  | 	delete /delete/:id (DeletePromotionLinkReq) returns (DeletePromotionLinkResp) | |||
|  | } | |||
|  | 
 | |||
|  | type ( | |||
|  | 	// 列表请求 | |||
|  | 	GetPromotionLinkListReq { | |||
|  | 		Page     int64  `form:"page,default=1"`      // 页码 | |||
|  | 		PageSize int64  `form:"pageSize,default=20"` // 每页数量 | |||
|  | 		Name     string `form:"name,optional"`       // 链接名称 | |||
|  | 		Url      string `form:"url,optional"`        // 推广链接URL | |||
|  | 	} | |||
|  | 
 | |||
|  | 	// 列表响应 | |||
|  | 	GetPromotionLinkListResp { | |||
|  | 		Total int64               `json:"total"` // 总数 | |||
|  | 		Items []PromotionLinkItem `json:"items"` // 列表 | |||
|  | 	} | |||
|  | 
 | |||
|  | 	// 列表项 | |||
|  | 	PromotionLinkItem { | |||
|  | 		Id            int64  `json:"id"`                       // 链接ID | |||
|  | 		Name          string `json:"name"`                     // 链接名称 | |||
|  | 		Url           string `json:"url"`                      // 推广链接URL | |||
|  | 		ClickCount    int64  `json:"click_count"`              // 点击数 | |||
|  | 		PayCount      int64  `json:"pay_count"`                // 付费次数 | |||
|  | 		PayAmount     string `json:"pay_amount"`               // 付费金额 | |||
|  | 		CreateTime    string `json:"create_time"`              // 创建时间 | |||
|  | 		LastClickTime string `json:"last_click_time,optional"` // 最后点击时间 | |||
|  | 		LastPayTime   string `json:"last_pay_time,optional"`   // 最后付费时间 | |||
|  | 	} | |||
|  | 
 | |||
|  | 	// 详情请求 | |||
|  | 	GetPromotionLinkDetailReq { | |||
|  | 		Id int64 `path:"id"` // 链接ID | |||
|  | 	} | |||
|  | 
 | |||
|  | 	// 详情响应 | |||
|  | 	GetPromotionLinkDetailResp { | |||
|  | 		Name          string `json:"name"`                     // 链接名称 | |||
|  | 		Url           string `json:"url"`                      // 推广链接URL | |||
|  | 		ClickCount    int64  `json:"click_count"`              // 点击数 | |||
|  | 		PayCount      int64  `json:"pay_count"`                // 付费次数 | |||
|  | 		PayAmount     string `json:"pay_amount"`               // 付费金额 | |||
|  | 		CreateTime    string `json:"create_time"`              // 创建时间 | |||
|  | 		UpdateTime    string `json:"update_time"`              // 更新时间 | |||
|  | 		LastClickTime string `json:"last_click_time,optional"` // 最后点击时间 | |||
|  | 		LastPayTime   string `json:"last_pay_time,optional"`   // 最后付费时间 | |||
|  | 	} | |||
|  | 
 | |||
|  | 	// 创建请求 | |||
|  | 	CreatePromotionLinkReq { | |||
|  | 		Name string `json:"name"` // 链接名称 | |||
|  | 	} | |||
|  | 
 | |||
|  | 	// 创建响应 | |||
|  | 	CreatePromotionLinkResp { | |||
|  | 		Id  int64  `json:"id"`  // 链接ID | |||
|  | 		Url string `json:"url"` // 生成的推广链接URL | |||
|  | 	} | |||
|  | 
 | |||
|  | 	// 更新请求 | |||
|  | 	UpdatePromotionLinkReq { | |||
|  | 		Id   int64   `path:"id"`            // 链接ID | |||
|  | 		Name *string `json:"name,optional"` // 链接名称 | |||
|  | 	} | |||
|  | 
 | |||
|  | 	// 更新响应 | |||
|  | 	UpdatePromotionLinkResp { | |||
|  | 		Success bool `json:"success"` // 是否成功 | |||
|  | 	} | |||
|  | 
 | |||
|  | 	// 删除请求 | |||
|  | 	DeletePromotionLinkReq { | |||
|  | 		Id int64 `path:"id"` // 链接ID | |||
|  | 	} | |||
|  | 
 | |||
|  | 	// 删除响应 | |||
|  | 	DeletePromotionLinkResp { | |||
|  | 		Success bool `json:"success"` // 是否成功 | |||
|  | 	} | |||
|  | ) | |||
|  | 
 | |||
|  | @server ( | |||
|  | 	prefix: api/v1/admin/promotion/link | |||
|  | 	group:  admin_promotion | |||
|  | ) | |||
|  | service main { | |||
|  | 	@doc "记录链接点击" | |||
|  | 	@handler RecordLinkClick | |||
|  | 	get /record/:path (RecordLinkClickReq) returns (RecordLinkClickResp) | |||
|  | } | |||
|  | 
 | |||
|  | type ( | |||
|  | 	// 记录链接点击请求 | |||
|  | 	RecordLinkClickReq { | |||
|  | 		Path string `path:"path"` // 链接路径 | |||
|  | 	} | |||
|  | 
 | |||
|  | 	// 记录链接点击响应 | |||
|  | 	RecordLinkClickResp { | |||
|  | 		Success bool `json:"success"` // 是否成功 | |||
|  | 	} | |||
|  | ) | |||
|  | @server ( | |||
|  | 	prefix: api/v1/admin/promotion/stats | |||
|  | 	group:  admin_promotion | |||
|  | 	jwt:    JwtAuth | |||
|  | ) | |||
|  | service main { | |||
|  | 	@doc "获取推广历史记录" | |||
|  | 	@handler GetPromotionStatsHistory | |||
|  | 	get /history (GetPromotionStatsHistoryReq) returns ([]PromotionStatsHistoryItem) | |||
|  | 
 | |||
|  | 	@doc "获取推广总统计" | |||
|  | 	@handler GetPromotionStatsTotal | |||
|  | 	get /total (GetPromotionStatsTotalReq) returns (GetPromotionStatsTotalResp) | |||
|  | } | |||
|  | 
 | |||
|  | type ( | |||
|  | 	// 获取推广历史记录请求 | |||
|  | 	GetPromotionStatsHistoryReq { | |||
|  | 		StartDate string `form:"start_date"` // 开始日期,格式:YYYY-MM-DD | |||
|  | 		EndDate   string `form:"end_date"`   // 结束日期,格式:YYYY-MM-DD | |||
|  | 	} | |||
|  | 
 | |||
|  | 	// 推广历史记录项 | |||
|  | 	PromotionStatsHistoryItem { | |||
|  | 		Id         int64   `json:"id"`          // 记录ID | |||
|  | 		LinkId     int64   `json:"link_id"`     // 链接ID | |||
|  | 		PayAmount  float64 `json:"pay_amount"`  // 金额 | |||
|  | 		ClickCount int64   `json:"click_count"` // 点击数 | |||
|  | 		PayCount   int64   `json:"pay_count"`   // 付费次数 | |||
|  | 		StatsDate  string  `json:"stats_date"`  // 统计日期 | |||
|  | 	} | |||
|  | 
 | |||
|  | 	// 获取推广总统计请求 | |||
|  | 	GetPromotionStatsTotalReq { | |||
|  | 	} | |||
|  | 
 | |||
|  | 	// 获取推广总统计响应 | |||
|  | 	GetPromotionStatsTotalResp { | |||
|  | 		TodayPayAmount  float64 `json:"today_pay_amount"`  // 今日金额 | |||
|  | 		TodayClickCount int64   `json:"today_click_count"` // 今日点击数 | |||
|  | 		TodayPayCount   int64   `json:"today_pay_count"`   // 今日付费次数 | |||
|  | 		TotalPayAmount  float64 `json:"total_pay_amount"`  // 总金额 | |||
|  | 		TotalClickCount int64   `json:"total_click_count"` // 总点击数 | |||
|  | 		TotalPayCount   int64   `json:"total_pay_count"`   // 总付费次数 | |||
|  | 	} | |||
|  | ) |