增加处理结果定义 + 增加无需发送事件的回调

This commit is contained in:
白茶清欢 2023-02-02 15:30:51 +08:00
parent ad90bec4d3
commit b6c4601860
4 changed files with 24 additions and 3 deletions

View File

@ -60,10 +60,10 @@ type IPreSendHandler interface {
// Date : 14:16 2023/2/1 // Date : 14:16 2023/2/1
GetEventData() interface{} GetEventData() interface{}
// NeedSend 判断是否需要发送事件 // NeedSend 判断是否需要发送事件, 若不需要发送, 可在第一个返回值中记录不需要发送的原因
// //
// Author : go_developer@163.com<白茶清欢> // Author : go_developer@163.com<白茶清欢>
// //
// Date : 15:24 2023/2/2 // Date : 15:24 2023/2/2
NeedSend() bool NeedSend() (map[string]interface{}, bool)
} }

View File

@ -7,6 +7,8 @@
// Date : 2023-02-01 14:21 // Date : 2023-02-01 14:21
package abstract package abstract
import "git.zhangdeman.cn/zhangdeman/event"
// ISendEventHandler 发送事件处理器 // ISendEventHandler 发送事件处理器
// //
// Author : go_developer@163.com<白茶清欢> // Author : go_developer@163.com<白茶清欢>
@ -35,4 +37,11 @@ type ISendEventHandler interface {
// //
// Date : 14:22 2023/2/1 // Date : 14:22 2023/2/1
FailCallback(data map[string]interface{}, err error) 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)
} }

View File

@ -93,3 +93,11 @@ type StructInfo struct {
IsStructPtr bool // 是否为结构体指针 IsStructPtr bool // 是否为结构体指针
StructFieldList []*StructField // 结构体字段列表 StructFieldList []*StructField // 结构体字段列表
} }
// SendResult ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 15:27 2023/2/2
type SendResult struct {
}

View File

@ -18,7 +18,11 @@ import (
// //
// Date : 15:16 2023/2/2 // Date : 15:16 2023/2/2
func SendEvent(dataFlag string, data interface{}, preSendHandler abstract.IPreSendHandler, sendEventHandler abstract.ISendEventHandler) { func SendEvent(dataFlag string, data interface{}, preSendHandler abstract.IPreSendHandler, sendEventHandler abstract.ISendEventHandler) {
if !preSendHandler.NeedSend() { // noSendReason, isNeedSend := preSendHandler.NeedSend()
_, isNeedSend := preSendHandler.NeedSend()
res := SendResult{}
if !isNeedSend {
sendEventHandler.NoSendCallback(data, res)
return return
} }
// 通过反射填充数据 // 通过反射填充数据