This commit is contained in:
laodaming 2023-11-07 16:44:58 +08:00
parent 071526f7a7
commit cc2f1489f3
2 changed files with 19 additions and 16 deletions

View File

@ -7,14 +7,15 @@ import (
// fs_feishu_webhook_log 飞书webhook记录表 // fs_feishu_webhook_log 飞书webhook记录表
type FsFeishuWebhookLog struct { type FsFeishuWebhookLog struct {
Id int64 `gorm:"primary_key;default:0;auto_increment;" json:"id"` // ID Id int64 `gorm:"primary_key;default:0;auto_increment;" json:"id"` // ID
AppId *string `gorm:"default:'';" json:"app_id"` // app_id AppId *string `gorm:"default:'';" json:"app_id"` // app_id
EventId *string `gorm:"index;default:'';" json:"event_id"` // 事件唯一id EventId *string `gorm:"index;default:'';" json:"event_id"` // 事件唯一id
EventType *string `gorm:"default:'';" json:"event_type"` // 事件名 EventType *string `gorm:"default:'';" json:"event_type"` // 事件名
HttpHeader *string `gorm:"default:'';" json:"http_header"` // http响应头信息 HttpHeader *string `gorm:"default:'';" json:"http_header"` // http响应头信息
HttpBody *string `gorm:"default:'';" json:"http_body"` // http body信息 Data *string `gorm:"default:'';" json:"data"` //
MsgCtime *time.Time `gorm:"default:'0000-00-00 00:00:00';" json:"msg_ctime"` // DecryptData *string `gorm:"default:'';" json:"decrypt_data"` //
Ctime *time.Time `gorm:"default:'0000-00-00 00:00:00';" json:"ctime"` // MsgCtime *time.Time `gorm:"default:'0000-00-00 00:00:00';" json:"msg_ctime"` //
Ctime *time.Time `gorm:"default:'0000-00-00 00:00:00';" json:"ctime"` //
} }
type FsFeishuWebhookLogModel struct { type FsFeishuWebhookLogModel struct {
db *gorm.DB db *gorm.DB

View File

@ -105,7 +105,8 @@ func (l *WebhookLogic) Webhook(w http.ResponseWriter, r *http.Request) {
} }
httpHeaderBytes, _ := json.Marshal(r.Header) httpHeaderBytes, _ := json.Marshal(r.Header)
httpHeaderStr := string(httpHeaderBytes) httpHeaderStr := string(httpHeaderBytes)
httpBodyStr := string(realMsgBytes) //解密后的数据
decryptMsgStr := string(realMsgBytes)
feiShuMsgCreateTimeInt64, err := strconv.ParseInt(msgHeader.CreateTime, 10, 64) feiShuMsgCreateTimeInt64, err := strconv.ParseInt(msgHeader.CreateTime, 10, 64)
if err != nil { if err != nil {
logx.Error("解析消息时间错误:", err) logx.Error("解析消息时间错误:", err)
@ -115,13 +116,14 @@ func (l *WebhookLogic) Webhook(w http.ResponseWriter, r *http.Request) {
now := time.Now().UTC() now := time.Now().UTC()
//把事件加入日志 //把事件加入日志
err = l.svcCtx.AllModels.FsFeishuWebhookLog.Create(&gmodel.FsFeishuWebhookLog{ err = l.svcCtx.AllModels.FsFeishuWebhookLog.Create(&gmodel.FsFeishuWebhookLog{
AppId: &msgHeader.AppId, AppId: &msgHeader.AppId,
EventId: &msgHeader.EventId, EventId: &msgHeader.EventId,
EventType: &msgHeader.EventType, EventType: &msgHeader.EventType,
HttpHeader: &httpHeaderStr, HttpHeader: &httpHeaderStr,
HttpBody: &httpBodyStr, Data: &encryptMsg.Encrypt,
MsgCtime: &feiShuMsgCreateTime, DecryptData: &decryptMsgStr,
Ctime: &now, MsgCtime: &feiShuMsgCreateTime,
Ctime: &now,
}) })
if err != nil { if err != nil {
logx.Error("保存webhook消息日志失败:", err) logx.Error("保存webhook消息日志失败:", err)