修正比较数据的BUG,添加SkuID字段到DiffData结构体

This commit is contained in:
Rosy-zhudan
2019-08-05 16:32:20 +08:00
parent dd76433a5d
commit 9afb12ced7

View File

@@ -32,6 +32,7 @@ var (
"京西门店ID",
"平台门店ID",
"门店名",
"SkuID",
"京西商品名",
"平台商品名",
"京西可售状态",
@@ -46,6 +47,7 @@ type DiffData struct {
JxStoreID string `json:"京西门店ID"`
VendorStoreID string `json:"平台门店ID"`
VendorStoreName string `json:"门店名"`
SkuID string `json:"SkuID"`
JxSkuName string `json:"京西商品名"`
VendorSkuName string `json:"平台商品名"`
JxStatus string `json:"京西可售状态"`
@@ -123,39 +125,34 @@ func GetSkuStatusName(status int) string {
func CompareJxAndJd(vendorID int, storeIDStr, vendorStoreID, storeName string,
filterJxSkuInfoMap map[int]*StoreSkuNameExt,
filterJdSkuInfoMap map[int]*partner.StoreSkuInfo) {
for skuID, jxSkuInfo := range filterJxSkuInfoMap {
jxSkuDetailName := jxutils.ComposeSkuName(jxSkuInfo.SkuName.Prefix, jxSkuInfo.SkuName.Name, "", jxSkuInfo.SkuName.Unit, jxSkuInfo.SkuName.SpecQuality, jxSkuInfo.SkuName.SpecUnit, 0)
jxSkuStatusName := GetSkuStatusName(jxSkuInfo.Skus2[0].SkuStatus)
for skuID, jxSkuInfo := range filterJxSkuInfoMap {
skuIDStr := utils.Int2Str(skuID)
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)
jxSkuStatus := jxutils.MergeSkuStatus(jxSkuInfo.Skus2[0].SkuStatus, jxSkuInfo.Skus2[0].StoreSkuStatus)
jxSkuStatusName := GetSkuStatusName(jxSkuStatus)
vendorSkuInfo := filterJdSkuInfoMap[skuID]
if vendorSkuInfo != nil {
vendorSkuInfo := jdAllSkuInfoMap[vendorSkuInfo.SkuID]
vendorSkuDetailName := vendorSkuInfo.SkuList[0].SkuName
vendorSkuStatusName := GetSkuStatusName(vendorSkuInfo.SkuList[0].Status)
if jxSkuStatusName != vendorSkuStatusName || jxSkuDetailName != vendorSkuDetailName {
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, jxSkuDetailName, vendorSkuDetailName, jxSkuStatusName, jxSkuStatusName}
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, jxSkuDetailName, vendorSkuDetailName, jxSkuStatusName, vendorSkuStatusName}
diffData[vendorID] = append(diffData[vendorID], outPutData)
}
} else {
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, jxSkuDetailName, "", jxSkuStatusName, ""}
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, jxSkuDetailName, "", jxSkuStatusName, ""}
diffData[vendorID] = append(diffData[vendorID], outPutData)
}
}
for skuID, _ := range filterJdSkuInfoMap {
skuIDStr := utils.Int2Str(skuID)
vendorSkuInfo := jdAllSkuInfoMap[skuID]
vendorSkuDetailName := vendorSkuInfo.SkuList[0].SkuName
vendorSkuStatusName := GetSkuStatusName(vendorSkuInfo.SkuList[0].Status)
jxSkuInfo := filterJxSkuInfoMap[skuID]
if jxSkuInfo != nil {
jxSkuDetailName := jxutils.ComposeSkuName(jxSkuInfo.SkuName.Prefix, jxSkuInfo.SkuName.Name, "", jxSkuInfo.SkuName.Unit, jxSkuInfo.SkuName.SpecQuality, jxSkuInfo.SkuName.SpecUnit, 0)
jxSkuStatusName := GetSkuStatusName(jxSkuInfo.Skus2[0].SkuStatus)
if jxSkuStatusName != vendorSkuStatusName || jxSkuDetailName != vendorSkuDetailName {
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, jxSkuDetailName, vendorSkuDetailName, jxSkuStatusName, jxSkuStatusName}
diffData[vendorID] = append(diffData[vendorID], outPutData)
}
} else {
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, vendorSkuDetailName, "", vendorSkuStatusName, ""}
if jxSkuInfo == nil {
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, "", vendorSkuDetailName, "", vendorSkuStatusName}
diffData[vendorID] = append(diffData[vendorID], outPutData)
}
}
@@ -164,37 +161,33 @@ func CompareJxAndJd(vendorID int, storeIDStr, vendorStoreID, storeName string,
func CompareJxAndVendor(vendorID int, storeIDStr, vendorStoreID, storeName string,
filterJxSkuInfoMap map[int]*StoreSkuNameExt,
filterVendorSkuInfoMap map[int]*partner.SkuNameInfo) {
for skuID, jxSkuInfo := range filterJxSkuInfoMap {
jxSkuDetailName := jxutils.ComposeSkuName(jxSkuInfo.SkuName.Prefix, jxSkuInfo.SkuName.Name, "", jxSkuInfo.SkuName.Unit, jxSkuInfo.SkuName.SpecQuality, jxSkuInfo.SkuName.SpecUnit, 0)
jxSkuStatusName := GetSkuStatusName(jxSkuInfo.Skus2[0].SkuStatus)
for skuID, jxSkuInfo := range filterJxSkuInfoMap {
skuIDStr := utils.Int2Str(skuID)
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)
jxSkuStatus := jxutils.MergeSkuStatus(jxSkuInfo.Skus2[0].SkuStatus, jxSkuInfo.Skus2[0].StoreSkuStatus)
jxSkuStatusName := GetSkuStatusName(jxSkuStatus)
vendorSkuInfo := filterVendorSkuInfoMap[skuID]
if vendorSkuInfo != nil {
vendorSkuDetailName := vendorSkuInfo.SkuList[0].SkuName
vendorSkuStatusName := GetSkuStatusName(vendorSkuInfo.SkuList[0].Status)
if jxSkuStatusName != vendorSkuStatusName || jxSkuDetailName != vendorSkuDetailName {
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, jxSkuDetailName, vendorSkuDetailName, jxSkuStatusName, jxSkuStatusName}
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, jxSkuDetailName, vendorSkuDetailName, jxSkuStatusName, vendorSkuStatusName}
diffData[vendorID] = append(diffData[vendorID], outPutData)
}
} else {
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, jxSkuDetailName, "", jxSkuStatusName, ""}
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, jxSkuDetailName, "", jxSkuStatusName, ""}
diffData[vendorID] = append(diffData[vendorID], outPutData)
}
}
for skuID, vendorSkuInfo := range filterVendorSkuInfoMap {
skuIDStr := utils.Int2Str(skuID)
vendorSkuDetailName := vendorSkuInfo.SkuList[0].SkuName
vendorSkuStatusName := GetSkuStatusName(vendorSkuInfo.SkuList[0].Status)
jxSkuInfo := filterJxSkuInfoMap[skuID]
if jxSkuInfo != nil {
jxSkuDetailName := jxutils.ComposeSkuName(jxSkuInfo.SkuName.Prefix, jxSkuInfo.SkuName.Name, "", jxSkuInfo.SkuName.Unit, jxSkuInfo.SkuName.SpecQuality, jxSkuInfo.SkuName.SpecUnit, 0)
jxSkuStatusName := GetSkuStatusName(jxSkuInfo.Skus2[0].SkuStatus)
if jxSkuStatusName != vendorSkuStatusName || jxSkuDetailName != vendorSkuDetailName {
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, jxSkuDetailName, vendorSkuDetailName, jxSkuStatusName, jxSkuStatusName}
diffData[vendorID] = append(diffData[vendorID], outPutData)
}
} else {
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, vendorSkuDetailName, "", vendorSkuStatusName, ""}
if jxSkuInfo == nil {
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, "", vendorSkuDetailName, "", vendorSkuStatusName}
diffData[vendorID] = append(diffData[vendorID], outPutData)
}
}
@@ -233,17 +226,19 @@ func CheckSkuDiffBetweenJxAndVendor(vendorIDList []int, storeIDList []int) {
storeIDStr := utils.Int2Str(storeID)
storeName := jxStoreInfoListValue.Name
if jxStoreInfoListValue.StoreMaps != nil {
for vendorListIndex, vendorListValue := range jxStoreInfoListValue.StoreMaps {
isGetJxSkuInfoData := false
for _, vendorListValue := range jxStoreInfoListValue.StoreMaps {
vendorID := int(utils.MustInterface2Int64(vendorListValue["vendorID"]))
//filter for vendorID
if len(vendorMap) > 0 {
if _, ok := vendorMap[vendorID]; !ok {
return retVal, err
continue
}
}
if _, ok := vendorNameList[vendorID]; ok {
var filterJxSkuInfoMap map[int]*StoreSkuNameExt
if vendorListIndex == 0 {
if isGetJxSkuInfoData == false {//only get once jx sku info list every store id
isGetJxSkuInfoData = true
jxSkuInfoData, _ := GetStoreSkus(ctx, storeID, []int{}, true, "", true, map[string]interface{}{}, 0, -1)
filterJxSkuInfoMap = GetFilterJxSkuInfoMap(jxSkuInfoData.SkuNames)
}