对比差异程序修改
This commit is contained in:
@@ -29,7 +29,7 @@ const (
|
||||
)
|
||||
|
||||
const (
|
||||
DatAanalyse1 = "京东商品库直接创建,正常数据 "
|
||||
DatAanalyse1 = "京东商品库直接创建,京西无数据"
|
||||
DatAanalyse2 = "京东商品库未创建成功(可能无经营许可等) "
|
||||
DatAanalyse3 = "商品名不同 "
|
||||
DatAanalyse4 = "商品可售状态不同 "
|
||||
@@ -175,7 +175,7 @@ func GetMultiStoreAllSkuInfoList(vendorID int) []*partner.StoreSkuInfo {
|
||||
return multiStoreAllSkuInfoList[vendorID]
|
||||
}
|
||||
|
||||
func GetMultiStoreAllSkuInfo(ctx *jxcontext.Context, vendorMap map[int]bool) {
|
||||
func GetMultiStoreAllSkuInfo(ctx *jxcontext.Context, vendorMap map[int]bool) (allSkuNameInfoList []*partner.SkuNameInfo) {
|
||||
InitMultiStoreData()
|
||||
filterCloseSkuIds = filterCloseSkuIds[0:0]
|
||||
for vendorID, _ := range vendorNameList {
|
||||
@@ -196,16 +196,17 @@ func GetMultiStoreAllSkuInfo(ctx *jxcontext.Context, vendorMap map[int]bool) {
|
||||
for _, value := range allSkuNameInfoList {
|
||||
for _, skuInfo := range value.SkuList {
|
||||
//表示平台商品库未下架的
|
||||
if skuInfo.Status != 0 {
|
||||
if skuInfo.Status > model.SkuStatusDontSale {
|
||||
filterCloseSkuIds = append(filterCloseSkuIds, skuInfo.SkuID)
|
||||
tempMap[skuInfo.SkuID] = value
|
||||
}
|
||||
tempMap[skuInfo.SkuID] = value
|
||||
}
|
||||
}
|
||||
multiStoreAllSkuInfoMap[vendorID] = tempMap //map[平台ID][map[skuID1:SkuNameInfo1,skuID2:SkuNameInfo2]...]
|
||||
}
|
||||
}
|
||||
}
|
||||
return allSkuNameInfoList
|
||||
}
|
||||
|
||||
func GetFilterJxSkuInfoMap(jxSkuInfoList []*StoreSkuNameExt) map[int]*StoreSkuNameExt {
|
||||
@@ -308,6 +309,7 @@ func IsSkuCanSale(saleStatus int) bool {
|
||||
//storeIDStr 京西商家id ,vendorStoreID 平台商家id
|
||||
func CompareJxAndVendor(vendorID int, storeIDStr, vendorStoreID, storeName string, filterJxSkuInfoMap map[int]*StoreSkuNameExt, filterVendorSkuInfoMap map[int]*partner.SkuNameInfo) {
|
||||
for skuID, jxSkuInfo := range filterJxSkuInfoMap {
|
||||
reason := ``
|
||||
skuIDStr := utils.Int2Str(skuID)
|
||||
//jxSkuDetailName : 前缀 ([荐]) + 分类名(xxx水饺) + 数量单位(约..g/份) + 注释 (补充..)
|
||||
jxSkuDetailName := jxutils.ComposeSkuName(jxSkuInfo.SkuName.Prefix, jxSkuInfo.SkuName.Name, jxSkuInfo.Skus2[0].Comment, jxSkuInfo.SkuName.Unit, jxSkuInfo.Skus2[0].SkuSpecQuality, jxSkuInfo.Skus2[0].SkuSpecUnit, 0)
|
||||
@@ -338,14 +340,20 @@ func CompareJxAndVendor(vendorID int, storeIDStr, vendorStoreID, storeName strin
|
||||
isNameDiff = false
|
||||
}
|
||||
if isSaleStatusDiff || isNameDiff {
|
||||
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, syncStatus, toBeCreate, toBeDel, jxSkuDetailName, vendorSkuDetailName, jxSkuSaleStatusName, vendorSkuSaleStatusName, ""}
|
||||
if isNameDiff {
|
||||
reason += DatAanalyse3
|
||||
}
|
||||
if isSaleStatusDiff {
|
||||
reason += DatAanalyse4
|
||||
}
|
||||
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, syncStatus, toBeCreate, toBeDel, jxSkuDetailName, vendorSkuDetailName, jxSkuSaleStatusName, vendorSkuSaleStatusName, reason}
|
||||
diffData.AppendData(vendorID, outPutData)
|
||||
}
|
||||
} else {
|
||||
if isFilterToBeCreateAndNotSale && model.IsSyncStatusNeedCreate(status) && !IsSkuCanSale(jxSkuSaleStatus) {
|
||||
continue
|
||||
}
|
||||
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, syncStatus, toBeCreate, toBeDel, jxSkuDetailName, "", jxSkuSaleStatusName, "", ""}
|
||||
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, syncStatus, toBeCreate, toBeDel, jxSkuDetailName, "", jxSkuSaleStatusName, "", DatAanalyse2}
|
||||
diffData.AppendData(vendorID, outPutData)
|
||||
}
|
||||
}
|
||||
@@ -370,7 +378,7 @@ func CompareJxAndVendor(vendorID int, storeIDStr, vendorStoreID, storeName strin
|
||||
}
|
||||
}
|
||||
|
||||
func CompareJxAndMultiVenderDepot(ctx *jxcontext.Context, vendorMap map[int]bool) {
|
||||
func CompareJxAndMultiVenderDepot(ctx *jxcontext.Context, vendorMap map[int]bool, allSkuNameInfoList []*partner.SkuNameInfo) {
|
||||
db := dao.GetDB()
|
||||
for vendorID, _ := range vendorNameList {
|
||||
//filter for vendorID
|
||||
@@ -380,8 +388,6 @@ func CompareJxAndMultiVenderDepot(ctx *jxcontext.Context, vendorMap map[int]bool
|
||||
}
|
||||
}
|
||||
if partner.IsMultiStore(vendorID) {
|
||||
multiHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IMultipleStoresHandler)
|
||||
allSkuNameInfoList, _ := multiHandler.GetSkus(ctx, 0, "", "")
|
||||
filterVendorSkuInfoMap := GetFilterVendorSkuInfoMap(allSkuNameInfoList)
|
||||
skuList, _ := dao.GetSkus(db, []int{}, []int{}, []int{}, []int{})
|
||||
filterJxSkuInfoMap2 := GetFilterJxSkuInfoMap2(skuList)
|
||||
@@ -438,6 +444,7 @@ func CompareJxAndMultiVenderDepot(ctx *jxcontext.Context, vendorMap map[int]bool
|
||||
|
||||
//入口函数,校验本地商品京西和其他平台的差异
|
||||
func CheckSkuDiffBetweenJxAndVendor(ctx *jxcontext.Context, vendorIDList []int, storeIDList []int) {
|
||||
var allSkuNameInfoList []*partner.SkuNameInfo
|
||||
startProcessTime := time.Now().Unix()
|
||||
baseapi.SugarLogger.Debugf("CheckSkuDiffBetweenJxAndVendor start time: %v", time.Now())
|
||||
vendorMap := make(map[int]bool)
|
||||
@@ -454,11 +461,11 @@ func CheckSkuDiffBetweenJxAndVendor(ctx *jxcontext.Context, vendorIDList []int,
|
||||
//获取所有多门店平台的商品信息
|
||||
//1.循环传进来的平台id,如果是多门店的平台,查询该门店京东到家平台的所有商品
|
||||
//2.为multiStoreAllSkuInfoList 和 multiStoreAllSkuInfoMap 赋值
|
||||
GetMultiStoreAllSkuInfo(ctx, vendorMap)
|
||||
allSkuNameInfoList = GetMultiStoreAllSkuInfo(ctx, vendorMap)
|
||||
case 1:
|
||||
//对比京西库和多门店平台的库的信息
|
||||
depotDiffData.InitData2()
|
||||
CompareJxAndMultiVenderDepot(ctx, vendorMap)
|
||||
CompareJxAndMultiVenderDepot(ctx, vendorMap, allSkuNameInfoList)
|
||||
case 2:
|
||||
//1.获取京西本地所有门店信息 store、place、user表联查 jxStoreInfoList
|
||||
//2.过滤所有门店信息,只留下传进来的vendorMap,storeIDMap中对应的平台和门台信息 filterStoreList
|
||||
|
||||
Reference in New Issue
Block a user