chore: 新增 .gitignore 排除开发文档,同步代码与构建产物

Made-with: Cursor
This commit is contained in:
卡若
2026-03-16 09:21:39 +08:00
parent fa9903d235
commit 85ce2422d1
40 changed files with 2315 additions and 947 deletions

View File

@@ -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"}})