diff --git a/business/jxstore/report/report.go b/business/jxstore/report/report.go index fd429939f..cc2201e9c 100644 --- a/business/jxstore/report/report.go +++ b/business/jxstore/report/report.go @@ -263,22 +263,12 @@ func BeginSavePriceRefer(ctx *jxcontext.Context, cityCodes, skuIDs []int, isAsyn v := batchItemList[0].(*model.PriceReferSnapshot) for _, appOrg := range apimanager.CurAPIManager.GetAppOrgCodeList(model.VendorIDJD) { directPrice, _ := jd.GetAPI(appOrg).GetJdSkuDirectPrice(v.SkuID) - dao.Begin(db) - defer func() { - if r := recover(); r != nil || err != nil { - dao.Rollback(db) - if r != nil { - panic(r) - } - } - }() if directPrice == 0 { continue } else { v.JdDirectPrice = int(directPrice) dao.UpdateEntity(db, v, "JdDirectPrice") } - dao.Commit(db) } return retVal, err } diff --git a/business/model/dao/store.go b/business/model/dao/store.go index 8dbd17e77..0b3db52fc 100644 --- a/business/model/dao/store.go +++ b/business/model/dao/store.go @@ -627,12 +627,12 @@ func GetStorePriceScoreSnapshot(db *DaoDB, snapDate time.Time) (storePriceScoreS sql := ` SELECT c.store_id,ROUND(count(c.unit_price * IF(d.pay_percentage < 50 , 70, d.pay_percentage) / 100 <= a.mid_unit_price or NULL)/count(*)*100,2) score FROM price_refer_snapshot a - JOIN store_sku_bind c ON c.sku_id = a.sku_id AND c.status = ? AND c.deleted_at = ? + JOIN store_sku_bind c ON c.sku_id = a.sku_id AND c.deleted_at = ? JOIN store d ON c.store_id = d.id AND d.city_code = a.city_code AND d.deleted_at = ? AND d.status != ? WHERE 1=1 ` sqlParams := []interface{}{ - model.StoreSkuBindStatusNormal, utils.DefaultTimeValue, + utils.DefaultTimeValue, utils.DefaultTimeValue, model.StoreStatusDisabled, } if !utils.IsTimeZero(snapDate) { diff --git a/business/partner/purchase/ebai/store_sku2.go b/business/partner/purchase/ebai/store_sku2.go index 2fa8248b4..e90477fc1 100644 --- a/business/partner/purchase/ebai/store_sku2.go +++ b/business/partner/purchase/ebai/store_sku2.go @@ -71,10 +71,24 @@ func (p *PurchaseHandler) IsErrCategoryNotExist(err error) (isNotExist bool) { return ebaiapi.IsErrCategoryNotExist(err) } +func getCheckExdStoreNameAndSeq(storeID int, storeCat *dao.SkuStoreCatInfo) (name string, seq int) { + store, err := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDEBAI) + if err != nil || store == nil { + return storeCat.Name, storeCat.Seq + } + if strings.Contains(store.Name, model.ExdStoreName) { + return storeCat.ExdName, storeCat.ExdSeq + } else { + return storeCat.Name, storeCat.Seq + } + return name, seq +} + func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { var vendorCatID int64 if globals.EnableEbaiStoreWrite { - vendorCatID, err = api.EbaiAPI.ShopCategoryCreate(utils.Int2Str(storeID), utils.Str2Int64WithDefault(storeCat.ParentVendorCatID, 0), formatCatName(storeCat.Name), jxCatSeq2Ebai(storeCat.Seq)) + catName, catSeq := getCheckExdStoreNameAndSeq(storeID, storeCat) + vendorCatID, err = api.EbaiAPI.ShopCategoryCreate(utils.Int2Str(storeID), utils.Str2Int64WithDefault(storeCat.ParentVendorCatID, 0), formatCatName(catName), jxCatSeq2Ebai(catSeq)) } else { vendorCatID = jxutils.GenFakeID() } @@ -84,7 +98,8 @@ func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID in func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { if globals.EnableEbaiStoreWrite { - err = api.EbaiAPI.ShopCategoryUpdate(utils.Int2Str(storeID), utils.Str2Int64WithDefault(storeCat.VendorCatID, 0), formatCatName(storeCat.Name), jxCatSeq2Ebai(storeCat.Seq)) + catName, catSeq := getCheckExdStoreNameAndSeq(storeID, storeCat) + err = api.EbaiAPI.ShopCategoryUpdate(utils.Int2Str(storeID), utils.Str2Int64WithDefault(storeCat.VendorCatID, 0), formatCatName(catName), jxCatSeq2Ebai(catSeq)) // todo, 饿百将一个分类重复改名,也会报分类名重复错,特殊处理一下,不过因为GetStoreCategory其实会拉取所有的门店分类,是比较耗时的操作 if utils.IsErrMatch(err, "1", []string{"分类名称已经存在"}) { if cat, err2 := p.GetStoreCategory(ctx, storeID, vendorStoreID, storeCat.Name); err2 == nil {