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, isWeights []int) (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 len(isWeights) > 0 { sql += ` AND a.is_weight IN (` + GenQuestionMarks(len(isWeights)) + `)` sqlParams = append(sqlParams, isWeights) } 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 }