liuxiaolong
2020-07-28 4e3049e157cc0c3ac644078b5d3065777daf9ce6
fix get pageResult from hik
2个文件已修改
69 ■■■■■ 已修改文件
service/carService.go 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vo/common.go 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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
}
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"`
}