From e451901a7420340f7d81ef2aad62fcc5b93cfe33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 14 Feb 2020 15:30:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B3=E4=BA=8E=E9=A5=BF=E9=B2=9C=E8=BE=BE?= =?UTF-8?q?=E5=95=86=E5=93=81=E5=85=B3=E6=B3=A8=EF=BC=8C=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=94=B9=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 8 +++ business/jxstore/cms/store_sku.go | 93 ++++++++++++++++--------------- business/jxstore/misc/misc.go | 1 + controllers/cms_sku.go | 1 + 4 files changed, 58 insertions(+), 45 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index cf59dbb98..4810a07b1 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -415,6 +415,14 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku bool, params ma sqlParams = append(sqlParams, nameIDs) } } + if params["isExd"] != nil { + var idExd = params["isExd"].(bool) + if idExd { + sql += " AND t2.exd_sku_id <> ''" + } else { + sql += " AND t2.exd_sku_id == ''" + } + } if params["categoryID"] != nil { cat := &model.SkuCategory{} cat.ID = params["categoryID"].(int) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 6e067b43f..9ac32cb2b 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -82,15 +82,16 @@ type StoreSkuBindInfo struct { type tStoreSkuBindAndSpec struct { model.StoreSkuBind - SkuStatus int - SkuNameStatus int - Name string - SpecQuality float32 - SpecUnit string - SkuNamePrice int - SkuNameUnit string - RealSkuID int `orm:"column(real_sku_id)"` - + SkuStatus int + SkuNameStatus int + Name string + SpecQuality float32 + SpecUnit string + SkuNamePrice int + SkuNameUnit string + RealSkuID int `orm:"column(real_sku_id)"` + ExdSkuID string `orm:"column(exd_sku_id)"` + StoreName string ChangePriceType int8 `json:"changePriceType"` // 修改价格类型,即是否需要审核 } @@ -976,13 +977,13 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs sql := ` SELECT t2.*, - t1.id real_sku_id, t1.status sku_status, t1.spec_quality, t1.spec_unit,` + t1.id real_sku_id, t1.status sku_status, t1.spec_quality, t1.spec_unit, t1.exd_sku_id,` if needGetExistingUnitPrice { sql += " IF(t5.unit_price > 0, t5.unit_price, t3.price) sku_name_price," } sql += ` t3.unit sku_name_unit, t3.name, t3.status sku_name_status, - ts.change_price_type + ts.change_price_type, ts.name store_name FROM sku t1 JOIN store ts ON ts.id = ? AND ts.deleted_at = ? LEFT JOIN store_sku_bind t2 ON t2.sku_id = t1.id AND t2.store_id = ts.id AND t2.deleted_at = ? @@ -1037,41 +1038,43 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs // globals.SugarLogger.Debug(utils.Format4Output(inSkuBind, false)) var skuBind *model.StoreSkuBind if v.ID == 0 { - if skuBindInfo.IsFocus == 1 && v.SkuNameStatus == model.SkuStatusNormal && v.SkuStatus == model.SkuStatusNormal && isCanChangePrice { - skuBind = &model.StoreSkuBind{ - StoreID: storeID, - SkuID: v.RealSkuID, - SubStoreID: skuBindInfo.SubStoreID, // todo 这个应该从用户信息中自动获得 - UnitPrice: unitPrice, - Price: jxutils.CaculateSkuPrice(unitPrice, v.SpecQuality, v.SpecUnit, v.SkuNameUnit), - Status: model.StoreSkuBindStatusDontSale, // 缺省不可售? - } - skuBind.JxPrice = jxutils.CaculatePriceByPricePack(storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage), skuBind.Price) - if tmpStatus := getSkuSaleStatus(inSkuBind, skuBindInfo); tmpStatus != model.StoreSkuBindStatusNA { - skuBind.Status = tmpStatus - } - if globals.IsAddEvent { - err = AddEventDetail(db, ctx, model.OperateAdd, v.RealSkuID, model.ThingTypeSku, storeID, "", "") - } - setStoreSkuBindStatus(skuBind, model.SyncFlagNewMask) - dao.WrapAddIDCULDEntity(skuBind, userName) - // globals.SugarLogger.Debug(utils.Format4Output(skuBind, false)) - if deletedSku := dao.GetDeletedStoreSkuBind(db, skuBind.StoreID, skuBind.SkuID); deletedSku == nil { - if err = dao.CreateEntity(db, skuBind); err != nil { - dao.Rollback(db) - return nil, err + if !(strings.Contains(v.StoreName, model.ExdStoreName) && v.ExdSkuID == "") { + if skuBindInfo.IsFocus == 1 && v.SkuNameStatus == model.SkuStatusNormal && v.SkuStatus == model.SkuStatusNormal && isCanChangePrice { + skuBind = &model.StoreSkuBind{ + StoreID: storeID, + SkuID: v.RealSkuID, + SubStoreID: skuBindInfo.SubStoreID, // todo 这个应该从用户信息中自动获得 + UnitPrice: unitPrice, + Price: jxutils.CaculateSkuPrice(unitPrice, v.SpecQuality, v.SpecUnit, v.SkuNameUnit), + Status: model.StoreSkuBindStatusDontSale, // 缺省不可售? } - num = 1 - } else { - // 需要处理,在删除某个门店商品,同步失败的情况下,又把商品重新关注。 - // 所以统一处理成恢复删除的记录,这样避免问题 - skuBind.ID = deletedSku.ID - // vendorSkuID的赋值意义不大 - skuBind.MtwmID = deletedSku.MtwmID - skuBind.EbaiID = deletedSku.EbaiID - if num, err = dao.UpdateEntity(db, skuBind); err != nil { - dao.Rollback(db) - return nil, err + skuBind.JxPrice = jxutils.CaculatePriceByPricePack(storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage), skuBind.Price) + if tmpStatus := getSkuSaleStatus(inSkuBind, skuBindInfo); tmpStatus != model.StoreSkuBindStatusNA { + skuBind.Status = tmpStatus + } + if globals.IsAddEvent { + err = AddEventDetail(db, ctx, model.OperateAdd, v.RealSkuID, model.ThingTypeSku, storeID, "", "") + } + setStoreSkuBindStatus(skuBind, model.SyncFlagNewMask) + dao.WrapAddIDCULDEntity(skuBind, userName) + // globals.SugarLogger.Debug(utils.Format4Output(skuBind, false)) + if deletedSku := dao.GetDeletedStoreSkuBind(db, skuBind.StoreID, skuBind.SkuID); deletedSku == nil { + if err = dao.CreateEntity(db, skuBind); err != nil { + dao.Rollback(db) + return nil, err + } + num = 1 + } else { + // 需要处理,在删除某个门店商品,同步失败的情况下,又把商品重新关注。 + // 所以统一处理成恢复删除的记录,这样避免问题 + skuBind.ID = deletedSku.ID + // vendorSkuID的赋值意义不大 + skuBind.MtwmID = deletedSku.MtwmID + skuBind.EbaiID = deletedSku.EbaiID + if num, err = dao.UpdateEntity(db, skuBind); err != nil { + dao.Rollback(db) + return nil, err + } } } } diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 216a8f4fb..adfaf6772 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -47,6 +47,7 @@ var ( } checkCookieList = []string{ "08:00:00", + "12:00:00", "18:00:00", } createStorePriceTimeList = []string{ diff --git a/controllers/cms_sku.go b/controllers/cms_sku.go index 5cbeca9e9..59d441406 100644 --- a/controllers/cms_sku.go +++ b/controllers/cms_sku.go @@ -147,6 +147,7 @@ func (c *SkuController) SyncCategory() { // @Param skuCategoryID query int false "商品所属类别ID" // @Param unit query string false "商品单位" // @Param isSpu query bool false "是否是SPU" +// @Param isExd query bool false "是否是饿鲜达商品" // @Param fromStatus query int false "查询起始状态(0:下架,1:正常)" // @Param toStatus query int false "查询起始状态(0:下架,1:正常)" // @Param offset query int false "门店列表起始序号(以0开始,缺省为0)"