third-platform-sdk/platform/eleme-union/api.go

141 lines
6.9 KiB
Go
Raw Permalink Normal View History

2024-04-30 17:57:27 +08:00
package eleme_union
import (
"errors"
2024-04-30 17:57:27 +08:00
"github.com/zeromicro/go-zero/core/logx"
2024-05-04 16:57:40 +08:00
2024-07-29 23:52:23 +08:00
"repository.lenntc.com/lenntc/third-platform-sdk/sdk/topsdk/defaultability/domain"
"repository.lenntc.com/lenntc/third-platform-sdk/sdk/topsdk/defaultability/request"
sdkutil "repository.lenntc.com/lenntc/third-platform-sdk/sdk/topsdk/util"
"repository.lenntc.com/lenntc/third-platform-sdk/util"
2024-04-30 17:57:27 +08:00
)
2024-05-04 16:57:40 +08:00
// ElemeUnionApi 调用第三方平台的api
2024-04-30 17:57:27 +08:00
// Api defines the interface of eleme_union api
2024-05-04 16:57:40 +08:00
type ElemeUnionApi interface {
// Sign 签名
2024-05-04 21:12:15 +08:00
Sign(publicParam PublicParam, data map[string]interface{}) string
// KbItemPromotionShareCreate 本地生活媒体创建商品推广链接
2024-05-17 11:45:26 +08:00
KbItemPromotionShareCreate(req *request.AlibabaAlscUnionKbItemPromotionShareCreateRequest) (*domain.AlibabaAlscUnionKbItemPromotionShareCreateExtendDTO, error)
// ElemePromotionOfficialActivityGet 本地联盟饿了么推广官方活动查询
2024-05-17 11:45:26 +08:00
ElemePromotionOfficialActivityGet(req *request.AlibabaAlscUnionElemePromotionOfficialactivityGetRequest) (*domain.AlibabaAlscUnionElemePromotionOfficialactivityGetActivityPromotionDto, error)
// AlibabaAlscUnionMediaZoneAdd 本地生活媒体创建推广位
AlibabaAlscUnionMediaZoneAdd(req *request.AlibabaAlscUnionMediaZoneAddRequest) (*domain.AlibabaAlscUnionMediaZoneAddZoneInfoDTO, error)
// AlibabaAlscUnionMediaZoneGet 本地生活媒体查询推广位
AlibabaAlscUnionMediaZoneGet(req *request.AlibabaAlscUnionMediaZoneGetRequest) ([]*domain.AlibabaAlscUnionMediaZoneGetZoneInfoDTO, error)
// KbcpxPositiveOrderGet 本地生活媒体推广订单明细报表查询
2024-05-17 11:45:26 +08:00
KbcpxPositiveOrderGet(req *request.AlibabaAlscUnionKbcpxPositiveOrderGetRequest) ([]*domain.AlibabaAlscUnionKbcpxPositiveOrderGetOrderDetailReportDTO, error)
2024-04-30 17:57:27 +08:00
}
2024-05-04 16:57:40 +08:00
type elemeUnionApiImpl struct {
2024-04-30 17:57:27 +08:00
log logx.Logger
client *Client
}
2024-05-04 16:57:40 +08:00
func newElemeUnionApiImpl(log logx.Logger, client *Client) ElemeUnionApi {
return &elemeUnionApiImpl{
2024-04-30 17:57:27 +08:00
log: log,
client: client,
}
}
2024-05-04 16:57:40 +08:00
// Sign 签名
// @param publicParam 公共参数
// @param data 业务参数
2024-05-04 21:12:15 +08:00
func (a *elemeUnionApiImpl) Sign(publicParam PublicParam, data map[string]interface{}) string {
return sdkutil.GetSign(util.StructToMap(publicParam), data, a.client.authConfig.AppSecret)
2024-04-30 17:57:27 +08:00
}
// KbItemPromotionShareCreate 本地生活媒体创建商品推广链接
2024-05-17 11:45:26 +08:00
func (a *elemeUnionApiImpl) KbItemPromotionShareCreate(req *request.AlibabaAlscUnionKbItemPromotionShareCreateRequest) (*domain.AlibabaAlscUnionKbItemPromotionShareCreateExtendDTO, error) {
2024-05-04 16:57:40 +08:00
resp, err := a.client.abilityClient.AlibabaAlscUnionKbItemPromotionShareCreate(req)
if err != nil {
2024-05-17 11:45:26 +08:00
a.log.WithFields(logx.LogField{Key: "data", Value: map[string]any{"req": req, "resp": resp}}).
Errorf("[elemeUnionApiImpl][GetLink] get link failed, error: %v", err)
2024-05-04 16:57:40 +08:00
return nil, err
}
2024-05-17 11:45:26 +08:00
if !resp.ResultSuccess || resp.BizErrorCode != "" {
a.log.WithFields(logx.LogField{Key: "data", Value: map[string]any{"req": req, "resp": resp}}).
Errorf("[elemeUnionApiImpl][GetLink] response result error: %s", resp.BizErrorDesc)
return nil, errors.New(resp.BizErrorDesc)
2024-05-17 11:45:26 +08:00
}
return &resp.Result, nil
2024-04-30 17:57:27 +08:00
}
// ElemePromotionOfficialActivityGet 本地联盟饿了么推广官方活动查询
2024-05-17 11:45:26 +08:00
func (a *elemeUnionApiImpl) ElemePromotionOfficialActivityGet(req *request.AlibabaAlscUnionElemePromotionOfficialactivityGetRequest) (*domain.AlibabaAlscUnionElemePromotionOfficialactivityGetActivityPromotionDto, error) {
resp, err := a.client.abilityClient.AlibabaAlscUnionElemePromotionOfficialactivityGet(req)
2024-05-04 16:57:40 +08:00
if err != nil {
2024-05-17 11:45:26 +08:00
a.log.WithFields(logx.LogField{Key: "data", Value: map[string]any{"req": req, "resp": resp}}).
Errorf("[elemeUnionApiImpl][PromotionOfficialActivityGet] http request failed, error: %v", err)
return nil, err
}
if resp.ResultCode != 0 {
a.log.WithFields(logx.LogField{Key: "data", Value: map[string]any{"req": req, "resp": resp}}).
Errorf("[elemeUnionApiImpl][ElemePromotionOfficialActivityGet] response result error: %s", resp.Message)
return nil, errors.New(resp.Message)
2024-05-17 11:45:26 +08:00
}
return &resp.Data, nil
}
// AlibabaAlscUnionMediaZoneAdd 本地生活媒体创建推广位
func (a *elemeUnionApiImpl) AlibabaAlscUnionMediaZoneAdd(req *request.AlibabaAlscUnionMediaZoneAddRequest) (*domain.AlibabaAlscUnionMediaZoneAddZoneInfoDTO, error) {
resp, err := a.client.abilityClient.AlibabaAlscUnionMediaZoneAdd(req)
if err != nil {
a.log.WithFields(logx.LogField{Key: "data", Value: map[string]any{"req": req, "resp": resp}}).
Errorf("[elemeUnionApiImpl][AlibabaAlscUnionMediaZoneAdd] http request failed, error: %v", err)
return nil, err
}
if !resp.ResultSuccess || resp.BizErrorCode != 0 {
a.log.WithFields(logx.LogField{Key: "data", Value: map[string]any{"req": req, "resp": resp}}).
Errorf("[elemeUnionApiImpl][AlibabaAlscUnionMediaZoneAdd] response result error: %s", resp.BizErrorDesc)
return nil, errors.New(resp.BizErrorDesc)
2024-05-04 16:57:40 +08:00
}
2024-05-17 11:45:26 +08:00
return &resp.Result, nil
}
// AlibabaAlscUnionMediaZoneGet 本地生活媒体查询推广位
func (a *elemeUnionApiImpl) AlibabaAlscUnionMediaZoneGet(req *request.AlibabaAlscUnionMediaZoneGetRequest) ([]*domain.AlibabaAlscUnionMediaZoneGetZoneInfoDTO, error) {
resp, err := a.client.abilityClient.AlibabaAlscUnionMediaZoneGet(req)
if err != nil {
a.log.WithFields(logx.LogField{Key: "data", Value: map[string]any{"req": req, "resp": resp}}).
Errorf("[elemeUnionApiImpl][AlibabaAlscUnionMediaZoneGet] http request failed, error: %v", err)
return nil, err
}
if !resp.ResultSuccess || resp.BizErrorCode != 0 {
a.log.WithFields(logx.LogField{Key: "data", Value: map[string]any{"req": req, "resp": resp}}).
Errorf("[elemeUnionApiImpl][AlibabaAlscUnionMediaZoneGet] response result error: %s", resp.BizErrorDesc)
return nil, errors.New(resp.BizErrorDesc)
2024-05-17 11:45:26 +08:00
}
var result []*domain.AlibabaAlscUnionMediaZoneGetZoneInfoDTO
for _, item := range resp.Result {
entity := item
result = append(result, &entity)
2024-05-17 11:45:26 +08:00
}
return result, nil
2024-04-30 17:57:27 +08:00
}
// KbcpxPositiveOrderGet 本地生活媒体推广订单明细报表查询
2024-05-17 11:45:26 +08:00
func (a *elemeUnionApiImpl) KbcpxPositiveOrderGet(req *request.AlibabaAlscUnionKbcpxPositiveOrderGetRequest) ([]*domain.AlibabaAlscUnionKbcpxPositiveOrderGetOrderDetailReportDTO, error) {
resp, err := a.client.abilityClient.AlibabaAlscUnionKbcpxPositiveOrderGet(req)
if err != nil {
2024-05-17 11:45:26 +08:00
a.log.WithFields(logx.LogField{Key: "data", Value: map[string]any{"req": req, "resp": resp}}).
Errorf("[elemeUnionApiImpl][KbcpxPositiveOrderGet] get positive orders failed, error: %v", err)
return nil, err
}
2024-05-17 11:45:26 +08:00
if !resp.ResultSuccess || resp.BizErrorCode != 0 {
a.log.WithFields(logx.LogField{Key: "data", Value: map[string]any{"req": req, "resp": resp}}).
Errorf("[elemeUnionApiImpl][KbcpxPositiveOrderGet] response result error: %s", resp.BizErrorDesc)
return nil, errors.New(resp.BizErrorDesc)
2024-05-17 11:45:26 +08:00
}
var result []*domain.AlibabaAlscUnionKbcpxPositiveOrderGetOrderDetailReportDTO
for _, item := range resp.Result {
entity := item
2024-06-02 23:09:59 +08:00
entity.BizUnit = req.BizUnit // 将业务类型,手动添加到订单详情数据中
result = append(result, &entity)
2024-05-17 11:45:26 +08:00
}
return result, nil
}