This commit is contained in:
richboo111
2023-06-28 11:39:41 +08:00
50 changed files with 2523 additions and 2391 deletions

View File

@@ -177,6 +177,8 @@ func getVendorPriceFromStoreSkuBind(bind *model.StoreSkuBind, vendorID int) (ven
vendorPrice = bind.JxPrice
case model.VendorIDDD:
vendorPrice = bind.DdPrice
case model.VendorIDTaoVegetable:
vendorPrice = bind.TaoPrice
}
return vendorPrice
}

View File

@@ -451,6 +451,7 @@ func DeleteCategoryMap(ctx *jxcontext.Context, db *dao.DaoDB, categoryID int) (n
return dao.DeleteEntityLogically(db, catMap, map[string]interface{}{
model.FieldEbaiSyncStatus: model.SyncFlagDeletedMask,
model.FieldMtwmSyncStatus: model.SyncFlagDeletedMask,
model.FieldTaoSyncStatus: model.SyncFlagDeletedMask,
}, ctx.GetUserName(), map[string]interface{}{
model.FieldCategoryID: categoryID,
model.FieldDeletedAt: utils.DefaultTimeValue,
@@ -1188,10 +1189,10 @@ func getCategoryByImg(img ...string) string {
}
// 根据平台返回的分类id,获取本地绑定的映射分类id
func getJDCategoryLoadingLocalCategoryReflex(jdCategoryId, jdsCategoryID, ebaiCategoryID, mtwmCategoryID string, jxCategoryId int) (string, string, string, int) {
func getJDCategoryLoadingLocalCategoryReflex(jdCategoryId, jdsCategoryID, ebaiCategoryID, mtwmCategoryID, taoCategoryID string, jxCategoryId int) (string, string, string, string, int) {
cats, err := dao.GetCategoriesByName(dao.GetDB(), "", jdCategoryId)
if len(cats) == 0 || err != nil {
return jdsCategoryID, ebaiCategoryID, mtwmCategoryID, 0
return jdsCategoryID, ebaiCategoryID, mtwmCategoryID, taoCategoryID, 0
} else {
if jdsCategoryID == "" && cats[0].JdsCategoryID != 0 {
jdsCategoryID = utils.Int64ToStr(cats[0].JdsCategoryID)
@@ -1202,11 +1203,14 @@ func getJDCategoryLoadingLocalCategoryReflex(jdCategoryId, jdsCategoryID, ebaiCa
if mtwmCategoryID == "" && cats[0].MtwmCategoryID != 0 {
mtwmCategoryID = utils.Int64ToStr(cats[0].MtwmCategoryID)
}
if taoCategoryID == "" && cats[0].TaoCategoryID != 0 {
taoCategoryID = utils.Int64ToStr(cats[0].TaoCategoryID)
}
if jxCategoryId == 0 || jxCategoryId == 291 {
jxCategoryId = cats[0].ID
}
}
return jdsCategoryID, ebaiCategoryID, mtwmCategoryID, jxCategoryId
return jdsCategoryID, ebaiCategoryID, mtwmCategoryID, taoCategoryID, jxCategoryId
}
func updateOrCreateSkuVendorCategoryMap(db *dao.DaoDB, ctx *jxcontext.Context, nameID int, payload map[string]interface{}, skuNameExt *model.SkuNameExt, isDelete bool) (flag bool) {
@@ -1242,6 +1246,7 @@ func updateOrCreateSkuVendorCategoryMap(db *dao.DaoDB, ctx *jxcontext.Context, n
jdsCategoryID := ""
ebaiCategoryID := ""
mtwmCategoryID := ""
taoCategoryID := ""
ddCategoryID := ""
jxCategoryID := 0
if skuNameExt != nil {
@@ -1252,7 +1257,7 @@ func updateOrCreateSkuVendorCategoryMap(db *dao.DaoDB, ctx *jxcontext.Context, n
}
if jdCategoryId != "" && jdCategoryId != "0" {
jdsCategoryID, ebaiCategoryID, mtwmCategoryID, jxCategoryID = getJDCategoryLoadingLocalCategoryReflex(jdCategoryId, skuNameExt.JdsCategoryID, skuNameExt.EbaiCategoryID, skuNameExt.MtwmCategoryID, skuNameExt.CategoryID)
jdsCategoryID, ebaiCategoryID, mtwmCategoryID, taoCategoryID, jxCategoryID = getJDCategoryLoadingLocalCategoryReflex(jdCategoryId, skuNameExt.JdsCategoryID, skuNameExt.EbaiCategoryID, skuNameExt.MtwmCategoryID, skuNameExt.TaoCategoryID, skuNameExt.CategoryID)
} else {
jdsCategoryID = skuNameExt.JdsCategoryID
ebaiCategoryID = skuNameExt.EbaiCategoryID
@@ -1323,7 +1328,7 @@ func updateOrCreateSkuVendorCategoryMap(db *dao.DaoDB, ctx *jxcontext.Context, n
}
if jdCategoryId != "" {
jdsCategoryID, ebaiCategoryID, mtwmCategoryID, jxCategoryID = getJDCategoryLoadingLocalCategoryReflex(jdCategoryId, jdsCategoryID, ebaiCategoryID, mtwmCategoryID, jxCategoryID)
jdsCategoryID, ebaiCategoryID, mtwmCategoryID, taoCategoryID, jxCategoryID = getJDCategoryLoadingLocalCategoryReflex(jdCategoryId, jdsCategoryID, ebaiCategoryID, mtwmCategoryID, taoCategoryID, jxCategoryID)
}
if payload["ddCategoryID"] != nil {
@@ -1645,6 +1650,7 @@ func refreshStoreSkuPrice(ctx *jxcontext.Context, db *dao.DaoDB, skuID int) (err
storeSku.ID = v.BindID
storeSku.JdSyncStatus = v.JdSyncStatus | model.SyncFlagPriceMask
storeSku.MtwmSyncStatus = v.MtwmSyncStatus | model.SyncFlagPriceMask
storeSku.TaoSyncStatus = v.TaoSyncStatus | model.SyncFlagPriceMask
storeSku.EbaiSyncStatus = v.EbaiSyncStatus | model.SyncFlagPriceMask
storeSku.Price = jxutils.CaculateSkuPrice(int(v.UnitPrice), v.SpecQuality, v.SpecUnit, v.Unit)
storeSku.JxPrice = jxutils.CaculatePriceByPricePack(storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage), int(storeSku.Price))
@@ -1659,7 +1665,7 @@ func refreshStoreSkuPrice(ctx *jxcontext.Context, db *dao.DaoDB, skuID int) (err
}
}
}()
dao.UpdateEntity(db, storeSku, "Price", "JdSyncStatus", "MtwmSyncStatus", "EbaiSyncStatus", "JxPrice", "LastOperator")
dao.UpdateEntity(db, storeSku, "Price", "JdSyncStatus", "MtwmSyncStatus", "TaoSyncStatus", "EbaiSyncStatus", "JxPrice", "LastOperator")
dao.Commit(db, txDB)
return retVal, err
}, list)
@@ -1730,6 +1736,7 @@ func DeleteStoreSku(ctx *jxcontext.Context, db *dao.DaoDB, nameID, skuID int) (n
_, err = dao.DeleteEntityLogically(db, storeSkuBind, map[string]interface{}{
model.FieldJdSyncStatus: model.SyncFlagDeletedMask,
model.FieldMtwmSyncStatus: model.SyncFlagDeletedMask,
model.FieldTaoSyncStatus: model.SyncFlagDeletedMask,
model.FieldEbaiSyncStatus: model.SyncFlagDeletedMask,
model.FieldJdsSyncStatus: model.SyncFlagDeletedMask,
}, ctx.GetUserName(), map[string]interface{}{

View File

@@ -719,7 +719,7 @@ func getGetStoresSkusBaseSQL(db *dao.DaoDB, storeIDs, skuIDs []int, upcs []strin
sql += " AND t4.status >= ? AND t4.status <= ?"
sqlParams = append(sqlParams, fromStatus, toStatus)
}
if params["jdSyncStatus"] != nil || params["ebaiSyncStatus"] != nil || params["mtwmSyncStatus"] != nil {
if params["jdSyncStatus"] != nil || params["ebaiSyncStatus"] != nil || params["mtwmSyncStatus"] != nil || params["taoSyncStatus"] != nil {
realVendorMap, err2 := getValidStoreVendorMap(db, storeIDs)
if err = err2; err != nil {
return "", nil, err
@@ -741,6 +741,10 @@ func getGetStoresSkusBaseSQL(db *dao.DaoDB, storeIDs, skuIDs []int, upcs []strin
sql += " OR (t4.mtwm_sync_status & ? <> 0 AND NOT (t4.mtwm_sync_status & ? <> 0 AND (t4.status <> ? OR t2.status <> ?)) )"
sqlParams = append(sqlParams, params["mtwmSyncStatus"], model.SyncFlagNewMask, model.SkuStatusNormal, model.SkuStatusNormal)
}
if params["taoSyncStatus"] != nil && realVendorMap[model.VendorIDTaoVegetable] == 1 {
sql += " OR (t4.tao_sync_status & ? <> 0 AND NOT (t4.tao_sync_status & ? <> 0 AND (t4.status <> ? OR t2.status <> ?)) )"
sqlParams = append(sqlParams, params["taoSyncStatus"], model.SyncFlagNewMask, model.SkuStatusNormal, model.SkuStatusNormal)
}
sql += ")"
}
}
@@ -981,7 +985,7 @@ func getGetStoresSkusBaseSQL2(db *dao.DaoDB, storeIDs, skuIDs []int, upcs []stri
sql += " AND t4.status >= ? AND t4.status <= ?"
sqlParams = append(sqlParams, fromStatus, toStatus)
}
if params["jdSyncStatus"] != nil || params["ebaiSyncStatus"] != nil || params["mtwmSyncStatus"] != nil {
if params["jdSyncStatus"] != nil || params["ebaiSyncStatus"] != nil || params["mtwmSyncStatus"] != nil || params["taoSyncStatus"] != nil {
realVendorMap, err2 := getValidStoreVendorMap(db, storeIDs)
if err = err2; err != nil {
return "", nil, err
@@ -1003,6 +1007,10 @@ func getGetStoresSkusBaseSQL2(db *dao.DaoDB, storeIDs, skuIDs []int, upcs []stri
sql += " OR (t4.dd_sync_status & ? <> 0 AND NOT (t4.dd_sync_status & ? <> 0 AND (t4.status <> ? OR t2.status <> ?)) )"
sqlParams = append(sqlParams, params["ddSyncStatus"], model.SyncFlagNewMask, model.SkuStatusNormal, model.SkuStatusNormal)
}
if params["taoSyncStatus"] != nil && realVendorMap[model.VendorIDTaoVegetable] == 1 {
sql += " OR (t4.tao_sync_status & ? <> 0 AND NOT (t4.tao_sync_status & ? <> 0 AND (t4.status <> ? OR t2.status <> ?)) )"
sqlParams = append(sqlParams, params["taoSyncStatus"], model.SyncFlagNewMask, model.SkuStatusNormal, model.SkuStatusNormal)
}
sql += ")"
}
}
@@ -2066,6 +2074,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
skuBind.ID = deletedSku.ID
// vendorSkuID的赋值意义不大
skuBind.MtwmID = deletedSku.MtwmID
skuBind.TaoID = deletedSku.TaoID
skuBind.EbaiID = deletedSku.EbaiID
skuBind.JdsID = deletedSku.JdsID
skuBind.JdsWareID = deletedSku.JdsWareID
@@ -2125,6 +2134,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
model.FieldJdSyncStatus: model.SyncFlagDeletedMask,
model.FieldEbaiSyncStatus: model.SyncFlagDeletedMask,
model.FieldMtwmSyncStatus: model.SyncFlagDeletedMask,
model.FieldTaoSyncStatus: model.SyncFlagDeletedMask,
model.FieldYbSyncStatus: model.SyncFlagDeletedMask,
model.FieldJdsSyncStatus: model.SyncFlagDeletedMask,
model.FieldDdSyncStatus: model.SyncFlagDeletedMask,
@@ -2262,6 +2272,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
updateFieldMap[model.FieldJdSyncStatus] = 1
updateFieldMap[model.FieldEbaiSyncStatus] = 1
updateFieldMap[model.FieldMtwmSyncStatus] = 1
updateFieldMap[model.FieldTaoSyncStatus] = 1
updateFieldMap[model.FieldDdSyncStatus] = 1
updateFieldMap[model.FieldUpdatedAt] = 1
updateFieldMap[model.FieldLastOperator] = 1
@@ -2424,6 +2435,7 @@ func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBind
model.FieldJdSyncStatus: skuBind.JdSyncStatus | model.SyncFlagSaleMask,
model.FieldEbaiSyncStatus: skuBind.EbaiSyncStatus | model.SyncFlagSaleMask,
model.FieldMtwmSyncStatus: skuBind.MtwmSyncStatus | model.SyncFlagSaleMask,
model.FieldTaoSyncStatus: skuBind.TaoSyncStatus | model.SyncFlagSaleMask,
model.FieldDdSyncStatus: skuBind.DdSyncStatus | model.SyncFlagSaleMask,
}
if utils.IsTimeZero(autoSaleTime) || skuBind.Status == model.SkuStatusNormal {
@@ -3195,6 +3207,7 @@ func setStoreSkuBindStatus(skuBind *model.StoreSkuBind, status int8) {
skuBind.JdSyncStatus |= status
skuBind.EbaiSyncStatus |= status
skuBind.MtwmSyncStatus |= status
skuBind.TaoSyncStatus |= status
skuBind.YbSyncStatus |= status
skuBind.JdsSyncStatus |= status
skuBind.DdSyncStatus |= status
@@ -5495,6 +5508,7 @@ func buildStoreSkuBindInfosAndFocus(ctx *jxcontext.Context, db *dao.DaoDB, store
JxPrice: jxPrice,
YbSyncStatus: 0,
MtwmSyncStatus: model.SyncFlagNewMask,
TaoSyncStatus: model.SyncFlagNewMask,
JdSyncStatus: model.SyncFlagNewMask,
EbaiSyncStatus: model.SyncFlagNewMask,
}

View File

@@ -397,6 +397,8 @@ func CompareJxAndVendor(vendorID int, storeIDStr, vendorStoreID, storeName strin
status = jxSkuInfo.Skus[0].EbaiSyncStatus
} else if vendorID == model.VendorIDJD {
status = jxSkuInfo.Skus[0].JdSyncStatus
} else if vendorID == model.VendorIDTaoVegetable {
status = jxSkuInfo.Skus[0].TaoSyncStatus
}
syncStatus := utils.Int2Str(int(status))
toBeCreate := GetBoolName(model.IsSyncStatusNeedCreate(status))

View File

@@ -69,6 +69,10 @@ func CreateStoreCategoryByStoreSku(ctx *jxcontext.Context, vendorID, storeID int
}
func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorID, storeID int, vendorStoreID string, nameIDs, skuIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) {
// 668594 正式服印象汇 668469 测试服芬姐
if storeID != 668594 && storeID != 668469 && vendorID == model.VendorIDTaoVegetable {
return "", nil
}
handler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler)
num := 0
db := dao.GetDB()
@@ -551,9 +555,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
}
} else {
if sku.MergedStatus == model.SkuStatusNormal {
if vendorID == model.VendorIDDD {
createList = append(createList, sku)
} else if dao.IsVendorThingIDEmpty(sku.VendorCatID) && !strings.Contains(sku.StoreName, model.ExdStoreName) && vendorID != model.VendorIDYB && vendorID != model.VendorIDJDShop {
if dao.IsVendorThingIDEmpty(sku.VendorCatID) && !strings.Contains(sku.StoreName, model.ExdStoreName) && vendorID != model.VendorIDYB && vendorID != model.VendorIDDD || vendorID != model.VendorIDJDShop {
globals.SugarLogger.Warnf("syncStoreSkuNew 创建门店:%d商品:%d但没有平台分类ID", storeID, sku.SkuID)
} else if dao.IsVendorThingIDEmpty(utils.Int64ToStr(sku.VendorVendorCatID)) && vendorID == model.VendorIDJDShop {
globals.SugarLogger.Warnf("syncStoreSkuNew 创建门店:%d商品:%d但没有映射的平台ID", storeID, sku.SkuID)