123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package model
- import (
- "context"
- "fmt"
- "github.com/zeromicro/go-zero/core/stores/sqlc"
- "github.com/zeromicro/go-zero/core/stores/sqlx"
- "strings"
- )
- var _ DcWorkingNfModel = (*customDcWorkingNfModel)(nil)
- type (
- // DcWorkingNfModel is an interface to be customized, add more methods here,
- // and implement the added methods in customDcWorkingNfModel.
- DcWorkingNfModel interface {
- dcWorkingNfModel
- Search(ctx context.Context, projectId int64, deviceCode, st, et string, offset, limit int64, orderBy string) ([]DcWorkingNf, error)
- }
- customDcWorkingNfModel struct {
- *defaultDcWorkingNfModel
- }
- )
- // NewDcWorkingNfModel returns a model for the database table.
- func NewDcWorkingNfModel(conn sqlx.SqlConn) DcWorkingNfModel {
- return &customDcWorkingNfModel{
- defaultDcWorkingNfModel: newDcWorkingNfModel(conn),
- }
- }
- func (m *defaultDcWorkingNfModel) Search(ctx context.Context, projectId int64, deviceCode, st, et string, offset, limit int64, orderBy string) ([]DcWorkingNf, error) {
- var resp []DcWorkingNf
- 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", dcWorkingNfRows, 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
- }
- }
|