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