Files
baseapi/platformapi/jdapi/promotion_audit.go
2025-11-21 09:09:09 +08:00

124 lines
5.0 KiB
Go

package jdapi
import (
"time"
"git.rosy.net.cn/baseapi/utils"
)
const (
AuditPromotionStateNew = 101 // 待开始
AuditPromotionStateOnGoing = 102 // 进行中
AuditPromotionStateEnded = 103 // 结束
AuditPromotionStateCanceled = 104 // 取消
AuditPromotionStateAll = 105 // 全部
)
type OpenPlatActivityQResponse struct {
AddLadderList []struct {
BenefitMaxCount int `json:"benefitMaxCount"`
DiscountAmount int `json:"discountAmount"`
DiscountRate float32 `json:"discountRate"`
LowMoney int `json:"lowMoney"`
LowerLimitCount int `json:"lowerLimitCount"`
OrderLadder string `json:"orderLadder"`
} `json:"addLadderList"`
Awords string `json:"awords"`
BeginDate *utils.JavaDate `json:"beginDate"`
CostRadios int `json:"costRadios"`
EndDate *utils.JavaDate `json:"endDate"`
ID int `json:"id"`
IsMerchant int `json:"isMerchant"`
OrderLadder string `json:"orderLadder"`
OrgCode string `json:"orgCode"`
OutActivityID string `json:"outActivityId"`
PromotionName string `json:"promotionName"`
SkuBeanList []struct {
SkuID int64 `json:"skuId"`
SkuName int64 `json:"skuName"`
} `json:"skuBeanList"`
State int `json:"state"`
StationBeanList []struct {
OrgCode interface{} `json:"orgCode"`
OrgName string `json:"orgName"`
OutStationNo string `json:"outStationNo"`
StationName string `json:"stationName"`
StationNo int `json:"stationNo"`
} `json:"stationBeanList"`
}
type PromotionLspQuerySkuResult struct {
BeginTime *utils.JavaDate `json:"beginTime"`
EndTime *utils.JavaDate `json:"endTime"`
LimitDaily int `json:"limitDaily"`
LimitDevice int `json:"limitDevice"`
LimitPin int `json:"limitPin"`
PlatformRatio int `json:"platformRatio"`
PromotionPrice int `json:"promotionPrice"`
PromotionState int `json:"promotionState"`
PromotionType int `json:"promotionType"`
SkuID int64 `json:"skuId"`
Source string `json:"source"`
StationNo int64 `json:"stationNo"`
StoreRatio int `json:"storeRatio"`
}
type PromotionLspQueryInfoResult struct {
BeginTime *utils.JavaDate `json:"beginTime"`
EndTime *utils.JavaDate `json:"endTime"`
PromotionInfoID int64 `json:"promotionInfoId"`
PromotionState int `json:"promotionState"`
PromotionType int `json:"promotionType"`
SkuResultList []*PromotionLspQuerySkuResult `json:"skuResultList"`
Source string `json:"source"`
}
// 此接口逐渐会被[新版订单级促销]中相应接口替换
// 根据到家活动ID查询订单级活动明细接口
// https://openo2o.jddj.com/staticnew/widgets/resources.html?groupid=196&apiid=ff1ade31ac1b4a50be760854c777b567
func (a *API) OrderDiscountQueryActivityInfoById(activityID int64, promotionType, state int, operator string) (response *OpenPlatActivityQResponse, err error) {
params := map[string]interface{}{
"activityId": activityID,
"type": promotionType,
"traceId": utils.GetUUID(),
"operator": operator,
"requestTime": time.Now().UnixNano() / 1000000,
}
if state > 0 {
params["state"] = state
}
result, err := a.AccessAPINoPage("orderdiscount/queryActivityInfoById", params, nil, nil, genNoPageResultParser("errorCode", "errorInfos", "data", "10000"))
if err == nil {
err = JdMap2StructByJson(result, &response, false)
}
return response, err
}
// 根据到家活动ID查询单品级促销活动接口
// https://openo2o.jddj.com/staticnew/widgets/resources.html?groupid=196&apiid=a47520a9757f4b0dbac1e6d36fd1103d
func (a *API) QueryPromotionInfo(promotionInfoId int64) (promotionInfo *PromotionLspQueryInfoResult, err error) {
jdParams := map[string]interface{}{
"promotionInfoId": promotionInfoId,
}
result, err := a.AccessAPINoPage("singlePromote/queryPromotionInfo", jdParams, nil, nil, genNoPageResultParser("errorCode", "errorInfos", "data", "0"))
if err == nil {
err = JdMap2StructByJson(result, &promotionInfo, false)
}
return promotionInfo, err
}
// 根据到家商品ID查询单品级优惠活动列表接口
// https://openo2o.jddj.com/staticnew/widgets/resources.html?groupid=196&apiid=d73baba02c484109a3c3c1b1236ca13d
func (a *API) QueryPromotionSku(promotionType int, skuID int64, promotionState int /*, pageNo int64, pageSize int*/) (skuResultList []*PromotionLspQuerySkuResult, err error) {
jdParams := map[string]interface{}{
"promotionType": promotionType,
"skuId": skuID,
"promotionState": promotionState,
}
result, _, err := a.AccessAPIHavePage("singlePromote/queryPromotionSku", jdParams, nil, nil, genNormalHavePageResultParser("data"))
if err == nil {
err = JdMap2StructByJson(result, &skuResultList, false)
}
return skuResultList, err
}