feat: 实现账本服务和仓库层,提供账本的创建、查询、更新、删除和恢复功能。
This commit is contained in:
@@ -111,6 +111,14 @@ func (r *LedgerRepository) GetDefault(userID uint) (*models.Ledger, error) {
|
|||||||
return &ledger, nil
|
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
|
// SetDefault sets a ledger as the default ledger
|
||||||
func (r *LedgerRepository) SetDefault(userID uint, id uint) error {
|
func (r *LedgerRepository) SetDefault(userID uint, id uint) error {
|
||||||
// Start a transaction
|
// 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 this is set as default, we need to unset other defaults
|
||||||
if input.IsDefault {
|
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)
|
return nil, fmt.Errorf("failed to unset default ledgers: %w", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user