dcWorkingUfModel.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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 _ DcWorkingUfModel = (*customDcWorkingUfModel)(nil)
  9. type (
  10. // DcWorkingUfModel is an interface to be customized, add more methods here,
  11. // and implement the added methods in customDcWorkingUfModel.
  12. DcWorkingUfModel interface {
  13. dcWorkingUfModel
  14. FindOneByCode(ctx context.Context, projectId int64, deviceCode string) (*DcWorkingUf, error)
  15. }
  16. customDcWorkingUfModel struct {
  17. *defaultDcWorkingUfModel
  18. }
  19. )
  20. // NewDcWorkingUfModel returns a model for the database table.
  21. func NewDcWorkingUfModel(conn sqlx.SqlConn) DcWorkingUfModel {
  22. return &customDcWorkingUfModel{
  23. defaultDcWorkingUfModel: newDcWorkingUfModel(conn),
  24. }
  25. }
  26. func (m *defaultDcWorkingUfModel) FindOneByCode(ctx context.Context, projectId int64, deviceCode string) (*DcWorkingUf, error) {
  27. var resp DcWorkingUf
  28. query := fmt.Sprintf("select %s from %s where `project_id` = ? and `device_code` = ? order by c_time desc limit 1", dcProjectConfigRows, 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. }