From 59d21cce7f52adf5d1289277eda14d27401aa274 Mon Sep 17 00:00:00 2001 From: gazebo Date: Thu, 9 Jan 2020 12:01:54 +0800 Subject: [PATCH] updateStoresSkusWithoutSync --- business/jxstore/cms/store_sku.go | 50 +++++++++++++++---------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index fdd9b2ac3..d58cfe391 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -1089,34 +1089,32 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs setStoreSkuBindStatus(skuBind, model.SyncFlagSaleMask) updateFieldMap[model.FieldStatus] = 1 } - if skuBindInfo.UnitPrice != 0 && skuBind.UnitPrice != unitPrice && isCanChangePrice { // 这里是否需要加此条件限制 - skuBind.UnitPrice = unitPrice - skuBind.Price = jxutils.CaculateSkuPrice(unitPrice, v.SpecQuality, v.SpecUnit, v.SkuNameUnit) - skuBind.JxPrice = jxutils.CaculatePriceByPricePack(storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage), skuBind.Price) - setStoreSkuBindStatus(skuBind, model.SyncFlagPriceMask) - updateFieldMap["UnitPrice"] = 1 - updateFieldMap["Price"] = 1 - updateFieldMap["JxPrice"] = 1 + if skuBindInfo.UnitPrice != 0 && isCanChangePrice { // 这里是否需要加此条件限制 + price := jxutils.CaculateSkuPrice(unitPrice, v.SpecQuality, v.SpecUnit, v.SkuNameUnit) + jxPrice := jxutils.CaculatePriceByPricePack(storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage), price) + if unitPrice != skuBind.UnitPrice || price != skuBind.Price || jxPrice != skuBind.JxPrice { + if price != skuBind.Price { + setStoreSkuBindStatus(skuBind, model.SyncFlagPriceMask) + updateFieldMap["Price"] = 1 + } + skuBind.UnitPrice = unitPrice + skuBind.Price = price + skuBind.JxPrice = jxPrice + updateFieldMap["UnitPrice"] = 1 + updateFieldMap["JxPrice"] = 1 + } } if skuBindInfo.StatusSaleBegin != 0 && skuBindInfo.StatusSaleEnd != 0 { if err := ValidateStruct(skuBindInfo); err != nil { - dao.Rollback(db) - return nil, fmt.Errorf("更改商品:%s, 可售时间不合法!时间范围:[%v] 至 [%v]", allBinds[0].Name, skuBindInfo.StatusSaleBegin, skuBindInfo.StatusSaleEnd) + globals.SugarLogger.Infof("更改商品:%s, 可售时间不合法!时间范围:[%v] 至 [%v]", allBinds[0].Name, skuBindInfo.StatusSaleBegin, skuBindInfo.StatusSaleEnd) + } else { + updateFieldMap["StatusSaleBegin"] = int(skuBindInfo.StatusSaleBegin) + updateFieldMap["StatusSaleEnd"] = int(skuBindInfo.StatusSaleEnd) + skuBind.StatusSaleBegin = skuBindInfo.StatusSaleBegin + skuBind.StatusSaleEnd = skuBindInfo.StatusSaleEnd } - updateFieldMap["StatusSaleBegin"] = int(skuBindInfo.StatusSaleBegin) - updateFieldMap["StatusSaleEnd"] = int(skuBindInfo.StatusSaleEnd) - skuBind.StatusSaleBegin = skuBindInfo.StatusSaleBegin - skuBind.StatusSaleEnd = skuBindInfo.StatusSaleEnd } - // todo 这里应该是不需处理这个信息的吧? - // if inSkuBind != nil && inSkuBind.EbaiID != 0 { - // skuBind.EbaiID = inSkuBind.EbaiID - // updateFieldMap["EbaiID"] = 1 - // } - // if inSkuBind != nil && inSkuBind.ElmID != 0 { - // skuBind.ElmID = inSkuBind.ElmID - // updateFieldMap["ElmID"] = 1 - // } + if len(updateFieldMap) > 0 { updateFieldMap[model.FieldJdSyncStatus] = 1 updateFieldMap[model.FieldEbaiSyncStatus] = 1 @@ -1124,9 +1122,11 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs updateFieldMap[model.FieldUpdatedAt] = 1 updateFieldMap[model.FieldLastOperator] = 1 - // setStoreSkuBindStatus(skuBind, model.SyncFlagModifiedMask) dao.WrapUpdateULEntity(skuBind, userName) - skuBind.AutoSaleAt = utils.DefaultTimeValue + if skuBind.Status == model.SkuStatusNormal { + updateFieldMap["AutoSaleAt"] = 1 + skuBind.AutoSaleAt = utils.DefaultTimeValue + } if num, err = dao.UpdateEntity(db, skuBind /*, utils.Map2KeySlice(updateFieldMap)...*/); err != nil { dao.Rollback(db) return nil, err