- 京东handler不直接依赖api.JdAPI

This commit is contained in:
gazebo
2019-08-28 14:25:29 +08:00
parent da6fdd4c8e
commit cf4202a41b
13 changed files with 113 additions and 112 deletions

View File

@@ -15,7 +15,6 @@ import (
"git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api"
"github.com/astaxie/beego"
)
@@ -59,7 +58,7 @@ func (p *PurchaseHandler) CreateCategory(db *dao.DaoDB, cat *model.SkuCategory,
}
}
if globals.EnableStoreWrite {
result, err2 := api.JdAPI.AddShopCategory(jdPid, cat.Name, int(cat.Level), cat.Seq, userName)
result, err2 := getAPI("").AddShopCategory(jdPid, cat.Name, int(cat.Level), cat.Seq, userName)
if err = err2; err == nil {
if jdID := utils.Str2Int64WithDefault(result, 0); jdID != 0 {
cat.JdID = jdID
@@ -70,7 +69,7 @@ func (p *PurchaseHandler) CreateCategory(db *dao.DaoDB, cat *model.SkuCategory,
}
func (p *PurchaseHandler) ReadCategories() (cats []*model.SkuCategory, err error) {
result, err := api.JdAPI.QueryCategoriesByOrgCode()
result, err := getAPI("").QueryCategoriesByOrgCode()
if err == nil {
cats = make([]*model.SkuCategory, len(result))
for k, v := range result {
@@ -89,14 +88,14 @@ func (p *PurchaseHandler) ReadCategories() (cats []*model.SkuCategory, err error
func (p *PurchaseHandler) UpdateCategory(db *dao.DaoDB, cat *model.SkuCategory, userName string) error {
if globals.EnableStoreWrite {
return api.JdAPI.UpdateShopCategory(cat.JdID, cat.Name)
return getAPI("").UpdateShopCategory(cat.JdID, cat.Name)
}
return nil
}
func (p *PurchaseHandler) DeleteCategory(db *dao.DaoDB, cat *model.SkuCategory, userName string) error {
if globals.EnableStoreWrite {
return api.JdAPI.DelShopCategory(cat.JdID)
return getAPI("").DelShopCategory(cat.JdID)
}
return nil
}
@@ -122,7 +121,7 @@ func (p *PurchaseHandler) ReorderCategories(db *dao.DaoDB, parentCatID int, user
jdCatIDs[k] = v.JdID
}
if globals.EnableStoreWrite {
err = api.JdAPI.ChangeShopCategoryOrder(parentJDID, jdCatIDs)
err = getAPI("").ChangeShopCategoryOrder(parentJDID, jdCatIDs)
}
}
return err
@@ -192,7 +191,7 @@ func (p *PurchaseHandler) CreateSku(db *dao.DaoDB, sku *model.Sku, userName stri
return p.cuSku(db, sku, func(skuExt *tSkuInfoExt, price int, skuName string, shopCategories []int64, addParams map[string]interface{}) (vendorSkuID string, err error) {
if skuExt.IsSpu == 0 {
if globals.EnableStoreWrite {
vendorSkuID, err = api.JdAPI.AddSku(utils.Int2Str(sku.ID), skuExt.JdCategoryID, shopCategories, skuExt.BrandID, skuName, price, jxutils.IntWeight2Float(sku.Weight), []string{skuExt.Img}, jxStatus2jdStatus(sku.Status), true, addParams)
vendorSkuID, err = getAPI("").AddSku(utils.Int2Str(sku.ID), skuExt.JdCategoryID, shopCategories, skuExt.BrandID, skuName, price, jxutils.IntWeight2Float(sku.Weight), []string{skuExt.Img}, jxStatus2jdStatus(sku.Status), true, addParams)
if err != nil {
if jdSkuID := jdapi.GetJdSkuIDFromError(err); jdSkuID > 0 {
vendorSkuID = utils.Int64ToStr(jdSkuID)
@@ -209,13 +208,13 @@ func (p *PurchaseHandler) CreateSku(db *dao.DaoDB, sku *model.Sku, userName stri
func (p *PurchaseHandler) ReadSku(vendorSkuID string) (skuNameExt *model.SkuNameExt, err error) {
jdSkuID := utils.Str2Int64(vendorSkuID)
skuList, _, err := api.JdAPI.QuerySkuInfos(&jdapi.QuerySkuParam{
skuList, _, err := getAPI("").QuerySkuInfos(&jdapi.QuerySkuParam{
SkuID: jdSkuID,
})
if err == nil {
if len(skuList) >= 1 {
skuNameExt = &model.SkuNameExt{}
if imgList, err2 := api.JdAPI.QueryListBySkuIds(&jdapi.QueryListBySkuIdsParam{
if imgList, err2 := getAPI("").QueryListBySkuIds(&jdapi.QueryListBySkuIdsParam{
SkuIDs: []int64{jdSkuID},
}); err2 == nil && len(imgList) > 0 {
skuNameExt.Img = imgList[0].SourceImgURL
@@ -288,7 +287,7 @@ func (p *PurchaseHandler) UpdateSku(db *dao.DaoDB, sku *model.Sku, userName stri
params[jdapi.KeyFixedStatus] = jxStatus2jdStatus(sku.Status)
if skuExt.IsSpu == 0 {
if globals.EnableStoreWrite {
vendorSkuID, err = api.JdAPI.UpdateSku(utils.Int2Str(sku.ID), params)
vendorSkuID, err = getAPI("").UpdateSku(utils.Int2Str(sku.ID), params)
}
} else {
vendorSkuID, err = p.syncSkuNameAsSpu(db, sku, skuExt, price, skuName, shopCategories, addParams)
@@ -312,7 +311,7 @@ func (p *PurchaseHandler) DeleteSku(db *dao.DaoDB, sku *model.Sku, userName stri
if err == nil {
if skuExt.IsSpu == 0 {
if globals.EnableStoreWrite {
_, err = api.JdAPI.UpdateSku(utils.Int2Str(sku.ID), params)
_, err = getAPI("").UpdateSku(utils.Int2Str(sku.ID), params)
}
} else {
_, err = p.syncSkuNameAsSpu(db, sku, &skuExt, 0, "", nil, nil)
@@ -357,7 +356,7 @@ func (p *PurchaseHandler) RefreshAllSkusID(ctx *jxcontext.Context, parentTask ta
}
globals.SugarLogger.Debug(utils.Format4Output(skuPairs, false))
if globals.EnableStoreWrite {
_, err = api.JdAPI.BatchUpdateOutSkuId(skuPairs)
_, err = getAPI("").BatchUpdateOutSkuId(skuPairs)
}
return nil, err
}, skuPairs)
@@ -397,7 +396,7 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt
spuAddParams, skuAddParams := splitAddParams(addParams)
if !jxutils.IsEmptyID(skuNameJdID) && sku.JdSyncStatus&model.SyncFlagDeletedMask != 0 { // 删除SKU
if globals.EnableStoreWrite {
err = api.JdAPI.UpdateSkuBaseInfo(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), utils.Params2Map(jdapi.KeyFixedStatus, jdapi.SkuFixedStatusDeleted))
err = getAPI("").UpdateSkuBaseInfo(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), utils.Params2Map(jdapi.KeyFixedStatus, jdapi.SkuFixedStatusDeleted))
}
}
if err == nil {
@@ -417,8 +416,8 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt
if count.Ct <= 1 && sku.JdSyncStatus&model.SyncFlagDeletedMask != 0 { // 1就是最后删的那个
updateFields = append(updateFields, model.FieldJdSyncStatus)
if globals.EnableStoreWrite {
if err = api.JdAPI.UpdateSpu(utils.Int2Str(skuExt.ID), utils.Params2Map(jdapi.KeyFixedStatus, jdapi.SkuFixedStatusOffline)); err == nil {
err = api.JdAPI.UpdateSpu(utils.Int2Str(skuExt.ID), utils.Params2Map(jdapi.KeyFixedStatus, jdapi.SkuFixedStatusDeleted))
if err = getAPI("").UpdateSpu(utils.Int2Str(skuExt.ID), utils.Params2Map(jdapi.KeyFixedStatus, jdapi.SkuFixedStatusOffline)); err == nil {
err = getAPI("").UpdateSpu(utils.Int2Str(skuExt.ID), utils.Params2Map(jdapi.KeyFixedStatus, jdapi.SkuFixedStatusDeleted))
}
}
}
@@ -439,7 +438,7 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt
skus[0] = utils.MergeMaps(skus[0], skuAddParams)
updateFields = append(updateFields, model.FieldJdSyncStatus)
if globals.EnableStoreWrite {
vendorSpuID, skuPairs, err2 := api.JdAPI.AddSpu(utils.Int2Str(skuExt.ID), skuExt.JdCategoryID, shopCategories, skuExt.BrandID, spuName, []string{skuExt.Img}, jxStatus2jdStatus(skuExt.Status), spuAddParams, skus)
vendorSpuID, skuPairs, err2 := getAPI("").AddSpu(utils.Int2Str(skuExt.ID), skuExt.JdCategoryID, shopCategories, skuExt.BrandID, spuName, []string{skuExt.Img}, jxStatus2jdStatus(skuExt.Status), spuAddParams, skus)
if err = err2; err == nil {
skuExt.JdID = vendorSpuID
// skuNameJdID = skuExt.JdID // 这个是故意去掉的这样之后的首次SKU修改操作就会被忽略下一条语句也就可以不用了
@@ -460,7 +459,7 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt
}, spuAddParams)
updateFields = append(updateFields, model.FieldJdSyncStatus)
if globals.EnableStoreWrite {
err = api.JdAPI.UpdateSpu(utils.Int2Str(skuExt.ID), params)
err = getAPI("").UpdateSpu(utils.Int2Str(skuExt.ID), params)
}
}
if err == nil {
@@ -474,7 +473,7 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt
if err == nil && !jxutils.IsEmptyID(skuNameJdID) {
if sku.JdSyncStatus&model.SyncFlagNewMask != 0 { // 非首次新增SKU
if globals.EnableStoreWrite {
vendorSkuID2, err2 := api.JdAPI.AppendSku(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), skuName, price, jxutils.IntWeight2Float(sku.Weight), []string{skuExt.Img}, jxStatus2jdStatus(sku.Status), true, composeSkuSpec(sku.SpecQuality, sku.SpecUnit, skuExt.Unit), skuAddParams)
vendorSkuID2, err2 := getAPI("").AppendSku(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), skuName, price, jxutils.IntWeight2Float(sku.Weight), []string{skuExt.Img}, jxStatus2jdStatus(sku.Status), true, composeSkuSpec(sku.SpecQuality, sku.SpecUnit, skuExt.Unit), skuAddParams)
if err = err2; err == nil {
vendorSkuID = utils.Int64ToStr(vendorSkuID2)
}
@@ -487,13 +486,13 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt
params[jdapi.KeyWeight] = jxutils.IntWeight2Float(sku.Weight)
params[jdapi.KeySkuPrice] = price
if globals.EnableStoreWrite {
err = api.JdAPI.UpdateSkuBaseInfo(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), utils.MergeMaps(params, skuAddParams))
err = getAPI("").UpdateSkuBaseInfo(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), utils.MergeMaps(params, skuAddParams))
if sku.JdSyncStatus&model.SyncFlagSpecMask != 0 {
skuIndex := sku.SkuIndex
if skuIndex > 0 {
saleAttrValue := composeSkuSpec(sku.SpecQuality, sku.SpecUnit, skuExt.Unit)
globals.SugarLogger.Debugf("syncSkuNameAsSpu outSuperId:%d, saleAttrId:%d, saleAttrValueId:%d, saleAttrValueName:%s", skuExt.ID, jdapi.SaleAttrIDBase, jdapi.SaleAttrValueIDBase+skuIndex-1, saleAttrValue)
err = api.JdAPI.UpdateSpuSaleAttr(utils.Int2Str(skuExt.ID), utils.Int2Str(jdapi.SaleAttrIDBase), "", utils.Int2Str(jdapi.SaleAttrValueIDBase+skuIndex-1), saleAttrValue)
err = getAPI("").UpdateSpuSaleAttr(utils.Int2Str(skuExt.ID), utils.Int2Str(jdapi.SaleAttrIDBase), "", utils.Int2Str(jdapi.SaleAttrValueIDBase+skuIndex-1), saleAttrValue)
}
}
}
@@ -543,7 +542,7 @@ func jxStatus2jdStatus(jxStatus int) (jdStatus int) {
}
func (p *PurchaseHandler) getVendorCategories(level int, pid int64) (vendorCats []*model.SkuVendorCategory, err error) {
cats, err := api.JdAPI.QueryChildCategoriesForOP(pid)
cats, err := getAPI("").QueryChildCategoriesForOP(pid)
if err != nil {
return nil, err
}
@@ -589,7 +588,7 @@ func (p *PurchaseHandler) GetSkus(ctx *jxcontext.Context, skuID int, vendorSkuID
PageSize: jdapi.MaxSkuIDsCount4QueryListBySkuIds, // 为了同时取图这个值不要大于jdapi.MaxSkuIDsCount4QueryListBySkuIds
}
for {
skuList, _, err2 := api.JdAPI.QuerySkuInfos(param)
skuList, _, err2 := getAPI("").QuerySkuInfos(param)
if err = err2; err != nil {
return nil, err
}
@@ -616,7 +615,7 @@ func setSkuNameListPic(skuNameList []*partner.SkuNameInfo) []*partner.SkuNameInf
}
imgMap := make(map[int64]*jdapi.ImgHandleQueryResult)
if imgList, err2 := api.JdAPI.QueryListBySkuIds(&jdapi.QueryListBySkuIdsParam{
if imgList, err2 := getAPI("").QueryListBySkuIds(&jdapi.QueryListBySkuIdsParam{
SkuIDs: jdSkuIDs,
}); err2 == nil {
for _, v := range imgList {
@@ -640,7 +639,7 @@ func setSkuNameListPic(skuNameList []*partner.SkuNameInfo) []*partner.SkuNameInf
task := tasksch.NewParallelTask("jd setSkuNameListPic", nil, jxcontext.AdminCtx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
jdSkuID := batchItemList[0].(int64)
imgList, err := api.JdAPI.GetSkuPageImageInfo(jdSkuID)
imgList, err := getAPI("").GetSkuPageImageInfo(jdSkuID)
if err == nil && len(imgList) > 0 {
retVal = [][]string{
[]string{utils.Int64ToStr(jdSkuID), imgList[0].Big},