From 5ee6cbce8f1a8d995d30c6507f958660fec9dea7 Mon Sep 17 00:00:00 2001 From: huang <1724659546@qq.com> Date: Sun, 19 Oct 2025 13:44:13 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../group_medication_log_repository.go | 26 ---------------- ...sitory.go => medication_log_repository.go} | 30 +++++++++++-------- 2 files changed, 18 insertions(+), 38 deletions(-) delete mode 100644 internal/infra/repository/group_medication_log_repository.go rename internal/infra/repository/{medication_repository.go => medication_log_repository.go} (60%) diff --git a/internal/infra/repository/group_medication_log_repository.go b/internal/infra/repository/group_medication_log_repository.go deleted file mode 100644 index 2b048f5..0000000 --- a/internal/infra/repository/group_medication_log_repository.go +++ /dev/null @@ -1,26 +0,0 @@ -package repository - -import ( - "git.huangwc.com/pig/pig-farm-controller/internal/infra/models" - "gorm.io/gorm" -) - -// MedicationLogRepository 定义了与群体用药日志模型相关的数据库操作接口。 -type MedicationLogRepository interface { - CreateMedicationLog(log *models.MedicationLog) error -} - -// gormMedicationLogRepository 是 MedicationLogRepository 接口的 GORM 实现。 -type gormMedicationLogRepository struct { - db *gorm.DB -} - -// NewGormMedicationLogRepository 创建一个新的 MedicationLogRepository GORM 实现实例。 -func NewGormMedicationLogRepository(db *gorm.DB) MedicationLogRepository { - return &gormMedicationLogRepository{db: db} -} - -// CreateMedicationLog 创建一条新的群体用药日志记录 -func (r *gormMedicationLogRepository) CreateMedicationLog(log *models.MedicationLog) error { - return r.db.Create(log).Error -} diff --git a/internal/infra/repository/medication_repository.go b/internal/infra/repository/medication_log_repository.go similarity index 60% rename from internal/infra/repository/medication_repository.go rename to internal/infra/repository/medication_log_repository.go index cbc4b73..1d91de0 100644 --- a/internal/infra/repository/medication_repository.go +++ b/internal/infra/repository/medication_log_repository.go @@ -13,28 +13,34 @@ type MedicationLogListOptions struct { MedicationID *uint Reason *models.MedicationReasonType OperatorID *uint - StartTime *time.Time // 基于 happened_at 字段 - EndTime *time.Time // 基于 happened_at 字段 - OrderBy string // 例如 "happened_at asc" + StartTime *time.Time + EndTime *time.Time + OrderBy string // 例如 "happened_at desc" } -// MedicationRepository 定义了与药品相关的数据库操作接口 -type MedicationRepository interface { +// MedicationLogRepository 定义了与群体用药日志模型相关的数据库操作接口。 +type MedicationLogRepository interface { + CreateMedicationLog(log *models.MedicationLog) error ListMedicationLogs(opts MedicationLogListOptions, page, pageSize int) ([]models.MedicationLog, int64, error) } -// gormMedicationRepository 是 MedicationRepository 的 GORM 实现 -type gormMedicationRepository struct { +// gormMedicationLogRepository 是 MedicationLogRepository 接口的 GORM 实现。 +type gormMedicationLogRepository struct { db *gorm.DB } -// NewGormMedicationRepository 创建一个新的 MedicationRepository GORM 实现 -func NewGormMedicationRepository(db *gorm.DB) MedicationRepository { - return &gormMedicationRepository{db: db} +// NewGormMedicationLogRepository 创建一个新的 MedicationLogRepository GORM 实现实例。 +func NewGormMedicationLogRepository(db *gorm.DB) MedicationLogRepository { + return &gormMedicationLogRepository{db: db} +} + +// CreateMedicationLog 创建一条新的群体用药日志记录 +func (r *gormMedicationLogRepository) CreateMedicationLog(log *models.MedicationLog) error { + return r.db.Create(log).Error } // ListMedicationLogs 实现了分页和过滤查询用药记录的功能 -func (r *gormMedicationRepository) ListMedicationLogs(opts MedicationLogListOptions, page, pageSize int) ([]models.MedicationLog, int64, error) { +func (r *gormMedicationLogRepository) ListMedicationLogs(opts MedicationLogListOptions, page, pageSize int) ([]models.MedicationLog, int64, error) { if page <= 0 || pageSize <= 0 { return nil, 0, ErrInvalidPagination } @@ -71,7 +77,7 @@ func (r *gormMedicationRepository) ListMedicationLogs(opts MedicationLogListOpti if opts.OrderBy != "" { orderBy = opts.OrderBy } - query = query.Order(orderBy).Preload("Medication") + query = query.Order(orderBy) offset := (page - 1) * pageSize err := query.Limit(pageSize).Offset(offset).Find(&results).Error