liuxiaolong
2020-07-28 4e3049e157cc0c3ac644078b5d3065777daf9ce6
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
}