160 lines
6.6 KiB
Go
160 lines
6.6 KiB
Go
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"` // 必须
|
|
LimitUserTotalNumber int `json:"limitUserTotalNumber,omitempty"`
|
|
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": "jxc4",
|
|
"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": "",
|
|
"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": operator,
|
|
"traceId": traceID,
|
|
}, nil, nil, nil)
|
|
return err
|
|
}
|