将 license 存储到数据库

This commit is contained in:
RockYang
2025-03-02 21:49:34 +08:00
parent ed063a1d9d
commit 0ef51714c9
5 changed files with 34 additions and 7 deletions

View File

@@ -13,6 +13,9 @@ import (
"geekai/core"
"geekai/core/types"
"geekai/store"
"geekai/store/model"
"geekai/utils"
"gorm.io/gorm"
"strings"
"time"
@@ -22,16 +25,27 @@ import (
type LicenseService struct {
config types.ApiConfig
db *gorm.DB
levelDB *store.LevelDB
license *types.License
urlWhiteList []string
machineId string
}
func NewLicenseService(server *core.AppServer, levelDB *store.LevelDB) *LicenseService {
func NewLicenseService(server *core.AppServer, levelDB *store.LevelDB, db *gorm.DB) *LicenseService {
var license types.License
var machineId string
_ = levelDB.Get(types.LicenseKey, &license)
err := levelDB.Get(types.LicenseKey, &license)
logger.Infof("License: %+v", server.SysConfig)
if err != nil {
var cfg model.Config
db.Where("marker", "system").First(&cfg)
var sysConfig types.SystemConfig
if err := utils.JsonDecode(cfg.Config, &sysConfig); err == nil {
license.Key = sysConfig.License
license.IsActive = true
}
}
info, err := host.Info()
if err == nil {
machineId = info.HostID