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" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | // Campaign ...
 | ||||||
|  | type Campaign struct{} | ||||||
|  | 
 | ||||||
|  | // GetCampaign ...
 | ||||||
|  | func GetCampaign() Campaign { | ||||||
|  | 	return Campaign{} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // GetCampaignTransaction ...
 | ||||||
|  | func (c Campaign) GetCampaignTransaction(p model.GetCampaignTransactionsRequest) (*model.ResponseCampaignTransactionAll, error) { | ||||||
|  | 	msg, err := natsio.GetServer().Request(subject.Campaign.GetListCampaignTransactionAdminInfoByIDs, toBytes(p)) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	var r struct { | ||||||
|  | 		Data  *model.ResponseCampaignTransactionAll `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 | ||||||
|  | } | ||||||
|  | @ -58,4 +58,8 @@ type CashFlowOptions struct { | ||||||
| 	AffiliateTransactionCode string `json:"affiliateTransactionCode,omitempty"` | 	AffiliateTransactionCode string `json:"affiliateTransactionCode,omitempty"` | ||||||
| 	AffiliateCampaignID      string `json:"affiliateCampaignId,omitempty"` | 	AffiliateCampaignID      string `json:"affiliateCampaignId,omitempty"` | ||||||
| 	AffiliateCampaignName    string `json:"affiliateCampaignName,omitempty"` | 	AffiliateCampaignName    string `json:"affiliateCampaignName,omitempty"` | ||||||
|  | 
 | ||||||
|  | 	// Campaign
 | ||||||
|  | 	CampaignID   string `json:"campaignId,omitempty"` | ||||||
|  | 	CampaignName string `json:"campaignName,omitempty"` | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -0,0 +1,14 @@ | ||||||
|  | package model | ||||||
|  | 
 | ||||||
|  | import "time" | ||||||
|  | 
 | ||||||
|  | // GetCampaignTransactionsRequest ...
 | ||||||
|  | type GetCampaignTransactionsRequest struct { | ||||||
|  | 	Campaign string    `json:"campaign"` | ||||||
|  | 	Keyword  string    `json:"keyword"` | ||||||
|  | 	Status   string    `json:"status"` | ||||||
|  | 	FromAt   time.Time `json:"fromAt"` | ||||||
|  | 	ToAt     time.Time `json:"toAt"` | ||||||
|  | 	Page     int64     `json:"page"` | ||||||
|  | 	Limit    int64     `json:"limit"` | ||||||
|  | } | ||||||
|  | @ -0,0 +1,52 @@ | ||||||
|  | package model | ||||||
|  | 
 | ||||||
|  | import "go.mongodb.org/mongo-driver/bson/primitive" | ||||||
|  | 
 | ||||||
|  | // ResponseCampaignTransactionAll ...
 | ||||||
|  | type ResponseCampaignTransactionAll struct { | ||||||
|  | 	List  []ResponseNatsCampaignTransaction `json:"list"` | ||||||
|  | 	Total int64                             `json:"total"` | ||||||
|  | 	Limit int64                             `json:"limit"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // ResponseNatsCampaignTransaction ...
 | ||||||
|  | type ResponseNatsCampaignTransaction struct { | ||||||
|  | 	ID             string                             `json:"_id"` | ||||||
|  | 	Cash           float64                            `json:"cash"` | ||||||
|  | 	Campaign       ResponseCampaignShortInfo          `json:"campaign"` | ||||||
|  | 	Options        ResponseCampaignTransactionOptions `json:"options"` | ||||||
|  | 	Seller         primitive.ObjectID                 `json:"seller"` | ||||||
|  | 	Type           string                             `json:"type"` | ||||||
|  | 	Status         string                             `json:"status"` | ||||||
|  | 	RejectedReason string                             `json:"rejectedReason"` | ||||||
|  | 	CreatedAt      string                             `json:"createdAt"` | ||||||
|  | 	UpdatedAt      string                             `json:"updatedAt"` | ||||||
|  | 	Item           *ResponseCampaignItemShortInfo     `json:"item"` | ||||||
|  | 	ApprovedBy     primitive.ObjectID                 `json:"approvedBy,omitempty"` | ||||||
|  | 	RejectedBy     primitive.ObjectID                 `json:"rejectedBy,omitempty"` | ||||||
|  | 	ApprovedAt     string                             `json:"approvedAt,omitempty"` | ||||||
|  | 	RejectedAt     string                             `json:"rejectedAt,omitempty"` | ||||||
|  | 	CompletedAt    string                             `json:"completedAt,omitempty"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // ResponseCampaignShortInfo ...
 | ||||||
|  | type ResponseCampaignShortInfo struct { | ||||||
|  | 	ID     string `json:"_id"` | ||||||
|  | 	Name   string `json:"name"` | ||||||
|  | 	Status string `json:"status"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // ResponseCampaignItemShortInfo ...
 | ||||||
|  | type ResponseCampaignItemShortInfo struct { | ||||||
|  | 	ID     string `json:"_id"` | ||||||
|  | 	Name   string `json:"name"` | ||||||
|  | 	Status string `json:"status"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // ResponseCampaignTransactionOptions ...
 | ||||||
|  | type ResponseCampaignTransactionOptions struct { | ||||||
|  | 	Link           string `json:"link"` | ||||||
|  | 	SocialChannel  string `json:"socialChannel"` | ||||||
|  | 	Milestone      int64  `json:"milestone"` | ||||||
|  | 	MilestoneTitle string `json:"milestoneTitle"` | ||||||
|  | } | ||||||
|  | @ -0,0 +1,15 @@ | ||||||
|  | package subject | ||||||
|  | 
 | ||||||
|  | import "fmt" | ||||||
|  | 
 | ||||||
|  | // getCampaignValue ...
 | ||||||
|  | func getCampaignValue(val string) string { | ||||||
|  | 	return fmt.Sprintf("%s.%s", prefixes.Campaign, val) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Campaign ...
 | ||||||
|  | var Campaign = struct { | ||||||
|  | 	GetListCampaignTransactionAdminInfoByIDs string | ||||||
|  | }{ | ||||||
|  | 	GetListCampaignTransactionAdminInfoByIDs: getCampaignValue("get_list_campaign_transaction_admin_info_by_ids"), | ||||||
|  | } | ||||||
|  | @ -14,6 +14,7 @@ var prefixes = struct { | ||||||
| 	SocialPost    string | 	SocialPost    string | ||||||
| 	Staff         string | 	Staff         string | ||||||
| 	Segment       string | 	Segment       string | ||||||
|  | 	Campaign      string | ||||||
| }{ | }{ | ||||||
| 	Communication: "communication", | 	Communication: "communication", | ||||||
| 	Order:         "order", | 	Order:         "order", | ||||||
|  | @ -28,4 +29,5 @@ var prefixes = struct { | ||||||
| 	SocialPost:    "social_post", | 	SocialPost:    "social_post", | ||||||
| 	Staff:         "staff", | 	Staff:         "staff", | ||||||
| 	Segment:       "segment", | 	Segment:       "segment", | ||||||
|  | 	Campaign:      "campaign", | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue