- 使用mapstructure进行map到struct的映射,简化API编写

This commit is contained in:
gazebo
2019-04-07 23:22:47 +08:00
parent 2ae96494a7
commit 5afcabae4c
4 changed files with 79 additions and 292 deletions

View File

@@ -25,14 +25,14 @@ type OrderDiscountGift struct {
}
type OrderDiscountRuleRequest struct {
LowerLimitAmount int `json:"lowerLimitAmount"`
DiscountAmount int `json:"discountAmount"`
UpperLimitCount int `json:"upperLimitCount"`
LowerLimitCount int `json:"lowerLimitCount"`
DiscountRate float32 `json:"discountRate"`
AddPrice int `json:"addPrice"` // 分
GiftList []*OrderDiscountGift `json:"giftList"`
LadderLimit int `json:"ladderLimit"`
LowerLimitAmount int `json:"lowerLimitAmount,omitempty"`
DiscountAmount int `json:"discountAmount,omitempty"`
UpperLimitCount int `json:"upperLimitCount,omitempty"`
LowerLimitCount int `json:"lowerLimitCount,omitempty"`
DiscountRate float32 `json:"discountRate,omitempty"`
AddPrice int `json:"addPrice,omitempty"` // 分
GiftList []*OrderDiscountGift `json:"giftList,omitempty"`
LadderLimit int `json:"ladderLimit,omitempty"`
}
type OrderDiscountActivity struct {
@@ -42,14 +42,14 @@ type OrderDiscountActivity struct {
BeginTime string `json:"beginTime"` // 必须
EndTime string `json:"endTime"` // 必须
ParticipationMode int `json:"participationMode"` // 必须
OutStationNos []string `json:"outStationNos"`
StationNos []string `json:"stationNos"`
OutSkuIds []string `json:"outSkuIds"`
SkuIds []string `json:"skuIds"`
OutStationNos []string `json:"outStationNos,omitempty"`
StationNos []string `json:"stationNos,omitempty"`
OutSkuIds []string `json:"outSkuIds,omitempty"`
SkuIds []string `json:"skuIds,omitempty"`
LimitOrderTotalNumber int `json:"limitOrderTotalNumber"` // 必须
LimitUserTotalNumber int `json:"limitUserTotalNumber"`
LimitUserTotalNumber int `json:"limitUserTotalNumber,omitempty"`
Display string `json:"display"` // 必须
RuleRequestList []*OrderDiscountRuleRequest `json:"ruleRequestList"`
RuleRequestList []*OrderDiscountRuleRequest `json:"ruleRequestList,omitempty"`
}
type ActivityOpResultInfo struct {
@@ -82,31 +82,8 @@ type ActivityOpQueryInfoResponse struct {
LadderList []int `json:"ladderList"`
}
var (
ignoreOrderDiscountActivity = OrderDiscountActivity{}
ignoreOrderDiscountRuleRequest = OrderDiscountRuleRequest{}
ignoreOrderDiscountSubmitActivityMap = map[string]interface{}{
"outStationNos": ignoreOrderDiscountActivity.OutStationNos,
"stationNos": ignoreOrderDiscountActivity.StationNos,
"outSkuIds": ignoreOrderDiscountActivity.OutSkuIds,
"skuIds": ignoreOrderDiscountActivity.SkuIds,
"limitUserTotalNumber": ignoreOrderDiscountActivity.LimitUserTotalNumber,
"ruleRequestList": ignoreOrderDiscountActivity.RuleRequestList,
"lowerLimitAmount": ignoreOrderDiscountRuleRequest.LowerLimitAmount,
"discountAmount": ignoreOrderDiscountRuleRequest.DiscountAmount,
"upperLimitCount": ignoreOrderDiscountRuleRequest.UpperLimitCount,
"lowerLimitCount": ignoreOrderDiscountRuleRequest.LowerLimitCount,
"discountRate": ignoreOrderDiscountRuleRequest.DiscountRate,
"addPrice": ignoreOrderDiscountRuleRequest.AddPrice,
"giftList": ignoreOrderDiscountRuleRequest.GiftList,
"ladderLimit": ignoreOrderDiscountRuleRequest.LadderLimit,
}
)
func (a *API) OrderDiscountSubmitActivity(actInfo *OrderDiscountActivity) (activityID int64, err error) {
result, err := a.AccessAPINoPage("orderdiscount/submitActivity", utils.Struct2MapWithIgnore(actInfo, ignoreOrderDiscountSubmitActivityMap), nil, nil, nil)
result, err := a.AccessAPINoPage("orderdiscount/submitActivity", utils.Struct2FlatMap(actInfo), nil, nil, nil)
if err == nil {
return utils.MustInterface2Int64((result.(map[string]interface{}))["activityId"]), nil
}