Commit 35da4089 authored by 张宇迪's avatar 张宇迪

修改字段过滤

parent 31add993
...@@ -163,8 +163,8 @@ func ApplyCallCounts(proxyData model.ProxyData) (err error) { ...@@ -163,8 +163,8 @@ func ApplyCallCounts(proxyData model.ProxyData) (err error) {
fmt.Println(err.Error()) fmt.Println(err.Error())
return return
} }
date := time.Now().Format(config.LocalDateTimeFormat) //date := time.Now().Format(config.LocalDateTimeFormat)
err = redis.RPush(fmt.Sprintf("%s-%d", config.ApplyTag, proxyData.Apply_id), []byte(date)) err = redis.RPush(fmt.Sprintf("%s", config.ApplyTag), proxyData.Apply_id)
fmt.Println("rpush data to list failed:", err) fmt.Println("rpush data to list failed:", err)
return return
} }
...@@ -173,13 +173,15 @@ func ApplyCallCounts(proxyData model.ProxyData) (err error) { ...@@ -173,13 +173,15 @@ func ApplyCallCounts(proxyData model.ProxyData) (err error) {
func FiledFilter(proxyData model.ProxyData, respbody []byte) interface{} { func FiledFilter(proxyData model.ProxyData, respbody []byte) interface{} {
fields := []request.ServiceField{} fields := []request.ServiceField{}
fields = dataconvertutil.GetResponseField(proxyData.ResFields) fields = dataconvertutil.GetResponseField(proxyData.ResFields)
model, arrmodel := dataconvertutil.ConvertJson(fields) _, arrmodel := dataconvertutil.ConvertJson(fields)
realData := make(map[string]interface{}) realData := make(map[string]interface{})
json.Unmarshal(respbody, &realData) json.Unmarshal(respbody, &realData)
if model != nil && len(model) != 0 { if arrmodel != nil && len(arrmodel) != 0 && len(realData) != 0 {
return Change(model, realData) if fields[0].Type == "array" {
} else if arrmodel != nil && len(arrmodel) != 0 { return Change(arrmodel, realData)
return Change(model, realData) } else {
return Change(arrmodel[0], realData)
}
} }
return respbody return respbody
} }
...@@ -194,7 +196,8 @@ func Change(model interface{}, returnData interface{}) interface{} { ...@@ -194,7 +196,8 @@ func Change(model interface{}, returnData interface{}) interface{} {
for k1, v1 := range model.(map[string]interface{}) { for k1, v1 := range model.(map[string]interface{}) {
if k == k1 { if k == k1 {
flag = true flag = true
Change(v, v1) //Change(v, v1)
Change(v1, v)
} }
} }
// 删除属性 // 删除属性
......
...@@ -15,88 +15,45 @@ func ConvertJson(fields []request.ServiceField) (map[string]interface{}, []inter ...@@ -15,88 +15,45 @@ func ConvertJson(fields []request.ServiceField) (map[string]interface{}, []inter
return m, n return m, n
} }
for _, field := range fields { for _, field := range fields {
if field.Selected == 1 && field.Type == "object" { if field.Selected == 1 && (field.Type == "object" || field.Type == "array") {
mm, nn := ConvertJson(field.Children)
if field.Name == "" { if field.Name == "" {
mm, nn := ConvertJson(field.Children)
if len(nn) != 0 { if len(nn) != 0 {
n = append(n, nn) n = append(n, nn)
} else { } else {
n = append(n, mm) n = append(n, mm)
} }
} else { } else {
mm, nn := ConvertJson(field.Children)
if len(nn) != 0 { if len(nn) != 0 {
m[field.Name] = nn m[field.Name] = nn
} else { } else {
m[field.Name] = mm m[field.Name] = mm
} }
} }
} else if field.Selected == 1 && (field.Type == "string" || field.Type == "file" || field.Type == "text") {
} else if field.Selected == 1 && field.Type == "array" { if field.Name == "" {
if len(field.Children) > 0 { n = append(n, field.Example)
//判断第一个元素是否为对象 如果为对象则名称必定为空
//第一个元素 要么为对象,要么为基本类型 要么为数组
if field.Children[0].Type == "object" || field.Children[0].Type == "array" {
mm, nn := ConvertJson(field.Children[0].Children)
if field.Name == "" {
if len(nn) != 0 {
n = append(n, nn)
} else {
n = append(n, mm)
}
} else {
if len(nn) != 0 {
m[field.Name] = nn
} else {
m[field.Name] = mm
}
}
} else {
if field.Name != "" {
var aaa []interface{}
m[field.Name] = aaa
} else {
if len(field.Children) > 0 {
switch field.Children[0].Type {
case "string", "text", "file":
n = append(n, field.Children[0].Example)
case "int":
n = append(n, tools.ParseInt(field.Children[0].Example, 0))
case "float":
n = append(n, tools.ParseFloat64(field.Children[0].Example, 1.00))
case "boolean":
n = append(n, true)
case "array":
n = append(n, []interface{}{field.Children[0].Example})
default:
var cc interface{}
n = append(n, cc)
}
} else {
var cc interface{}
n = append(n, cc)
}
}
}
} else { } else {
if field.Name != "" { m[field.Name] = field.Example
m[field.Name] = []interface{}{field.Example} }
} else { } else if field.Selected == 1 && field.Type == "int" {
var cc interface{} if field.Name == "" {
n = append(n, cc) n = append(n, field.Example)
} } else {
m[field.Name] = tools.ParseInt(field.Example, 0)
}
} else if field.Selected == 1 && field.Type == "float" {
if field.Name == "" {
n = append(n, field.Example)
} else {
m[field.Name] = tools.ParseFloat64(field.Example, 0.0)
}
} else if field.Selected == 1 && field.Type == "bool" {
if field.Name == "" {
n = append(n, field.Example)
} else {
m[field.Name] = true
} }
} else if field.Selected == 1 {
m[field.Name] = field.Example
} }
} }
return m, n return m, n
...@@ -110,96 +67,48 @@ func ConvertJsonAll(fields []request.ServiceField) (map[string]interface{}, []in ...@@ -110,96 +67,48 @@ func ConvertJsonAll(fields []request.ServiceField) (map[string]interface{}, []in
return m, n return m, n
} }
for _, field := range fields { for _, field := range fields {
if field.Type == "object" { if field.Type == "object" || field.Type == "array" {
mm, nn := ConvertJsonAll(field.Children)
if field.Name == "" { if field.Name == "" {
mm, nn := ConvertJsonAll(field.Children)
if len(nn) != 0 { if len(nn) != 0 {
n = append(n, nn) n = append(n, nn)
} else { } else {
n = append(n, mm) n = append(n, mm)
} }
} else { } else {
mm, nn := ConvertJsonAll(field.Children)
if len(nn) != 0 { if len(nn) != 0 {
m[field.Name] = nn m[field.Name] = nn
} else { } else {
m[field.Name] = mm m[field.Name] = mm
} }
} }
} else if field.Type == "string" || field.Type == "file" || field.Type == "text" {
} else if field.Type == "array" { if field.Name == "" {
if len(field.Children) > 0 { n = append(n, field.Example)
//判断第一个元素是否为对象 如果为对象则名称必定为空
//第一个元素 要么为对象,要么为基本类型 要么为数组
if field.Children[0].Type == "object" || field.Children[0].Type == "array" {
mm, nn := ConvertJsonAll(field.Children[0].Children)
if field.Name == "" {
if len(nn) != 0 {
n = append(n, nn)
} else {
n = append(n, mm)
}
} else {
if len(nn) != 0 {
m[field.Name] = nn
} else {
m[field.Name] = mm
}
}
} else {
if field.Name != "" {
var aaa []interface{}
m[field.Name] = aaa
} else {
if len(field.Children) > 0 {
switch field.Children[0].Type {
case "string", "text", "file":
n = append(n, field.Children[0].Example)
case "int":
n = append(n, tools.ParseInt(field.Children[0].Example, 0))
case "float":
n = append(n, tools.ParseFloat64(field.Children[0].Example, 1.00))
case "boolean":
n = append(n, true)
case "array":
n = append(n, []interface{}{field.Children[0].Example})
default:
var cc interface{}
n = append(n, cc)
}
} else {
var cc interface{}
n = append(n, cc)
}
}
}
} else { } else {
if field.Name != "" { m[field.Name] = field.Example
m[field.Name] = []interface{}{field.Example}
} else {
var cc interface{}
n = append(n, cc)
}
} }
} else if field.Type == "string" || field.Type == "file" {
m[field.Name] = field.Example
} else if field.Type == "int" { } else if field.Type == "int" {
m[field.Name] = tools.ParseInt(field.Example, 0) if field.Name == "" {
n = append(n, field.Example)
} else {
m[field.Name] = tools.ParseInt(field.Example, 0)
}
} else if field.Type == "float" { } else if field.Type == "float" {
m[field.Name] = tools.ParseFloat64(field.Example, 0.0) if field.Name == "" {
n = append(n, field.Example)
} else {
m[field.Name] = tools.ParseFloat64(field.Example, 0.0)
}
} else if field.Type == "bool" { } else if field.Type == "bool" {
m[field.Name] = true if field.Name == "" {
n = append(n, field.Example)
} else {
m[field.Name] = true
}
} }
} }
return m, n return m, n
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment