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 合并菜单
func Menu(db *gorm.DB, model *models.Menu) (err error) {
if err = db.Where("name = ?", model.Name).First(model).Error; err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
err = db.Create(model).Error
func Menu(db *gorm.DB, datas ...*models.Menu) (err error) {
tx := db.Begin()
for _, model := range datas {
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
}
@ -31,6 +38,7 @@ func Permission(db *gorm.DB, menuName string, permission string, label string) (
return
}
// #2c7be5
// Default 合并初始化数据集
func Default(db *gorm.DB) (err error) {
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 {
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
if entry.CompareValue == dependValue {
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 result, err = f(tx); err == 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]{
CompareValue: dependValue,