From 708694056edc51349c7c0d0a1089e3fba8f9a7e4 Mon Sep 17 00:00:00 2001 From: 12975 <1297598740@qq.com> Date: Sat, 31 Jan 2026 12:18:26 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=9E=E7=8E=B0=E8=B4=A6=E6=9C=AC?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=92=8C=E4=BB=93=E5=BA=93=E5=B1=82=EF=BC=8C?= =?UTF-8?q?=E6=8F=90=E4=BE=9B=E8=B4=A6=E6=9C=AC=E7=9A=84=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E3=80=81=E6=9F=A5=E8=AF=A2=E3=80=81=E6=9B=B4=E6=96=B0=E3=80=81?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=92=8C=E6=81=A2=E5=A4=8D=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/repository/ledger_repository.go | 8 ++++++++ internal/service/ledger_service.go | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/internal/repository/ledger_repository.go b/internal/repository/ledger_repository.go index 0e0e6a3..6b1059a 100644 --- a/internal/repository/ledger_repository.go +++ b/internal/repository/ledger_repository.go @@ -111,6 +111,14 @@ func (r *LedgerRepository) GetDefault(userID uint) (*models.Ledger, error) { return &ledger, nil } +// UnsetAllDefaults unsets the default status for all ledgers of a user +func (r *LedgerRepository) UnsetAllDefaults(userID uint) error { + if err := r.db.Model(&models.Ledger{}).Where("user_id = ? AND is_default = ?", userID, true).Update("is_default", false).Error; err != nil { + return fmt.Errorf("failed to unset default ledgers: %w", err) + } + return nil +} + // SetDefault sets a ledger as the default ledger func (r *LedgerRepository) SetDefault(userID uint, id uint) error { // Start a transaction diff --git a/internal/service/ledger_service.go b/internal/service/ledger_service.go index 91466d2..c5fb6df 100644 --- a/internal/service/ledger_service.go +++ b/internal/service/ledger_service.go @@ -83,7 +83,7 @@ func (s *LedgerService) CreateLedger(userID uint, input LedgerInput) (*models.Le // If this is set as default, we need to unset other defaults if input.IsDefault { - if err := s.repo.SetDefault(userID, 0); err != nil { + if err := s.repo.UnsetAllDefaults(userID); err != nil { return nil, fmt.Errorf("failed to unset default ledgers: %w", err) } }