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