From 396192ce6e02090a5d7513441ef89dcb7881ac29 Mon Sep 17 00:00:00 2001 From: kenneth <1185230223@qq.com> Date: Mon, 16 Jun 2025 10:26:31 +0800 Subject: [PATCH] add not found condition --- internal/erpserver/repository/system/config.go | 10 ++++++++++ internal/erpserver/repository/system/department.go | 5 +++++ internal/erpserver/repository/system/menu.go | 8 ++++++++ internal/erpserver/repository/system/role.go | 4 ++++ internal/erpserver/repository/system/user.go | 8 ++++++++ 5 files changed, 35 insertions(+) diff --git a/internal/erpserver/repository/system/config.go b/internal/erpserver/repository/system/config.go index 10f70f1..732a6a5 100644 --- a/internal/erpserver/repository/system/config.go +++ b/internal/erpserver/repository/system/config.go @@ -3,6 +3,7 @@ package system import ( "context" "encoding/json" + "fmt" "management/internal/erpserver/model/dto" "management/internal/erpserver/model/system" @@ -55,6 +56,9 @@ func (r *configRepository) Get(ctx context.Context, id int32) (*system.Config, e var obj system.Config err := r.repo.DB(ctx).First(&obj, id).Error if err != nil { + if database.IsNoRows(err) { + return nil, fmt.Errorf("config %d not found: %w", id, err) + } return nil, err } return &obj, nil @@ -64,6 +68,9 @@ func (r *configRepository) GetByKey(ctx context.Context, key string) (*system.Co var obj system.Config err := r.repo.DB(ctx).Where("key = ?", key).First(&obj).Error if err != nil { + if database.IsNoRows(err) { + return nil, fmt.Errorf("config key %s not found: %w", key, err) + } return nil, err } return &obj, nil @@ -73,6 +80,9 @@ func (r *configRepository) GetValueByKey(ctx context.Context, key string) ([]byt var obj system.Config err := r.repo.DB(ctx).Where("key = ?", key).First(&obj).Error if err != nil { + if database.IsNoRows(err) { + return nil, fmt.Errorf("config key value %s not found: %w", key, err) + } return nil, err } return obj.Value, nil diff --git a/internal/erpserver/repository/system/department.go b/internal/erpserver/repository/system/department.go index 61394f1..c4c449c 100644 --- a/internal/erpserver/repository/system/department.go +++ b/internal/erpserver/repository/system/department.go @@ -2,11 +2,13 @@ package system import ( "context" + "fmt" "time" "management/internal/erpserver/model/dto" "management/internal/erpserver/model/system" "management/internal/erpserver/repository" + "management/internal/pkg/database" ) type departmentRepository struct { @@ -51,6 +53,9 @@ func (r *departmentRepository) Get(ctx context.Context, id int32) (*system.Depar var obj system.Department err := r.repo.DB(ctx).First(&obj, id).Error if err != nil { + if database.IsNoRows(err) { + return nil, fmt.Errorf("department %d not found: %w", id, err) + } return nil, err } return &obj, nil diff --git a/internal/erpserver/repository/system/menu.go b/internal/erpserver/repository/system/menu.go index 683fe04..7c136fc 100644 --- a/internal/erpserver/repository/system/menu.go +++ b/internal/erpserver/repository/system/menu.go @@ -2,9 +2,11 @@ package system import ( "context" + "fmt" "management/internal/erpserver/model/system" "management/internal/erpserver/repository" + "management/internal/pkg/database" ) type menuRepository struct { @@ -33,6 +35,9 @@ func (r *menuRepository) Get(ctx context.Context, id int32) (*system.Menu, error var menu system.Menu err := r.repo.DB(ctx).Where("id = ?", id).First(&menu).Error if err != nil { + if database.IsNoRows(err) { + return nil, fmt.Errorf("menu %d not found: %w", id, err) + } return nil, err } return &menu, nil @@ -42,6 +47,9 @@ func (r *menuRepository) GetByUrl(ctx context.Context, url string) (*system.Menu var menu system.Menu err := r.repo.DB(ctx).Where("url = ?", url).First(&menu).Error if err != nil { + if database.IsNoRows(err) { + return nil, fmt.Errorf("menu by url %s not found: %w", url, err) + } return nil, err } return &menu, nil diff --git a/internal/erpserver/repository/system/role.go b/internal/erpserver/repository/system/role.go index 536defd..8193da4 100644 --- a/internal/erpserver/repository/system/role.go +++ b/internal/erpserver/repository/system/role.go @@ -8,6 +8,7 @@ import ( "management/internal/erpserver/model/dto" "management/internal/erpserver/model/system" "management/internal/erpserver/repository" + "management/internal/pkg/database" ) type roleRepository struct { @@ -76,6 +77,9 @@ func (r *roleRepository) Get(ctx context.Context, id int32) (*system.Role, error var role system.Role err := r.repo.DB(ctx).Where("id = ?", id).First(&role).Error if err != nil { + if database.IsNoRows(err) { + return nil, fmt.Errorf("role %d not found: %w", id, err) + } return nil, err } return &role, nil diff --git a/internal/erpserver/repository/system/user.go b/internal/erpserver/repository/system/user.go index 16160b2..dd79532 100644 --- a/internal/erpserver/repository/system/user.go +++ b/internal/erpserver/repository/system/user.go @@ -2,12 +2,14 @@ package system import ( "context" + "fmt" "time" "management/internal/erpserver/model/dto" "management/internal/erpserver/model/system" "management/internal/erpserver/repository" "management/internal/pkg/crypto" + "management/internal/pkg/database" "management/internal/pkg/rand" "github.com/google/uuid" @@ -78,6 +80,9 @@ func (s *userRepository) Get(ctx context.Context, id int32) (*system.User, error var user system.User err := s.repo.DB(ctx).Where("id = ?", id).First(&user).Error if err != nil { + if database.IsNoRows(err) { + return nil, fmt.Errorf("user %d not found: %w", id, err) + } return nil, err } return &user, nil @@ -87,6 +92,9 @@ func (s *userRepository) GetByEmail(ctx context.Context, email string) (*system. var user system.User err := s.repo.DB(ctx).Where("email = ?", email).First(&user).Error if err != nil { + if database.IsNoRows(err) { + return nil, fmt.Errorf("user by email %s not found: %w", email, err) + } return nil, err } return &user, nil