110 lines
3.2 KiB
Go
110 lines
3.2 KiB
Go
// Package event ...
|
|
//
|
|
// Description : 各种常量定义
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 2023-02-01 14:23
|
|
package event
|
|
|
|
import "reflect"
|
|
|
|
const (
|
|
// OutEventTag 事件数据输出key的标签
|
|
OutEventTag = "event"
|
|
// JsonTag json输出的标签
|
|
JsonTag = "json"
|
|
// IgnoreTagValue 不做输出的标签值
|
|
IgnoreTagValue = "-"
|
|
// MappingTag 参数映射标签
|
|
MappingTag = "mapping"
|
|
// PriorityTag 处理数据时, mapping数据查找的优先级, 默认值 : field
|
|
PriorityTag = "priority"
|
|
// OmitemptyTag ...
|
|
OmitemptyTag = "omitempty"
|
|
)
|
|
|
|
const (
|
|
// MappingLocationAll 自动探测所有路径
|
|
MappingLocationAll = "all"
|
|
// MappingLocationParam 从参数读取
|
|
MappingLocationParam = "param"
|
|
// MappingLocationHeader 从请求header读取
|
|
MappingLocationHeader = "header"
|
|
// MappingLocationResponse 从响应数据读取
|
|
MappingLocationResponse = "response"
|
|
// MappingLocationExtension 从扩展数据读取
|
|
MappingLocationExtension = "extension"
|
|
)
|
|
|
|
var (
|
|
mappingLocationList = []string{
|
|
MappingLocationHeader,
|
|
MappingLocationParam,
|
|
MappingLocationResponse,
|
|
MappingLocationExtension,
|
|
}
|
|
)
|
|
|
|
// SetMappingLocationList 只持续该默认的查找优先级
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 18:17 2023/2/1
|
|
func SetMappingLocationList(locationList []string) {
|
|
if len(locationList) > 0 {
|
|
mappingLocationList = locationList
|
|
}
|
|
}
|
|
|
|
// MappingRuleItem 规则
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 17:36 2023/2/1
|
|
type MappingRuleItem struct {
|
|
Location string `json:"location"` // 数据所在位置, header-请求头 param-参数获取 response-响应数据获取 extension-扩展数据读取 all-自动按照header/param/response/extension的顺序查询
|
|
Field string `json:"field"` // 查询的字段名称
|
|
}
|
|
|
|
// StructField 结构体字段信息
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 14:35 2023/2/1
|
|
type StructField struct {
|
|
Idx int // 字段在结构体的索引
|
|
Name string // 字段名
|
|
Type reflect.Kind // 字段类型
|
|
IsPtr bool // 是否为指针
|
|
JsonTag string // json标签
|
|
EventTag string // 事件标签
|
|
MappingRuleList []MappingRuleItem // 规则列表
|
|
}
|
|
|
|
// StructInfo 结构体信息
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 16:17 2023/2/1
|
|
type StructInfo struct {
|
|
Flag string // 结构体标识
|
|
IsStruct bool // 是否为结构体
|
|
IsStructPtr bool // 是否为结构体指针
|
|
StructFieldList []*StructField // 结构体字段列表
|
|
}
|
|
|
|
// SendResult ...
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 15:27 2023/2/2
|
|
type SendResult struct {
|
|
IsNeedSend bool `json:"is_need_send"` // 是否需要发送
|
|
NoSendDetail map[string]interface{} `json:"no_send_detail"` // 未发送详细原因
|
|
Data interface{} `json:"data"` // 发送的数据
|
|
IsSuccess bool `json:"is_success"` // 是否处理成功
|
|
FailReason string `json:"fail_reason"` // 失败原因
|
|
SendResult map[string]interface{} `json:"send_result"` // 发送结果
|
|
}
|