diff --git a/business/model/dao/act.go b/business/model/dao/act.go index d0199977c..4f4221584 100644 --- a/business/model/dao/act.go +++ b/business/model/dao/act.go @@ -672,3 +672,22 @@ func GetStoresSkusAndActInfo(db *DaoDB, storeIDs, skuIDs, vendorIDs []int, minAc // } // return outStoreSkuActList, err // } + +func GetActMtwmVendors(db *DaoDB, storeIDs, skuIDs []int) (actMtwmVendors []*model.ActMtwmVendor, err error) { + sql := ` + SELECT * + FROM act_mtwm_vendor + WHERE 1 = 1 + ` + sqlParams := []interface{}{} + if len(storeIDs) > 0 { + sql += " AND store_id IN (" + GenQuestionMarks(len(storeIDs)) + ")" + sqlParams = append(sqlParams, storeIDs) + } + if len(skuIDs) > 0 { + sql += " AND sku_id IN (" + GenQuestionMarks(len(skuIDs)) + ")" + sqlParams = append(sqlParams, skuIDs) + } + err = GetRows(db, &actMtwmVendors, sql, sqlParams) + return actMtwmVendors, err +} diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index aae03b63a..3290c427c 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -1436,7 +1436,15 @@ func UpdateActPrice4StoreSkuNameNew(db *DaoDB, storeIDs, skuIDs []int, skuNamesI } actStoreSkuMap4Act := jxutils.NewActStoreSkuMap(actStoreSkuList, true) actStoreSkuMap4EarningPrice := jxutils.NewActStoreSkuMap(actStoreSkuList, false) - + mtactList, _ := GetActMtwmVendors(db, storeIDs, skuIDs) + mtactMap := make(map[int]map[int]*model.ActMtwmVendor) + for _, v := range mtactList { + if mtactMap[v.StoreID] == nil { + mtactSkuMap := make(map[int]*model.ActMtwmVendor) + mtactMap[v.StoreID] = mtactSkuMap + } + mtactMap[v.StoreID][v.SkuID] = v + } for _, skuName := range skuNamesInfo.SkuNames { if len(skuName.Skus) > 0 { for _, v := range skuName.Skus { @@ -1461,6 +1469,12 @@ func UpdateActPrice4StoreSkuNameNew(db *DaoDB, storeIDs, skuIDs []int, skuNamesI } } + if actVendorID == model.VendorIDMTWM && v.ActPrice == 0 { + mtact := mtactMap[skuName.StoreID][v.SkuID] + v.ActPrice = int(jxutils.StandardPrice2Int(mtact.ActPrice)) + v.ActType = mtact.ActType + } + if globals.IsStoreSkuAct { v.VendorInfoMap = make(map[int]*StoreSkuVendorInfo) for _, storeMap := range storeMapMap[skuName.StoreID] {