Files
baseapi/platformapi/jdapi/promotion_order.go

162 lines
6.9 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package jdapi
import (
"git.rosy.net.cn/baseapi/utils"
)
// 新版订单级促销
const (
OrderDiscountActivityTypeManJian = 1 // 满减
OrderDiscountActivityTypeHuanGou = 1202 // 换购
OrderDiscountActivityTypeManZeng = 1203 // 满赠
OrderDiscountActivityTypeManJianJian = 1206 // 满件减
OrderDiscountActivityTypeManJianZhe = 1207 // 满件折
OrderDiscountActivityTypeKunBang = 1208 // 捆绑
OrderDiscountActivityTypeMeiManJian = 2210 // 每满减
ParticipationModeAllSku = 1 // 全部商品维度
ParticipationModePartSku = 2 // 部分商品维度
)
type OrderDiscountGift struct {
SkuID string `json:"skuId"`
StockCount int `json:"stockCount"`
}
type OrderDiscountRuleRequest struct {
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"`
}
type OrderDiscountActivity struct {
OutActivityID string `json:"outActivityId"` // 必须
PromName string `json:"promName"` // 必须
PromType int `json:"promType"` // 必须
BeginTime string `json:"beginTime"` // 必须
EndTime string `json:"endTime"` // 必须
ParticipationMode int `json:"participationMode"` // 必须
OutStationNos []string `json:"outStationNos,omitempty"`
StationNos []string `json:"stationNos,omitempty"`
OutSkuIDs []string `json:"outSkuIds,omitempty"`
SkuIDs []string `json:"skuIds,omitempty"`
LimitOrderTotalNumber int `json:"limitOrderTotalNumber"` // 必须, 活动限购单量(0为不限不超过10万)
LimitUserTotalNumber int `json:"limitUserTotalNumber,omitempty"` // 用户限购单量(0为不限不超过100仅满减和每满减有效)
Display string `json:"display"` // 必须
RuleRequestList []*OrderDiscountRuleRequest `json:"ruleRequestList,omitempty"`
}
type ActivityOpResultInfo struct {
ActivityID int64 `json:"activityID"`
PromName string `json:"promName"`
StationNo int64 `json:"stationNo"`
SkuID int64 `json:"skuID"`
OutActivityID string `json:"outActivityId"`
OutSkuID string `json:"outSkuId"`
OutStationNo string `json:"outStationNo"`
}
type ActivityOpQueryResultResponse struct {
SubCode string `json:"subCode"`
SubMsg string `json:"subMsg"`
ResultList []*ActivityOpResultInfo `json:"resultList"`
}
type ActivityOpQueryInfoResponse struct {
ActivityID int64 `json:"activityID"`
OutActivityID string `json:"outActivityId"`
PromotionName string `json:"promotionName"`
BeginDate *utils.JavaDate `json:"beginDate"`
EndDate *utils.JavaDate `json:"endDate"`
Awords string `json:"awords"`
State int `json:"state"`
OrderLadder string `json:"orderLadder"`
StationList []struct {
OrgName string `json:"orgName"`
StationNo int64 `json:"stationNo"`
OutStationNo string `json:"outStationNo"`
StationName string `json:"stationName"`
} `json:"stationList"`
SkuList []struct {
OrgName string `json:"orgName"`
SkuID int64 `json:"skuId"`
OutSkuID string `json:"outSkuId"`
SkuName string `json:"skuName"`
} `json:"skuList"`
LadderList []struct {
BenefitMaxCount int `json:"benefitMaxCount"`
DiscountAmount int `json:"discountAmount"`
DiscountRate float32 `json:"discountRate"`
LowMoney int `json:"lowMoney"`
LowerLimitCount int `json:"lowerLimitCount"`
OpGiftSkuList []struct {
OrgName string `json:"orgName"`
SkuID int64 `json:"skuId"`
OutSkuID string `json:"outSkuId"`
SkuName string `json:"skuName"`
StockCount int `json:"stockCount"`
} `json:"opGiftSkuList"`
OrderLadder string `json:"orderLadder"`
} `json:"ladderList"`
}
// 订单级促销活动提交接口
// https://openo2o.jddj.com/staticnew/widgets/resources.html?groupid=211&apiid=cf98af94d4124ca287af6cfe48f0f3aa
func (a *API) OrderDiscountSubmitActivity(actInfo *OrderDiscountActivity) (activityID int64, err error) {
result, err := a.AccessAPINoPage("orderdiscount/submitActivity", utils.Struct2FlatMap(actInfo), nil, nil, nil)
if err == nil {
return utils.MustInterface2Int64((result.(map[string]interface{}))["activityId"]), nil
}
return 0, err
}
// 订单级促销活动查询活动提交处理结果接口
// https://openo2o.jddj.com/staticnew/widgets/resources.html?groupid=211&apiid=b04e5426948349a78db1c5c9585d8df7
func (a *API) OrderDiscountQuerySubmitActivityResult(activityID int64) (response *ActivityOpQueryResultResponse, err error) {
result, err := a.AccessAPINoPage("orderdiscount/querySubmitActivityResult", map[string]interface{}{
"activityId": activityID,
"operator": utils.APIPin,
"traceId": utils.GetUUID(),
}, nil, nil, genNoPageResultParser("code", "detail", "result", "0"))
if err == nil {
err = utils.Map2StructByJson(result.([]interface{})[0], &response, true)
}
return response, err
}
// 订单级促销活动查询促销详情接口
// https://openo2o.jddj.com/staticnew/widgets/resources.html?groupid=211&apiid=116d7dfe0b4e4122be300ce26b4e5381
func (a *API) OrderDiscountQueryActivityInfo(activityID int64) (response *ActivityOpQueryInfoResponse, err error) {
result, err := a.AccessAPINoPage("orderdiscount/queryActivityInfo", map[string]interface{}{
"activityId": activityID,
"sourceFrom": 3,
"operator": utils.APIPin,
"traceId": "",
"version": "",
}, nil, nil, genNoPageResultParser("code", "detail", "result", "0"))
if err == nil {
err = utils.Map2StructByJson(result, &response, true)
}
return response, err
}
// 订单级促销活动取消接口
// https://openo2o.jddj.com/staticnew/widgets/resources.html?groupid=211&apiid=42509fdfeec14105a516b07b774a3055
func (a *API) OrderDiscountCancelActivity(activityID int64, operator, traceID string) (err error) {
if traceID == "" {
traceID = utils.GetUUID()
}
_, err = a.AccessAPINoPage("orderdiscount/cancelActivity", map[string]interface{}{
"activityId": activityID,
"operator": utils.GetAPIOperator(operator),
"traceId": traceID,
}, nil, nil, nil)
return err
}