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.TbkActivityInfoGetResponse.Data.WxQrcodeURL, err case partner.LinTypeH5: return result.TbkActivityInfoGetResponse.Data.ClickURL, err case partner.LinTypeWx: return result.TbkActivityInfoGetResponse.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] }