From ec8c7c020fb2e8ee21b87adb847e35d1eb2dfa2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 6 Jul 2020 10:30:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=8D=E5=88=B6=E9=97=A8=E5=BA=97=E5=95=86?= =?UTF-8?q?=E5=93=81=E4=BB=B7=E6=A0=BC=E4=B8=8D=E7=BB=9F=E4=B8=80=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 35 +++++++++++++++++++++++++++++++ business/jxstore/tempop/tempop.go | 2 +- business/model/dao/store_sku.go | 2 +- 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index ecf373753..cdd3ce574 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -1734,6 +1734,41 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID int, toStoreIDs []int, co } globals.SugarLogger.Debugf("CopyStoreSkus fromStoreID:%d, toStoreID:%d, trackInfo:%s num3:%d", fromStoreID, toStoreID, ctx.GetTrackInfo(), num2) dao.Commit(db) + + //同一商品若源门店的规格少于要复制到的门店,则在复制的门店里的其他规格的unitprice不会变, + //导致复制的门店的商品unitprice不尽相同,这里先处理一下 + type tStore struct { + NameID int `orm:"column(name_id)"` + StoreID int `orm:"column(store_id)"` + } + var resultList []*tStore + sql3 := ` + SELECT a.name_id, a.store_id FROM ( + SELECT DISTINCT a.unit_price, b.name_id, a.store_id FROM store_sku_bind a, sku b, store c + WHERE a.sku_id = b.id + AND c.id = a.store_id + AND c.deleted_at = ? + AND a.store_id = ? + AND a.deleted_at = ?)a + GROUP BY 1, 2 + HAVING COUNT(a.unit_price) > 1 + ` + sqlParams3 := []interface{}{utils.DefaultTimeValue, toStoreID, utils.DefaultTimeValue} + err = dao.GetRows(db, &resultList, sql3, sqlParams3) + if len(resultList) > 0 { + var skuBindInfos []*StoreSkuBindInfo + for _, v := range resultList { + storeSkus, _ := dao.GetStoreSkusByNameIDs(db, []int{v.StoreID}, v.NameID) + unitPirce := storeSkus[0].UnitPrice + skuBindInfo := &StoreSkuBindInfo{ + StoreID: v.StoreID, + NameID: v.NameID, + UnitPrice: int(unitPirce), + } + skuBindInfos = append(skuBindInfos, skuBindInfo) + } + _, err = updateStoresSkusWithoutSync(ctx, db, []int{toStoreID}, skuBindInfos, false, false) + } } if globals.IsAddEvent { mapAfter := make(map[string]interface{}) diff --git a/business/jxstore/tempop/tempop.go b/business/jxstore/tempop/tempop.go index 3c2f1f5fe..6f8850629 100644 --- a/business/jxstore/tempop/tempop.go +++ b/business/jxstore/tempop/tempop.go @@ -1636,7 +1636,7 @@ func UploadJdsImage(ctx *jxcontext.Context) (err error) { fmt.Println("testresultList3", utils.Format4Output(resultList, false)) // var skuBindInfos []*cms.StoreSkuBindInfo // for _, v := range resultList { - // storeSkus, _ := dao.GetStoreSkusByNameIDs(db, []int{v.StoreID}, v.NameID) + // storeSkus, _ := dao.GetStoreSkusByNameIDs(db, []int{v.StoreID}, v.NameID) // unitPirce := storeSkus[0].UnitPrice // skuBindInfo := &cms.StoreSkuBindInfo{ // StoreID: v.StoreID, diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 8993304df..9b64d2ece 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -998,7 +998,7 @@ func GetStoreSkusByNameIDs(db *DaoDB, storeIDs []int, nameID int) (skuList []*St sqlParams = append(sqlParams, storeIDs) } sql += ` AND a.status != ? - ORDER BY a.created_at + ORDER BY a.updated_at DESC ` sqlParams = append(sqlParams, model.SkuStatusDeleted) err = GetRows(db, &skuList, sql, sqlParams...)