Compare commits
2 Commits
ad90bec4d3
...
04fed6ffbd
Author | SHA1 | Date | |
---|---|---|---|
04fed6ffbd | |||
b6c4601860 |
@ -17,13 +17,6 @@ import (
|
||||
//
|
||||
// Date : 14:06 2023/2/1
|
||||
type IPreSendHandler interface {
|
||||
// GetEventID 为每一条事件生成唯一的ID, 此方法若返回空值, 则会自动生成一个随机的md5字符串作为事件ID
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 14:10 2023/2/1
|
||||
GetEventID() string
|
||||
|
||||
// GetRequestParam 构造 base info 时, 可能需要从请求参数中提取公共数据
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
@ -60,10 +53,10 @@ type IPreSendHandler interface {
|
||||
// Date : 14:16 2023/2/1
|
||||
GetEventData() interface{}
|
||||
|
||||
// NeedSend 判断是否需要发送事件
|
||||
// NeedSend 判断是否需要发送事件, 若不需要发送, 可在第一个返回值中记录不需要发送的原因
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 15:24 2023/2/2
|
||||
NeedSend() bool
|
||||
NeedSend() (map[string]interface{}, bool)
|
||||
}
|
||||
|
@ -7,6 +7,8 @@
|
||||
// Date : 2023-02-01 14:21
|
||||
package abstract
|
||||
|
||||
import "git.zhangdeman.cn/zhangdeman/event"
|
||||
|
||||
// ISendEventHandler 发送事件处理器
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
@ -35,4 +37,11 @@ type ISendEventHandler interface {
|
||||
//
|
||||
// Date : 14:22 2023/2/1
|
||||
FailCallback(data map[string]interface{}, err error)
|
||||
|
||||
// NoSendCallback 不需要发送事件的回调
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 15:26 2023/2/2
|
||||
NoSendCallback(data interface{}, res event.SendResult)
|
||||
}
|
||||
|
42
default_pre_send_handler.go
Normal file
42
default_pre_send_handler.go
Normal file
@ -0,0 +1,42 @@
|
||||
// Package event ...
|
||||
//
|
||||
// Description : event ...
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2023-02-02 16:36
|
||||
package event
|
||||
|
||||
import "net/http"
|
||||
|
||||
// DefaultPreSendHandler IPreSendHandler 默认实现
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 16:36 2023/2/2
|
||||
type DefaultPreSendHandler struct {
|
||||
}
|
||||
|
||||
func (d *DefaultPreSendHandler) GetRequestParam() map[string]interface{} {
|
||||
return map[string]interface{}{}
|
||||
}
|
||||
|
||||
func (d *DefaultPreSendHandler) GetRequestHeader() http.Header {
|
||||
return make(map[string][]string, 0)
|
||||
}
|
||||
|
||||
func (d *DefaultPreSendHandler) GetResponseData() map[string]interface{} {
|
||||
return map[string]interface{}{}
|
||||
}
|
||||
|
||||
func (d *DefaultPreSendHandler) GetExtensionData() map[string]interface{} {
|
||||
return map[string]interface{}{}
|
||||
}
|
||||
|
||||
func (d *DefaultPreSendHandler) GetEventData() interface{} {
|
||||
return map[string]interface{}{}
|
||||
}
|
||||
|
||||
func (d *DefaultPreSendHandler) NeedSend() (map[string]interface{}, bool) {
|
||||
return map[string]interface{}{}, true
|
||||
}
|
27
default_send_event_handler.go
Normal file
27
default_send_event_handler.go
Normal file
@ -0,0 +1,27 @@
|
||||
// Package event ...
|
||||
//
|
||||
// Description : event ...
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2023-02-02 16:39
|
||||
package event
|
||||
|
||||
type DefaultSendEventHandler struct {
|
||||
}
|
||||
|
||||
func (d *DefaultSendEventHandler) Send(data []byte) (map[string]interface{}, error) {
|
||||
return map[string]interface{}{}, nil
|
||||
}
|
||||
|
||||
func (d *DefaultSendEventHandler) SuccessCallback(data map[string]interface{}) {
|
||||
|
||||
}
|
||||
|
||||
func (d *DefaultSendEventHandler) FailCallback(data map[string]interface{}, err error) {
|
||||
|
||||
}
|
||||
|
||||
func (d *DefaultSendEventHandler) NoSendCallback(data interface{}, res SendResult) {
|
||||
|
||||
}
|
@ -93,3 +93,11 @@ type StructInfo struct {
|
||||
IsStructPtr bool // 是否为结构体指针
|
||||
StructFieldList []*StructField // 结构体字段列表
|
||||
}
|
||||
|
||||
// SendResult ...
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 15:27 2023/2/2
|
||||
type SendResult struct {
|
||||
}
|
||||
|
13
send.go
13
send.go
@ -18,7 +18,18 @@ import (
|
||||
//
|
||||
// Date : 15:16 2023/2/2
|
||||
func SendEvent(dataFlag string, data interface{}, preSendHandler abstract.IPreSendHandler, sendEventHandler abstract.ISendEventHandler) {
|
||||
if !preSendHandler.NeedSend() {
|
||||
if nil == preSendHandler {
|
||||
preSendHandler = &DefaultPreSendHandler{}
|
||||
}
|
||||
|
||||
if nil == sendEventHandler {
|
||||
sendEventHandler = &DefaultSendEventHandler{}
|
||||
}
|
||||
// noSendReason, isNeedSend := preSendHandler.NeedSend()
|
||||
_, isNeedSend := preSendHandler.NeedSend()
|
||||
res := SendResult{}
|
||||
if !isNeedSend {
|
||||
sendEventHandler.NoSendCallback(data, res)
|
||||
return
|
||||
}
|
||||
// 通过反射填充数据
|
||||
|
Reference in New Issue
Block a user