76 lines
2.1 KiB
Go
76 lines
2.1 KiB
Go
package dao
|
|
|
|
import (
|
|
"time"
|
|
|
|
"git.rosy.net.cn/baseapi/utils"
|
|
|
|
"git.rosy.net.cn/jx-callback/business/jxutils"
|
|
"git.rosy.net.cn/jx-callback/business/model"
|
|
)
|
|
|
|
func GetDeliveryOrdersNoPage(db *DaoDB, userIDs []string, statuss []int, fromTime, toTime time.Time) (dOrders []*model.DeliveryOrder, err error) {
|
|
sql := `
|
|
SELECT *
|
|
FROM delivery_order
|
|
WHERE 1 = 1
|
|
`
|
|
sqlParams := []interface{}{}
|
|
if len(userIDs) > 0 {
|
|
sql += ` AND a.user_id IN (` + GenQuestionMarks(len(userIDs)) + `)`
|
|
sqlParams = append(sqlParams, userIDs)
|
|
}
|
|
if len(statuss) > 0 {
|
|
sql += ` AND a.status IN (` + GenQuestionMarks(len(statuss)) + `)`
|
|
sqlParams = append(sqlParams, statuss)
|
|
}
|
|
if fromTime != utils.ZeroTimeValue {
|
|
sql += ` AND a.created_at >= ?`
|
|
sqlParams = append(sqlParams, fromTime)
|
|
}
|
|
if toTime != utils.ZeroTimeValue {
|
|
sql += ` AND a.created_at <= ?`
|
|
sqlParams = append(sqlParams, toTime)
|
|
}
|
|
err = GetRows(db, &dOrders, sql, sqlParams)
|
|
return dOrders, err
|
|
}
|
|
|
|
func GetDeliveryOrders(db *DaoDB, userIDs []string, statuss []int, fromTime, toTime time.Time, pageSize, offset int) (pagedInfo *model.PagedInfo, err error) {
|
|
var dOrders []*model.DeliveryOrder
|
|
sql := `
|
|
SELECT SQL_CALC_FOUND_ROWS a.*
|
|
FROM delivery_order a
|
|
WHERE 1 = 1
|
|
`
|
|
sqlParams := []interface{}{}
|
|
if len(userIDs) > 0 {
|
|
sql += ` AND a.user_id IN (` + GenQuestionMarks(len(userIDs)) + `)`
|
|
sqlParams = append(sqlParams, userIDs)
|
|
}
|
|
if len(statuss) > 0 {
|
|
sql += ` AND a.status IN (` + GenQuestionMarks(len(statuss)) + `)`
|
|
sqlParams = append(sqlParams, statuss)
|
|
}
|
|
if fromTime != utils.ZeroTimeValue {
|
|
sql += ` AND a.created_at >= ?`
|
|
sqlParams = append(sqlParams, fromTime)
|
|
}
|
|
if toTime != utils.ZeroTimeValue {
|
|
sql += ` AND a.created_at <= ?`
|
|
sqlParams = append(sqlParams, toTime)
|
|
}
|
|
sql += " LIMIT ? OFFSET ?"
|
|
pageSize = jxutils.FormalizePageSize(pageSize)
|
|
sqlParams = append(sqlParams, pageSize, offset)
|
|
Begin(db)
|
|
defer Commit(db)
|
|
if err = GetRows(db, &dOrders, sql, sqlParams...); err == nil {
|
|
pagedInfo = &model.PagedInfo{
|
|
TotalCount: GetLastTotalRowCount(db),
|
|
Data: dOrders,
|
|
}
|
|
}
|
|
return pagedInfo, err
|
|
}
|