chore: 新增 .gitignore 排除开发文档,同步代码与构建产物
Made-with: Cursor
This commit is contained in:
@@ -13,6 +13,7 @@ import (
|
||||
"soul-api/internal/model"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
// GetPublicDBConfig GET /api/miniprogram/config 公开接口,供小程序获取完整配置(与 next-project 对齐)
|
||||
@@ -228,7 +229,7 @@ func AdminSettingsGet(c *gin.Context) {
|
||||
}
|
||||
case "oss_config":
|
||||
if m, ok := val.(map[string]interface{}); ok && len(m) > 0 {
|
||||
out["ossConfig"] = m
|
||||
out["ossConfig"] = sanitizeOSSConfig(m)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -284,6 +285,7 @@ func AdminSettingsPost(c *gin.Context) {
|
||||
}
|
||||
}
|
||||
if body.OssConfig != nil {
|
||||
body.OssConfig = mergeOSSConfigSecret(db, body.OssConfig)
|
||||
if err := saveKey("oss_config", "阿里云 OSS 配置", body.OssConfig); err != nil {
|
||||
c.JSON(http.StatusOK, gin.H{"success": false, "error": "保存 OSS 配置失败: " + err.Error()})
|
||||
return
|
||||
@@ -1206,6 +1208,49 @@ func DBConfigDelete(c *gin.Context) {
|
||||
c.JSON(http.StatusOK, gin.H{"success": true})
|
||||
}
|
||||
|
||||
func sanitizeOSSConfig(cfg map[string]interface{}) gin.H {
|
||||
out := gin.H{}
|
||||
for k, v := range cfg {
|
||||
out[k] = v
|
||||
}
|
||||
if secret, ok := out["accessKeySecret"].(string); ok && secret != "" {
|
||||
out["accessKeySecret"] = "****"
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
func mergeOSSConfigSecret(db *gorm.DB, incoming map[string]interface{}) map[string]interface{} {
|
||||
if incoming == nil {
|
||||
return incoming
|
||||
}
|
||||
secret, _ := incoming["accessKeySecret"].(string)
|
||||
if secret != "" && secret != "****" {
|
||||
return incoming
|
||||
}
|
||||
|
||||
var row model.SystemConfig
|
||||
if err := db.Where("config_key = ?", "oss_config").First(&row).Error; err != nil {
|
||||
return incoming
|
||||
}
|
||||
|
||||
var existing map[string]interface{}
|
||||
if err := json.Unmarshal(row.ConfigValue, &existing); err != nil {
|
||||
return incoming
|
||||
}
|
||||
|
||||
existingSecret, _ := existing["accessKeySecret"].(string)
|
||||
if existingSecret == "" {
|
||||
return incoming
|
||||
}
|
||||
|
||||
merged := map[string]interface{}{}
|
||||
for k, v := range incoming {
|
||||
merged[k] = v
|
||||
}
|
||||
merged["accessKeySecret"] = existingSecret
|
||||
return merged
|
||||
}
|
||||
|
||||
// DBInitGet GET /api/db/init
|
||||
func DBInitGet(c *gin.Context) {
|
||||
c.JSON(http.StatusOK, gin.H{"success": true, "data": gin.H{"message": "ok"}})
|
||||
|
||||
Reference in New Issue
Block a user