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