dcWorkingValveModel.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package model
  2. import (
  3. "context"
  4. "fmt"
  5. "github.com/zeromicro/go-zero/core/stores/sqlc"
  6. "github.com/zeromicro/go-zero/core/stores/sqlx"
  7. )
  8. var _ DcWorkingValveModel = (*customDcWorkingValveModel)(nil)
  9. type (
  10. // DcWorkingValveModel is an interface to be customized, add more methods here,
  11. // and implement the added methods in customDcWorkingValveModel.
  12. DcWorkingValveModel interface {
  13. dcWorkingValveModel
  14. FindOneByCode(ctx context.Context, projectId int64, deviceCode string) (*DcWorkingValve, error)
  15. }
  16. customDcWorkingValveModel struct {
  17. *defaultDcWorkingValveModel
  18. }
  19. )
  20. // NewDcWorkingValveModel returns a model for the database table.
  21. func NewDcWorkingValveModel(conn sqlx.SqlConn) DcWorkingValveModel {
  22. return &customDcWorkingValveModel{
  23. defaultDcWorkingValveModel: newDcWorkingValveModel(conn),
  24. }
  25. }
  26. func (m *defaultDcWorkingValveModel) FindOneByCode(ctx context.Context, projectId int64, deviceCode string) (*DcWorkingValve, error) {
  27. var resp DcWorkingValve
  28. query := fmt.Sprintf("select %s from %s where `project_id` = ? and `device_code` = ? order by c_time desc limit 1", dcWorkingValveRows, m.table)
  29. err := m.conn.QueryRowCtx(ctx, &resp, query, projectId, deviceCode)
  30. switch err {
  31. case nil:
  32. return &resp, nil
  33. case sqlc.ErrNotFound:
  34. return nil, ErrNotFound
  35. default:
  36. return nil, err
  37. }
  38. }