export-data-affiliate-transaction-merge-dev #96
			
				
			
		
		
		
	|  | @ -0,0 +1,36 @@ | |||
| package client | ||||
| 
 | ||||
| import ( | ||||
| 	"encoding/json" | ||||
| 	"errors" | ||||
| 	"git.selly.red/Selly-Modules/natsio" | ||||
| 	"git.selly.red/Selly-Modules/natsio/model" | ||||
| 	"git.selly.red/Selly-Modules/natsio/subject" | ||||
| ) | ||||
| 
 | ||||
| // Affiliate ...
 | ||||
| type Affiliate struct{} | ||||
| 
 | ||||
| // GetAffiliate ...
 | ||||
| func GetAffiliate() Affiliate { | ||||
| 	return Affiliate{} | ||||
| } | ||||
| 
 | ||||
| // GetTransactions ...
 | ||||
| func (w Affiliate) GetTransactions(p model.GetTransactionsRequest) (*model.GetTransactionsResponse, error) { | ||||
| 	msg, err := natsio.GetServer().Request(subject.Affiliate.GetTransactions, toBytes(p)) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	var r struct { | ||||
| 		Data  *model.GetTransactionsResponse `json:"data"` | ||||
| 		Error string                         `json:"error"` | ||||
| 	} | ||||
| 	if err = json.Unmarshal(msg.Data, &r); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	if r.Error != "" { | ||||
| 		return nil, errors.New(r.Error) | ||||
| 	} | ||||
| 	return r.Data, nil | ||||
| } | ||||
|  | @ -0,0 +1,12 @@ | |||
| package model | ||||
| 
 | ||||
| // GetTransactionsRequest ...
 | ||||
| type GetTransactionsRequest struct { | ||||
| 	Page     int64  `json:"page"` | ||||
| 	Limit    int64  `json:"limit"` | ||||
| 	Keyword  string `json:"keyword"` | ||||
| 	Statuses string `json:"statuses"` | ||||
| 	Source   string `json:"source"` | ||||
| 	Campaign string `json:"campaign"` | ||||
| 	Seller   string `json:"seller"` | ||||
| } | ||||
|  | @ -0,0 +1,56 @@ | |||
| package model | ||||
| 
 | ||||
| import "time" | ||||
| 
 | ||||
| // GetTransactionsResponse ...
 | ||||
| type GetTransactionsResponse struct { | ||||
| 	Total int64             `json:"total"` | ||||
| 	Limit int64             `json:"limit"` | ||||
| 	List  []TransactionInfo `json:"list"` | ||||
| } | ||||
| 
 | ||||
| // TransactionInfo ...
 | ||||
| type TransactionInfo struct { | ||||
| 	ID                       string                     `json:"_id"` | ||||
| 	Code                     string                     `json:"code"` | ||||
| 	Campaign                 ResponseCampaignShort      `json:"campaign"` | ||||
| 	Seller                   ResponseSellerInfo         `json:"seller"` | ||||
| 	Source                   string                     `json:"source"` | ||||
| 	Commission               ResponseCampaignCommission `json:"commission"` | ||||
| 	EstimateSellerCommission float64                    `json:"estimateSellerCommission"` | ||||
| 	TransactionTime          time.Time                  `json:"transactionTime"` | ||||
| 	Status                   string                     `json:"status"` | ||||
| 	RejectedReason           string                     `json:"rejectedReason"` | ||||
| 	EstimateCashbackAt       time.Time                  `json:"estimateCashbackAt"` | ||||
| } | ||||
| 
 | ||||
| // ResponseCampaignCommission ...
 | ||||
| type ResponseCampaignCommission struct { | ||||
| 	Real          float64 `json:"real"` | ||||
| 	SellerPercent float64 `json:"sellerPercent"` | ||||
| 	Selly         float64 `json:"selly"` | ||||
| 	Seller        float64 `json:"seller"` | ||||
| } | ||||
| 
 | ||||
| // ResponseCampaignShort ...
 | ||||
| type ResponseCampaignShort struct { | ||||
| 	ID   string     `json:"_id"` | ||||
| 	Name string     `json:"name"` | ||||
| 	Logo *FilePhoto `json:"logo"` | ||||
| } | ||||
| 
 | ||||
| var ( | ||||
| 	transcationInfoTitle = []string{ | ||||
| 		"ID lượt thưởng", | ||||
| 		"Tên sản phẩm", | ||||
| 		"ID Seller", | ||||
| 		"Tên Seller", | ||||
| 		"Thời gian phát sinh", | ||||
| 		"Thời gian đối soát dự kiến", | ||||
| 		"Trạng thái", | ||||
| 		"Hoa hồng nhận từ đối tác", | ||||
| 		"Phần trăm hóa hồng cho Seller", | ||||
| 		"Hoa hồng cho Seller", | ||||
| 		"Hoa hồng cho Selly", | ||||
| 	} | ||||
| ) | ||||
|  | @ -0,0 +1,13 @@ | |||
| package subject | ||||
| 
 | ||||
| import "fmt" | ||||
| 
 | ||||
| func getAffiliateValue(val string) string { | ||||
| 	return fmt.Sprintf("%s.%s", prefixes.Affiliate, val) | ||||
| } | ||||
| 
 | ||||
| var Affiliate = struct { | ||||
| 	GetTransactions string | ||||
| }{ | ||||
| 	GetTransactions: getAffiliateValue("get_transactions"), | ||||
| } | ||||
|  | @ -20,6 +20,7 @@ var prefixes = struct { | |||
| 	SupplierUser       string | ||||
| 	SupplierRole       string | ||||
| 	Campaign           string | ||||
| 	Affiliate     string | ||||
| }{ | ||||
| 	Communication:      "communication", | ||||
| 	Order:              "order", | ||||
|  | @ -40,4 +41,5 @@ var prefixes = struct { | |||
| 	Staff:              "staff", | ||||
| 	Segment:            "segment", | ||||
| 	Campaign:           "campaign", | ||||
| 	Affiliate:     "affiliate", | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue