feat(repository): 添加通用基础仓库及具体实体仓库实现

- 新增 core.BaseRepo 泛型仓库,提供增删改查基本操作方法
- 实现 Insert、SelectById、List、Update 和 Delete 方法,支持上下文传递
- 新增 ChannelRepo、ModelRepo 和 APIKeyRepo,均基于 BaseRepo 实现
- 规范化仓库结构,提升代码复用性和维护性
- 支持对不同模型的统一数据访问接口设计
This commit is contained in:
yangzhaohan
2026-07-17 09:17:15 +08:00
parent a18e4847c2
commit 66db64267c
4 changed files with 49 additions and 0 deletions
+19
View File
@@ -27,3 +27,22 @@ type BaseRepo[T any] struct {
func (repo *BaseRepo[T]) Insert(ctx context.Context, record *T) error {
return repo.db.WithContext(ctx).Create(record).Error
}
func (repo *BaseRepo[T]) SelectById(ctx context.Context, id int64) (*T, error) {
var result T
return &result, repo.db.WithContext(ctx).First(&result, id).Error
}
func (repo *BaseRepo[T]) List(ctx context.Context) ([]*T, error) {
var results []*T
return results, repo.db.WithContext(ctx).Find(&results).Error
}
func (repo *BaseRepo[T]) Update(ctx context.Context, record *T) error {
return repo.db.WithContext(ctx).Save(record).Error
}
func (repo *BaseRepo[T]) Delete(ctx context.Context, id int64) error {
var model T
return repo.db.WithContext(ctx).Delete(&model, id).Error
}