dcWorkingNfModel.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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. "strings"
  8. )
  9. var _ DcWorkingNfModel = (*customDcWorkingNfModel)(nil)
  10. type (
  11. // DcWorkingNfModel is an interface to be customized, add more methods here,
  12. // and implement the added methods in customDcWorkingNfModel.
  13. DcWorkingNfModel interface {
  14. dcWorkingNfModel
  15. Search(ctx context.Context, projectId int64, deviceCode, st, et string, offset, limit int64, orderBy string) ([]DcWorkingNf, error)
  16. }
  17. customDcWorkingNfModel struct {
  18. *defaultDcWorkingNfModel
  19. }
  20. )
  21. // NewDcWorkingNfModel returns a model for the database table.
  22. func NewDcWorkingNfModel(conn sqlx.SqlConn) DcWorkingNfModel {
  23. return &customDcWorkingNfModel{
  24. defaultDcWorkingNfModel: newDcWorkingNfModel(conn),
  25. }
  26. }
  27. func (m *defaultDcWorkingNfModel) Search(ctx context.Context, projectId int64, deviceCode, st, et string, offset, limit int64, orderBy string) ([]DcWorkingNf, error) {
  28. var resp []DcWorkingNf
  29. condition := []string{"`project_id`=?", "`device_code`=?"}
  30. vars := []interface{}{projectId, deviceCode}
  31. if st != "" {
  32. condition = append(condition, "`c_time`>=?")
  33. vars = append(vars, st)
  34. }
  35. if et != "" {
  36. condition = append(condition, "`c_time`<?")
  37. vars = append(vars, et)
  38. }
  39. if orderBy == "" {
  40. orderBy = "id desc"
  41. }
  42. 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)
  43. err := m.conn.QueryRowsCtx(ctx, &resp, query, vars...)
  44. switch err {
  45. case nil:
  46. return resp, nil
  47. case sqlc.ErrNotFound:
  48. return nil, ErrNotFound
  49. default:
  50. return nil, err
  51. }
  52. }