- 添加了部分到家订单级促销
This commit is contained in:
163
platformapi/jdapi/promotion_order.go
Normal file
163
platformapi/jdapi/promotion_order.go
Normal file
@@ -0,0 +1,163 @@
|
||||
package jdapi
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"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"`
|
||||
DiscountAmount int `json:"discountAmount"`
|
||||
UpperLimitCount int `json:"upperLimitCount"`
|
||||
LowerLimitCount int `json:"lowerLimitCount"`
|
||||
DiscountRate int `json:"discountRate"`
|
||||
AddPrice int `json:"addPrice"` // 分
|
||||
GiftList []*OrderDiscountGift `json:"giftList"`
|
||||
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"`
|
||||
StationNos []string `json:"stationNos"`
|
||||
OutSkuIds []string `json:"outSkuIds"`
|
||||
SkuIds []string `json:"skuIds"`
|
||||
LimitOrderTotalNumber int `json:"limitOrderTotalNumber"` // 必须
|
||||
LimitUserTotalNumber int `json:"limitUserTotalNumber"`
|
||||
Display string `json:"display"` // 必须
|
||||
RuleRequestList []*OrderDiscountRuleRequest `json:"ruleRequestList"`
|
||||
}
|
||||
|
||||
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 time.Time `json:"beginDate"`
|
||||
EndDate time.Time `json:"endDate"`
|
||||
Awords string `json:"awords"`
|
||||
State int `json:"state"`
|
||||
OrderLadder string `json:"orderLadder"`
|
||||
StationList []int `json:"stationList"`
|
||||
SkuList []int `json:"skuList"`
|
||||
LadderList []int `json:"ladderList"`
|
||||
}
|
||||
|
||||
var (
|
||||
ignoreOrderDiscountActivity = OrderDiscountActivity{}
|
||||
ignoreOrderDiscountRuleRequest = OrderDiscountRuleRequest{}
|
||||
)
|
||||
|
||||
func (a *API) OrderDiscountSubmitActivity(actInfo *OrderDiscountActivity) (activityID int64, err error) {
|
||||
result, err := a.AccessAPINoPage("orderdiscount/submitActivity", utils.Struct2MapWithIgnore(actInfo, map[string]interface{}{
|
||||
"outStationNos": ignoreOrderDiscountActivity.OutStationNos,
|
||||
"stationNos": ignoreOrderDiscountActivity.StationNos,
|
||||
"outSkuIds": ignoreOrderDiscountActivity.OutSkuIds,
|
||||
"skuIds": ignoreOrderDiscountActivity.SkuIds,
|
||||
"limitUserTotalNumber": ignoreOrderDiscountActivity.LimitUserTotalNumber,
|
||||
"ruleRequestList": ignoreOrderDiscountActivity.RuleRequestList,
|
||||
}), nil, nil, nil)
|
||||
if err == nil {
|
||||
return utils.MustInterface2Int64((result.(map[string]interface{}))["activityId"]), nil
|
||||
}
|
||||
return 0, err
|
||||
}
|
||||
|
||||
func (a *API) OrderDiscountQuerySubmitActivityResult(activityID int64) (response *ActivityOpQueryResultResponse, err error) {
|
||||
result, err := a.AccessAPINoPage("orderdiscount/querySubmitActivityResult", map[string]interface{}{
|
||||
"activityId": activityID,
|
||||
"sourceFrom": 3,
|
||||
"operator": "",
|
||||
"traceId": "",
|
||||
"version": "",
|
||||
}, nil, nil, nil)
|
||||
if err == nil {
|
||||
resultMap := result.(map[string]interface{})
|
||||
response = &ActivityOpQueryResultResponse{
|
||||
SubCode: utils.Interface2String(resultMap["subCode"]),
|
||||
SubMsg: utils.Interface2String(resultMap["subMsg"]),
|
||||
}
|
||||
for _, v := range resultMap["resultList"].([]interface{}) {
|
||||
vMap := v.(map[string]interface{})
|
||||
response.ResultList = append(response.ResultList, &ActivityOpResultInfo{
|
||||
ActivityID: utils.MustInterface2Int64(vMap["activityId"]),
|
||||
PromName: utils.Interface2String(vMap["promName"]),
|
||||
StationNo: utils.MustInterface2Int64(vMap["stationNo"]),
|
||||
SkuID: utils.MustInterface2Int64(vMap["skuId"]),
|
||||
OutActivityID: utils.Interface2String(vMap["outActivityId"]),
|
||||
OutSkuID: utils.Interface2String(vMap["outSkuId"]),
|
||||
OutStationNo: utils.Interface2String(vMap["outStationNo"]),
|
||||
})
|
||||
}
|
||||
}
|
||||
return response, err
|
||||
}
|
||||
|
||||
// func (a *API) OrderDiscountQueryActivityInfo(activityID int64) (response *OrderDiscountResultResponse, err error) {
|
||||
// result, err := a.AccessAPINoPage("orderdiscount/queryActivityInfo", map[string]interface{}{
|
||||
// "activityId": activityID,
|
||||
// "sourceFrom": 3,
|
||||
// "operator": "",
|
||||
// "traceId": "",
|
||||
// "version": "",
|
||||
// }, nil, nil, nil)
|
||||
// if err == nil {
|
||||
// resultMap := result.(map[string]interface{})
|
||||
// response = &OrderDiscountResultResponse{
|
||||
// SubCode: utils.Interface2String(resultMap["subCode"]),
|
||||
// SubMsg: utils.Interface2String(resultMap["subMsg"]),
|
||||
// }
|
||||
// for _, v := range resultMap["resultList"].([]interface{}) {
|
||||
// vMap := v.(map[string]interface{})
|
||||
// response.ResultList = append(response.ResultList, &OrderDiscountResultInfo{
|
||||
// ActivityID: utils.MustInterface2Int64(vMap["activityId"]),
|
||||
// PromName: utils.Interface2String(vMap["promName"]),
|
||||
// StationNo: utils.MustInterface2Int64(vMap["stationNo"]),
|
||||
// SkuID: utils.MustInterface2Int64(vMap["skuId"]),
|
||||
// OutActivityId: utils.Interface2String(vMap["outActivityId"]),
|
||||
// OutSkuId: utils.Interface2String(vMap["outSkuId"]),
|
||||
// OutStationNo: utils.Interface2String(vMap["outStationNo"]),
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
// return response, err
|
||||
// }
|
||||
Reference in New Issue
Block a user