912 lines
32 KiB
Go
912 lines
32 KiB
Go
package gomei
|
||
|
||
import "regexp"
|
||
|
||
//
|
||
//import (
|
||
// "fmt"
|
||
// gomei "git.rosy.net.cn/baseapi/platformapi/gome_live_show"
|
||
// "regexp"
|
||
// "strings"
|
||
// "time"
|
||
//
|
||
// "git.rosy.net.cn/baseapi/platformapi/jdshopapi"
|
||
//
|
||
// "git.rosy.net.cn/jx-callback/globals/api"
|
||
//
|
||
// "git.rosy.net.cn/baseapi/utils"
|
||
// "git.rosy.net.cn/jx-callback/business/jxutils"
|
||
// "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||
// "git.rosy.net.cn/jx-callback/business/model"
|
||
// "git.rosy.net.cn/jx-callback/business/model/dao"
|
||
// "git.rosy.net.cn/jx-callback/business/partner"
|
||
// "git.rosy.net.cn/jx-callback/business/partner/putils"
|
||
// "git.rosy.net.cn/jx-callback/globals"
|
||
//)
|
||
//
|
||
const (
|
||
deleteErr1 = "已经删除的不能直接下架"
|
||
deleteErr2 = "SKU"
|
||
deleteErr3 = "已删除"
|
||
)
|
||
|
||
var (
|
||
sensitiveWordRegexp = regexp.MustCompile(`商品名称中含有敏感词(\[.*\])`)
|
||
)
|
||
|
||
//func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) {
|
||
// if globals.EnableJdShopWrite {
|
||
// if vendorStoreID == model.GoMeiShopMainVendorStoreID {
|
||
// for _, v := range storeSkuList {
|
||
// //判断京东商城上是否有这个商品了,如果有就是添加规格而不是创建商品
|
||
// //如果是京东商城2,是下架的商品,弄上架 ,先改为有下架的不管,重新建
|
||
// name := filterSensitiveWord(v.Name)
|
||
// flag := false
|
||
// result, err := getAPI(v.VendorOrgCode).SearchWare4Valid(name, 1, 100)
|
||
// if err != nil {
|
||
// failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
|
||
// return failedList, err
|
||
// }
|
||
// for _, v := range result.Data {
|
||
// if v.Title == name {
|
||
// flag = true
|
||
// //下架
|
||
// if v.WareStatus == 2 || v.WareStatus == 1028 {
|
||
// flag = false
|
||
// //wareStatusUpdateWareID = utils.Int64ToStr(v.WareID)
|
||
// }
|
||
// break
|
||
// }
|
||
// }
|
||
// if flag {
|
||
// wareSaveParam := &jdshopapi.WareSaveParam{
|
||
// WareID: result.Data[0].WareID,
|
||
// Title: v.Name,
|
||
// CategoryID: int(v.VendorVendorCatID),
|
||
// VenderID: jdshopapi.VendorID2,
|
||
// Length: 200,
|
||
// Wide: 100,
|
||
// Height: 100,
|
||
// Weight: "1",
|
||
// BrandID: jdshopapi.BrandIdNO,
|
||
// ShopCategorys: []int{utils.Str2Int(v.VendorCatID)},
|
||
// PromiseID: -1,
|
||
// MultiCateProps: []interface{}{},
|
||
// PropsSet: []interface{}{},
|
||
// SaleAttrs: []interface{}{},
|
||
// WareStatus: 8,
|
||
// }
|
||
// var wareSaveSkus []*jdshopapi.WareSaveSkus
|
||
// //先把已有的规格放进去
|
||
// wareResult, _ := getAPI(v.VendorOrgCode).FindWareById(wareSaveParam.WareID)
|
||
// if wareResult != nil {
|
||
// for _, v := range wareResult.Images {
|
||
// wareSaveParam.ImageMap.Num0000000000 = append(wareSaveParam.ImageMap.Num0000000000, &jdshopapi.CreateSkuParamImages{
|
||
// ColorID: v.ColorID,
|
||
// ImgURL: v.ImgURL,
|
||
// ImgIndex: v.ImgIndex,
|
||
// })
|
||
// }
|
||
// }
|
||
// skus, _, _ := getAPI(v.VendorOrgCode).SearchSkuList2([]int{int(wareSaveParam.WareID)})
|
||
// if len(skus) > 0 {
|
||
// for _, vv := range skus {
|
||
// sku := &jdshopapi.WareSaveSkus{
|
||
// SkuID: vv.SkuID,
|
||
// JdPrice: utils.Float64ToStr(vv.JdPrice),
|
||
// StockNum: vv.StockNum,
|
||
// Props: []*jdshopapi.WareSaveSkusProp{
|
||
// &jdshopapi.WareSaveSkusProp{
|
||
// AttrID: utils.Str2Int(vv.SaleAttrs[0].AttrID),
|
||
// AttrValues: utils.Str2Int64(vv.SaleAttrs[0].AttrValues[0]),
|
||
// AttrValueAlias: vv.SaleAttrs[0].AttrValueAlias[0],
|
||
// },
|
||
// },
|
||
// OuterID: vv.OuterID,
|
||
// }
|
||
// wareSaveSkus = append(wareSaveSkus, sku)
|
||
// }
|
||
// }
|
||
// // }
|
||
// for _, vv := range v.StoreSkuSyncInfoJds {
|
||
// v.JdsWareID = result.Data[0].WareID
|
||
// vv.JdsWareID = result.Data[0].WareID
|
||
// _, wareSaveSku, err := buildUpdateSkusParam(v, vv, true)
|
||
// wareSaveSkus = append(wareSaveSkus, wareSaveSku)
|
||
// if err != nil {
|
||
// failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
|
||
// return failedList, err
|
||
// }
|
||
//
|
||
// wareSaveParam.Skus = wareSaveSkus
|
||
// if wareResult, err2 := getAPI(v.VendorOrgCode).WareSave(wareSaveParam); err2 == nil {
|
||
// for _, vvv := range wareResult {
|
||
// if vvv.OuterID == wareSaveSku.OuterID {
|
||
// vv.VendorSkuID = utils.Int64ToStr(vvv.SkuID)
|
||
// break
|
||
// }
|
||
// }
|
||
// //创建商品后要上架,改价,库存,门店关注商品等
|
||
// if err = getAPI(v.VendorOrgCode).WareDoUpdate("up", utils.Int64ToStr(wareSaveParam.WareID)); err == nil {
|
||
// err = getAPI(v.VendorOrgCode).StoreSkuBindStore(true, []string{vv.VendorSkuID}, nil)
|
||
// }
|
||
// }
|
||
// // }
|
||
// }
|
||
// } else {
|
||
// // 商品不存在,直接添加商品,添加分类,添加规格,门店关注上线
|
||
// otherImg := make([]string, 0, 0)
|
||
// if v.Img2 != "" {
|
||
// otherImg = append(otherImg, v.Img2)
|
||
// }
|
||
// if v.Img3 != "" {
|
||
// otherImg = append(otherImg, v.Img3)
|
||
// }
|
||
// if v.Img4 != "" {
|
||
// otherImg = append(otherImg, v.Img4)
|
||
// }
|
||
// if v.Img5 != "" {
|
||
// otherImg = append(otherImg, v.Img5)
|
||
// }
|
||
//
|
||
// // 规格集合
|
||
// spec := &gomei.SpecProperty{
|
||
// SpecCode: v.VendorNameID,
|
||
// SpecName: v.Unit,
|
||
// SpecValues: nil,
|
||
// }
|
||
// specValuesList := make([]*gomei.SpecValues, 0, 0)
|
||
// for _, c := range v.StoreSkuSyncInfoJds {
|
||
// specValues := &gomei.SpecValues{
|
||
// SpecValueCode: c.JdsStockSwitch,
|
||
// SpecValueName: fmt.Sprintf("%f", c.SpecQuality) + c.SpecUnit,
|
||
// }
|
||
// specValuesList = append(specValuesList, specValues)
|
||
// }
|
||
// spec.SpecValues = append(spec.SpecValues, specValuesList...)
|
||
// specProperty := append(make([]*gomei.SpecProperty, 0, 0), spec)
|
||
//
|
||
// api.GuoMeiApi.CreateMerchantGoodsOnStore(&gomei.CreateGoodsListToStore{
|
||
// GoodsName: v.SkuName,
|
||
// MainPictureURL: v.Img,
|
||
// Detail: v.Name,
|
||
// Cat3Code: v.VendorCatID,
|
||
// SpecProperty: specProperty, // 规格集合
|
||
// SkuSaleList: nil, // 售卖组
|
||
// GoodsType: v.SkuVendorCatID,
|
||
// OtherPictureURL: otherImg,
|
||
// VideoURL: "",
|
||
// SpecCode: "",
|
||
// SpecName: "",
|
||
// SpecValues: "",
|
||
// SpecValueCode: "",
|
||
// SpecValueName: "",
|
||
// Specification: "", // 规格集合
|
||
// MarketPrice: utils.Int64ToFloat64(v.Price),
|
||
// ThirdSkuCode: string(v.SkuID),
|
||
// })
|
||
// _, _, wareSaveParam, err := buildCreateWareParam(v)
|
||
// if err != nil {
|
||
// failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
|
||
// return failedList, err
|
||
// }
|
||
// var (
|
||
// wareID int64
|
||
// resultAttrs = make(map[string]int64)
|
||
// )
|
||
// var createSkuResult []*jdshopapi.WareSaveResult
|
||
// createSkuResult, err = getAPI(v.VendorOrgCode).WareSave(wareSaveParam)
|
||
// wareID = createSkuResult[0].WareID
|
||
//
|
||
// var paramAttrs = make(map[string]*jdshopapi.WareSaveSkus)
|
||
// for _, vv := range wareSaveParam.Skus {
|
||
// for _, vvv := range vv.Props {
|
||
// paramAttrs[vvv.AttrValueAlias] = vv
|
||
// }
|
||
// }
|
||
// for _, vv1 := range createSkuResult {
|
||
// for _, vvv1 := range vv1.Props {
|
||
// if paramAttrs[vvv1.AttrValueAlias] != nil {
|
||
// resultAttrs[paramAttrs[vvv1.AttrValueAlias].OuterID] = vv1.SkuID
|
||
// }
|
||
// }
|
||
// }
|
||
// for _, vv2 := range v.StoreSkuSyncInfoJds {
|
||
// vv2.JdsWareID = createSkuResult[0].WareID
|
||
// if resultAttrs[utils.Int2Str(vv2.SkuID)] != 0 {
|
||
// vv2.VendorSkuID = utils.Int64ToStr(resultAttrs[utils.Int2Str(vv2.SkuID)])
|
||
// }
|
||
// }
|
||
// //创建商品后要上架,改价,库存,门店关注商品等
|
||
// if err = getAPI(v.VendorOrgCode).WareDoUpdate("up", utils.Int64ToStr(wareID)); err == nil {
|
||
// for _, vv2 := range v.StoreSkuSyncInfoJds {
|
||
// if resultAttrs[utils.Int2Str(vv2.SkuID)] != 0 {
|
||
// err = getAPI(v.VendorOrgCode).StoreSkuBindStore(true, []string{utils.Int64ToStr(resultAttrs[utils.Int2Str(vv2.SkuID)])}, nil)
|
||
// }
|
||
// }
|
||
// }
|
||
// // }
|
||
// if err != nil {
|
||
// failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
|
||
// return failedList, err
|
||
// } else {
|
||
// //追加商品透图
|
||
// imageURL := ""
|
||
// img := v.Img
|
||
// if img != "" {
|
||
// suffix := img[strings.LastIndex(img, "."):]
|
||
// if suffix != ".png" {
|
||
// if resBinary, _, _ := jxutils.DownloadFileByURL(img + model.SkuNameImgToPng); err == nil {
|
||
// downloadURL, _ := jxutils.UploadExportContent(resBinary, utils.Int64ToStr(time.Now().Unix()))
|
||
// imageURL, _ = uploadImg(downloadURL, name, "tou", v.VendorOrgCode)
|
||
// }
|
||
// } else {
|
||
// imageURL, _ = uploadImg(img, name, "tou", v.VendorOrgCode)
|
||
// }
|
||
// }
|
||
// if v.VendorOrgCode == "1" {
|
||
// api.JdShopAPI.TransparentImageAdd(wareID, imageURL)
|
||
// }
|
||
// }
|
||
// }
|
||
// if err != nil {
|
||
// failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
|
||
// return failedList, err
|
||
// }
|
||
//
|
||
// }
|
||
// } else {
|
||
// //如果是普通店关注商品
|
||
// for _, v := range storeSkuList {
|
||
// for _, vv := range v.StoreSkuSyncInfoJds {
|
||
// storeSkus, _ := dao.GetStoresSkusInfo(dao.GetDB(), []int{model.GoMeiShopMainStoreID}, []int{vv.SkuID})
|
||
// if len(storeSkus) > 0 {
|
||
// for _, storeSku := range storeSkus {
|
||
// if storeSku.JdsID != 0 {
|
||
// status := vv.Status
|
||
// stock := vv.Stock
|
||
// price := vv.VendorPrice
|
||
// // 商品上架
|
||
// if status == model.StoreSkuBindStatusNormal {
|
||
// _, err = getAPI(vv.VendorOrgCode).OnOffLineGoodsOnStore(&gomei.ShelfGoodsForStoreReq{
|
||
// StoreCode: vendorStoreID,
|
||
// SkuCode: []string{storeSku.GmID},
|
||
// ShelveStatus: gomei.PutOnTheShelf,
|
||
// })
|
||
// if err != nil {
|
||
// failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorGoMei], "国美商品已经存在,关注商品")
|
||
// return failedList, err
|
||
// }
|
||
// }
|
||
// // 修改库存
|
||
// if stock != 0 {
|
||
// _, err = getAPI(vv.VendorOrgCode).UpdateStockForStore(&gomei.StoreGoodsStockUpdateReq{
|
||
// StoreCode: vendorStoreID,
|
||
// ItemStocks: []*gomei.StoreSkuNum{{SkuCode: storeSku.GmID, StockNum: gomei.GoMeiMaxStock}},
|
||
// })
|
||
// if err != nil {
|
||
// failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "国美修改商品库存")
|
||
// return failedList, err
|
||
// }
|
||
// }
|
||
// // 同步价格
|
||
// _, err = getAPI(v.VendorOrgCode).UpdateOnGoodsPriceForStore(&gomei.StoreGoodsPriceUpdateReq{
|
||
// StoreCode: vendorStoreID,
|
||
// SkuCode: storeSku.GmID,
|
||
// SalePrice: utils.Int64ToFloat64(price),
|
||
// })
|
||
// if err != nil {
|
||
// failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "国美关注商品价格同步")
|
||
// return failedList, err
|
||
// }
|
||
// }
|
||
// }
|
||
// }
|
||
// }
|
||
// }
|
||
// }
|
||
// }
|
||
// return failedList, err
|
||
//}
|
||
//
|
||
//func (p *PurchaseHandler) UpdateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) {
|
||
// if globals.EnableJdShopWrite && vendorStoreID == model.JdShopMainVendorStoreID {
|
||
// if vendorStoreID == model.JdShopMainVendorStoreID {
|
||
// for _, v := range storeSkuList {
|
||
// name := filterSensitiveWord(v.Name)
|
||
// updateWareParam := &jdshopapi.UpdateWareParam{
|
||
// WareID: v.JdsWareID,
|
||
// Title: name,
|
||
// VenderID: jdshopapi.VenderID,
|
||
// // PromiseID: jdshopapi.JdsPromiseID,
|
||
// ShopCategorys: []int{utils.Str2Int(v.VendorCatID)},
|
||
// JdPrice: jxutils.IntPrice2Standard(v.UnitPrice),
|
||
// }
|
||
// if v.VendorVendorCatID != jdshopapi.JdsOtherMeatCatID {
|
||
// updateWareParam.PromiseID = jdshopapi.JdsPromiseID
|
||
// }
|
||
// var desc string
|
||
// if v.DescImg != "" {
|
||
// pic3, err2 := uploadImg2(v.DescImg, name, "desc", v.VendorOrgCode)
|
||
// err = err2
|
||
// desc = `<p><img src="` + jdshopapi.JdsImgURL + pic3 + `" style="width: auto; height: auto; max-width: 100%;"><br></p><p><br></p>`
|
||
// } else {
|
||
// desc = `<p><br></p><p><br></p>`
|
||
// }
|
||
// updateWareParam.Introduction = desc
|
||
// updateWareParam.MobileDesc = desc
|
||
// img := ""
|
||
// if v.ImgMix != "" {
|
||
// img = v.ImgMix
|
||
// } else {
|
||
// img = v.Img
|
||
// }
|
||
// if img != "" {
|
||
// pic1, err2 := uploadImg2(img, name, "1", v.VendorOrgCode)
|
||
// err = err2
|
||
// err = getAPI(v.VendorOrgCode).ImageUpdate(v.JdsWareID, 1, pic1)
|
||
// if v.Img2 != "" {
|
||
// pic2, err2 := uploadImg2(v.Img2, name, "2", v.VendorOrgCode)
|
||
// err = err2
|
||
// err = getAPI(v.VendorOrgCode).ImageUpdate(v.JdsWareID, 2, pic2)
|
||
// } else {
|
||
// err = getAPI(v.VendorOrgCode).ImageUpdate(v.JdsWareID, 2, pic1)
|
||
// }
|
||
// err = getAPI(v.VendorOrgCode).ImageUpdate(v.JdsWareID, 3, pic1)
|
||
// }
|
||
// var features = []*jdshopapi.CreateSkuParamFeatures{
|
||
// &jdshopapi.CreateSkuParamFeatures{
|
||
// Key: "is7ToReturn", //不支持7天无理由退货
|
||
// Value: "0",
|
||
// },
|
||
// &jdshopapi.CreateSkuParamFeatures{
|
||
// Key: "tssp", //支持自提
|
||
// Value: "",
|
||
// },
|
||
// // &jdshopapi.CreateSkuParamFeatures{
|
||
// // Key: "fdms", //分单?
|
||
// // Value: "1",
|
||
// // },
|
||
// }
|
||
// updateWareParam.Features = features
|
||
// err = getAPI(v.VendorOrgCode).UpdateWare(updateWareParam)
|
||
// if err == nil {
|
||
// //追加商品透图
|
||
// imageURL := ""
|
||
// img := v.Img
|
||
// if img != "" {
|
||
// suffix := img[strings.LastIndex(img, "."):]
|
||
// if suffix != ".png" {
|
||
// if resBinary, _, err := jxutils.DownloadFileByURL(img + model.SkuNameImgToPng); err == nil {
|
||
// downloadURL, err2 := jxutils.UploadExportContent(resBinary, utils.Int64ToStr(time.Now().Unix()))
|
||
// err = err2
|
||
// imageURL, err = uploadImg(downloadURL, name, "tou", v.VendorOrgCode)
|
||
// }
|
||
// } else {
|
||
// imageURL, err = uploadImg(img, name, "tou", v.VendorOrgCode)
|
||
// }
|
||
// }
|
||
// if v.VendorOrgCode == "1" {
|
||
// api.JdShopAPI.TransparentImageAdd(v.JdsWareID, imageURL)
|
||
// }
|
||
// }
|
||
// for _, vv := range v.StoreSkuSyncInfoJds {
|
||
// updateSkusParam, _, err := buildUpdateSkusParam(v, vv, false)
|
||
// if err != nil {
|
||
// failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "更新商品基础信息")
|
||
// return failedList, err
|
||
// }
|
||
// _, err = getAPI(v.VendorOrgCode).UpdateSkus(updateSkusParam)
|
||
// }
|
||
// }
|
||
// } else {
|
||
// for _, v := range storeSkuList {
|
||
// var wareSaveSkus []*jdshopapi.WareSaveSkus
|
||
// name := filterSensitiveWord(v.Name)
|
||
// //jds2
|
||
// wareSaveParam := &jdshopapi.WareSaveParam{
|
||
// WareID: v.JdsWareID,
|
||
// Title: name,
|
||
// CategoryID: int(v.VendorVendorCatID),
|
||
// VenderID: jdshopapi.VendorID2,
|
||
// Length: 100,
|
||
// Wide: 100,
|
||
// Height: 100,
|
||
// Weight: utils.Int2Str(v.Weight),
|
||
// BrandID: jdshopapi.BrandIdNO,
|
||
// ShopCategorys: []int{utils.Str2Int(v.VendorCatID)},
|
||
// PromiseID: -1,
|
||
// MultiCateProps: []interface{}{},
|
||
// PropsSet: []interface{}{},
|
||
// SaleAttrs: []interface{}{},
|
||
// }
|
||
// var desc string
|
||
// if v.DescImg != "" {
|
||
// pic3, err2 := uploadImg2(v.DescImg, name, "desc", v.VendorOrgCode)
|
||
// err = err2
|
||
// desc = `<p><img src="` + jdshopapi.JdsImgURL + pic3 + `" style="width: auto; height: auto; max-width: 100%;"><br></p><p><br></p>`
|
||
// } else {
|
||
// desc = `<p><br></p><p><br></p>`
|
||
// }
|
||
// wareSaveParam.Notes = desc
|
||
// //上传京东图片
|
||
// //规则,有两张就传两张,没有就重复传一张
|
||
// pic1, _ := uploadImg(v.Img, name, "1", v.VendorOrgCode)
|
||
// img1 := &jdshopapi.CreateSkuParamImages{
|
||
// ColorID: "0000000000",
|
||
// ImgIndex: 1,
|
||
// ImgURL: pic1,
|
||
// }
|
||
// img2 := &jdshopapi.CreateSkuParamImages{
|
||
// ColorID: "0000000000",
|
||
// ImgIndex: 2,
|
||
// }
|
||
// if v.Img2 == "" {
|
||
// img2.ImgURL = pic1
|
||
// } else {
|
||
// pic2, err2 := uploadImg(v.Img, name, "2", v.VendorOrgCode)
|
||
// err = err2
|
||
// img2.ImgURL = pic2
|
||
// }
|
||
// img3 := &jdshopapi.CreateSkuParamImages{
|
||
// ColorID: "0000000000",
|
||
// ImgIndex: 3,
|
||
// ImgURL: pic1,
|
||
// }
|
||
// //jds2图片
|
||
// wareSaveParam.ImageMap.Num0000000000 = append(wareSaveParam.ImageMap.Num0000000000, img1, img2, img3)
|
||
// for _, vv := range v.StoreSkuSyncInfoJds {
|
||
// _, wareSaveSku, err2 := buildUpdateSkusParam(v, vv, true)
|
||
// err = err2
|
||
// wareSaveSku.SkuID = utils.Str2Int64(vv.VendorSkuID)
|
||
// wareSaveSkus = append(wareSaveSkus, wareSaveSku)
|
||
// }
|
||
// getAPI("2").WareSave(wareSaveParam)
|
||
// }
|
||
// }
|
||
// if err != nil {
|
||
// failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "更新商品基础信息")
|
||
// }
|
||
// }
|
||
// return failedList, err
|
||
//}
|
||
//
|
||
//func buildUpdateSkusParam(storeSku *dao.StoreSkuSyncInfo, v *dao.StoreSkuSyncInfo, vendorStoreId string, isCreate bool) (updateSkusParam *jdshopapi.UpdateSkusParam, wareSku *jdshopapi.WareSaveSkus, err error) {
|
||
// // 判断分类是否存在
|
||
// storeCategoriesList, err := GetAllStoreCategories(string(model.VendorGoMei), vendorStoreId)
|
||
// if err != nil {
|
||
// return nil, nil, err
|
||
// }
|
||
// isHaveCategory := false
|
||
// for _, sc := range storeCategoriesList {
|
||
// if sc.CategoryCode == string(storeSku.VendorVendorCatID) {
|
||
// isHaveCategory = true
|
||
// break
|
||
// }
|
||
// }
|
||
// // 分类不存在则,创建分类
|
||
// if !isHaveCategory {
|
||
// if _, err := api.GuoMeiApi.AddStoreCategory(&gomei.StoreAddGoodsCategory{
|
||
// StoreCode: vendorStoreId,
|
||
// CategoryName: storeSku.CategoryName,
|
||
// Rank: 0,
|
||
// }); err != nil {
|
||
// return nil, nil, err
|
||
// }
|
||
// }
|
||
//
|
||
// // 规格组,规格设置(获取分类下的所有规格),线上规格
|
||
// attrsList, err := GetAllSpecSizeList(&gomei.QueryGoodsSpecSizeReq{
|
||
// Cat3Code: string(storeSku.VendorVendorCatID),
|
||
// SpecName: "",
|
||
// Page: gomei.Page{
|
||
// PageNumber: gomei.PageNumber,
|
||
// PageSize: gomei.PageSize,
|
||
// },
|
||
// })
|
||
// if err != nil {
|
||
// return nil, nil, err
|
||
// }
|
||
// // 本地规格
|
||
// var ggValueID string //规格的属性id
|
||
// var ggValueName string //规格名
|
||
// // 判断本地规格和在线上是否存在
|
||
// for _, goMeiSize := range attrsList {
|
||
// if goMeiSize.SpecName == v.Unit {
|
||
// ggValueID = goMeiSize.SpecCode
|
||
// ggValueName = goMeiSize.SpecName
|
||
// break
|
||
// }
|
||
// }
|
||
// if ggValueID == "" {
|
||
// // 规格不存在,创建规格,规格只有一个,规格属性有多个!
|
||
// specList := make([]*gomei.SpecValueName, 0, 0)
|
||
// for _, sl := range storeSku.StoreSkuSyncInfoJds {
|
||
// data1 := &gomei.SpecValueName{SpecValueName: utils.Float64ToStr(float64(sl.SpecQuality)) + sl.Unit}
|
||
// specList = append(specList, data1)
|
||
// }
|
||
// _, err = api.GuoMeiApi.CreateGoodsSpceList(&gomei.CreateSpecDetailParam{
|
||
// SpecName: ggValueName,
|
||
// SpecValues: specList, // 多个规格属性
|
||
// Cat3Code: string(storeSku.VendorVendorCatID),
|
||
// Remark: "",
|
||
// })
|
||
// if err != nil {
|
||
// return nil, nil, err
|
||
// }
|
||
// } else {
|
||
// // 存在规格,判断里面,规格属性是否充足
|
||
//
|
||
// }
|
||
//
|
||
//}
|
||
//
|
||
//func buildCreateWareParam(storeSku *dao.StoreSkuSyncInfo) (createSkuParamWare *jdshopapi.CreateSkuParamWare, createSkuParamSkus []*jdshopapi.CreateSkuParamSkus, wareSaveParam *jdshopapi.WareSaveParam, err error) {
|
||
// var (
|
||
// images []*jdshopapi.CreateSkuParamImages
|
||
// vendorCatID int
|
||
// )
|
||
// if storeSku.VendorCatID == "0" {
|
||
// resultCat, _ := getAPI(storeSku.VendorOrgCode).FindShopCategories() // 查询商家所有店内分类
|
||
// for _, v := range resultCat {
|
||
// if v.Name == storeSku.CategoryName {
|
||
// vendorCatID = int(v.CID)
|
||
// break
|
||
// }
|
||
// }
|
||
// } else {
|
||
// vendorCatID = utils.Str2Int(storeSku.VendorCatID)
|
||
// }
|
||
//
|
||
// name := filterSensitiveWord(storeSku.Name)
|
||
// wareSaveParam = &jdshopapi.WareSaveParam{
|
||
// WareID: 0,
|
||
// Title: name,
|
||
// CategoryID: int(storeSku.VendorVendorCatID),
|
||
// LastCategoryID: int(storeSku.VendorVendorCatID),
|
||
// VenderID: jdshopapi.VendorID2,
|
||
// Length: 200,
|
||
// Wide: 100,
|
||
// Height: 100,
|
||
// Weight: "1",
|
||
// BrandID: jdshopapi.BrandIdNO,
|
||
// WareStatus: 8, //上架待审核,没用,建好了都要再上架一次
|
||
// ShopCategorys: []int{vendorCatID},
|
||
// PromiseID: 0,
|
||
// MultiCateProps: []interface{}{},
|
||
// PropsSet: []interface{}{},
|
||
// SaleAttrs: []interface{}{},
|
||
// TransparentImageAudit: []interface{}{},
|
||
// OptionType: 1,
|
||
// AvailableFeatures: []interface{}{},
|
||
// CharacteristicService: []interface{}{},
|
||
// ExtendFeatures: []interface{}{},
|
||
// TempID: "10569615110055200", //必须要这个东西,不知道是啥
|
||
// }
|
||
// createSkuParamWare = &jdshopapi.CreateSkuParamWare{
|
||
// Title: name,
|
||
// ShopCategorys: []int{vendorCatID},
|
||
// CategoryID: int(storeSku.VendorVendorCatID),
|
||
// BrandID: jdshopapi.JxBrandId,
|
||
// // TransportID: jdshopapi.TransportID,
|
||
// WareStatus: 8, //上架待审核
|
||
// OuterID: utils.Int2Str(storeSku.NameID),
|
||
// // VenderID: jdshopapi.VenderID,
|
||
// Length: 100,
|
||
// Width: 100,
|
||
// Height: 100,
|
||
// Weight: 0.5,
|
||
// JdPrice: jxutils.IntPrice2Standard(storeSku.UnitPrice),
|
||
// // MarketPrice: jxutils.IntPrice2Standard(storeSku.UnitPrice),
|
||
// // PromiseID: jdshopapi.JdsPromiseID,
|
||
// }
|
||
//
|
||
// if storeSku.VendorOrgCode == "1" {
|
||
// createSkuParamWare.VenderID = jdshopapi.VenderID
|
||
// }
|
||
//
|
||
// if storeSku.VendorVendorCatID != jdshopapi.JdsOtherMeatCatID {
|
||
// createSkuParamWare.PromiseID = jdshopapi.JdsPromiseID
|
||
// }
|
||
//
|
||
// if storeSku.VendorVendorCatID == jdshopapi.JdsBeefCatID {
|
||
// createSkuParamWare.MultiCategoryID = jdshopapi.JdsBeefLastCatID
|
||
// }
|
||
//
|
||
// //上传京东图片
|
||
// //规则,有两张就传两张,没有就重复传一张
|
||
// pic1, err := uploadImg(storeSku.Img, name, "1", storeSku.VendorOrgCode)
|
||
// img1 := &jdshopapi.CreateSkuParamImages{
|
||
// ColorID: "0000000000",
|
||
// ImgIndex: 1,
|
||
// ImgURL: pic1,
|
||
// }
|
||
// img2 := &jdshopapi.CreateSkuParamImages{
|
||
// ColorID: "0000000000",
|
||
// ImgIndex: 2,
|
||
// }
|
||
// if storeSku.Img2 == "" {
|
||
// img2.ImgURL = pic1
|
||
// } else {
|
||
// pic2, err2 := uploadImg(storeSku.Img, name, "2", storeSku.VendorOrgCode)
|
||
// err = err2
|
||
// img2.ImgURL = pic2
|
||
// }
|
||
// img3 := &jdshopapi.CreateSkuParamImages{
|
||
// ColorID: "0000000000",
|
||
// ImgIndex: 3,
|
||
// ImgURL: pic1,
|
||
// }
|
||
// images = append(images, img1)
|
||
// images = append(images, img2)
|
||
// images = append(images, img3)
|
||
// createSkuParamWare.Images = images
|
||
// //jds2图片
|
||
// // img4 := img1
|
||
// // img4.ImgZoneID = "0000000000"
|
||
// // img5 := img2
|
||
// // img5.ImgZoneID = "0000000000"
|
||
// // img6 := img3
|
||
// // img6.ImgZoneID = "0000000000"
|
||
// wareSaveParam.ImageMap.Num0000000000 = append(wareSaveParam.ImageMap.Num0000000000, img1, img2, img3)
|
||
//
|
||
// //商品详情拼接
|
||
// var desc string
|
||
// if storeSku.DescImg != "" {
|
||
// pic3, err2 := uploadImg(storeSku.DescImg, name, "desc", storeSku.VendorOrgCode)
|
||
// err = err2
|
||
// desc = `<p><img src="` + jdshopapi.JdsImgURL + pic3 + `" style="width: auto; height: auto; max-width: 100%;"><br></p><p><br></p>`
|
||
// } else {
|
||
// desc = `<p><br></p><p><br></p>`
|
||
// }
|
||
// createSkuParamWare.MobileDesc = desc
|
||
// createSkuParamWare.Introduction = desc
|
||
// wareSaveParam.Notes = desc
|
||
//
|
||
// //设置商品属性值
|
||
// var (
|
||
// attrIDs = make(map[string]int) //贮存方式,净含量,保质期IDs
|
||
// zctjValueID int64 //贮存条件冷藏0-4的id
|
||
// gcjkValueID int64 //国产,进口的id
|
||
// lbValueID int64 //类别的ID
|
||
// bcztValueID int64 //保存状态ID
|
||
// rmsjValueID int64 //热卖时间ID
|
||
// attrsProp []*jdshopapi.CreateSkuParamAttrs
|
||
// )
|
||
// attrs, err := getAPI(storeSku.VendorOrgCode).FindAttrs(int(storeSku.VendorVendorCatID))
|
||
// for _, v := range attrs {
|
||
// if v.Name == "保质期" {
|
||
// attrIDs[v.Name] = v.ID
|
||
// } else if v.Name == "贮存条件" {
|
||
// attrIDs[v.Name] = v.ID
|
||
// } else if v.Name == "净含量" {
|
||
// attrIDs[v.Name] = v.ID
|
||
// } else if v.Name == "规格" {
|
||
// attrIDs[v.Name] = v.ID
|
||
// } else if v.Name == "国产/进口" {
|
||
// attrIDs[v.Name] = v.ID
|
||
// } else if v.Name == "类别" {
|
||
// attrIDs[v.Name] = v.ID
|
||
// } else if v.Name == "保存状态" {
|
||
// attrIDs[v.Name] = v.ID
|
||
// } else if v.Name == "热卖时间" {
|
||
// attrIDs[v.Name] = v.ID
|
||
// }
|
||
// }
|
||
// values, _, err := getAPI(storeSku.VendorOrgCode).FindValuesByAttrId(attrIDs["贮存条件"])
|
||
// for _, v := range values {
|
||
// if v.Name == "冷藏 0-4℃" {
|
||
// zctjValueID = v.ID
|
||
// }
|
||
// }
|
||
// if attrIDs["国产/进口"] != 0 {
|
||
// values2, _, err2 := getAPI(storeSku.VendorOrgCode).FindValuesByAttrId(attrIDs["国产/进口"])
|
||
// err = err2
|
||
// for _, v := range values2 {
|
||
// if v.Name == "国产" {
|
||
// gcjkValueID = v.ID
|
||
// }
|
||
// }
|
||
// attrgcjk := &jdshopapi.CreateSkuParamAttrs{
|
||
// AttrID: utils.Int2Str(attrIDs["国产/进口"]),
|
||
// AttrValues: []string{utils.Int64ToStr(gcjkValueID)},
|
||
// }
|
||
// attrsProp = append(attrsProp, attrgcjk)
|
||
// }
|
||
// if attrIDs["保存状态"] != 0 {
|
||
// values2, _, err2 := getAPI(storeSku.VendorOrgCode).FindValuesByAttrId(attrIDs["保存状态"])
|
||
// err = err2
|
||
// for _, v := range values2 {
|
||
// if v.Name == "冷藏" || v.Name == "活鲜" {
|
||
// bcztValueID = v.ID
|
||
// }
|
||
// }
|
||
// attrbczt := &jdshopapi.CreateSkuParamAttrs{
|
||
// AttrID: utils.Int2Str(attrIDs["保存状态"]),
|
||
// AttrValues: []string{utils.Int64ToStr(bcztValueID)},
|
||
// }
|
||
// attrsProp = append(attrsProp, attrbczt)
|
||
// }
|
||
// if attrIDs["热卖时间"] != 0 {
|
||
// values2, _, err2 := getAPI(storeSku.VendorOrgCode).FindValuesByAttrId(attrIDs["热卖时间"])
|
||
// err = err2
|
||
// for _, v := range values2 {
|
||
// if v.Name == "12月" {
|
||
// rmsjValueID = v.ID
|
||
// }
|
||
// }
|
||
// attrrmsj := &jdshopapi.CreateSkuParamAttrs{
|
||
// AttrID: utils.Int2Str(attrIDs["热卖时间"]),
|
||
// AttrValues: []string{utils.Int64ToStr(rmsjValueID)},
|
||
// }
|
||
// attrsProp = append(attrsProp, attrrmsj)
|
||
// }
|
||
// //牛肉创建不一样
|
||
// if storeSku.VendorVendorCatID == jdshopapi.JdsBeefCatID {
|
||
// var exValueID int64
|
||
// values2, _, err2 := getAPI(storeSku.VendorOrgCode).FindValuesByAttrId(150390)
|
||
// err = err2
|
||
// for _, v := range values2 {
|
||
// if v.Name == "其它" {
|
||
// exValueID = v.ID
|
||
// }
|
||
// }
|
||
// attrex := &jdshopapi.CreateSkuParamAttrs{
|
||
// AttrID: utils.Int2Str(150390),
|
||
// AttrValues: []string{utils.Int64ToStr(exValueID)},
|
||
// }
|
||
// attrsProp = append(attrsProp, attrex)
|
||
// wareSaveParam.LastCategoryID = 17902
|
||
// }
|
||
// attrZctj := &jdshopapi.CreateSkuParamAttrs{
|
||
// AttrID: utils.Int2Str(attrIDs["贮存条件"]),
|
||
// AttrValues: []string{utils.Int64ToStr(zctjValueID)},
|
||
// }
|
||
// attrJhl := &jdshopapi.CreateSkuParamAttrs{
|
||
// AttrID: utils.Int2Str(attrIDs["净含量"]),
|
||
// AttrValues: []string{"0.5"},
|
||
// }
|
||
// attrBzq := &jdshopapi.CreateSkuParamAttrs{
|
||
// AttrID: utils.Int2Str(attrIDs["保质期"]),
|
||
// AttrValues: []string{"5"},
|
||
// }
|
||
// attrsProp = append(attrsProp, attrZctj)
|
||
// attrsProp = append(attrsProp, attrJhl)
|
||
// attrsProp = append(attrsProp, attrBzq)
|
||
// createSkuParamWare.MultiCateProps = attrsProp
|
||
// var features = []*jdshopapi.CreateSkuParamFeatures{
|
||
// &jdshopapi.CreateSkuParamFeatures{
|
||
// Key: "is7ToReturn", //不支持7天无理由退货
|
||
// Value: "0",
|
||
// },
|
||
// // &jdshopapi.CreateSkuParamFeatures{
|
||
// // Key: "tssp", //支持自提
|
||
// // Value: "",
|
||
// // },
|
||
// // &jdshopapi.CreateSkuParamFeatures{
|
||
// // Key: "fdms", //分单?
|
||
// // Value: "1",
|
||
// // },
|
||
// }
|
||
// createSkuParamWare.Features = features
|
||
// //组合sku
|
||
// var (
|
||
// vendorPrice int64 = 0
|
||
// wareSaveSkus []*jdshopapi.WareSaveSkus
|
||
// )
|
||
//
|
||
// for _, v := range storeSku.StoreSkuSyncInfoJds {
|
||
// var (
|
||
// ggValueID int64 //规格的属性id
|
||
// ggValueName string //规格的属性名
|
||
// attrsPropSku []*jdshopapi.CreateSkuParamAttrs
|
||
// attrsPropSku2 []*jdshopapi.WareSaveSkusProp //jds2
|
||
// multiPropSku []*jdshopapi.CreateSkuParamAttrs
|
||
// specQuality string
|
||
// )
|
||
// valuesSku, maxNo, _ := getAPI(storeSku.VendorOrgCode).FindValuesByAttrId(attrIDs["规格"])
|
||
// if v.SpecUnit == model.SpecUnitNames[1] || v.SpecUnit == model.SpecUnitNames[2] {
|
||
// specQuality = strings.TrimRight(fmt.Sprintf("%.2f", float64(v.SpecQuality)), "0.") + v.SpecUnit
|
||
// } else {
|
||
// specQuality = utils.Float64ToStr(float64(v.SpecQuality)) + v.SpecUnit
|
||
// }
|
||
// if v.Comment != "" {
|
||
// specQuality = v.Comment
|
||
// }
|
||
// for _, v := range valuesSku {
|
||
// if v.Name == specQuality {
|
||
// ggValueID = v.ID
|
||
// ggValueName = v.Name
|
||
// }
|
||
// }
|
||
// if ggValueID == 0 { //说明没有建这个规格,要建上
|
||
// catID, _ := getAPI(storeSku.VendorOrgCode).SaveVenderAttrValue(specQuality, attrIDs["规格"], int(storeSku.VendorVendorCatID), maxNo+1)
|
||
// ggValueID = catID
|
||
// ggValueName = specQuality
|
||
// }
|
||
// //jds1
|
||
// attrSku := &jdshopapi.CreateSkuParamAttrs{
|
||
// AttrID: utils.Int2Str(attrIDs["规格"]),
|
||
// AttrValues: []string{utils.Int64ToStr(ggValueID)},
|
||
// }
|
||
// attrsPropSku = append(attrsPropSku, attrSku)
|
||
// //jds2
|
||
// attrSku2 := &jdshopapi.WareSaveSkusProp{
|
||
// AttrID: attrIDs["规格"],
|
||
// AttrValues: ggValueID,
|
||
// AttrValueAlias: ggValueName,
|
||
// }
|
||
// attrsPropSku2 = append(attrsPropSku2, attrSku2)
|
||
//
|
||
// //jds1
|
||
// sku := &jdshopapi.CreateSkuParamSkus{
|
||
// JdPrice: jxutils.IntPrice2Standard(v.VendorPrice),
|
||
// // StockNum: 9999,
|
||
// Type: "com.jd.pop.ware.ic.api.domain.sku",
|
||
// Type2: "com.jd.pop.ware.ic.api.domain.Sku",
|
||
// OuterID: utils.Int2Str(v.SkuID),
|
||
// }
|
||
// sku.SaleAttrs = attrsPropSku
|
||
// //jds2
|
||
// sku2 := &jdshopapi.WareSaveSkus{
|
||
// JdPrice: utils.Float64ToStr(jxutils.IntPrice2Standard(v.VendorPrice)),
|
||
// OuterID: utils.Int2Str(v.SkuID),
|
||
// }
|
||
// sku2.Props = attrsPropSku2
|
||
//
|
||
// if attrIDs["类别"] != 0 {
|
||
// values2, _, err2 := getAPI(storeSku.VendorOrgCode).FindValuesByAttrId(attrIDs["类别"])
|
||
// err = err2
|
||
// lbValueID = values2[len(values2)-1].ID
|
||
// attrlb := &jdshopapi.CreateSkuParamAttrs{
|
||
// AttrID: utils.Int2Str(attrIDs["类别"]),
|
||
// AttrValues: []string{utils.Int64ToStr(lbValueID)},
|
||
// }
|
||
// multiPropSku = append(multiPropSku, attrlb)
|
||
// }
|
||
// sku.MultiCateProps = multiPropSku
|
||
// createSkuParamSkus = append(createSkuParamSkus, sku)
|
||
//
|
||
// if v.VendorPrice > vendorPrice {
|
||
// vendorPrice = v.VendorPrice
|
||
// }
|
||
// if v.Status == model.SkuStatusNormal {
|
||
// sku.StockNum = 9999
|
||
// sku2.StockNum = 9999
|
||
// } else {
|
||
// sku.StockNum = 0
|
||
// sku2.StockNum = 0
|
||
// }
|
||
// wareSaveSkus = append(wareSaveSkus, sku2)
|
||
// }
|
||
// //市场价固定500
|
||
// createSkuParamWare.MarketPrice = 500
|
||
// wareSaveParam.Skus = wareSaveSkus
|
||
// return createSkuParamWare, createSkuParamSkus, wareSaveParam, err
|
||
//}
|
||
//
|
||
//// 国美获取线上所有规格列表
|
||
//func GetAllSpecSizeList(param *gomei.QueryGoodsSpecSizeReq) ([]*gomei.QueryGoodsSpecSizeRecords, error) {
|
||
// attrs, err := api.GuoMeiApi.QueryGoodsSizeList(param)
|
||
// if err != nil {
|
||
// return nil, err
|
||
// }
|
||
//
|
||
// goMeiSizeList := make([]*gomei.QueryGoodsSpecSizeRecords, 0, 0)
|
||
// for i := 1; i <= attrs.Data.PageTotal; i++ {
|
||
// attrs, err := api.GuoMeiApi.QueryGoodsSizeList(&gomei.QueryGoodsSpecSizeReq{
|
||
// Cat3Code: param.Cat3Code,
|
||
// SpecName: "",
|
||
// Page: gomei.Page{
|
||
// PageNumber: i,
|
||
// PageSize: gomei.PageSize,
|
||
// },
|
||
// })
|
||
// if err != nil {
|
||
// return nil, err
|
||
// }
|
||
// goMeiSizeList = append(goMeiSizeList, attrs.Data.Records...)
|
||
// }
|
||
// return goMeiSizeList, nil
|
||
//}
|