shan
This commit is contained in:
@@ -72,90 +72,90 @@ func GetActVendorInfo(db *DaoDB, actID int, vendorIDs []int) (actMap map[int]*mo
|
||||
}
|
||||
|
||||
func GetActStoreSkuVendorList(db *DaoDB, actID int, vendorIDs, storeIDs, skuIDs []int, keyword string, offset, pageSize int) (totalCount int, actStoreSkuList []*model.ActStoreSku2, err error) {
|
||||
globals.SugarLogger.Debugf("GetActStoreSkuVendorList actID:%d", actID)
|
||||
offset = jxutils.FormalizePageOffset(offset)
|
||||
pageSize = jxutils.FormalizePageSize(pageSize)
|
||||
// globals.SugarLogger.Debugf("GetActStoreSkuVendorList actID:%d", actID)
|
||||
// offset = jxutils.FormalizePageOffset(offset)
|
||||
// pageSize = jxutils.FormalizePageSize(pageSize)
|
||||
|
||||
leftOrEmpty := ""
|
||||
if len(vendorIDs) == 1 && (vendorIDs[0] == -1 || vendorIDs[0] == model.VendorIDJX) {
|
||||
leftOrEmpty = "LEFT"
|
||||
}
|
||||
sql := fmt.Sprintf(`
|
||||
SELECT SQL_CALC_FOUND_ROWS
|
||||
t1.*,
|
||||
t2.id map_id, t2.vendor_id, t2.vendor_act_id, t2.sync_status, t2.actual_act_price, t2.vendor_price, t2.trend_type, t2.trend_price,
|
||||
t3.vendor_store_id,
|
||||
CASE t2.vendor_id
|
||||
WHEN 0 THEN
|
||||
t4m.vendor_thing_id
|
||||
WHEN 1 THEN
|
||||
t5.mtwm_id
|
||||
WHEN 3 THEN
|
||||
t5.ebai_id
|
||||
ELSE
|
||||
''
|
||||
END vendor_sku_id,
|
||||
t4.comment, t4.spec_quality, t4.spec_unit,
|
||||
t6.name store_name,
|
||||
t7.name sku_name_name, t7.unit, t7.prefix, t7.ex_prefix, t7.ex_prefix_begin, t7.ex_prefix_end
|
||||
FROM act_store_sku t1
|
||||
%s JOIN act_store_sku_map t2 ON t2.act_id = ? AND t2.bind_id = t1.id AND t2.deleted_at = ?`, leftOrEmpty)
|
||||
sqlParams := []interface{}{
|
||||
actID,
|
||||
utils.DefaultTimeValue,
|
||||
}
|
||||
// leftOrEmpty := ""
|
||||
// if len(vendorIDs) == 1 && (vendorIDs[0] == -1 || vendorIDs[0] == model.VendorIDJX) {
|
||||
// leftOrEmpty = "LEFT"
|
||||
// }
|
||||
// sql := fmt.Sprintf(`
|
||||
// SELECT SQL_CALC_FOUND_ROWS
|
||||
// t1.*,
|
||||
// t2.id map_id, t2.vendor_id, t2.vendor_act_id, t2.sync_status, t2.actual_act_price, t2.vendor_price, t2.trend_type, t2.trend_price,
|
||||
// t3.vendor_store_id,
|
||||
// CASE t2.vendor_id
|
||||
// WHEN 0 THEN
|
||||
// t4m.vendor_thing_id
|
||||
// WHEN 1 THEN
|
||||
// t5.mtwm_id
|
||||
// WHEN 3 THEN
|
||||
// t5.ebai_id
|
||||
// ELSE
|
||||
// ''
|
||||
// END vendor_sku_id,
|
||||
// t4.comment, t4.spec_quality, t4.spec_unit,
|
||||
// t6.name store_name,
|
||||
// t7.name sku_name_name, t7.unit, t7.prefix, t7.ex_prefix, t7.ex_prefix_begin, t7.ex_prefix_end
|
||||
// FROM act_store_sku t1
|
||||
// %s JOIN act_store_sku_map t2 ON t2.act_id = ? AND t2.bind_id = t1.id AND t2.deleted_at = ?`, leftOrEmpty)
|
||||
// sqlParams := []interface{}{
|
||||
// actID,
|
||||
// utils.DefaultTimeValue,
|
||||
// }
|
||||
|
||||
if len(vendorIDs) > 0 {
|
||||
sql += " AND t2.vendor_id IN (" + GenQuestionMarks(len(vendorIDs)) + ")"
|
||||
sqlParams = append(sqlParams, vendorIDs)
|
||||
}
|
||||
sql += `
|
||||
LEFT 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
|
||||
LEFT JOIN thing_map t4m ON t4m.vendor_id = ? AND t4m.thing_id = t4.id AND t4m.thing_type = ? AND t4m.vendor_id = t2.vendor_id AND t4m.vendor_org_code = t3.vendor_org_code AND t4m.deleted_at = ?
|
||||
LEFT JOIN store_sku_bind t5 ON t5.sku_id = t1.sku_id AND t5.store_id = t1.store_id AND t5.deleted_at = ?
|
||||
LEFT JOIN store t6 ON t6.id = t1.store_id
|
||||
JOIN sku_name t7 ON t7.id = t4.name_id
|
||||
WHERE t1.act_id = ?
|
||||
`
|
||||
sqlParams = append(sqlParams,
|
||||
utils.DefaultTimeValue,
|
||||
model.VendorIDJD, model.ThingTypeSku, utils.DefaultTimeValue,
|
||||
utils.DefaultTimeValue,
|
||||
actID,
|
||||
)
|
||||
if keyword != "" {
|
||||
keywordLike := "%" + keyword + "%"
|
||||
sql += " AND (t7.name LIKE ? OR t6.name LIKE ?"
|
||||
sqlParams = append(sqlParams, keywordLike, keywordLike)
|
||||
if intKeyword := int(utils.Str2Int64WithDefault(keyword, 0)); intKeyword > 0 {
|
||||
sql += " OR t1.sku_id = ? OR t1.store_id = ?"
|
||||
sqlParams = append(sqlParams, intKeyword, intKeyword)
|
||||
}
|
||||
sql += ")"
|
||||
}
|
||||
if leftOrEmpty != "" {
|
||||
sql += " AND t1.deleted_at = ?"
|
||||
sqlParams = append(sqlParams, utils.DefaultTimeValue)
|
||||
}
|
||||
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)
|
||||
}
|
||||
sql += " LIMIT ? OFFSET ?;"
|
||||
sqlParams = append(sqlParams, pageSize, offset)
|
||||
// globals.SugarLogger.Debug(sql)
|
||||
// globals.SugarLogger.Debug(utils.Format4Output(sqlParams, false))
|
||||
// globals.SugarLogger.Debug(utils.Format4Output(actStoreSkuList, false))
|
||||
Begin(db)
|
||||
defer Commit(db)
|
||||
if err = GetRows(db, &actStoreSkuList, sql, sqlParams...); err == nil {
|
||||
totalCount = GetLastTotalRowCount(db)
|
||||
}
|
||||
// if len(vendorIDs) > 0 {
|
||||
// sql += " AND t2.vendor_id IN (" + GenQuestionMarks(len(vendorIDs)) + ")"
|
||||
// sqlParams = append(sqlParams, vendorIDs)
|
||||
// }
|
||||
// sql += `
|
||||
// LEFT 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
|
||||
// LEFT JOIN thing_map t4m ON t4m.vendor_id = ? AND t4m.thing_id = t4.id AND t4m.thing_type = ? AND t4m.vendor_id = t2.vendor_id AND t4m.vendor_org_code = t3.vendor_org_code AND t4m.deleted_at = ?
|
||||
// LEFT JOIN store_sku_bind t5 ON t5.sku_id = t1.sku_id AND t5.store_id = t1.store_id AND t5.deleted_at = ?
|
||||
// LEFT JOIN store t6 ON t6.id = t1.store_id
|
||||
// JOIN sku_name t7 ON t7.id = t4.name_id
|
||||
// WHERE t1.act_id = ?
|
||||
// `
|
||||
// sqlParams = append(sqlParams,
|
||||
// utils.DefaultTimeValue,
|
||||
// model.VendorIDJD, model.ThingTypeSku, utils.DefaultTimeValue,
|
||||
// utils.DefaultTimeValue,
|
||||
// actID,
|
||||
// )
|
||||
// if keyword != "" {
|
||||
// keywordLike := "%" + keyword + "%"
|
||||
// sql += " AND (t7.name LIKE ? OR t6.name LIKE ?"
|
||||
// sqlParams = append(sqlParams, keywordLike, keywordLike)
|
||||
// if intKeyword := int(utils.Str2Int64WithDefault(keyword, 0)); intKeyword > 0 {
|
||||
// sql += " OR t1.sku_id = ? OR t1.store_id = ?"
|
||||
// sqlParams = append(sqlParams, intKeyword, intKeyword)
|
||||
// }
|
||||
// sql += ")"
|
||||
// }
|
||||
// if leftOrEmpty != "" {
|
||||
// sql += " AND t1.deleted_at = ?"
|
||||
// sqlParams = append(sqlParams, utils.DefaultTimeValue)
|
||||
// }
|
||||
// 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)
|
||||
// }
|
||||
// sql += " LIMIT ? OFFSET ?;"
|
||||
// sqlParams = append(sqlParams, pageSize, offset)
|
||||
// // globals.SugarLogger.Debug(sql)
|
||||
// // globals.SugarLogger.Debug(utils.Format4Output(sqlParams, false))
|
||||
// // globals.SugarLogger.Debug(utils.Format4Output(actStoreSkuList, false))
|
||||
// Begin(db)
|
||||
// defer Commit(db)
|
||||
// if err = GetRows(db, &actStoreSkuList, sql, sqlParams...); err == nil {
|
||||
// totalCount = GetLastTotalRowCount(db)
|
||||
// }
|
||||
return totalCount, actStoreSkuList, err
|
||||
}
|
||||
|
||||
@@ -607,67 +607,3 @@ func GetStoresSkusAct(db *DaoDB, hintActID int, mustDirty bool, storeIDs, skuIDs
|
||||
err = GetRows(db, &storeSkuActList, sql, sqlParams...)
|
||||
return storeSkuActList, err
|
||||
}
|
||||
|
||||
func GetStoresSkusAndActInfo(db *DaoDB, storeIDs, skuIDs, vendorIDs []int, minActPercentage, maxActPercentage int) (storeSkuAndActList []*StoreSkuAndAct, err error) {
|
||||
storeSkuList, err := GetStoresSkusInfo(db, storeIDs, skuIDs)
|
||||
if err == nil && len(storeSkuList) > 0 {
|
||||
storeSkuActList, err2 := GetStoresSkusAct(db, 0, false, storeIDs, skuIDs, vendorIDs, false, minActPercentage, maxActPercentage)
|
||||
if err = err2; err == nil {
|
||||
actMap := make(map[int64][]*model.StoreSkuAct)
|
||||
for _, v := range storeSkuActList {
|
||||
actMap[jxutils.Combine2Int(v.StoreID, v.SkuID)] = append(actMap[jxutils.Combine2Int(v.StoreID, v.SkuID)], v)
|
||||
}
|
||||
for _, v := range storeSkuList {
|
||||
storeSkuAct := &StoreSkuAndAct{
|
||||
StoreSkuBind: v,
|
||||
ActMap: make(map[int]*model.StoreSkuAct),
|
||||
}
|
||||
for _, vv := range actMap[jxutils.Combine2Int(v.StoreID, v.SkuID)] {
|
||||
storeSkuAct.ActMap[vv.VendorID] = vv
|
||||
}
|
||||
storeSkuAndActList = append(storeSkuAndActList, storeSkuAct)
|
||||
}
|
||||
}
|
||||
}
|
||||
return storeSkuAndActList, err
|
||||
}
|
||||
|
||||
// func GetConflictStoreSkuActInfo(db *DaoDB, vendorIDs []int, inStoreSkuActList []*model.StoreSkuAct) (outStoreSkuActList []*model.StoreSkuAct, err error) {
|
||||
// storeIDMap := make(map[int]int)
|
||||
// skuIDMap := make(map[int]int)
|
||||
// inStoreSkuActMap := make(map[int64]*model.StoreSkuAct)
|
||||
// for _, v := range inStoreSkuActList {
|
||||
// storeIDMap[v.StoreID] = 1
|
||||
// skuIDMap[v.SkuID] = 1
|
||||
// inStoreSkuActMap[jxutils.Combine2Int(v.StoreID, v.SkuID)] = v
|
||||
// }
|
||||
// storeIDs := jxutils.IntMap2List(storeIDMap)
|
||||
// skuIDs := jxutils.IntMap2List(skuIDMap)
|
||||
|
||||
// sql := `
|
||||
// SELECT *
|
||||
// FROM store_sku_act t1
|
||||
// WHERE
|
||||
// t1.store_id IN (` + GenQuestionMarks(len(storeIDs)) + `)
|
||||
// AND t1.sku_id IN (` + GenQuestionMarks(len(skuIDs)) + `)
|
||||
// `
|
||||
// sqlParams := []interface{}{
|
||||
// storeIDs,
|
||||
// skuIDs,
|
||||
// }
|
||||
// if len(vendorIDs) > 0 {
|
||||
// sql += ` AND t1.vendor_Id IN (` + GenQuestionMarks(len(storeIDs)) + `)`
|
||||
// sqlParams = append(sqlParams, vendorIDs)
|
||||
// }
|
||||
|
||||
// var tmpStoreSkuActList []*model.StoreSkuAct
|
||||
// if err = GetRows(db, &tmpStoreSkuActList, sql, sqlParams...); err == nil {
|
||||
// for _, v := range tmpStoreSkuActList {
|
||||
// tmpStoreSkuAct := inStoreSkuActMap[jxutils.Combine2Int(v.StoreID, v.SkuID)]
|
||||
// if tmpStoreSkuAct != nil && (tmpStoreSkuAct.ActualActPrice > 0 && v.ActID != 0 && v.SyncStatus == 0 || tmpStoreSkuAct.EarningPrice > 0 && v.EarningActID != 0) {
|
||||
// outStoreSkuActList = append(outStoreSkuActList, v)
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// return outStoreSkuActList, err
|
||||
// }
|
||||
|
||||
Reference in New Issue
Block a user