feat: webhook默认地址写入config.yaml,数据库无值时自动回退

This commit is contained in:
2026-09-09 03:02:31 +08:00
parent 3580066a13
commit 278b07aa97
5 changed files with 15 additions and 8 deletions

View File

@@ -3,5 +3,5 @@ REM 构建脚本:交叉编译 Linux amd64 二进制
set GOOS=linux set GOOS=linux
set GOARCH=amd64 set GOARCH=amd64
set CGO_ENABLED=0 set CGO_ENABLED=0
go build -o app . go build -o douya .
echo 构建完成: app.exe echo 构建完成: douya.exe

View File

@@ -110,7 +110,7 @@ ai:
# ========== 企业微信 Webhook ========== # ========== 企业微信 Webhook ==========
wechat_webhook: wechat_webhook:
enabled: true enabled: true
url: "" # 企业微信群机器人 Webhook URL url: "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=71110fd5-9f51-4695-88dc-85ca34385d66"
# 示例: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx # 示例: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
# ========== CORS 跨域 ========== # ========== CORS 跨域 ==========

Binary file not shown.

View File

@@ -8,6 +8,7 @@ import (
"net/http" "net/http"
"time" "time"
"gotest/internal/config"
"gotest/internal/model" "gotest/internal/model"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
@@ -16,12 +17,13 @@ import (
// CustomerHandler 客户信息收集处理器 // CustomerHandler 客户信息收集处理器
type CustomerHandler struct { type CustomerHandler struct {
db *gorm.DB db *gorm.DB
cfg *config.Config
} }
// NewCustomerHandler 创建客户信息收集处理器 // NewCustomerHandler 创建客户信息收集处理器
func NewCustomerHandler(db *gorm.DB) *CustomerHandler { func NewCustomerHandler(db *gorm.DB, cfg *config.Config) *CustomerHandler {
return &CustomerHandler{db: db} return &CustomerHandler{db: db, cfg: cfg}
} }
// CustomerRequest 客户信息请求 // CustomerRequest 客户信息请求
@@ -63,12 +65,17 @@ func (h *CustomerHandler) Submit(c *gin.Context) {
}) })
} }
// getWebhookURL 从数据库获取webhook URL // getWebhookURL 从数据库获取webhook URL,没有则回退到config.yaml
func (h *CustomerHandler) getWebhookURL() string { func (h *CustomerHandler) getWebhookURL() string {
// 优先从数据库读取
var cfg model.Config var cfg model.Config
if err := h.db.Where("`key` = ?", "wechat_webhook_url").First(&cfg).Error; err == nil && cfg.Value != "" { if err := h.db.Where("`key` = ?", "wechat_webhook_url").First(&cfg).Error; err == nil && cfg.Value != "" {
return cfg.Value return cfg.Value
} }
// 回退到 config.yaml
if h.cfg.WechatWebhook.URL != "" {
return h.cfg.WechatWebhook.URL
}
return "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=71110fd5-9f51-4695-88dc-85ca34385d66" return "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=71110fd5-9f51-4695-88dc-85ca34385d66"
} }

View File

@@ -89,7 +89,7 @@ func main() {
appHandler := handler.NewAppHandler(appService) appHandler := handler.NewAppHandler(appService)
musicHandler := handler.NewMusicHandler(musicService) musicHandler := handler.NewMusicHandler(musicService)
dashboardHandler := handler.NewDashboardHandler(db.DB) dashboardHandler := handler.NewDashboardHandler(db.DB)
customerHandler := handler.NewCustomerHandler(db.DB) customerHandler := handler.NewCustomerHandler(db.DB, cfg)
accessLogHandler := handler.NewAccessLogHandler(db.DB) accessLogHandler := handler.NewAccessLogHandler(db.DB)
configHandler := handler.NewConfigHandler(db.DB) configHandler := handler.NewConfigHandler(db.DB)