This commit is contained in:
苏尹岚
2020-10-14 11:57:12 +08:00
parent 5f791290ca
commit accb629e14
200 changed files with 206 additions and 51995 deletions

View File

@@ -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
// }