恢复被删除的代码
This commit is contained in:
63
soul-api/internal/handler/config.go
Normal file
63
soul-api/internal/handler/config.go
Normal file
@@ -0,0 +1,63 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
|
||||
"soul-api/internal/database"
|
||||
"soul-api/internal/model"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// GetConfig GET /api/config 从 system_config 读取并合并(与 app/api/config 结构一致)
|
||||
func GetConfig(c *gin.Context) {
|
||||
var list []model.SystemConfig
|
||||
if err := database.DB().Order("config_key ASC").Find(&list).Error; err != nil {
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"success": true, "paymentMethods": gin.H{}, "liveQRCodes": []interface{}{},
|
||||
"siteConfig": gin.H{}, "menuConfig": gin.H{}, "pageConfig": gin.H{},
|
||||
})
|
||||
return
|
||||
}
|
||||
out := gin.H{
|
||||
"success": true, "paymentMethods": gin.H{}, "liveQRCodes": []interface{}{},
|
||||
"siteConfig": gin.H{}, "menuConfig": gin.H{}, "pageConfig": gin.H{},
|
||||
"authorInfo": gin.H{}, "marketing": gin.H{}, "system": gin.H{},
|
||||
}
|
||||
for _, row := range list {
|
||||
var val interface{}
|
||||
_ = json.Unmarshal(row.ConfigValue, &val)
|
||||
switch row.ConfigKey {
|
||||
case "site_config", "siteConfig":
|
||||
if m, ok := val.(map[string]interface{}); ok {
|
||||
out["siteConfig"] = m
|
||||
}
|
||||
case "menu_config", "menuConfig":
|
||||
out["menuConfig"] = val
|
||||
case "page_config", "pageConfig":
|
||||
if m, ok := val.(map[string]interface{}); ok {
|
||||
out["pageConfig"] = m
|
||||
}
|
||||
case "payment_methods", "paymentMethods":
|
||||
if m, ok := val.(map[string]interface{}); ok {
|
||||
out["paymentMethods"] = m
|
||||
}
|
||||
case "live_qr_codes", "liveQRCodes":
|
||||
out["liveQRCodes"] = val
|
||||
case "author_info", "authorInfo":
|
||||
if m, ok := val.(map[string]interface{}); ok {
|
||||
out["authorInfo"] = m
|
||||
}
|
||||
case "marketing":
|
||||
if m, ok := val.(map[string]interface{}); ok {
|
||||
out["marketing"] = m
|
||||
}
|
||||
case "system":
|
||||
if m, ok := val.(map[string]interface{}); ok {
|
||||
out["system"] = m
|
||||
}
|
||||
}
|
||||
}
|
||||
c.JSON(http.StatusOK, out)
|
||||
}
|
||||
Reference in New Issue
Block a user