From 5248e91a3d5953b323573e932718f9afda3159f3 Mon Sep 17 00:00:00 2001 From: Victor_Jay Date: Mon, 1 Jun 2026 12:49:26 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20First=20=E6=94=B9=20Find=20=E6=B6=88?= =?UTF-8?q?=E9=99=A4=20record=20not=20found=20=E6=97=A5=E5=BF=97=E5=99=AA?= =?UTF-8?q?=E9=9F=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - GetDailyEnergizeExp 用 Find + Limit(1) 替代 First,空结果不触发 GORM ErrRecordNotFound - 移除不再需要的 errors 导入 - 数据库检查确认三张表均存在,daily_exp_summaries 为空属正常状态 --- internal/repository/energy_repo.go | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/internal/repository/energy_repo.go b/internal/repository/energy_repo.go index 8058324..bef5dd5 100644 --- a/internal/repository/energy_repo.go +++ b/internal/repository/energy_repo.go @@ -1,7 +1,6 @@ package repository import ( - "errors" "time" "metazone.cc/metalab/internal/model" @@ -83,15 +82,15 @@ func (r *EnergyRepo) CreateEnergizeLog(log *model.PostEnergizeLog) error { // GetDailyEnergizeExp 获取用户当日通过赋能获得的经验值 // 无记录时返回 nil, nil(调用方当作 exp=0 处理) func (r *EnergyRepo) GetDailyEnergizeExp(userID uint, date time.Time) (*model.DailyExpSummary, error) { - var s model.DailyExpSummary - err := r.db.Where("user_id = ? AND date = ?", userID, date).First(&s).Error - if errors.Is(err, gorm.ErrRecordNotFound) { - return nil, nil - } + var summaries []model.DailyExpSummary + err := r.db.Where("user_id = ? AND date = ?", userID, date).Limit(1).Find(&summaries).Error if err != nil { return nil, err } - return &s, nil + if len(summaries) == 0 { + return nil, nil + } + return &summaries[0], nil } // UpsertDailyExp 创建或更新每日经验汇总