新增检测美团、饿了吗商品id与商品库差异

This commit is contained in:
qidongsheng
2020-06-22 11:43:05 +08:00
parent 3fc8250bd3
commit 4fee0aa763

View File

@@ -33,15 +33,16 @@ const (
//错误类型 //错误类型
const ( const (
DatAanalyse1 = "京西门店未关注,应删除对应的平台门店商品" DatAanalyse1 = "京西门店未关注,应删除对应的平台门店商品"
DatAanalyse2 = "平台商品库未创建成功(可能无经营许可等) " DatAanalyse2 = "平台商品库未创建成功(可能无经营许可等) "
DatAanalyse3 = "商品名不同 " DatAanalyse3 = "商品名不同 "
DatAanalyse4 = "商品可售状态不同 " DatAanalyse4 = "商品可售状态不同 "
DatAanalyse5 = "京西商品库没有,平台商品库有 " DatAanalyse5 = "京西商品库没有,平台商品库有 "
DatAanalyse6 = "京西商品库有,平台商品库没有" DatAanalyse6 = "京西商品库有,平台商品库没有"
DatAanalyse7 = "同步状态异常" DatAanalyse7 = "同步状态异常"
DatAanalyse8 = "平台门店未关注或平台门店商品库存为0应添加对应的平台门店商品" DatAanalyse8 = "平台门店未关注或平台门店商品库存为0应添加对应的平台门店商品"
DatAanalyse9 = "平台门店价格与京西商品库价格不一致" DatAanalyse9 = "平台门店价格与京西商品库价格不一致"
DatAanalyse10 = "平台商品的VendorSkuID与京西的VendorSkuID不一致"
) )
var ( var (
@@ -59,6 +60,8 @@ var (
"平台门店ID", "平台门店ID",
"门店名", "门店名",
"SkuID", "SkuID",
"京西美团外卖ID",
"京西饿百ID",
"同步状态", "同步状态",
"待创建", "待创建",
"待删除", "待删除",
@@ -135,6 +138,8 @@ type DiffData struct {
VendorStoreID string `json:"平台门店ID"` VendorStoreID string `json:"平台门店ID"`
VendorStoreName string `json:"门店名"` VendorStoreName string `json:"门店名"`
SkuID string `json:"SkuID"` SkuID string `json:"SkuID"`
MtwmID string `json:"京西美团外卖ID"`
EbaiID string `json:"京西饿百ID"`
SyncStatus string `json:"同步状态"` SyncStatus string `json:"同步状态"`
ToBeCreate string `json:"待创建"` ToBeCreate string `json:"待创建"`
ToBeDel string `json:"待删除"` ToBeDel string `json:"待删除"`
@@ -346,8 +351,8 @@ func IsSkuCanSale(saleStatus int) bool {
} }
//京西平台和其他平台商品的对比 //京西平台和其他平台商品的对比
//storeIDStr 京西商家id vendorStoreID 平台商家id //storeIDStr 京西商家id vendorStoreID 平台商家id ,isJd 京东比较的标记 0不是1是
func CompareJxAndVendor(vendorID int, storeIDStr, vendorStoreID, storeName string, filterJxSkuInfoMap map[int]*dao.StoreSkuNameExt, filterVendorSkuInfoMap map[int]*partner.SkuNameInfo) { func CompareJxAndVendor(vendorID int, storeIDStr, vendorStoreID, storeName string, filterJxSkuInfoMap map[int]*dao.StoreSkuNameExt, filterVendorSkuInfoMap map[int]*partner.SkuNameInfo, isJd int) {
//utils.Writelog("进入 CompareJxAndVendor 方法") //utils.Writelog("进入 CompareJxAndVendor 方法")
for skuID, jxSkuInfo := range filterJxSkuInfoMap { for skuID, jxSkuInfo := range filterJxSkuInfoMap {
skuIDStr := utils.Int2Str(skuID) skuIDStr := utils.Int2Str(skuID)
@@ -368,6 +373,10 @@ func CompareJxAndVendor(vendorID int, storeIDStr, vendorStoreID, storeName strin
jxSkuSaleStatusName := GetSkuSaleStatusName(jxSkuSaleStatus + 3) jxSkuSaleStatusName := GetSkuSaleStatusName(jxSkuSaleStatus + 3)
/*京西价格*/ /*京西价格*/
jxSkuPrice := fmt.Sprintf("%.2f", float64(jxSkuInfo.Skus[0].JxPrice)/float64(100)) jxSkuPrice := fmt.Sprintf("%.2f", float64(jxSkuInfo.Skus[0].JxPrice)/float64(100))
/*饿了吗编码*/
ebaiid := jxSkuInfo.Skus[0].EbaiID
/*美团编码*/
mtwmid := jxSkuInfo.Skus[0].MtwmID
//jxSkuPrice := strconv.Itoa(jxSkuInfo.Skus[0].JxPrice) //jxSkuPrice := strconv.Itoa(jxSkuInfo.Skus[0].JxPrice)
vendorSkuInfo := filterVendorSkuInfoMap[skuID] vendorSkuInfo := filterVendorSkuInfoMap[skuID]
var status int8 var status int8
@@ -387,6 +396,12 @@ func CompareJxAndVendor(vendorID int, storeIDStr, vendorStoreID, storeName strin
vendorSkuSaleStatusName := GetSkuSaleStatusName(vendorSkuInfo.SkuList[0].Status + 3) vendorSkuSaleStatusName := GetSkuSaleStatusName(vendorSkuInfo.SkuList[0].Status + 3)
/* 供货商价格 */ /* 供货商价格 */
vendorPrice := fmt.Sprintf("%.2f", float64(vendorSkuInfo.SkuList[0].StoreSkuInfo.VendorPrice)/float64(100)) vendorPrice := fmt.Sprintf("%.2f", float64(vendorSkuInfo.SkuList[0].StoreSkuInfo.VendorPrice)/float64(100))
var IdMark bool
if isJd == 0 {
IdMark = skuIDStr != ebaiid && skuIDStr != mtwmid
} else {
IdMark = false
}
isSaleStatusDiff := jxSkuSaleStatusName != vendorSkuSaleStatusName isSaleStatusDiff := jxSkuSaleStatusName != vendorSkuSaleStatusName
isNameDiff := jxSkuDetailName != vendorSkuDetailName isNameDiff := jxSkuDetailName != vendorSkuDetailName
/*比较价格*/ /*比较价格*/
@@ -407,15 +422,18 @@ func CompareJxAndVendor(vendorID int, storeIDStr, vendorStoreID, storeName strin
if isPriceDiff { if isPriceDiff {
reason += DatAanalyse9 reason += DatAanalyse9
} }
if IdMark {
reason += DatAanalyse10
}
if status != model.SkuStatusDontSale { if status != model.SkuStatusDontSale {
reason += DatAanalyse7 reason += DatAanalyse7
} }
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, syncStatus, toBeCreate, toBeDel, jxSkuDetailName, vendorSkuDetailName, jxSkuSaleStatusName, vendorSkuSaleStatusName, jxSkuPrice, vendorPrice, reason} outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, mtwmid, ebaiid, syncStatus, toBeCreate, toBeDel, jxSkuDetailName, vendorSkuDetailName, jxSkuSaleStatusName, vendorSkuSaleStatusName, jxSkuPrice, vendorPrice, reason}
diffData.AppendData(vendorID, outPutData) diffData.AppendData(vendorID, outPutData)
} }
if !isSaleStatusDiff && !isNameDiff { if !isSaleStatusDiff && !isNameDiff {
if status != model.SkuStatusDontSale { if status != model.SkuStatusDontSale {
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, syncStatus, toBeCreate, toBeDel, jxSkuDetailName, vendorSkuDetailName, jxSkuSaleStatusName, vendorSkuSaleStatusName, jxSkuPrice, vendorPrice, DatAanalyse7} outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, mtwmid, ebaiid, syncStatus, toBeCreate, toBeDel, jxSkuDetailName, vendorSkuDetailName, jxSkuSaleStatusName, vendorSkuSaleStatusName, jxSkuPrice, vendorPrice, DatAanalyse7}
diffData.AppendData(vendorID, outPutData) diffData.AppendData(vendorID, outPutData)
} }
} }
@@ -432,7 +450,7 @@ func CompareJxAndVendor(vendorID int, storeIDStr, vendorStoreID, storeName strin
if status != model.SkuStatusDontSale { if status != model.SkuStatusDontSale {
reason += DatAanalyse7 reason += DatAanalyse7
} }
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, syncStatus, toBeCreate, toBeDel, jxSkuDetailName, "", jxSkuSaleStatusName, "", jxSkuPrice, "", reason} outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, mtwmid, ebaiid, syncStatus, toBeCreate, toBeDel, jxSkuDetailName, "", jxSkuSaleStatusName, "", jxSkuPrice, "", reason}
diffData.AppendData(vendorID, outPutData) diffData.AppendData(vendorID, outPutData)
} }
} }
@@ -448,7 +466,7 @@ func CompareJxAndVendor(vendorID int, storeIDStr, vendorStoreID, storeName strin
jxSkuInfo := filterJxSkuInfoMap[skuID] jxSkuInfo := filterJxSkuInfoMap[skuID]
/*平台有,京西没有*/ /*平台有,京西没有*/
if jxSkuInfo == nil { if jxSkuInfo == nil {
outPutData := DiffData{storeIDStr, vendorStoreID, storeName, skuIDStr, "", "", "", "", vendorSkuDetailName, "", vendorSkuSaleStatusName, "", vendorPrice, DatAanalyse1} outPutData := DiffData{storeIDStr, vendorStoreID, "", "", storeName, skuIDStr, "", "", "", "", vendorSkuDetailName, "", vendorSkuSaleStatusName, "", vendorPrice, DatAanalyse1}
diffData.AppendData(vendorID, outPutData) diffData.AppendData(vendorID, outPutData)
} }
} else { } else {
@@ -673,7 +691,7 @@ func TestDiff(ctx *jxcontext.Context, vendorIDList []int, storeIDList []int) {
} else if len(skuBareInfoList) > 0 { } else if len(skuBareInfoList) > 0 {
//获取京东的商品 //获取京东的商品
filterSkuInfoMap := GetFilterMultiStoreSkuInfoMap(vendorID, vendorListValue.VendorOrgCode, skuBareInfoList) //map[京东商品ID:SkuNameInfo] filterSkuInfoMap := GetFilterMultiStoreSkuInfoMap(vendorID, vendorListValue.VendorOrgCode, skuBareInfoList) //map[京东商品ID:SkuNameInfo]
CompareJxAndVendor(vendorID, storeIDStr, vendorStoreID, storeName, filterJxSkuInfoMapMulti, filterSkuInfoMap) CompareJxAndVendor(vendorID, storeIDStr, vendorStoreID, storeName, filterJxSkuInfoMapMulti, filterSkuInfoMap, 1)
} }
} else { } else {
singleStoreHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler) singleStoreHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler)
@@ -683,7 +701,7 @@ func TestDiff(ctx *jxcontext.Context, vendorIDList []int, storeIDList []int) {
} else if len(vendorSkuInfoList) > 0 { } else if len(vendorSkuInfoList) > 0 {
//获取京东的商品 //获取京东的商品
filterVendorSkuInfoMap := GetFilterVendorSkuInfoMap(vendorSkuInfoList) //map[平台商品ID:SkuNameInfo] filterVendorSkuInfoMap := GetFilterVendorSkuInfoMap(vendorSkuInfoList) //map[平台商品ID:SkuNameInfo]
CompareJxAndVendor(vendorID, storeIDStr, vendorStoreID, storeName, filterJxSkuInfoMapSingle, filterVendorSkuInfoMap) CompareJxAndVendor(vendorID, storeIDStr, vendorStoreID, storeName, filterJxSkuInfoMapSingle, filterVendorSkuInfoMap, 0)
} }
} }
} }
@@ -871,7 +889,7 @@ func CheckSkuDiffBetweenJxAndVendor(ctx *jxcontext.Context, vendorIDList []int,
baseapi.SugarLogger.Infof("CheckSkuDiffBetweenJxAndVendor GetStoreSkusBareInfo error:%v", err) baseapi.SugarLogger.Infof("CheckSkuDiffBetweenJxAndVendor GetStoreSkusBareInfo error:%v", err)
} else if len(skuBareInfoList) > 0 { } else if len(skuBareInfoList) > 0 {
filterSkuInfoMap := GetFilterMultiStoreSkuInfoMap(vendorID, vendorListValue.VendorOrgCode, skuBareInfoList) //map[京东商品ID:SkuNameInfo] filterSkuInfoMap := GetFilterMultiStoreSkuInfoMap(vendorID, vendorListValue.VendorOrgCode, skuBareInfoList) //map[京东商品ID:SkuNameInfo]
CompareJxAndVendor(vendorID, storeIDStr, vendorStoreID, storeName, filterJxSkuInfoMapMulti, filterSkuInfoMap) CompareJxAndVendor(vendorID, storeIDStr, vendorStoreID, storeName, filterJxSkuInfoMapMulti, filterSkuInfoMap, 1)
} }
} else { } else {
singleStoreHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler) singleStoreHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler)
@@ -880,7 +898,7 @@ func CheckSkuDiffBetweenJxAndVendor(ctx *jxcontext.Context, vendorIDList []int,
baseapi.SugarLogger.Infof("CheckSkuDiffBetweenJxAndVendor GetStoreSkusFullInfo error:%v", err) baseapi.SugarLogger.Infof("CheckSkuDiffBetweenJxAndVendor GetStoreSkusFullInfo error:%v", err)
} else if len(vendorSkuInfoList) > 0 { } else if len(vendorSkuInfoList) > 0 {
filterVendorSkuInfoMap := GetFilterVendorSkuInfoMap(vendorSkuInfoList) //map[平台商品ID:SkuNameInfo] filterVendorSkuInfoMap := GetFilterVendorSkuInfoMap(vendorSkuInfoList) //map[平台商品ID:SkuNameInfo]
CompareJxAndVendor(vendorID, storeIDStr, vendorStoreID, storeName, filterJxSkuInfoMapSingle, filterVendorSkuInfoMap) CompareJxAndVendor(vendorID, storeIDStr, vendorStoreID, storeName, filterJxSkuInfoMapSingle, filterVendorSkuInfoMap, 0)
} }
} }
} }