From 4e3049e157cc0c3ac644078b5d3065777daf9ce6 Mon Sep 17 00:00:00 2001 From: liuxiaolong <liuxiaolong@aiotlink.com> Date: 星期二, 28 七月 2020 15:44:00 +0800 Subject: [PATCH] fix get pageResult from hik --- service/carService.go | 62 ++++++++++++++++++++++++++++--- 1 files changed, 56 insertions(+), 6 deletions(-) diff --git a/service/carService.go b/service/carService.go index 3d8054f..2003b14 100644 --- a/service/carService.go +++ b/service/carService.go @@ -3,6 +3,7 @@ import ( reqUtil "car-service/extend/util" "car-service/models" + "car-service/vo" "encoding/json" "fmt" "github.com/astaxie/beego" @@ -232,24 +233,73 @@ func (sv *CarService) GetHikPersonList() []HikPerson { url := "/artemis/api/resource/v2/person/personList" + pageSize := 1000 reqBody := map[string]interface{} { "pageNo": 1, - "pageSize": 1000, + "pageSize": pageSize, } + pageResult := sv.getHikPageResult(url, reqBody) + if pageResult == nil { + return nil + } + b,err := json.Marshal(pageResult.List) + if err != nil { + fmt.Println("marshal pageResult.List err:", err) + return nil + } + var list []HikPerson + if err = json.Unmarshal(b, &list);err != nil { + fmt.Println("unmarshal err:", err) + return nil + } + if pageResult.Total > pageSize { + times := pageResult.Total / pageSize + if pageResult.Total % pageSize > 0 { + times++ + } + for i:=1;i<times;i++ { + tpr := sv.getHikPageResult(url, map[string]interface{}{ + "pageNo": i+1, + "pageSize": pageSize, + }) + if tpr != nil { + tb,e := json.Marshal(tpr.List) + if e != nil { + fmt.Println("marshal tpr.List err:", e) + continue + } + var tprList []HikPerson + if e = json.Unmarshal(tb, &tprList);e ==nil { + list = append(list, tprList...) + } else { + fmt.Println("unmarshal tprList err:", e) + } + } else { + fmt.Println("total:", pageResult.Total, "tpr is nil") + } + } + } + + return nil +} + +func (sv *CarService) getHikPageResult(url string, reqBody map[string]interface{}) *vo.HikPageResult { fmt.Println(url, reqBody) result := sv.hikUtil.Post(url, reqBody) if result.Code == reqUtil.HikResult_Success { b, err := json.Marshal(result.Data) if err == nil { - var list []HikPerson - if err = json.Unmarshal(b, &list);err == nil { - return list + var pageResult vo.HikPageResult + if err = json.Unmarshal(b, &pageResult); err == nil { + return &pageResult } else { - fmt.Println("unmarshal err:", err) + fmt.Println("unmarshal pageResult err:", err) } } else { - fmt.Println("marshal err:", err) + fmt.Println("marshal result.Data err:", err) } + } else { + fmt.Println("result.Code:", result.Code) } return nil } -- Gitblit v1.8.0