package dao import ( "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/model" ) func GetActVendorInfo(db *DaoDB, actID int, vendorIDs []int) (actMap map[int]*model.Act2, err error) { sql := ` SELECT t1.*, t2.id map_id, t2.vendor_id, t2.vendor_act_id, t2.sync_status FROM act t1 JOIN act_map t2 ON t2.act_id = t1.id AND t2.deleted_at = ? WHERE t1.deleted_at = ? AND t1.id = ? ` sqlParams := []interface{}{ utils.DefaultTimeValue, utils.DefaultTimeValue, actID, } if len(vendorIDs) > 0 { sql += " AND t2.vendor_id IN (" + GenQuestionMarks(len(vendorIDs)) + ")" sqlParams = append(sqlParams, vendorIDs) } var actList []*model.Act2 if err = GetRows(db, &actList, sql, sqlParams...); err == nil { actMap = make(map[int]*model.Act2) for _, v := range actList { actMap[v.VendorID] = v } } return actMap, err } func GetActStoreSkuVendorInfo(db *DaoDB, actID int, vendorIDs, storeIDs, skuIDs []int) (actStoreSkuMap map[int][]*model.ActStoreSku2, err error) { sql := ` SELECT t1.*, t2.id map_id, t2.vendor_id, t2.vendor_act_id, t2.sync_status, t3.vendor_store_id, CASE t2.vendor_id WHEN 0 THEN t4.jd_id WHEN 1 THEN t5.mtwm_id WHEN 3 THEN t5.ebai_id ELSE '' END vendor_sku_id FROM act_store_sku_map t2 JOIN act_store_sku t1 ON t1.id = t2.bind_id JOIN store_map t3 ON t3.store_id = t1.store_id AND t3.vendor_id = t2.vendor_id AND t3.deleted_at = ? JOIN sku t4 ON t4.id = t1.sku_id AND t4.deleted_at = ? JOIN store_sku_bind t5 ON t5.sku_id = t1.sku_id AND t5.store_id = t1.store_id AND t5.deleted_at = ? WHERE t2.deleted_at = ? AND t2.act_id = ? ` sqlParams := []interface{}{ utils.DefaultTimeValue, utils.DefaultTimeValue, utils.DefaultTimeValue, utils.DefaultTimeValue, actID, } if len(vendorIDs) > 0 { sql += " AND t2.vendor_id IN (" + GenQuestionMarks(len(vendorIDs)) + ")" sqlParams = append(sqlParams, vendorIDs) } if len(storeIDs) > 0 { sql += " AND t1.store_id IN (" + GenQuestionMarks(len(storeIDs)) + ")" sqlParams = append(sqlParams, storeIDs) } if len(skuIDs) > 0 { sql += " AND t1.sku_id IN (" + GenQuestionMarks(len(skuIDs)) + ")" sqlParams = append(sqlParams, skuIDs) } var actStoreSkuList []*model.ActStoreSku2 if err = GetRows(db, &actStoreSkuList, sql, sqlParams...); err == nil { actStoreSkuMap = make(map[int][]*model.ActStoreSku2) for _, v := range actStoreSkuList { actStoreSkuMap[v.VendorID] = append(actStoreSkuMap[v.VendorID], v) } } return actStoreSkuMap, err }