Files
jx-callback/business/jxstore/partner/taobao/union.go
suyl 0fb3d05d3e aa
2021-05-12 15:05:07 +08:00

187 lines
6.8 KiB
Go

package taobao
import (
"fmt"
"git.rosy.net.cn/baseapi/platformapi/tbunionapi"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxstore/partner"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/globals/api"
"strings"
)
var (
sortTypeMap = map[int]string{
0: "", //综合排序
partner.JxSortTypeYJ: "tk_total_commi_asc", //按佣金比率升序;
-partner.JxSortTypeYJ: "tk_total_commi_des", //按佣金比例降序;
partner.JxSortTypeJG: "price_asc", //按价格升序;
-partner.JxSortTypeJG: "price_des", //按价格降序;
partner.JxSortTypeXL: "total_sales_asc", //按销量升序;
-partner.JxSortTypeXL: "total_sales_des", //按销量降序;
}
)
func (s *UnionHandler) ShareUnionLink(ctx *jxcontext.Context, linkType, unionActID int, sID, userID string, resourceType int, goodsID string) (link string, err error) {
if result, err2 := api.TbUnionAPI.ActivityInfoGet(userID, utils.Int2Str(unionActID), utils.Str2Int64(sID)); err2 == nil {
switch linkType {
case partner.LinkTypeWeiXinMini:
return result.Data.WxQrcodeURL, err
case partner.LinTypeH5:
return result.Data.ClickURL, err
case partner.LinTypeWx:
return result.Data.WxMiniprogramPath, err
default:
return link, fmt.Errorf("暂不支持此链接类型!")
}
}
return link, err
}
func (s *UnionHandler) GetUnionActList(ctx *jxcontext.Context, actType int) (actList []*partner.ActivityList, err error) {
if result, err2 := getAPI().GatewayUnionpub(); err2 == nil {
for _, v := range result {
act := &partner.ActivityList{
ActID: utils.Str2Int(v.Pageid),
ActName: v.Pagename,
ActDes: v.Eventenname,
Ratio: "6%",
ActSrc: v.Pageurl,
Img: v.Pagepicturl,
DateBegin: utils.Str2Time(v.Pagestarttime),
DateEnd: utils.Str2Time(v.Pageendtime),
}
actList = append(actList, act)
}
}
return actList, err
}
func (s *UnionHandler) CreateUnionPosition(ctx *jxcontext.Context, userID string) (sID string, err error) {
return sID, err
}
func (s *UnionHandler) GetUnionMatterList(ctx *jxcontext.Context, vendorCatID, keyword string, page, pageSize, sortType int, listID string) (list *partner.MatterList, err error) {
list = &partner.MatterList{
VendorID: model.VendorIDTB,
}
var goodsList []*partner.GoodsList
//传了keyword就是物料搜索
//没传就是物料精选。。
if keyword != "" {
params := &tbunionapi.MaterialOptionalParam{
Q: keyword,
AdzoneID: tbunionapi.JxAdzoneID,
PageNo: page,
PageSize: pageSize,
}
if sortType != 0 {
params.Sort = jxSortType2TbunionSortType(sortType)
}
if materResults, err := api.TbUnionAPI.MaterialOptional(params); err == nil {
list.TotalCount = materResults.TotalResults
for _, v := range materResults.ResultList {
good := &partner.GoodsList{
GoodsID: utils.Int64ToStr(v.ItemID),
GoodsName: v.Title,
Img: v.PictURL,
CouponDiscount: utils.Str2Int(v.CouponAmount),
CouponRemainQuantity: v.CouponRemainCount,
MinNormalPrice: utils.Str2Int(v.ReservePrice),
SalesCount: utils.Int2Str(v.Volume),
PromotionRate: utils.Str2Int(v.CommissionRate),
}
good.GoodsDetail.MainImg = v.WhiteImage
good.GoodsDetail.StoreName = v.ShopTitle
good.GoodsDetail.Imgs = strings.Join(v.SmallImages, ",")
good.GoodsDetail.UrlL = v.CouponShareURL
if urlS, err2 := api.TbUnionAPI.SpreadGet(v.CouponShareURL); err2 == nil {
good.GoodsDetail.UrlS = urlS
}
if tpwdCreateResult, err3 := api.TbUnionAPI.TpwdCreate(good.GoodsDetail.UrlL); err3 == nil {
good.GoodsDetail.Tpwd = tpwdCreateResult.PasswordSimple
good.GoodsDetail.TpwdIOS14 = tpwdCreateResult.Model
}
goodsList = append(goodsList, good)
}
list.GoodsList = goodsList
}
} else {
if materResults, err := api.TbUnionAPI.OptimusMaterial(0, utils.Str2Int(vendorCatID), tbunionapi.JxAdzoneID, page, pageSize); err == nil {
for _, v := range materResults {
good := &partner.GoodsList{
GoodsID: utils.Int64ToStr(v.ItemID),
GoodsName: v.Title,
Img: v.PictURL,
CouponDiscount: v.CouponAmount,
CouponRemainQuantity: v.CouponRemainCount,
MinNormalPrice: utils.Str2Int(v.ReservePrice),
SalesCount: utils.Int2Str(v.Volume),
PromotionRate: utils.Str2Int(v.CommissionRate),
}
goodsDetail := &partner.GoodsDetail2{
MainImg: v.WhiteImage,
StoreName: v.ShopTitle,
Imgs: strings.Join(v.SmallImages, ","),
UrlL: v.CouponShareURL,
}
if urlS, err2 := api.TbUnionAPI.SpreadGet("https://" + v.CouponShareURL); err2 == nil {
goodsDetail.UrlS = urlS
}
if tpwdCreateResult, err3 := api.TbUnionAPI.TpwdCreate("https://" + goodsDetail.UrlL); err3 == nil {
goodsDetail.Tpwd = tpwdCreateResult.PasswordSimple
goodsDetail.TpwdIOS14 = tpwdCreateResult.Model
}
good.GoodsDetail = goodsDetail
goodsList = append(goodsList, good)
}
list.GoodsList = goodsList
}
}
return list, err
}
func (s *UnionHandler) GetUnionMatterDetail(ctx *jxcontext.Context, goodsID string) (result *partner.GoodsDetail, err error) {
return nil, err
}
func (s *UnionHandler) GetUnionMatterListRcmmd(ctx *jxcontext.Context, goodsID string, rcmmdType, offset, pageSize int) (list *partner.MatterList, err error) {
list = &partner.MatterList{
VendorID: model.VendorIDTB,
}
var goodsList []*partner.GoodsList
if materResults, err := api.TbUnionAPI.OptimusMaterial(utils.Str2Int(goodsID), 0, tbunionapi.JxAdzoneID, offset, pageSize); err == nil {
for _, v := range materResults {
good := &partner.GoodsList{
GoodsID: utils.Int64ToStr(v.ItemID),
GoodsName: v.Title,
Img: v.PictURL,
CouponDiscount: v.CouponAmount,
CouponRemainQuantity: v.CouponRemainCount,
MinNormalPrice: utils.Str2Int(v.ReservePrice),
SalesCount: utils.Int2Str(v.Volume),
PromotionRate: utils.Str2Int(v.CommissionRate),
}
good.GoodsDetail.MainImg = v.WhiteImage
good.GoodsDetail.StoreName = v.ShopTitle
good.GoodsDetail.Imgs = strings.Join(v.SmallImages, ",")
good.GoodsDetail.UrlL = v.CouponShareURL
if urlS, err2 := api.TbUnionAPI.SpreadGet(v.CouponShareURL); err2 == nil {
good.GoodsDetail.UrlS = urlS
}
if tpwdCreateResult, err3 := api.TbUnionAPI.TpwdCreate(good.GoodsDetail.UrlL); err3 == nil {
good.GoodsDetail.Tpwd = tpwdCreateResult.PasswordSimple
good.GoodsDetail.TpwdIOS14 = tpwdCreateResult.Model
}
goodsList = append(goodsList, good)
}
list.GoodsList = goodsList
}
return list, err
}
func jxSortType2TbunionSortType(sort int) (tbsort string) {
return sortTypeMap[sort]
}