Accept Merge Request #31: (don -> mark)

Merge Request: 增加两列(待创建,待删除),不比较待创建且不可售的京西商品
Created By: @Nathan drake
Accepted By: @Nathan drake
URL: https://dev.tencent.com/u/XJH-Rosy/p/jx-callback/git/merge/31
This commit is contained in:
Nathan drake
2019-08-12 18:28:51 +08:00

View File

@@ -20,6 +20,7 @@ import (
const ( const (
canWriteTolocal = false canWriteTolocal = false
isFilterToBeCreateAndNotSale = !false
parallelCount = 5 parallelCount = 5
fileExt = ".xlsx" fileExt = ".xlsx"
) )
@@ -40,6 +41,8 @@ var (
"门店名", "门店名",
"SkuID", "SkuID",
"同步状态", "同步状态",
"待创建",
"待删除",
"京西商品名", "京西商品名",
"平台商品名", "平台商品名",
"京西可售状态", "京西可售状态",
@@ -63,6 +66,8 @@ type DiffData struct {
VendorStoreName string `json:"门店名"` VendorStoreName string `json:"门店名"`
SkuID string `json:"SkuID"` SkuID string `json:"SkuID"`
SyncStatus string `json:"同步状态"` SyncStatus string `json:"同步状态"`
ToBeCreate string `json:"待创建"`
ToBeDel string `json:"待删除"`
JxSkuName string `json:"京西商品名"` JxSkuName string `json:"京西商品名"`
VendorSkuName string `json:"平台商品名"` VendorSkuName string `json:"平台商品名"`
JxStatus string `json:"京西可售状态"` JxStatus string `json:"京西可售状态"`
@@ -156,7 +161,7 @@ func GetFilterMultiStoreSkuInfoMap(vendorID int, skuInfoList []*partner.StoreSku
return filterSkuInfoMap return filterSkuInfoMap
} }
func GetSkuStatusName(status int) string { func GetSkuSaleStatusName(status int) string {
return model.SkuStatusName[status] return model.SkuStatusName[status]
} }
@@ -164,44 +169,57 @@ func CompareJxAndVendor(vendorID int, storeIDStr, vendorStoreID, storeName strin
for skuID, jxSkuInfo := range filterJxSkuInfoMap { for skuID, jxSkuInfo := range filterJxSkuInfoMap {
skuIDStr := utils.Int2Str(skuID) 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) 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) jxSkuSaleStatus := jxutils.MergeSkuStatus(jxSkuInfo.Skus2[0].SkuStatus, jxSkuInfo.Skus2[0].StoreSkuStatus)
jxSkuStatusName := GetSkuStatusName(jxSkuStatus) jxSkuSaleStatusName := GetSkuSaleStatusName(jxSkuSaleStatus)
vendorSkuInfo := filterVendorSkuInfoMap[skuID] vendorSkuInfo := filterVendorSkuInfoMap[skuID]
syncStatus := "" var status int8
if vendorID == model.VendorIDMTWM { if vendorID == model.VendorIDMTWM {
syncStatus = utils.Int2Str(int(jxSkuInfo.Skus2[0].MtwmSyncStatus)) status = jxSkuInfo.Skus2[0].MtwmSyncStatus
} else if vendorID == model.VendorIDEBAI { } else if vendorID == model.VendorIDEBAI {
syncStatus = utils.Int2Str(int(jxSkuInfo.Skus2[0].EbaiSyncStatus)) status = jxSkuInfo.Skus2[0].EbaiSyncStatus
} else if vendorID == model.VendorIDJD { } else if vendorID == model.VendorIDJD {
syncStatus = utils.Int2Str(int(jxSkuInfo.Skus2[0].JdSyncStatus)) status = jxSkuInfo.Skus2[0].JdSyncStatus
} }
syncStatus := utils.Int2Str(int(status))
toBeCreate := "否"
if model.IsSyncStatusNeedCreate(status) {
toBeCreate = "是"
}
toBeDel := "否"
if model.IsSyncStatusNeedDelete(status) {
toBeDel = "是"
}
if vendorSkuInfo != nil { if vendorSkuInfo != nil {
vendorSkuDetailName := vendorSkuInfo.SkuList[0].SkuName vendorSkuDetailName := vendorSkuInfo.SkuList[0].SkuName
vendorSkuStatusName := GetSkuStatusName(vendorSkuInfo.SkuList[0].Status) vendorSkuSaleStatusName := GetSkuSaleStatusName(vendorSkuInfo.SkuList[0].Status)
isStatusDiff := jxSkuStatusName != vendorSkuStatusName isSaleStatusDiff := jxSkuSaleStatusName != vendorSkuSaleStatusName
if isFilterToBeCreateAndNotSale && model.IsSyncStatusNeedCreate(status) && jxSkuSaleStatus != model.SkuStatusNormal {
continue
}
isNameDiff := jxSkuDetailName != vendorSkuDetailName isNameDiff := jxSkuDetailName != vendorSkuDetailName
if jxSkuDetailName != "" && vendorSkuDetailName != "" && strings.Contains(jxSkuDetailName, vendorSkuDetailName) { if jxSkuDetailName != "" && vendorSkuDetailName != "" && strings.Contains(jxSkuDetailName, vendorSkuDetailName) {
isNameDiff = false isNameDiff = false
} }
if isStatusDiff || isNameDiff { if isSaleStatusDiff || isNameDiff {
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, syncStatus, jxSkuDetailName, vendorSkuDetailName, jxSkuStatusName, vendorSkuStatusName} outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, syncStatus, toBeCreate, toBeDel, jxSkuDetailName, vendorSkuDetailName, jxSkuSaleStatusName, vendorSkuSaleStatusName}
diffData.AppendData(vendorID, outPutData) diffData.AppendData(vendorID, outPutData)
} }
} else { } else {
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, syncStatus, jxSkuDetailName, "", jxSkuStatusName, ""} outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, syncStatus, toBeCreate, toBeDel, jxSkuDetailName, "", jxSkuSaleStatusName, ""}
diffData.AppendData(vendorID, outPutData) diffData.AppendData(vendorID, outPutData)
} }
} }
for skuID, vendorSkuInfo := range filterVendorSkuInfoMap { for skuID, vendorSkuInfo := range filterVendorSkuInfoMap {
skuIDStr := utils.Int2Str(skuID) skuIDStr := utils.Int2Str(skuID)
vendorSkuDetailName := vendorSkuInfo.SkuList[0].SkuName vendorSkuDetailName := vendorSkuInfo.SkuList[0].SkuName
vendorSkuStatusName := GetSkuStatusName(vendorSkuInfo.SkuList[0].Status) vendorSkuSaleStatusName := GetSkuSaleStatusName(vendorSkuInfo.SkuList[0].Status)
jxSkuInfo := filterJxSkuInfoMap[skuID] jxSkuInfo := filterJxSkuInfoMap[skuID]
if jxSkuInfo == nil { if jxSkuInfo == nil {
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, "", "", vendorSkuDetailName, "", vendorSkuStatusName} outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, "", "", "", "", vendorSkuDetailName, "", vendorSkuSaleStatusName}
diffData.AppendData(vendorID, outPutData) diffData.AppendData(vendorID, outPutData)
} }
} }