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
---
vo/common.go | 7 +++
service/carService.go | 62 ++++++++++++++++++++++++++++---
2 files changed, 63 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
}
diff --git a/vo/common.go b/vo/common.go
index f47edfc..8d10ab7 100644
--- a/vo/common.go
+++ b/vo/common.go
@@ -6,3 +6,10 @@
Msg string `json:"msg"`
Data interface{} `json:"data"`
}
+
+type HikPageResult struct {
+ Total int `json:"total"`
+ PageNo int `json:"pageNo"`
+ PageSize int `json:"pageSize"`
+ List interface{} `json:"list"`
+}
\ No newline at end of file
--
Gitblit v1.8.0