123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- package model
- import (
- "context"
- "fmt"
- "github.com/zeromicro/go-zero/core/stores/sqlc"
- "github.com/zeromicro/go-zero/core/stores/sqlx"
- "strings"
- )
- var _ DcWorkingRoModel = (*customDcWorkingRoModel)(nil)
- type (
- // DcWorkingRoModel is an interface to be customized, add more methods here,
- // and implement the added methods in customDcWorkingRoModel.
- DcWorkingRoModel interface {
- dcWorkingRoModel
- FindOneByCode(ctx context.Context, projectId int64, deviceCode string) (*DcWorkingRo, error)
- Search(ctx context.Context, projectId int64, deviceCode, st, et string, offset, limit int64, orderBy string) ([]DcWorkingRo, error)
- }
- customDcWorkingRoModel struct {
- *defaultDcWorkingRoModel
- }
- )
- // NewDcWorkingRoModel returns a model for the database table.
- func NewDcWorkingRoModel(conn sqlx.SqlConn) DcWorkingRoModel {
- return &customDcWorkingRoModel{
- defaultDcWorkingRoModel: newDcWorkingRoModel(conn),
- }
- }
- func (m *defaultDcWorkingRoModel) Search(ctx context.Context, projectId int64, deviceCode, st, et string, offset, limit int64, orderBy string) ([]DcWorkingRo, error) {
- var resp []DcWorkingRo
- 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", dcWorkingRoRows, 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
- }
- }
- func (m *defaultDcWorkingRoModel) FindOneByCode(ctx context.Context, projectId int64, deviceCode string) (*DcWorkingRo, error) {
- var resp DcWorkingRo
- query := fmt.Sprintf("select %s from %s where `project_id` = ? and `device_code` = ? order by c_time desc limit 1", dcWorkingRoRows, m.table)
- err := m.conn.QueryRowCtx(ctx, &resp, query, projectId, deviceCode)
- switch err {
- case nil:
- return &resp, nil
- case sqlc.ErrNotFound:
- return nil, ErrNotFound
- default:
- return nil, err
- }
- }
|