diff --git a/.gitignore b/.gitignore index c840f86..482983f 100644 --- a/.gitignore +++ b/.gitignore @@ -12,7 +12,7 @@ *.out # Development enviroment -.idea/ +.idea/* # Version control version.lock \ No newline at end of file diff --git a/models/init.go b/models/init.go index 7db3ca1..b965b0e 100644 --- a/models/init.go +++ b/models/init.go @@ -13,7 +13,7 @@ import ( // DB 数据库链接单例 var DB *gorm.DB -// Database 在中间件中初始化mysql链接 +// Database 初始化 MySQL 链接 func Init() { util.Log().Info("初始化数据库连接\n") diff --git a/models/setting.go b/models/setting.go index 7e7932c..4e8424c 100644 --- a/models/setting.go +++ b/models/setting.go @@ -12,15 +12,24 @@ type Setting struct { Value string `gorm:"size:‎65535"` } +// settingCache 设置项缓存 +var settingCache = make(map[string]string) + // GetSettingByName 用 Name 获取设置值 -func GetSettingByName(name string) (Setting, error) { +func GetSettingByName(name string) (string, error) { var setting Setting - // 优先尝试数据库中查找 - result := DB.Where("name = ?", name).First(&setting) - if result.Error == nil { - return setting, nil + // 优先从缓存中查找 + if optionValue, ok := settingCache[name]; ok { + return optionValue, nil + } else { + // 尝试数据库中查找 + result := DB.Where("name = ?", name).First(&setting) + if result.Error == nil { + settingCache[setting.Name] = setting.Value + return setting.Value, nil + } + return "", result.Error } - return setting, result.Error } diff --git a/service/user/user_login.go b/service/user/user_login.go index 24b5c78..db7f26c 100644 --- a/service/user/user_login.go +++ b/service/user/user_login.go @@ -1,6 +1,7 @@ package service import ( + "cloudreve/models" "cloudreve/pkg/serializer" "github.com/gin-gonic/gin" ) @@ -15,8 +16,14 @@ type UserLoginService struct { // Login 用户登录函数 func (service *UserLoginService) Login(c *gin.Context) serializer.Response { - return serializer.Response{ - Code: 0, - Msg: "OK", + siteName, err := model.GetSettingByName("siteName") + if err == nil { + return serializer.Response{ + Code: 0, + Msg: siteName, + } + } else { + return serializer.Err(5001, "无法获取参数值", err) } + }