feat: 实现账本服务和仓库层,提供账本的创建、查询、更新、删除和恢复功能。
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user