Files
full/apps/base/initial/internal/logic/data/datas_cache.go

30 lines
683 B
Go

package data
import (
"git.apinb.com/bsm-apps/initial/internal/impl"
"git.apinb.com/bsm-apps/initial/internal/models"
"gorm.io/gorm"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/vars"
)
func GetDatasByCache() ([]*models.InitialDatas, error) {
var datas []*models.InitialDatas
cacheKey := impl.RedisService.BuildKey("datas")
err := impl.RedisService.Get(cacheKey, &datas)
if err == nil {
return datas, nil
}
err = impl.DBService.Order("data_type ASC, id ASC").Find(&datas).Error
if err != nil && err != gorm.ErrRecordNotFound {
return nil, errcode.ErrDB
}
err = impl.RedisService.Set(cacheKey, datas, vars.DefaultTTL)
return datas, err
}