From f265e13c2cc483a046a882b43b0055a3db90e9f8 Mon Sep 17 00:00:00 2001 From: gazebo Date: Thu, 25 Jul 2019 16:53:49 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BF=AE=E5=A4=8DGetEffectiveActStoreSkuIn?= =?UTF-8?q?fo=E4=B8=8D=E8=BF=94=E5=9B=9E=E5=B9=B3=E5=8F=B0=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order.go | 4 ++-- business/model/dao/act.go | 19 +++++++++++++------ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index 475118c2d..a69753b3b 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -295,12 +295,12 @@ func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db *dao. return err } - actStoreSkuList, err := dao.GetEffectiveActStoreSkuInfo(db, 0, nil, []int{jxStoreID}, jxutils.IntMap2List(skuIDMap), order.OrderCreatedAt, order.OrderCreatedAt) + actStoreSkuList, err := dao.GetEffectiveActStoreSkuInfo(db, 0, []int{order.VendorID}, []int{jxStoreID}, jxutils.IntMap2List(skuIDMap), order.OrderCreatedAt, order.OrderCreatedAt) if err != nil { globals.SugarLogger.Errorf("updateOrderSkuOtherInfo can not get sku promotion info for error:%v", err) return err } - actStoreSkuMap = jxutils.NewActStoreSkuMap(actStoreSkuList, true) + actStoreSkuMap = jxutils.NewActStoreSkuMap(actStoreSkuList, false) } for _, v := range orderSkus { diff --git a/business/model/dao/act.go b/business/model/dao/act.go index d833bc02e..11b8ce7d5 100644 --- a/business/model/dao/act.go +++ b/business/model/dao/act.go @@ -300,23 +300,30 @@ func QueryActs(db *DaoDB, actID int, offset, pageSize int, keyword string, vendo return pagedInfo, err } -func GetEffectiveActStoreSkuInfo(db *DaoDB, actID int, vendorIDs, storeIDs, skuIDs []int, beginAt, endAt time.Time) (actStoreSkuList []*model.ActStoreSku2, err error) { +func GetEffectiveActStoreSkuInfo(db *DaoDB, actID int, vendorIDs []int, storeIDs, skuIDs []int, beginAt, endAt time.Time) (actStoreSkuList []*model.ActStoreSku2, err error) { if utils.IsTimeZero(beginAt) { return nil, fmt.Errorf("GeActStoreSkuInfo必须指定活动开始时间") } if utils.IsTimeZero(endAt) { endAt = beginAt } - sqlParams := []interface{}{} sql := ` - SELECT t2.* + SELECT + t2.*, + t3.actual_act_price, t3.sync_status, t3.vendor_price FROM act t1 JOIN act_store_sku t2 ON t2.act_id = t1.id AND t2.deleted_at = ? + JOIN act_store_sku_map t3 ON t3.bind_id = t2.id AND t3.act_id = t1.id WHERE t1.status = ? AND NOT (t1.begin_at > ? OR t1.end_at < ?)` - sqlParams = append(sqlParams, utils.DefaultTimeValue, model.ActStatusCreated, endAt, beginAt) + sqlParams := []interface{}{ + utils.DefaultTimeValue, + model.ActStatusCreated, + endAt, + beginAt, + } if len(vendorIDs) > 0 { - sql += " AND t1.vendor_mask & ? <> 0" - sqlParams = append(sqlParams, model.GetVendorMask(vendorIDs...)) + sql += " AND (t1.vendor_mask & ?) <> 0 AND t3.vendor_id IN (" + GenQuestionMarks(len(vendorIDs)) + ")" + sqlParams = append(sqlParams, model.GetVendorMask(vendorIDs...), vendorIDs) } if actID > 0 { sql = " AND t1.id = ?"