From 6b0d4e81bf3d1f1aabe3ffad1efbf663300ce934 Mon Sep 17 00:00:00 2001 From: RockYang Date: Sun, 2 Mar 2025 21:49:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86=20license=20=E5=AD=98=E5=82=A8?= =?UTF-8?q?=E5=88=B0=E6=95=B0=E6=8D=AE=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/core/types/config.go | 1 + api/handler/admin/config_handler.go | 11 ++++++++++- api/service/license_service.go | 18 ++++++++++++++++-- api/service/suno/service.go | 2 +- web/src/assets/css/suno.styl | 9 ++++++--- web/src/views/Luma.vue | 2 +- 6 files changed, 35 insertions(+), 8 deletions(-) diff --git a/api/core/types/config.go b/api/core/types/config.go index 4d791d80..a9c0c1cd 100644 --- a/api/core/types/config.go +++ b/api/core/types/config.go @@ -171,5 +171,6 @@ type SystemConfig struct { EmailWhiteList []string `json:"email_white_list"` // 邮箱白名单列表 TranslateModelId int `json:"translate_model_id"` // 用来做提示词翻译的大模型 id MaxFileSize int `json:"max_file_size"` // 最大文件大小,单位:MB + License string `json:"license"` // License } diff --git a/api/handler/admin/config_handler.go b/api/handler/admin/config_handler.go index f03bedb0..8b63ef70 100644 --- a/api/handler/admin/config_handler.go +++ b/api/handler/admin/config_handler.go @@ -131,8 +131,17 @@ func (h *ConfigHandler) Active(c *gin.Context) { resp.ERROR(c, err.Error()) return } + h.App.SysConfig.License = data.License + + // 将 license 写入数据库 + err = h.DB.Model(&model.Config{}).Where("marker", "system").UpdateColumn("config_json", utils.JsonEncode(h.App.SysConfig)).Error + if err != nil { + resp.ERROR(c, err.Error()) + return + } + + resp.SUCCESS(c) - resp.SUCCESS(c, info.HostID) } // GetLicense 获取 License 信息 diff --git a/api/service/license_service.go b/api/service/license_service.go index 187076d7..3469af54 100644 --- a/api/service/license_service.go +++ b/api/service/license_service.go @@ -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 diff --git a/api/service/suno/service.go b/api/service/suno/service.go index f724f5ad..0d37ec9a 100644 --- a/api/service/suno/service.go +++ b/api/service/suno/service.go @@ -146,7 +146,7 @@ func (s *Service) Create(task types.SunoTask) (RespVo, error) { var res RespVo apiURL := fmt.Sprintf("%s/suno/submit/music", apiKey.ApiURL) - logger.Debugf("API URL: %s, request body: %+v", apiURL, reqBody) + logger.Debugf("API URL: %s, request body: %s", apiURL, utils.JsonEncode(reqBody)) r, err := req.C().R(). SetHeader("Authorization", "Bearer "+apiKey.Value). SetBody(reqBody). diff --git a/web/src/assets/css/suno.styl b/web/src/assets/css/suno.styl index eed5c121..2f560541 100644 --- a/web/src/assets/css/suno.styl +++ b/web/src/assets/css/suno.styl @@ -90,7 +90,7 @@ .song { display flex padding 10px - background-color #252020 + background-color var(--el-bg-color) border-radius 10px margin-bottom 10px font-size 14px @@ -109,6 +109,7 @@ display flex margin-left 10px align-items center + color var(--el-color-primary) } .el-button--info { @@ -347,7 +348,9 @@ .task { height 100px - background-color #2A2525 + background-color var(--el-bg-color) + border: 1px solid var(--el-border-color-light); + border-radius 5px display flex margin-bottom 10px .left { @@ -358,7 +361,7 @@ width 320px .title { font-size 14px - color #e1e1e1 + color var(--el-text-color-primary) white-space: nowrap; /* 防止文字换行 */ overflow: hidden; /* 隐藏溢出的内容 */ text-overflow: ellipsis; /* 用省略号表示溢出的内容 */ diff --git a/web/src/views/Luma.vue b/web/src/views/Luma.vue index 4238e670..b0b065b6 100644 --- a/web/src/views/Luma.vue +++ b/web/src/views/Luma.vue @@ -151,7 +151,7 @@ const store = useSharedStore(); onMounted(() => { checkSession().then(() => { fetchData(1); - }); + }).catch(() => {}); store.addMessageHandler("luma", (data) => { // 丢弃无关消息