123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package model
- import (
- "context"
- "fmt"
- "github.com/zeromicro/go-zero/core/stores/sqlc"
- "github.com/zeromicro/go-zero/core/stores/sqlx"
- "strings"
- )
- var _ DcWorkingMfModel = (*customDcWorkingMfModel)(nil)
- type (
- // DcWorkingMfModel is an interface to be customized, add more methods here,
- // and implement the added methods in customDcWorkingMfModel.
- DcWorkingMfModel interface {
- dcWorkingMfModel
- Search(ctx context.Context, projectId int64, deviceCode, st, et string, offset, limit int64, orderBy string) ([]DcWorkingMf, error)
- }
- customDcWorkingMfModel struct {
- *defaultDcWorkingMfModel
- }
- )
- // NewDcWorkingMfModel returns a model for the database table.
- func NewDcWorkingMfModel(conn sqlx.SqlConn) DcWorkingMfModel {
- return &customDcWorkingMfModel{
- defaultDcWorkingMfModel: newDcWorkingMfModel(conn),
- }
- }
- func (m *defaultDcWorkingMfModel) Search(ctx context.Context, projectId int64, deviceCode, st, et string, offset, limit int64, orderBy string) ([]DcWorkingMf, error) {
- var resp []DcWorkingMf
- condition := []string{"`project_id`=?", "`device_code`=?"}
- vars := []interface{}{projectId, deviceCode}
- if st != "" {
- condition = append(condition, "`c_time`>=?")
- vars = append(vars, st)
- }
- if et != "" {
- condition = append(condition, "`c_time`<?")
- vars = append(vars, et)
- }
- if orderBy == "" {
- orderBy = "id desc"
- }
- query := fmt.Sprintf("select %s from %s where %s order by %s limit %d, %d", dcWorkingMfRows, m.table, strings.Join(condition, " and "), orderBy, offset, limit)
- err := m.conn.QueryRowsCtx(ctx, &resp, query, vars...)
- switch err {
- case nil:
- return resp, nil
- case sqlc.ErrNotFound:
- return nil, ErrNotFound
- default:
- return nil, err
- }
- }
|