- 修复GetEffectiveActStoreSkuInfo不返回平台信息的bug

This commit is contained in:
gazebo
2019-07-25 16:53:49 +08:00
parent 7ea9a4d493
commit f265e13c2c
2 changed files with 15 additions and 8 deletions

View File

@@ -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 {

View File

@@ -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 = ?"