| | |
| | | sources := []interface{}{} |
| | | for _, value := range dat["hits"].([]interface{}) { |
| | | source := value.(map[string]interface{})["_source"].(map[string]interface{}) |
| | | source["id"] = value.(map[string]interface{})["_id"] |
| | | //source["id"] = source["id"] |
| | | /*sdkType := source["sdkType"] |
| | | if sdkType != nil { |
| | | sdk, _ := strconv.Atoi(sdkType.(string)) |
| | |
| | | } |
| | | boundary := writer.Boundary() |
| | | close_buf := bytes.NewBufferString(fmt.Sprintf("\r\n--%s--\r\n", boundary)) |
| | | fmt.Println("PostFormData.fileLen:",len(fileBytes)) |
| | | fmt.Println("PostFormData.fileLen:", len(fileBytes)) |
| | | file := bytes.NewBuffer(fileBytes) |
| | | request_reader := io.MultiReader(body, file, close_buf) |
| | | |
| | |
| | | return dat |
| | | } |
| | | } |
| | | |
| | | //解析http |
| | | func EsReq(method string, url string, parama []byte) (buf []byte, err error) { |
| | | timeout := time.Duration(10 * time.Second) |
| | | client := http.Client{ |
| | | Timeout: timeout, |
| | | } |
| | | request, err := http.NewRequest(method, url, bytes.NewBuffer(parama)) |
| | | request.Header.Set("Content-type", "application/json") |
| | | |
| | | if err != nil { |
| | | fmt.Println("build request fail !") |
| | | return nil, err |
| | | } |
| | | |
| | | resp, err := client.Do(request) |
| | | if err != nil { |
| | | fmt.Println("request error: ", err) |
| | | return nil, err |
| | | } |
| | | |
| | | defer resp.Body.Close() |
| | | body, err := ioutil.ReadAll(resp.Body) |
| | | if err != nil { |
| | | fmt.Println(err) |
| | | return nil, err |
| | | } |
| | | return body, nil |
| | | } |
| | | |
| | | //解析json |
| | | func Sourcelist(buf []byte) (sources []map[string]interface{}, err error) { |
| | | var info interface{} |
| | | json.Unmarshal(buf, &info) |
| | | out, ok := info.(map[string]interface{}) |
| | | if !ok { |
| | | return nil, errors.New("http response interface can not change map[string]interface{}") |
| | | } |
| | | |
| | | middle, ok := out["hits"].(map[string]interface{}) |
| | | if !ok { |
| | | return nil, errors.New("first hits change error!") |
| | | } |
| | | for _, in := range middle["hits"].([]interface{}) { |
| | | tmpbuf, ok := in.(map[string]interface{}) |
| | | if !ok { |
| | | fmt.Println("change to source error!") |
| | | continue |
| | | } |
| | | source, ok := tmpbuf["_source"].(map[string]interface{}) |
| | | if !ok { |
| | | fmt.Println("change _source error!") |
| | | continue |
| | | } |
| | | sources = append(sources, source) |
| | | } |
| | | return sources, nil |
| | | } |
| | | |
| | | func HttpGet(str string) []byte { |
| | | resp, err := http.Get(str) |
| | | if err != nil { |
| | | // handle error |
| | | } |
| | | |
| | | defer resp.Body.Close() |
| | | body, err := ioutil.ReadAll(resp.Body) |
| | | if err != nil { |
| | | // handle error |
| | | } |
| | | return body |
| | | } |
| | | |
| | | func ResponseData(tokenRes map[string]interface{}) map[string]interface{} { |
| | | tmpAllDate := make(map[string]interface{}) |
| | | tmpDate := make(map[string][]interface{}) |
| | | tmpAllDate["total"] = tokenRes["total"] |
| | | data := tokenRes["datalist"] |
| | | for _, masterInfoValues := range data.([]interface{}) { |
| | | masterInfo := masterInfoValues.(map[string]interface{}) |
| | | sources := make(map[string]interface{}, 0) |
| | | activateInfo := make(map[string]interface{}) |
| | | if masterInfo["linkTagInfo"] != nil { |
| | | linkTagInfo := masterInfo["linkTagInfo"].([]interface{}) |
| | | delete(masterInfo, "linkTagInfo") |
| | | if len(linkTagInfo) > 0 { |
| | | slaveList := make([]interface{}, 0) |
| | | slaveList = append(slaveList, masterInfo) |
| | | slaveList = append(slaveList, linkTagInfo...) |
| | | for i, j := 0, len(slaveList)-1; i < j; i, j = i+1, j-1 { |
| | | slaveList[i], slaveList[j] = slaveList[j], slaveList[i] |
| | | } |
| | | sources["list"] = slaveList |
| | | activateInfo = slaveList[0].(map[string]interface{}) |
| | | } else { |
| | | sources["list"] = []interface{}{ |
| | | masterInfo, |
| | | } |
| | | activateInfo = masterInfo |
| | | } |
| | | } else { |
| | | if _, ok := masterInfo["linkTagInfo"]; ok { |
| | | delete(masterInfo, "linkTagInfo") |
| | | } |
| | | sources["list"] = []interface{}{ |
| | | masterInfo, |
| | | } |
| | | activateInfo = masterInfo |
| | | |
| | | } |
| | | |
| | | sources["activeObject"] = activateInfo |
| | | |
| | | tmpDate["datalist"] = append(tmpDate["datalist"], sources) |
| | | } |
| | | tmpAllDate["datalist"] = tmpDate["datalist"] |
| | | return tmpAllDate |
| | | } |