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

修改字段过滤

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