209 lines
7.8 KiB
Go
209 lines
7.8 KiB
Go
package tao_vegetable
|
|
|
|
import (
|
|
"fmt"
|
|
"git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability2770"
|
|
"git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability2770/domain"
|
|
"git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability2770/request"
|
|
"git.rosy.net.cn/baseapi/utils"
|
|
)
|
|
|
|
// ActCreateReq 1 活动详情
|
|
type ActCreateReq = domain.AlibabaRetailMarketingItemdiscountActivityCreateItemDiscountActivityOperateRequest
|
|
|
|
// ActSkuAddReq 2 活动商品详情
|
|
type ActSkuAddReq = domain.AlibabaRetailMarketingItemdiscountActivitySkuAddItemDiscountActivityElementOperateRequest
|
|
type SkuElement = domain.AlibabaRetailMarketingItemdiscountActivitySkuAddSkuActivityElementDto
|
|
type Limit = domain.AlibabaRetailMarketingItemdiscountActivitySkuAddLimitDto
|
|
type SkuChannelConfigs = domain.AlibabaRetailMarketingItemdiscountActivitySkuAddSkuChannelConfigDTO
|
|
|
|
// ActivityCreate 创建单品特价活动【同城零售】 1-1
|
|
func (a *API) ActivityCreate(param domain.AlibabaRetailMarketingItemdiscountActivityCreateItemDiscountActivityOperateRequest) (actID int64, err error) {
|
|
act := ability2770.NewAbility2770(&a.client)
|
|
resp, err := act.AlibabaRetailMarketingItemdiscountActivityCreate(&request.AlibabaRetailMarketingItemdiscountActivityCreateRequest{
|
|
Param: ¶m,
|
|
}, a.token)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
if resp.Result.ErrorMessage != nil {
|
|
return 0, fmt.Errorf("ActivityCreate:requestId:" + resp.RequestId + "msg:" + *resp.Result.ErrorMessage)
|
|
}
|
|
return utils.Pointer2Int64(resp.Result.Data), nil
|
|
}
|
|
|
|
type skuAct struct {
|
|
SkuID []string
|
|
ActID int64
|
|
}
|
|
|
|
// ActivitySkuCreate 特价活动新增商品 1-2
|
|
func (a *API) ActivitySkuCreate(param domain.AlibabaRetailMarketingItemdiscountActivitySkuAddItemDiscountActivityElementOperateRequest) (error, *skuAct, []string) {
|
|
act := ability2770.NewAbility2770(&a.client)
|
|
resp, err := act.AlibabaRetailMarketingItemdiscountActivitySkuAdd(&request.AlibabaRetailMarketingItemdiscountActivitySkuAddRequest{
|
|
Param: ¶m,
|
|
}, a.token)
|
|
if err != nil {
|
|
return err, nil, *resp.Result.FailedSkuCodes
|
|
}
|
|
if resp.Result.ErrorMessage != nil {
|
|
return fmt.Errorf("ActivityCreate:requestId:" + resp.RequestId + "msg:" + *resp.Result.ErrorMessage), nil, *resp.Result.FailedSkuCodes
|
|
}
|
|
successSkuCode := &skuAct{}
|
|
failSkuCode := make([]string, 0)
|
|
for _, v := range *param.SkuElements {
|
|
if resp.Result.FailedSkuCodes == nil {
|
|
successSkuCode.ActID = *param.ActId
|
|
successSkuCode.SkuID = append(successSkuCode.SkuID, *v.SkuCode)
|
|
} else {
|
|
for _, i := range *resp.Result.FailedSkuCodes {
|
|
if v.SkuCode == &i {
|
|
continue
|
|
}
|
|
failSkuCode = append(failSkuCode, i)
|
|
}
|
|
}
|
|
}
|
|
if len(failSkuCode) > 0 {
|
|
return nil, nil, failSkuCode
|
|
} else {
|
|
return nil, successSkuCode, nil
|
|
}
|
|
}
|
|
|
|
// ActivityQuery 查询单品特价活动【同城零售】 2-1
|
|
func (a *API) ActivityQuery(actID int64, outActID string) (*domain.AlibabaRetailMarketingItemdiscountActivityQueryItemDiscountPromotionActivityDTO, error) {
|
|
act := ability2770.NewAbility2770(&a.client)
|
|
resp, err := act.AlibabaRetailMarketingItemdiscountActivityQuery(&request.AlibabaRetailMarketingItemdiscountActivityQueryRequest{
|
|
Param0: &domain.AlibabaRetailMarketingItemdiscountActivityQueryItemDiscountActivityQueryRequest{
|
|
ActId: &actID,
|
|
OutActId: &outActID,
|
|
},
|
|
}, a.token)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if resp.ErrMessage != "" {
|
|
return nil, fmt.Errorf("ActivityQuery:requestId:" + resp.RequestId + "msg:" + resp.ErrMessage)
|
|
}
|
|
//var retVal = &QueryActResp{}
|
|
//retVal = ParseQueryActResp(resp.Data)
|
|
return &resp.Data, nil
|
|
}
|
|
|
|
// ActivitySkuQuery 查询单品特价活动商品【同城零售】 2-2
|
|
func (a *API) ActivitySkuQuery(actID int64) ([]domain.AlibabaRetailMarketingItemdiscountSkuQuerySkuActivityElementDTO, error) {
|
|
act := ability2770.NewAbility2770(&a.client)
|
|
resp, err := act.AlibabaRetailMarketingItemdiscountSkuQuery(&request.AlibabaRetailMarketingItemdiscountSkuQueryRequest{
|
|
Param0: &domain.AlibabaRetailMarketingItemdiscountSkuQueryItemDiscountActivitySkuQueryRequest{
|
|
ActId: &actID,
|
|
PageInfo: &domain.AlibabaRetailMarketingItemdiscountSkuQueryActivitySkuQueryDTO{
|
|
Current: &DefaultCurrent,
|
|
PageSize: &DefaultPageSize,
|
|
},
|
|
},
|
|
}, a.token)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if resp.ErrMessage != "" {
|
|
return nil, fmt.Errorf("ActivityCreate:requestId:" + resp.RequestId + "msg:" + resp.ErrMessage)
|
|
}
|
|
return resp.Data, nil
|
|
}
|
|
|
|
// ActivityDelete 删除单品特价活动【同城零售】 3-1
|
|
func (a *API) ActivityDelete(creatorID, creatorName string, actID int64) (err error) {
|
|
act := ability2770.NewAbility2770(&a.client)
|
|
resp, err := act.AlibabaRetailMarketingItemdiscountActivityDelete(&request.AlibabaRetailMarketingItemdiscountActivityDeleteRequest{
|
|
Param: &domain.AlibabaRetailMarketingItemdiscountActivityDeleteItemDiscountActivityOperateRequest{
|
|
CreatorId: &creatorID,
|
|
CreatorName: &creatorName,
|
|
ActId: &actID,
|
|
},
|
|
}, a.token)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if resp.Result.ErrorMessage != nil {
|
|
return fmt.Errorf("ActivityDelete:requestId:" + resp.RequestId + "msg:" + *resp.Result.ErrorMessage)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// ActivitySkuDelete 删除特价活动商品 3-2
|
|
func (a *API) ActivitySkuDelete(param domain.AlibabaRetailMarketingItemdiscountActivitySkuDeleteItemDiscountActivityElementOperateRequest) error {
|
|
act := ability2770.NewAbility2770(&a.client)
|
|
resp, err := act.AlibabaRetailMarketingItemdiscountActivitySkuDelete(&request.AlibabaRetailMarketingItemdiscountActivitySkuDeleteRequest{
|
|
Param: ¶m,
|
|
}, a.token)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if resp.Result.ErrorMessage != nil {
|
|
return fmt.Errorf("ActivityCreate:requestId:" + resp.RequestId + "msg:" + *resp.Result.ErrorMessage)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// ActivityUpdate 更新单品特价活动【同城零售】
|
|
func (a *API) ActivityUpdate(param domain.AlibabaRetailMarketingItemdiscountActivityUpdateItemDiscountActivityOperateRequest) (err error) {
|
|
act := ability2770.NewAbility2770(&a.client)
|
|
resp, err := act.AlibabaRetailMarketingItemdiscountActivityUpdate(&request.AlibabaRetailMarketingItemdiscountActivityUpdateRequest{
|
|
Param: ¶m,
|
|
}, a.token)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if resp.Result.ErrorMessage != nil {
|
|
return fmt.Errorf("ActivityUpdate:requestId:" + resp.RequestId + "msg:" + *resp.Result.ErrorMessage)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
//辅助函数
|
|
|
|
// ParseQueryActResp 解析查询活动返回值
|
|
func ParseQueryActResp(data domain.AlibabaRetailMarketingItemdiscountActivityQueryItemDiscountPromotionActivityDTO) *QueryActResp {
|
|
retVal := &QueryActResp{
|
|
DiscountType: utils.Pointer2Int64(data.DiscountType),
|
|
OutActId: utils.Pointer2String(data.OutActId),
|
|
ActId: utils.Pointer2Int64(data.ActId),
|
|
ActivityName: utils.Pointer2String(data.ActivityName),
|
|
Description: utils.Pointer2String(data.Description),
|
|
StartTime: utils.Pointer2Int64(data.StartTime),
|
|
EndTime: utils.Pointer2Int64(data.EndTime),
|
|
CreatorId: utils.Pointer2String(data.CreatorId),
|
|
CreatorName: utils.Pointer2String(data.CreatorName),
|
|
}
|
|
if data.Weekdays != nil {
|
|
retVal.Weekdays = *data.Weekdays
|
|
}
|
|
if data.EveryDayPeriods != nil {
|
|
retVal.EveryDayPeriods = *data.EveryDayPeriods
|
|
}
|
|
if data.Terminals != nil {
|
|
retVal.Terminals = *data.Terminals
|
|
}
|
|
if data.StoreIds != nil {
|
|
retVal.StoreIds = *data.StoreIds
|
|
}
|
|
if data.OuterStoreIds != nil {
|
|
retVal.OuterStoreIds = *data.OuterStoreIds
|
|
}
|
|
if data.MemberCrowdCodes != nil {
|
|
retVal.MemberCrowdCodes = *data.MemberCrowdCodes
|
|
}
|
|
if data.Limit != nil {
|
|
retVal.Limit = ActivityQueryLimit{
|
|
TotalLimitCnt: utils.Pointer2Int64(data.Limit.TotalLimitCnt),
|
|
DailyTotalLimitCnt: utils.Pointer2Int64(data.Limit.DailyTotalLimitCnt),
|
|
UserTotalLimitCnt: utils.Pointer2Int64(data.Limit.UserTotalLimitCnt),
|
|
UserDailyLimitCnt: utils.Pointer2Int64(data.Limit.UserDailyLimitCnt),
|
|
OrderLimitCnt: utils.Pointer2Int64(data.Limit.OrderLimitCnt),
|
|
}
|
|
}
|
|
fmt.Println(utils.Format4Output(retVal, false))
|
|
return retVal
|
|
}
|