Compare commits
	
		
			2 Commits
		
	
	
		
			ad90bec4d3
			...
			04fed6ffbd
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 04fed6ffbd | |||
| b6c4601860 | 
| @ -17,13 +17,6 @@ import ( | |||||||
| // | // | ||||||
| // Date : 14:06 2023/2/1 | // Date : 14:06 2023/2/1 | ||||||
| type IPreSendHandler interface { | type IPreSendHandler interface { | ||||||
| 	// GetEventID 为每一条事件生成唯一的ID, 此方法若返回空值, 则会自动生成一个随机的md5字符串作为事件ID |  | ||||||
| 	// |  | ||||||
| 	// Author : go_developer@163.com<白茶清欢> |  | ||||||
| 	// |  | ||||||
| 	// Date : 14:10 2023/2/1 |  | ||||||
| 	GetEventID() string |  | ||||||
|  |  | ||||||
| 	// GetRequestParam 构造 base info 时, 可能需要从请求参数中提取公共数据 | 	// GetRequestParam 构造 base info 时, 可能需要从请求参数中提取公共数据 | ||||||
| 	// | 	// | ||||||
| 	// Author : go_developer@163.com<白茶清欢> | 	// Author : go_developer@163.com<白茶清欢> | ||||||
| @ -60,10 +53,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) | ||||||
| } | } | ||||||
|  | |||||||
| @ -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) | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										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           // 是否为结构体指针 | 	IsStructPtr     bool           // 是否为结构体指针 | ||||||
| 	StructFieldList []*StructField // 结构体字段列表 | 	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 | // 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() { | 	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 | 		return | ||||||
| 	} | 	} | ||||||
| 	// 通过反射填充数据 | 	// 通过反射填充数据 | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user