Compare commits

...

1 Commits
v0.0.6 ... main

Author SHA1 Message Date
fcl 1430943c48 ignore dependency error 2025-06-27 00:11:51 +08:00
2 changed files with 14 additions and 6 deletions

View File

@ -8,12 +8,19 @@ import (
) )
// Menu 合并菜单 // Menu 合并菜单
func Menu(db *gorm.DB, model *models.Menu) (err error) { func Menu(db *gorm.DB, datas ...*models.Menu) (err error) {
if err = db.Where("name = ?", model.Name).First(model).Error; err != nil { tx := db.Begin()
if errors.Is(err, gorm.ErrRecordNotFound) { for _, model := range datas {
err = db.Create(model).Error if err = tx.Where("name = ?", model.Name).First(model).Error; err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
if err = tx.Create(model).Error; err != nil {
tx.Rollback()
return err
}
}
} }
} }
err = tx.Commit().Error
return return
} }
@ -31,6 +38,7 @@ func Permission(db *gorm.DB, menuName string, permission string, label string) (
return return
} }
// #2c7be5
// Default 合并初始化数据集 // Default 合并初始化数据集
func Default(db *gorm.DB) (err error) { func Default(db *gorm.DB) (err error) {
var ( var (

View File

@ -84,7 +84,7 @@ func TryCache[T any](ctx context.Context, key string, f func(tx *gorm.DB) (T, er
if opts.dependency == nil { if opts.dependency == nil {
return entry.Value, nil return entry.Value, nil
} }
if dependValue, err = opts.dependency.GetValue(ctx, opts.db); err == nil { if dependValue, err = opts.dependency.GetValue(ctx, opts.db); err == nil && dependValue != "" {
hasDependValue = true hasDependValue = true
if entry.CompareValue == dependValue { if entry.CompareValue == dependValue {
return entry.Value, nil return entry.Value, nil
@ -98,7 +98,7 @@ func TryCache[T any](ctx context.Context, key string, f func(tx *gorm.DB) (T, er
if val, err, _ = singleInstance.Do(key, func() (any, error) { if val, err, _ = singleInstance.Do(key, func() (any, error) {
if result, err = f(tx); err == nil { if result, err = f(tx); err == nil {
if !hasDependValue && opts.dependency != nil { if !hasDependValue && opts.dependency != nil {
dependValue, err = opts.dependency.GetValue(ctx, tx) dependValue, _ = opts.dependency.GetValue(ctx, tx)
} }
opts.cache.Store(ctx, key, &cacheEntry[T]{ opts.cache.Store(ctx, key, &cacheEntry[T]{
CompareValue: dependValue, CompareValue: dependValue,