This commit is contained in:
suyl
2021-08-18 10:04:26 +08:00
parent 046a098189
commit a1b2eecd30
3 changed files with 101 additions and 2 deletions

View File

@@ -800,3 +800,91 @@ func GetActMtwmVendorSkuPage(db *DaoDB, storeID int, keyword string, actType, of
Commit(db, txDB)
return page, err
}
func GetActEbaiVendorPage(db *DaoDB, storeIDs, skuIDs []int, keyword string, beginAt, endAt time.Time, actType, offset, pageSize int) (page *model.PagedInfo, err error) {
var (
acts []*model.ActEbaiVendor
)
sql := `
SELECT SQL_CALC_FOUND_ROWS a.begin_at, a.end_at, a.act_id, a.act_name
FROM act_ebai_vendor a
LEFT JOIN act_ebai_vendor_sku b ON a.act_id = b.act_id
LEFT JOIN store c ON c.id = b.store_id
`
sqlParams := []interface{}{}
if len(storeIDs) > 0 {
sql += " AND b.store_id IN (" + GenQuestionMarks(len(storeIDs)) + ")"
sqlParams = append(sqlParams, storeIDs)
}
if len(skuIDs) > 0 {
sql += " AND b.sku_id IN (" + GenQuestionMarks(len(skuIDs)) + ")"
sqlParams = append(sqlParams, skuIDs)
}
if keyword != "" {
sql += " AND (b.store_id = ? OR b.sku_id = ? OR b.sku_name LIKE ? OR a.name LIKE ? OR c.name LIKE ?)"
sqlParams = append(sqlParams, keyword, keyword, "%"+keyword+"%", "%"+keyword+"%", "%"+keyword+"%")
}
if !utils.IsTimeZero(beginAt) {
sql += " AND a.begin_at <= ?"
sqlParams = append(sqlParams, beginAt)
}
if !utils.IsTimeZero(endAt) {
sql += " AND a.end_at >= ?"
sqlParams = append(sqlParams, endAt)
}
if actType != 0 {
sql += " AND a.act_type = ?"
sqlParams = append(sqlParams, actType)
}
sql += `
GROUP BY 1, 2, 3, 4
LIMIT ? OFFSET ?
`
sqlParams = append(sqlParams, pageSize, offset)
txDB, _ := Begin(db)
defer func() {
if r := recover(); r != nil {
Rollback(db, txDB)
panic(r)
}
}()
if err = GetRowsTx(txDB, &acts, sql, sqlParams...); err == nil {
page.TotalCount = GetLastTotalRowCount2(db, txDB)
page.Data = acts
}
Commit(db, txDB)
return page, err
}
func GetActEbaiVendorSkuPage(db *DaoDB, actID, keyword string, offset, pageSize int) (page *model.PagedInfo, err error) {
var (
acts []*model.ActEbaiVendorSku
)
sql := `
SELECT SQL_CALC_FOUND_ROWS a.*
FROM act_ebai_vendor_sku a WHERE act_id = ?
LEFT JOIN store b ON b.id = a.store_id
`
sqlParams := []interface{}{actID}
if keyword != "" {
sql += " AND (a.store_id = ? OR a.sku_id = ? OR a.sku_name LIKE ? OR b.name LIKE ?)"
sqlParams = append(sqlParams, keyword, keyword, "%"+keyword+"%", "%"+keyword+"%")
}
sql += `
LIMIT ? OFFSET ?
`
sqlParams = append(sqlParams, pageSize, offset)
txDB, _ := Begin(db)
defer func() {
if r := recover(); r != nil {
Rollback(db, txDB)
panic(r)
}
}()
if err = GetRowsTx(txDB, &acts, sql, sqlParams...); err == nil {
page.TotalCount = GetLastTotalRowCount2(db, txDB)
page.Data = acts
}
Commit(db, txDB)
return page, err
}