184 lines
6.8 KiB
Go
184 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),
|
|
}
|
|
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 (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]
|
|
}
|