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