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...)