!!!调整SkuStoreCatInfo与StoreSkuSyncInfo中SyncStatus的字段名
This commit is contained in:
@@ -1045,7 +1045,7 @@ func refreshStoreSkuPrice(ctx *jxcontext.Context, db *dao.DaoDB, skuID int) (err
|
|||||||
storeSku.ID = v.BindID
|
storeSku.ID = v.BindID
|
||||||
if _, err = dao.UpdateEntityLogically(db, storeSku, map[string]interface{}{
|
if _, err = dao.UpdateEntityLogically(db, storeSku, map[string]interface{}{
|
||||||
"Price": v.Price,
|
"Price": v.Price,
|
||||||
dao.GetSyncStatusStructField(model.VendorNames[vendorID]): v.StoreSkuSyncStatus | model.SyncFlagPriceMask,
|
dao.GetSyncStatusStructField(model.VendorNames[vendorID]): v.SkuSyncStatus | model.SyncFlagPriceMask,
|
||||||
}, ctx.GetUserName(), nil); err != nil {
|
}, ctx.GetUserName(), nil); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -80,14 +80,14 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo
|
|||||||
catInfo := batchItemList[0].(*dao.SkuStoreCatInfo)
|
catInfo := batchItemList[0].(*dao.SkuStoreCatInfo)
|
||||||
storeCatMap := &model.StoreSkuCategoryMap{}
|
storeCatMap := &model.StoreSkuCategoryMap{}
|
||||||
storeCatMap.ID = catInfo.MapID
|
storeCatMap.ID = catInfo.MapID
|
||||||
if model.IsSyncStatusDelete(catInfo.StoreCatSyncStatus) { // 删除
|
if model.IsSyncStatusDelete(catInfo.CatSyncStatus) { // 删除
|
||||||
if model.IsSyncStatusDelete(catInfo.StoreCatSyncStatus) && !dao.IsVendorThingIDEmpty(catInfo.VendorCatID) {
|
if model.IsSyncStatusDelete(catInfo.CatSyncStatus) && !dao.IsVendorThingIDEmpty(catInfo.VendorCatID) {
|
||||||
err = handler.DeleteStoreCategory(ctx, storeID, vendorStoreID, catInfo.VendorCatID, level)
|
err = handler.DeleteStoreCategory(ctx, storeID, vendorStoreID, catInfo.VendorCatID, level)
|
||||||
if err != nil && handler.IsErrCategoryNotExist(err) {
|
if err != nil && handler.IsErrCategoryNotExist(err) {
|
||||||
err = nil
|
err = nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if model.IsSyncStatusNew(catInfo.StoreCatSyncStatus) { // 新增
|
} else if model.IsSyncStatusNew(catInfo.CatSyncStatus) { // 新增
|
||||||
err = handler.CreateStoreCategory(ctx, storeID, vendorStoreID, catInfo)
|
err = handler.CreateStoreCategory(ctx, storeID, vendorStoreID, catInfo)
|
||||||
if err != nil && handler.IsErrCategoryExist(err) {
|
if err != nil && handler.IsErrCategoryExist(err) {
|
||||||
if cat, err2 := handler.GetStoreCategory(ctx, storeID, vendorStoreID, catInfo.Name); err2 == nil {
|
if cat, err2 := handler.GetStoreCategory(ctx, storeID, vendorStoreID, catInfo.Name); err2 == nil {
|
||||||
@@ -102,7 +102,7 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo
|
|||||||
updateFields = append(updateFields, model.FieldLastOperator)
|
updateFields = append(updateFields, model.FieldLastOperator)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if model.IsSyncStatusUpdate(catInfo.StoreCatSyncStatus) { // 修改
|
} else if model.IsSyncStatusUpdate(catInfo.CatSyncStatus) { // 修改
|
||||||
if err = handler.UpdateStoreCategory(ctx, storeID, vendorStoreID, catInfo); err == nil {
|
if err = handler.UpdateStoreCategory(ctx, storeID, vendorStoreID, catInfo); err == nil {
|
||||||
updateFields = append(updateFields, idFieldName)
|
updateFields = append(updateFields, idFieldName)
|
||||||
}
|
}
|
||||||
@@ -195,7 +195,7 @@ func FullSyncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo
|
|||||||
}
|
}
|
||||||
|
|
||||||
func isStoreSkuSyncNeedDelete(storeSku *dao.StoreSkuSyncInfo) bool {
|
func isStoreSkuSyncNeedDelete(storeSku *dao.StoreSkuSyncInfo) bool {
|
||||||
return model.IsSyncStatusDelete(storeSku.StoreSkuSyncStatus) || storeSku.BindDeletedAt != utils.DefaultTimeValue || storeSku.BindID == 0 || storeSku.NameID == 0
|
return model.IsSyncStatusDelete(storeSku.SkuSyncStatus) || storeSku.BindDeletedAt != utils.DefaultTimeValue || storeSku.BindID == 0 || storeSku.NameID == 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func storeSkuSyncInfo2Bare(inSku *dao.StoreSkuSyncInfo) (outSku *partner.StoreSkuInfo) {
|
func storeSkuSyncInfo2Bare(inSku *dao.StoreSkuSyncInfo) (outSku *partner.StoreSkuInfo) {
|
||||||
@@ -237,10 +237,10 @@ func sku2Update(vendorID int, sku *dao.StoreSkuSyncInfo, syncStatus int8) (item
|
|||||||
kvs := map[string]interface{}{}
|
kvs := map[string]interface{}{}
|
||||||
if syncStatus&(model.SyncFlagDeletedMask|model.SyncFlagNewMask|model.SyncFlagModifiedMask) != 0 {
|
if syncStatus&(model.SyncFlagDeletedMask|model.SyncFlagNewMask|model.SyncFlagModifiedMask) != 0 {
|
||||||
if model.IsSyncStatusNew(syncStatus) {
|
if model.IsSyncStatusNew(syncStatus) {
|
||||||
sku.StoreSkuSyncStatus = 0
|
sku.SkuSyncStatus = 0
|
||||||
kvs[dao.GetVendorThingIDStructField(model.VendorNames[vendorID])] = utils.Str2Int64WithDefault(sku.VendorSkuID, 0)
|
kvs[dao.GetVendorThingIDStructField(model.VendorNames[vendorID])] = utils.Str2Int64WithDefault(sku.VendorSkuID, 0)
|
||||||
} else if model.IsSyncStatusDelete(syncStatus) {
|
} else if model.IsSyncStatusDelete(syncStatus) {
|
||||||
sku.StoreSkuSyncStatus = 0
|
sku.SkuSyncStatus = 0
|
||||||
if utils.IsTimeZero(sku.BindDeletedAt) && (sku.ID == 0 || sku.NameID == 0) {
|
if utils.IsTimeZero(sku.BindDeletedAt) && (sku.ID == 0 || sku.NameID == 0) {
|
||||||
kvs[model.FieldDeletedAt] = time.Now()
|
kvs[model.FieldDeletedAt] = time.Now()
|
||||||
}
|
}
|
||||||
@@ -248,18 +248,18 @@ func sku2Update(vendorID int, sku *dao.StoreSkuSyncInfo, syncStatus int8) (item
|
|||||||
kvs[dao.GetVendorThingIDStructField(model.VendorNames[vendorID])] = 0
|
kvs[dao.GetVendorThingIDStructField(model.VendorNames[vendorID])] = 0
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
sku.StoreSkuSyncStatus = sku.StoreSkuSyncStatus & model.SyncFlagPriceMask
|
sku.SkuSyncStatus = sku.SkuSyncStatus & model.SyncFlagPriceMask
|
||||||
}
|
}
|
||||||
} else if syncStatus&model.SyncFlagStockMask != 0 {
|
} else if syncStatus&model.SyncFlagStockMask != 0 {
|
||||||
if isStoreSkuSyncNeedDelete(sku) {
|
if isStoreSkuSyncNeedDelete(sku) {
|
||||||
sku.StoreSkuSyncStatus = 0
|
sku.SkuSyncStatus = 0
|
||||||
} else {
|
} else {
|
||||||
sku.StoreSkuSyncStatus = sku.StoreSkuSyncStatus & (model.SyncFlagPriceMask | model.SyncFlagSaleMask)
|
sku.SkuSyncStatus = sku.SkuSyncStatus & (model.SyncFlagPriceMask | model.SyncFlagSaleMask)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
sku.StoreSkuSyncStatus = sku.StoreSkuSyncStatus & ^syncStatus
|
sku.SkuSyncStatus = sku.SkuSyncStatus & ^syncStatus
|
||||||
}
|
}
|
||||||
kvs[dao.GetSyncStatusStructField(model.VendorNames[vendorID])] = sku.StoreSkuSyncStatus
|
kvs[dao.GetSyncStatusStructField(model.VendorNames[vendorID])] = sku.SkuSyncStatus
|
||||||
if sku.VendorPrice > 0 {
|
if sku.VendorPrice > 0 {
|
||||||
kvs[dao.GetVendorPriceStructField(model.VendorNames[vendorID])] = sku.VendorPrice
|
kvs[dao.GetVendorPriceStructField(model.VendorNames[vendorID])] = sku.VendorPrice
|
||||||
}
|
}
|
||||||
@@ -352,10 +352,10 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, isFull bo
|
|||||||
} else {
|
} else {
|
||||||
updateItems = append(updateItems, sku2Update(vendorID, sku, model.SyncFlagDeletedMask))
|
updateItems = append(updateItems, sku2Update(vendorID, sku, model.SyncFlagDeletedMask))
|
||||||
}
|
}
|
||||||
} else if model.IsSyncStatusNew(sku.StoreSkuSyncStatus) {
|
} else if model.IsSyncStatusNew(sku.SkuSyncStatus) {
|
||||||
calVendorPrice4StoreSku(sku, storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage))
|
calVendorPrice4StoreSku(sku, storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage))
|
||||||
if singleStoreHandler == nil {
|
if singleStoreHandler == nil {
|
||||||
sku.StoreSkuSyncStatus |= model.SyncFlagSaleMask | model.SyncFlagPriceMask
|
sku.SkuSyncStatus |= model.SyncFlagSaleMask | model.SyncFlagPriceMask
|
||||||
bareSku = storeSkuSyncInfo2Bare(sku)
|
bareSku = storeSkuSyncInfo2Bare(sku)
|
||||||
stockList = append(stockList, bareSku)
|
stockList = append(stockList, bareSku)
|
||||||
priceList = append(priceList, bareSku)
|
priceList = append(priceList, bareSku)
|
||||||
@@ -367,7 +367,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, isFull bo
|
|||||||
} else {
|
} else {
|
||||||
if sku.MergedStatus == model.SkuStatusNormal {
|
if sku.MergedStatus == model.SkuStatusNormal {
|
||||||
if dao.IsVendorThingIDEmpty(sku.VendorCatID) {
|
if dao.IsVendorThingIDEmpty(sku.VendorCatID) {
|
||||||
globals.SugarLogger.Warnf("syncStoreSkuNew 创建门店:%d商品:%d,但没有平台分类ID", sku.StoreID, sku.SkuID)
|
globals.SugarLogger.Warnf("syncStoreSkuNew 创建门店:%d商品:%d,但没有平台分类ID", storeID, sku.SkuID)
|
||||||
} else {
|
} else {
|
||||||
createList = append(createList, sku)
|
createList = append(createList, sku)
|
||||||
}
|
}
|
||||||
@@ -384,26 +384,26 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, isFull bo
|
|||||||
} else {
|
} else {
|
||||||
isAdded2Update := false
|
isAdded2Update := false
|
||||||
// 修改商品信息时不改价(以免活动引起的失败),而用单独的改价来改
|
// 修改商品信息时不改价(以免活动引起的失败),而用单独的改价来改
|
||||||
if (model.IsSyncStatusUpdate(sku.StoreSkuSyncStatus) || (model.IsSyncStatusSeq(sku.StoreSkuSyncStatus) && reorderHandler == nil)) && singleStoreHandler != nil {
|
if (model.IsSyncStatusUpdate(sku.SkuSyncStatus) || (model.IsSyncStatusSeq(sku.SkuSyncStatus) && reorderHandler == nil)) && singleStoreHandler != nil {
|
||||||
if dao.IsVendorThingIDEmpty(sku.VendorCatID) {
|
if dao.IsVendorThingIDEmpty(sku.VendorCatID) {
|
||||||
globals.SugarLogger.Warnf("syncStoreSkuNew 修改门店:%d商品:%d,但没有平台分类ID", sku.StoreID, sku.SkuID)
|
globals.SugarLogger.Warnf("syncStoreSkuNew 修改门店:%d商品:%d,但没有平台分类ID", storeID, sku.SkuID)
|
||||||
} else {
|
} else {
|
||||||
isAdded2Update = true
|
isAdded2Update = true
|
||||||
updateList = append(updateList, calVendorPrice4StoreSku(sku, storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage)))
|
updateList = append(updateList, calVendorPrice4StoreSku(sku, storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if model.IsSyncStatusPrice(sku.StoreSkuSyncStatus) {
|
if model.IsSyncStatusPrice(sku.SkuSyncStatus) {
|
||||||
bareSku = storeSkuSyncInfo2Bare(calVendorPrice4StoreSku(sku, storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage)))
|
bareSku = storeSkuSyncInfo2Bare(calVendorPrice4StoreSku(sku, storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage)))
|
||||||
priceList = append(priceList, bareSku)
|
priceList = append(priceList, bareSku)
|
||||||
}
|
}
|
||||||
if !isAdded2Update {
|
if !isAdded2Update {
|
||||||
if model.IsSyncStatusUpdate(sku.StoreSkuSyncStatus) && singleStoreHandler == nil { // 正常就不应该进到这里
|
if model.IsSyncStatusUpdate(sku.SkuSyncStatus) && singleStoreHandler == nil { // 正常就不应该进到这里
|
||||||
if bareSku == nil {
|
if bareSku == nil {
|
||||||
bareSku = storeSkuSyncInfo2Bare(sku)
|
bareSku = storeSkuSyncInfo2Bare(sku)
|
||||||
}
|
}
|
||||||
updateItems = append(updateItems, sku2Update(vendorID, sku, model.SyncFlagStockMask))
|
updateItems = append(updateItems, sku2Update(vendorID, sku, model.SyncFlagStockMask))
|
||||||
}
|
}
|
||||||
if model.IsSyncStatusSale(sku.StoreSkuSyncStatus) {
|
if model.IsSyncStatusSale(sku.SkuSyncStatus) {
|
||||||
if bareSku == nil {
|
if bareSku == nil {
|
||||||
bareSku = storeSkuSyncInfo2Bare(sku)
|
bareSku = storeSkuSyncInfo2Bare(sku)
|
||||||
}
|
}
|
||||||
@@ -419,7 +419,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, isFull bo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
isNeedReorder = model.IsSyncStatusSeq(sku.StoreSkuSyncStatus)
|
isNeedReorder = model.IsSyncStatusSeq(sku.SkuSyncStatus)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if isNeedReorder && reorderHandler != nil && sku.VendorCatID != "" {
|
if isNeedReorder && reorderHandler != nil && sku.VendorCatID != "" {
|
||||||
@@ -660,10 +660,10 @@ func amendAndPruneStoreStuff(ctx *jxcontext.Context, parentTask tasksch.ITask, v
|
|||||||
|
|
||||||
if opType == AmendPruneOnlyAmend || opType == AmendPruneAll {
|
if opType == AmendPruneOnlyAmend || opType == AmendPruneAll {
|
||||||
for _, v := range localSkuList {
|
for _, v := range localSkuList {
|
||||||
if !model.IsSyncStatusDelete(v.StoreSkuSyncStatus) && v.BindID != 0 {
|
if !model.IsSyncStatusDelete(v.SkuSyncStatus) && v.BindID != 0 {
|
||||||
syncStatus := int8(0)
|
syncStatus := int8(0)
|
||||||
if remoteSkuMap[v.VendorSkuID] == 0 {
|
if remoteSkuMap[v.VendorSkuID] == 0 {
|
||||||
if !model.IsSyncStatusNew(v.StoreSkuSyncStatus) {
|
if !model.IsSyncStatusNew(v.SkuSyncStatus) {
|
||||||
syncStatus = model.SyncFlagNewMask
|
syncStatus = model.SyncFlagNewMask
|
||||||
}
|
}
|
||||||
} else if isForceUpdate {
|
} else if isForceUpdate {
|
||||||
@@ -674,7 +674,7 @@ func amendAndPruneStoreStuff(ctx *jxcontext.Context, parentTask tasksch.ITask, v
|
|||||||
skuBind.ID = v.BindID
|
skuBind.ID = v.BindID
|
||||||
skuBind.LastOperator = ctx.GetUserName()
|
skuBind.LastOperator = ctx.GetUserName()
|
||||||
skuBind.UpdatedAt = time.Now()
|
skuBind.UpdatedAt = time.Now()
|
||||||
dao.SetStoreSkuBindSyncStatus(skuBind, vendorID, syncStatus|v.StoreSkuSyncStatus)
|
dao.SetStoreSkuBindSyncStatus(skuBind, vendorID, syncStatus|v.SkuSyncStatus)
|
||||||
dao.UpdateEntity(db, skuBind, dao.GetSyncStatusStructField(model.VendorNames[vendorID]), model.FieldLastOperator, model.FieldUpdatedAt)
|
dao.UpdateEntity(db, skuBind, dao.GetSyncStatusStructField(model.VendorNames[vendorID]), model.FieldLastOperator, model.FieldUpdatedAt)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -710,13 +710,13 @@ func amendAndPruneStoreStuff(ctx *jxcontext.Context, parentTask tasksch.ITask, v
|
|||||||
cat2Delete = checkRemoteCatExist(remoteCatMap, localCatMap, remoteCatList)
|
cat2Delete = checkRemoteCatExist(remoteCatMap, localCatMap, remoteCatList)
|
||||||
|
|
||||||
for _, v := range localCatList {
|
for _, v := range localCatList {
|
||||||
if !model.IsSyncStatusDelete(v.StoreCatSyncStatus) && v.MapID != 0 {
|
if !model.IsSyncStatusDelete(v.CatSyncStatus) && v.MapID != 0 {
|
||||||
syncStatus := int8(0)
|
syncStatus := int8(0)
|
||||||
if remoteCatMap[v.VendorCatID] == 0 {
|
if remoteCatMap[v.VendorCatID] == 0 {
|
||||||
if !model.IsSyncStatusNew(v.StoreCatSyncStatus) {
|
if !model.IsSyncStatusNew(v.CatSyncStatus) {
|
||||||
syncStatus = model.SyncFlagNewMask
|
syncStatus = model.SyncFlagNewMask
|
||||||
}
|
}
|
||||||
} else if isForceUpdate && !model.IsSyncStatusUpdate(v.StoreCatSyncStatus) {
|
} else if isForceUpdate && !model.IsSyncStatusUpdate(v.CatSyncStatus) {
|
||||||
syncStatus = model.SyncFlagModifiedMask
|
syncStatus = model.SyncFlagModifiedMask
|
||||||
}
|
}
|
||||||
if syncStatus != 0 {
|
if syncStatus != 0 {
|
||||||
@@ -724,7 +724,7 @@ func amendAndPruneStoreStuff(ctx *jxcontext.Context, parentTask tasksch.ITask, v
|
|||||||
catBind.ID = v.MapID
|
catBind.ID = v.MapID
|
||||||
catBind.LastOperator = ctx.GetUserName()
|
catBind.LastOperator = ctx.GetUserName()
|
||||||
catBind.UpdatedAt = time.Now()
|
catBind.UpdatedAt = time.Now()
|
||||||
dao.SetStoreCatMapSyncStatus(catBind, vendorID, syncStatus|v.StoreCatSyncStatus)
|
dao.SetStoreCatMapSyncStatus(catBind, vendorID, syncStatus|v.CatSyncStatus)
|
||||||
dao.UpdateEntity(db, catBind, dao.GetSyncStatusStructField(model.VendorNames[vendorID]), model.FieldLastOperator, model.FieldUpdatedAt)
|
dao.UpdateEntity(db, catBind, dao.GetSyncStatusStructField(model.VendorNames[vendorID]), model.FieldLastOperator, model.FieldUpdatedAt)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,9 +26,9 @@ var (
|
|||||||
|
|
||||||
type SkuStoreCatInfo struct {
|
type SkuStoreCatInfo struct {
|
||||||
model.SkuCategory
|
model.SkuCategory
|
||||||
MapID int `orm:"column(map_id)"` // 这个主要用于判断是否有store_sku_category_map
|
MapID int `orm:"column(map_id)"` // 这个主要用于判断是否有store_sku_category_map
|
||||||
VendorCatID string `orm:"column(vendor_cat_id)"`
|
VendorCatID string `orm:"column(vendor_cat_id)"`
|
||||||
StoreCatSyncStatus int8
|
CatSyncStatus int8
|
||||||
|
|
||||||
ParentCatName string
|
ParentCatName string
|
||||||
ParentMapID int `orm:"column(parent_map_id)"` // 这个主要用于判断是否有父store_sku_category_map
|
ParentMapID int `orm:"column(parent_map_id)"` // 这个主要用于判断是否有父store_sku_category_map
|
||||||
@@ -46,10 +46,10 @@ type StoreSkuSyncInfo struct {
|
|||||||
UnitPrice int64
|
UnitPrice int64
|
||||||
|
|
||||||
// 平台相关的store sku信息
|
// 平台相关的store sku信息
|
||||||
StoreSkuStatus int
|
StoreSkuStatus int
|
||||||
StoreSkuSyncStatus int8
|
SkuSyncStatus int8
|
||||||
VendorSkuID string `orm:"column(vendor_sku_id)"`
|
VendorSkuID string `orm:"column(vendor_sku_id)"`
|
||||||
BindDeletedAt time.Time `orm:"type(datetime)" json:"bindDeletedAt"`
|
BindDeletedAt time.Time `orm:"type(datetime)" json:"bindDeletedAt"`
|
||||||
|
|
||||||
model.Sku
|
model.Sku
|
||||||
|
|
||||||
@@ -74,12 +74,12 @@ type StoreSkuSyncInfo struct {
|
|||||||
// VendorVendorCatID3 int64 `orm:"column(vendor_vendor_cat_id3)"` // 平台商品分类再上一级
|
// VendorVendorCatID3 int64 `orm:"column(vendor_vendor_cat_id3)"` // 平台商品分类再上一级
|
||||||
|
|
||||||
// sku的商家分类信息
|
// sku的商家分类信息
|
||||||
SkuStoreCatSyncStatus int8
|
SkuCatSyncStatus int8
|
||||||
SkuVendorCatID string `orm:"column(sku_vendor_cat_id)"`
|
SkuVendorCatID string `orm:"column(sku_vendor_cat_id)"`
|
||||||
|
|
||||||
// sku_name的商家分类信息
|
// sku_name的商家分类信息
|
||||||
StoreCatSyncStatus int8
|
CatSyncStatus int8
|
||||||
VendorCatID string `orm:"column(vendor_cat_id)"`
|
VendorCatID string `orm:"column(vendor_cat_id)"`
|
||||||
|
|
||||||
VendorPrice int64
|
VendorPrice int64
|
||||||
MergedStatus int
|
MergedStatus int
|
||||||
@@ -117,7 +117,7 @@ type StoreSkuNameInfo struct {
|
|||||||
func GetSkusCategories(db *DaoDB, vendorID, storeID int, skuIDs []int, level int) (cats []*SkuStoreCatInfo, err error) {
|
func GetSkusCategories(db *DaoDB, vendorID, storeID int, skuIDs []int, level int) (cats []*SkuStoreCatInfo, err error) {
|
||||||
sql := `
|
sql := `
|
||||||
SELECT DISTINCT t4.*,
|
SELECT DISTINCT t4.*,
|
||||||
t5.id map_id, t5.%s_id vendor_cat_id, t5.%s_sync_status store_cat_sync_status,
|
t5.id map_id, t5.%s_id vendor_cat_id, t5.%s_sync_status cat_sync_status,
|
||||||
t4p.name parent_cat_name,
|
t4p.name parent_cat_name,
|
||||||
t5p.id parent_map_id, t5p.%s_id parent_vendor_cat_id, t5p.%s_sync_status parent_cat_sync_status
|
t5p.id parent_map_id, t5p.%s_id parent_vendor_cat_id, t5p.%s_sync_status parent_cat_sync_status
|
||||||
FROM store_sku_bind t1
|
FROM store_sku_bind t1
|
||||||
@@ -172,7 +172,7 @@ func GetStoreCategories(db *DaoDB, vendorID, storeID int, level int, mustDirty b
|
|||||||
fieldPrefix := ConvertDBFieldPrefix(model.VendorNames[vendorID])
|
fieldPrefix := ConvertDBFieldPrefix(model.VendorNames[vendorID])
|
||||||
sql := `
|
sql := `
|
||||||
SELECT t4.*,
|
SELECT t4.*,
|
||||||
t5.id map_id, t5.%s_id vendor_cat_id, t5.%s_sync_status store_cat_sync_status,
|
t5.id map_id, t5.%s_id vendor_cat_id, t5.%s_sync_status cat_sync_status,
|
||||||
t4p.name parent_cat_name,
|
t4p.name parent_cat_name,
|
||||||
t5p.id parent_map_id, t5p.%s_id parent_vendor_cat_id, t5p.%s_sync_status parent_cat_sync_status
|
t5p.id parent_map_id, t5p.%s_id parent_vendor_cat_id, t5p.%s_sync_status parent_cat_sync_status
|
||||||
FROM store_sku_category_map t5
|
FROM store_sku_category_map t5
|
||||||
@@ -219,7 +219,7 @@ func GetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, mustDirty boo
|
|||||||
fieldPrefix := ConvertDBFieldPrefix(model.VendorNames[vendorID])
|
fieldPrefix := ConvertDBFieldPrefix(model.VendorNames[vendorID])
|
||||||
sql := `
|
sql := `
|
||||||
SELECT t1.id bind_id, t1.sku_id, t1.price, t1.unit_price, t1.status store_sku_status,
|
SELECT t1.id bind_id, t1.sku_id, t1.price, t1.unit_price, t1.status store_sku_status,
|
||||||
%s.%s_id vendor_sku_id, t1.%s_sync_status store_sku_sync_status, t1.%s_price vendor_price,
|
%s.%s_id vendor_sku_id, t1.%s_sync_status sku_sync_status, t1.%s_price vendor_price,
|
||||||
t1.store_id, t1.deleted_at bind_deleted_at,t1.status_sale_begin,t1.status_sale_end,
|
t1.store_id, t1.deleted_at bind_deleted_at,t1.status_sale_begin,t1.status_sale_end,
|
||||||
t2.*,
|
t2.*,
|
||||||
t3.id name_id, t3.prefix, t3.name, t3.unit, t3.upc,
|
t3.id name_id, t3.prefix, t3.name, t3.unit, t3.upc,
|
||||||
@@ -236,8 +236,8 @@ func GetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, mustDirty boo
|
|||||||
}
|
}
|
||||||
if isSingleStorePF {
|
if isSingleStorePF {
|
||||||
sql += `,
|
sql += `,
|
||||||
t5.%s_sync_status store_cat_sync_status, t5.%s_id vendor_cat_id,
|
t5.%s_sync_status cat_sync_status, t5.%s_id vendor_cat_id,
|
||||||
t5sku.%s_sync_status sku_store_cat_sync_status, t5sku.%s_id sku_vendor_cat_id`
|
t5sku.%s_sync_status sku_cat_sync_status, t5sku.%s_id sku_vendor_cat_id`
|
||||||
fmtParams = append(fmtParams, fieldPrefix, fieldPrefix, fieldPrefix, fieldPrefix)
|
fmtParams = append(fmtParams, fieldPrefix, fieldPrefix, fieldPrefix, fieldPrefix)
|
||||||
} else {
|
} else {
|
||||||
sql += `,
|
sql += `,
|
||||||
@@ -311,15 +311,15 @@ func GetFullStoreSkus(db *DaoDB, vendorID, storeID int) (skus []*StoreSkuSyncInf
|
|||||||
|
|
||||||
sql := `
|
sql := `
|
||||||
SELECT t1.id bind_id, t1.price, t1.unit_price, t1.status store_sku_status, t2.%s_id vendor_sku_id,
|
SELECT t1.id bind_id, t1.price, t1.unit_price, t1.status store_sku_status, t2.%s_id vendor_sku_id,
|
||||||
t1.%s_sync_status store_sku_sync_status, t1.store_id, t1.deleted_at bind_deleted_at,
|
t1.%s_sync_status sku_sync_status, t1.store_id, t1.deleted_at bind_deleted_at,
|
||||||
t2.*, t2.id sku_id,
|
t2.*, t2.id sku_id,
|
||||||
t3.id name_id, t3.prefix, t3.name, t3.unit, t3.upc,
|
t3.id name_id, t3.prefix, t3.name, t3.unit, t3.upc,
|
||||||
IF(t11.%s <> '', t11.%s, t3.img) img,
|
IF(t11.%s <> '', t11.%s, t3.img) img,
|
||||||
IF(t12.%s <> '', t12.%s, t3.img2) img2,
|
IF(t12.%s <> '', t12.%s, t3.img2) img2,
|
||||||
t13.%s desc_img,
|
t13.%s desc_img,
|
||||||
t4.%s_category_id vendor_vendor_cat_id,
|
t4.%s_category_id vendor_vendor_cat_id,
|
||||||
t4.%s_sync_status store_cat_sync_status, t4.%s_id vendor_cat_id,
|
t4.%s_sync_status cat_sync_status, t4.%s_id vendor_cat_id,
|
||||||
t5sku.%s_sync_status sku_store_cat_sync_status, t5sku.%s_id sku_vendor_cat_id
|
t5sku.%s_sync_status sku_cat_sync_status, t5sku.%s_id sku_vendor_cat_id
|
||||||
FROM sku t2
|
FROM sku t2
|
||||||
LEFT JOIN store_sku_bind t1 ON t1.sku_id = t2.id AND t1.store_id = ? AND t1.deleted_at = ?
|
LEFT JOIN store_sku_bind t1 ON t1.sku_id = t2.id AND t1.store_id = ? AND t1.deleted_at = ?
|
||||||
JOIN sku_name t3 ON t2.name_id = t3.id AND t3.deleted_at = ? AND t3.status = ?
|
JOIN sku_name t3 ON t2.name_id = t3.id AND t3.deleted_at = ? AND t3.status = ?
|
||||||
|
|||||||
@@ -256,10 +256,10 @@ func genSkuParamsFromStoreSkuInfo2(storeSku *dao.StoreSkuSyncInfo, isCreate bool
|
|||||||
if storeSku.DescImg != "" {
|
if storeSku.DescImg != "" {
|
||||||
params["rtf"] = storeSku.DescImg
|
params["rtf"] = storeSku.DescImg
|
||||||
}
|
}
|
||||||
if isCreate /*storeSku.StoreSkuSyncStatus&(model.SyncFlagPriceMask| model.SyncFlagNewMask) != 0 */ {
|
if isCreate /*storeSku.SkuSyncStatus&(model.SyncFlagPriceMask| model.SyncFlagNewMask) != 0 */ {
|
||||||
params["sale_price"] = storeSku.VendorPrice
|
params["sale_price"] = storeSku.VendorPrice
|
||||||
}
|
}
|
||||||
if storeSku.StoreSkuSyncStatus&(model.SyncFlagSaleMask|model.SyncFlagNewMask) != 0 {
|
if storeSku.SkuSyncStatus&(model.SyncFlagSaleMask|model.SyncFlagNewMask) != 0 {
|
||||||
params["status"] = jxSkuStatus2Ebai(storeSku.MergedStatus)
|
params["status"] = jxSkuStatus2Ebai(storeSku.MergedStatus)
|
||||||
}
|
}
|
||||||
// todo 饿百如果给的UPC是空要报错,但如果我要删除UPC怎么弄?
|
// todo 饿百如果给的UPC是空要报错,但如果我要删除UPC怎么弄?
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID in
|
|||||||
|
|
||||||
subCatName := ""
|
subCatName := ""
|
||||||
subCatCode := 0
|
subCatCode := 0
|
||||||
if storeCat.StoreCatSyncStatus&model.SyncFlagNewMask == 0 {
|
if storeCat.CatSyncStatus&model.SyncFlagNewMask == 0 {
|
||||||
// 修改一级分类
|
// 修改一级分类
|
||||||
originName = storeCat.VendorCatID
|
originName = storeCat.VendorCatID
|
||||||
}
|
}
|
||||||
@@ -123,7 +123,7 @@ func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID in
|
|||||||
catCode = storeCat.ParentID
|
catCode = storeCat.ParentID
|
||||||
subCatName = storeCat.Name
|
subCatName = storeCat.Name
|
||||||
subCatCode = storeCat.ID
|
subCatCode = storeCat.ID
|
||||||
if storeCat.StoreCatSyncStatus&model.SyncFlagNewMask == 0 {
|
if storeCat.CatSyncStatus&model.SyncFlagNewMask == 0 {
|
||||||
// 修改二级分类
|
// 修改二级分类
|
||||||
originName = storeCat.VendorCatID
|
originName = storeCat.VendorCatID
|
||||||
catName = storeCat.Name
|
catName = storeCat.Name
|
||||||
@@ -150,9 +150,9 @@ func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID in
|
|||||||
Sequence: storeCat.Seq,
|
Sequence: storeCat.Seq,
|
||||||
}
|
}
|
||||||
err = api.MtwmAPI.RetailCatUpdate(vendorStoreID, catName, param4Update)
|
err = api.MtwmAPI.RetailCatUpdate(vendorStoreID, catName, param4Update)
|
||||||
if storeCat.StoreCatSyncStatus&model.SyncFlagNewMask == 0 && // 修改分类名,但分类不存在
|
if storeCat.CatSyncStatus&model.SyncFlagNewMask == 0 && // 修改分类名,但分类不存在
|
||||||
p.IsErrCategoryNotExist(err) && originName != "" {
|
p.IsErrCategoryNotExist(err) && originName != "" {
|
||||||
storeCat.StoreCatSyncStatus |= model.SyncFlagNewMask
|
storeCat.CatSyncStatus |= model.SyncFlagNewMask
|
||||||
err = p.CreateStoreCategory(ctx, storeID, vendorStoreID, storeCat)
|
err = p.CreateStoreCategory(ctx, storeID, vendorStoreID, storeCat)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -235,7 +235,7 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v
|
|||||||
func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo, isCreate bool) (successList []*dao.StoreSkuSyncInfo, err error) {
|
func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo, isCreate bool) (successList []*dao.StoreSkuSyncInfo, err error) {
|
||||||
foodDataList := make([]map[string]interface{}, len(storeSkuList))
|
foodDataList := make([]map[string]interface{}, len(storeSkuList))
|
||||||
for i, storeSku := range storeSkuList {
|
for i, storeSku := range storeSkuList {
|
||||||
isNeedUpdatePrice := isCreate //storeSku.StoreSkuSyncStatus&( model.SyncFlagPriceMask| model.SyncFlagNewMask) != 0
|
isNeedUpdatePrice := isCreate //storeSku.SkuSyncStatus&( model.SyncFlagPriceMask| model.SyncFlagNewMask) != 0
|
||||||
foodData := make(map[string]interface{})
|
foodData := make(map[string]interface{})
|
||||||
foodDataList[i] = foodData
|
foodDataList[i] = foodData
|
||||||
foodData[mtwmapi.KeyAppFoodCode] = utils.Int2Str(storeSku.SkuID)
|
foodData[mtwmapi.KeyAppFoodCode] = utils.Int2Str(storeSku.SkuID)
|
||||||
|
|||||||
Reference in New Issue
Block a user