门店商品标志,只刷高价的

This commit is contained in:
苏尹岚
2020-06-05 10:29:07 +08:00
parent 47cdfe835e
commit bdddda508c
5 changed files with 36 additions and 25 deletions

View File

@@ -838,16 +838,16 @@ func UpdateStoreSku(ctx *jxcontext.Context, causeFlag, storeID int, skuBindInfo
} }
func UpdateStoreSkus(ctx *jxcontext.Context, causeFlag, storeID int, skuBindInfos []*StoreSkuBindInfo, isAsync, isContinueWhenError bool) (hint string, err error) { func UpdateStoreSkus(ctx *jxcontext.Context, causeFlag, storeID int, skuBindInfos []*StoreSkuBindInfo, isAsync, isContinueWhenError bool) (hint string, err error) {
return UpdateStoresSkus(ctx, causeFlag, []int{storeID}, skuBindInfos, false, isAsync, isContinueWhenError) return UpdateStoresSkus(ctx, causeFlag, []int{storeID}, skuBindInfos, false, false, isAsync, isContinueWhenError)
} }
func UpdateStoresSkus(ctx *jxcontext.Context, causeFlag int, storeIDs []int, skuBindInfos []*StoreSkuBindInfo, isScale, isAsync, isContinueWhenError bool) (hint string, err error) { func UpdateStoresSkus(ctx *jxcontext.Context, causeFlag int, storeIDs []int, skuBindInfos []*StoreSkuBindInfo, isScale, isRefreshHigh, isAsync, isContinueWhenError bool) (hint string, err error) {
globals.SugarLogger.Debugf("UpdateStoresSkus:%s, storeIDs:%v, skuBindInfos:%s", ctx.GetTrackInfo(), storeIDs, utils.Format4Output(skuBindInfos, true)) globals.SugarLogger.Debugf("UpdateStoresSkus:%s, storeIDs:%v, skuBindInfos:%s", ctx.GetTrackInfo(), storeIDs, utils.Format4Output(skuBindInfos, true))
flag, err := doStoreSkuAudit(ctx, storeIDs, skuBindInfos) flag, err := doStoreSkuAudit(ctx, storeIDs, skuBindInfos)
if !flag { if !flag {
var num int64 var num int64
db := dao.GetDB() db := dao.GetDB()
skuIDs, err := updateStoresSkusWithoutSync(ctx, db, storeIDs, skuBindInfos, isScale) skuIDs, err := updateStoresSkusWithoutSync(ctx, db, storeIDs, skuBindInfos, isScale, isRefreshHigh)
if err != nil { if err != nil {
return "", err return "", err
} }
@@ -863,7 +863,7 @@ func UpdateStoresSkus(ctx *jxcontext.Context, causeFlag int, storeIDs []int, sku
return hint, err return hint, err
} }
func UpdateStoresSkusWithoutSync(ctx *jxcontext.Context, storeIDs []int, skuBindInfos []*StoreSkuBindInfo) (err error) { func UpdateStoresSkusWithoutSync(ctx *jxcontext.Context, storeIDs []int, skuBindInfos []*StoreSkuBindInfo, isRefreshHigh bool) (err error) {
db := dao.GetDB() db := dao.GetDB()
if len(storeIDs) == 0 { if len(storeIDs) == 0 {
stores, _ := dao.GetStoreList(db, nil, nil, nil, nil, "") stores, _ := dao.GetStoreList(db, nil, nil, nil, nil, "")
@@ -871,7 +871,7 @@ func UpdateStoresSkusWithoutSync(ctx *jxcontext.Context, storeIDs []int, skuBind
storeIDs = append(storeIDs, v.ID) storeIDs = append(storeIDs, v.ID)
} }
} }
updateStoresSkusWithoutSync(ctx, db, storeIDs, skuBindInfos, false) updateStoresSkusWithoutSync(ctx, db, storeIDs, skuBindInfos, false, isRefreshHigh)
return err return err
} }
@@ -900,7 +900,7 @@ func UpdateStoresSkusByBind(ctx *jxcontext.Context, parentTask tasksch.ITask, sk
// } // }
// }() // }()
for _, storeID := range storeIDs { for _, storeID := range storeIDs {
skuIDs, err2 := updateStoresSkusWithoutSync(ctx, db, []int{storeID}, skuBindInfosMap[storeID], false) skuIDs, err2 := updateStoresSkusWithoutSync(ctx, db, []int{storeID}, skuBindInfosMap[storeID], false, false)
if err = err2; err != nil { if err = err2; err != nil {
// dao.Rollback(db) // dao.Rollback(db)
return "", err return "", err
@@ -980,7 +980,7 @@ func uniqueStoreNameBind(skuBindInfos []*StoreSkuBindInfo) (outSkuBindInfos []*S
return outSkuBindInfos return outSkuBindInfos
} }
func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs []int, skuBindInfos []*StoreSkuBindInfo, isScale bool) (needSyncSkus []int, err error) { func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs []int, skuBindInfos []*StoreSkuBindInfo, isScale, isRefreshHigh bool) (needSyncSkus []int, err error) {
// if len(storeIDs)*len(skuBindInfos) > maxStoreNameBind2 { // if len(storeIDs)*len(skuBindInfos) > maxStoreNameBind2 {
// return nil, fmt.Errorf("门店商品信息大于%d", maxStoreNameBind2) // return nil, fmt.Errorf("门店商品信息大于%d", maxStoreNameBind2)
// } // }
@@ -1194,11 +1194,21 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
setStoreSkuBindStatus(skuBind, model.SyncFlagPriceMask) setStoreSkuBindStatus(skuBind, model.SyncFlagPriceMask)
updateFieldMap["Price"] = 1 updateFieldMap["Price"] = 1
} }
skuBind.UnitPrice = unitPrice if isRefreshHigh {
skuBind.Price = price if beforeMsg.UnitPrice > skuBindInfo.UnitPrice {
skuBind.JxPrice = jxPrice skuBind.UnitPrice = unitPrice
updateFieldMap["UnitPrice"] = 1 skuBind.Price = price
updateFieldMap["JxPrice"] = 1 skuBind.JxPrice = jxPrice
updateFieldMap["UnitPrice"] = 1
updateFieldMap["JxPrice"] = 1
}
} else {
skuBind.UnitPrice = unitPrice
skuBind.Price = price
skuBind.JxPrice = jxPrice
updateFieldMap["UnitPrice"] = 1
updateFieldMap["JxPrice"] = 1
}
} }
} }
if skuBindInfo.StatusSaleBegin != 0 && skuBindInfo.StatusSaleEnd != 0 { if skuBindInfo.StatusSaleBegin != 0 && skuBindInfo.StatusSaleEnd != 0 {
@@ -1877,7 +1887,7 @@ func AcceptStoreOpRequests(ctx *jxcontext.Context, reqIDs []int) (err error) {
} }
} }
if err2 == nil { if err2 == nil {
_, err2 := UpdateStoresSkus(ctx, 0, []int{op.StoreID}, []*StoreSkuBindInfo{skuBindInfo}, false, false, false) _, err2 := UpdateStoresSkus(ctx, 0, []int{op.StoreID}, []*StoreSkuBindInfo{skuBindInfo}, false, false, false, false)
isLocalSucess := true isLocalSucess := true
if err2 != nil { if err2 != nil {
subErrors[reqID] = err2 subErrors[reqID] = err2
@@ -2596,7 +2606,7 @@ func RefershStoreSkusMidPrice(ctx *jxcontext.Context, storeIDs []int, isCountry
} }
} }
} }
updateStoresSkusWithoutSync(ctx, db, []int{v}, skuBindInfos, false) updateStoresSkusWithoutSync(ctx, db, []int{v}, skuBindInfos, false, false)
} }
if err == nil { if err == nil {
CreateStorePriceScore(ctx) CreateStorePriceScore(ctx)
@@ -2738,7 +2748,7 @@ func RefreshJxPriceByExcelBin(ctx *jxcontext.Context, storeIDs []int, reader io.
skuBindInfoList = append(skuBindInfoList, v.(*StoreSkuBindInfo)) skuBindInfoList = append(skuBindInfoList, v.(*StoreSkuBindInfo))
} }
if isErr { if isErr {
UpdateStoresSkus(ctx, 0, storeIDs, skuBindInfoList, false, isAsync, isContinueWhenError) UpdateStoresSkus(ctx, 0, storeIDs, skuBindInfoList, false, false, isAsync, isContinueWhenError)
} }
case 3: case 3:
//写Excel //写Excel
@@ -3398,7 +3408,7 @@ func AutoFocusStoreSkusWithoutFocus(ctx *jxcontext.Context, skuIDs []int, isSync
if isSync { if isSync {
UpdateStoreSkus(ctx, 0, v.StoreID, skuBindInfoList, true, true) UpdateStoreSkus(ctx, 0, v.StoreID, skuBindInfoList, true, true)
} else { } else {
updateStoresSkusWithoutSync(ctx, db, []int{v.StoreID}, skuBindInfoList, false) updateStoresSkusWithoutSync(ctx, db, []int{v.StoreID}, skuBindInfoList, false, false)
} }
} }
return err return err
@@ -4102,7 +4112,7 @@ func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (err error) {
} }
} }
//物料店666666 //物料店666666
updateStoresSkusWithoutSync(ctx, db, []int{666666}, skuBindInfos, false) updateStoresSkusWithoutSync(ctx, db, []int{666666}, skuBindInfos, false, false)
return err return err
} }
@@ -4450,7 +4460,7 @@ func focusC4Matters(ctx *jxcontext.Context, db *dao.DaoDB, v *model.Sku) (err er
} }
skuBindInfos = append(skuBindInfos, skuBindInfo) skuBindInfos = append(skuBindInfos, skuBindInfo)
} }
updateStoresSkusWithoutSync(ctx, db, []int{model.MatterStoreID}, skuBindInfos, false) updateStoresSkusWithoutSync(ctx, db, []int{model.MatterStoreID}, skuBindInfos, false, false)
} }
return err return err
} }
@@ -4609,7 +4619,7 @@ func StoreSkuPriceAudit(ctx *jxcontext.Context, storeSkuAudits []*model.StoreSku
} }
var num int64 var num int64
db := dao.GetDB() db := dao.GetDB()
skuIDs, err := updateStoresSkusWithoutSync(ctx, db, []int{storeAudit.StoreID}, skuBindInfos, false) skuIDs, err := updateStoresSkusWithoutSync(ctx, db, []int{storeAudit.StoreID}, skuBindInfos, false, false)
if err != nil { if err != nil {
return "", err return "", err
} }

View File

@@ -1028,7 +1028,7 @@ func syncStoreSkusFromYb(ctx *jxcontext.Context, storeID, vendorID int, vendorSt
for _, v := range resultDel { for _, v := range resultDel {
skuBindInfosDel = append(skuBindInfosDel, v.(*StoreSkuBindInfo)) skuBindInfosDel = append(skuBindInfosDel, v.(*StoreSkuBindInfo))
} }
_, err = updateStoresSkusWithoutSync(ctx, db, []int{storeID}, skuBindInfosDel, false) _, err = updateStoresSkusWithoutSync(ctx, db, []int{storeID}, skuBindInfosDel, false, false)
} }
case 2: case 2:
if len(updateList) > 0 { if len(updateList) > 0 {
@@ -1071,7 +1071,7 @@ func syncStoreSkusFromYb(ctx *jxcontext.Context, storeID, vendorID int, vendorSt
for _, v := range resultUpt { for _, v := range resultUpt {
skuBindInfosUpt = append(skuBindInfosUpt, v.(*StoreSkuBindInfo)) skuBindInfosUpt = append(skuBindInfosUpt, v.(*StoreSkuBindInfo))
} }
_, err = updateStoresSkusWithoutSync(ctx, db, []int{storeID}, skuBindInfosUpt, false) _, err = updateStoresSkusWithoutSync(ctx, db, []int{storeID}, skuBindInfosUpt, false, false)
} }
case 3: case 3:
_, err = CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, nil, 0, db, []int{0, 1, 3}, nil, false, nil, nil, 0, true, true) _, err = CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, nil, 0, db, []int{0, 1, 3}, nil, false, nil, nil, 0, true, true)

View File

@@ -1676,7 +1676,7 @@ func RefreshJXPriceChange(ctx *jxcontext.Context, storeID int) (hint string, err
skuBindInfos = append(skuBindInfos, skuBindInfo) skuBindInfos = append(skuBindInfos, skuBindInfo)
} }
// cms.UpdateStoresSkusByBind(ctx, task, skuBindInfos, isAsync, isContinueWhenError, false) // cms.UpdateStoresSkusByBind(ctx, task, skuBindInfos, isAsync, isContinueWhenError, false)
cms.UpdateStoresSkusWithoutSync(ctx, []int{store.ID}, skuBindInfos) cms.UpdateStoresSkusWithoutSync(ctx, []int{store.ID}, skuBindInfos, false)
store.PayPercentage = 100 store.PayPercentage = 100
dao.UpdateEntity(db, store, "PayPercentage") dao.UpdateEntity(db, store, "PayPercentage")
return retVal, err return retVal, err

View File

@@ -851,7 +851,7 @@ func UpdateJxPriceByWeimob(ctx *jxcontext.Context, storeIDs []int, isAsync, isCo
for _, v := range storeSkuBindInfoList { for _, v := range storeSkuBindInfoList {
skuBindInfos = append(skuBindInfos, v.(*cms.StoreSkuBindInfo)) skuBindInfos = append(skuBindInfos, v.(*cms.StoreSkuBindInfo))
} }
cms.UpdateStoresSkus(ctx, 0, storeIDs, skuBindInfos, false, isAsync, isContinueWhenError) cms.UpdateStoresSkus(ctx, 0, storeIDs, skuBindInfos, false, false, isAsync, isContinueWhenError)
case 2: case 2:
WriteToExcel3(task, dataStoreSkusSuccess.dataStoreSkusSuccessList, dataFailed.dataFailedList) WriteToExcel3(task, dataStoreSkusSuccess.dataStoreSkusSuccessList, dataFailed.dataFailedList)
} }

View File

@@ -216,6 +216,7 @@ func (c *StoreSkuController) SyncStoresSkus() {
// @Param payload formData string true "json数据StoreSkuBindInfo对象数组" // @Param payload formData string true "json数据StoreSkuBindInfo对象数组"
// @Param isScale formData bool false "是否按门店结算比例缩放" // @Param isScale formData bool false "是否按门店结算比例缩放"
// @Param causeFlag formData int false "操作类型" // @Param causeFlag formData int false "操作类型"
// @Param isRefreshHigh formData bool true "是否只刷门店价高于给的价"
// @Param isContinueWhenError formData bool false "单个同步失败是否继续缺省false" // @Param isContinueWhenError formData bool false "单个同步失败是否继续缺省false"
// @Param isAsync formData bool false "是否异步操作" // @Param isAsync formData bool false "是否异步操作"
// @Success 200 {object} controllers.CallResult // @Success 200 {object} controllers.CallResult
@@ -228,7 +229,7 @@ func (c *StoreSkuController) UpdateStoresSkus() {
if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDs, params.Payload, &skuBindInfos); err != nil { if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDs, params.Payload, &skuBindInfos); err != nil {
return retVal, "", err return retVal, "", err
} }
retVal, err = cms.UpdateStoresSkus(params.Ctx, params.CauseFlag, storeIDs, skuBindInfos, params.IsScale, params.IsAsync, params.IsContinueWhenError) retVal, err = cms.UpdateStoresSkus(params.Ctx, params.CauseFlag, storeIDs, skuBindInfos, params.IsScale, params.IsRefreshHigh, params.IsAsync, params.IsContinueWhenError)
return retVal, "", err return retVal, "", err
}) })
} }
@@ -249,7 +250,7 @@ func (c *StoreSkuController) UpdateStoresSkusWithoutSync() {
if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDs, params.Payload, &skuBindInfos); err != nil { if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDs, params.Payload, &skuBindInfos); err != nil {
return retVal, "", err return retVal, "", err
} }
err = cms.UpdateStoresSkusWithoutSync(params.Ctx, storeIDs, skuBindInfos) err = cms.UpdateStoresSkusWithoutSync(params.Ctx, storeIDs, skuBindInfos, params.IsRefreshHigh)
return retVal, "", err return retVal, "", err
}) })
} }