liuxiaolong
2020-07-27 7aa0acccfcd2a078c7ca163f4bd8fb4b71600aae
service/carService.go
@@ -6,7 +6,6 @@
   "encoding/json"
   "fmt"
   "github.com/astaxie/beego"
   "strconv"
)
type CarService struct {
   hikUtil *reqUtil.HikHttpUtil
@@ -22,25 +21,29 @@
   }
}
func (sv *CarService) Statistic() *models.CarStatistic {
func (sv *CarService) Statistic() (*models.CarStatistic, bool) {
   m := models.CarStatistic{
      Left: 0,
      TotalPermPlace: 0,
      Left:           0,
   }
   parkList := sv.getHikParkList() //先查有几个停车场
   fmt.Println("parkList:", parkList)
   flag := false
   if parkList != nil {
      flag = true
      for _,p := range parkList {
         remainList := sv.getRemainSpaceNum(p.ParkIndexCode)
         fmt.Println("remainList:", remainList)
         if remainList != nil {
            for _,r := range remainList {
               m.Left += r.LeftPlace
               m.TotalPermPlace += r.LeftPermPlace
            }
         }
      }
   }
   return &m
   return &m, flag
}
type ParkInfo struct {
@@ -153,62 +156,49 @@
func (sv *CarService) FindSpaceNo() models.PosResult {
   resultList := make(models.PosResult,0)
   for k,_ := range models.SpaceNo2Pos {
      st := 0
      i, _ := strconv.Atoi(k)
      if i >= 50 && i <=60 {
         st = 1
      }
      resultList = append(resultList, models.PosInfo {
         SpaceNo: k,
         PosNo: "",
         State: st,
         PlateNo: "",
      })
   }
   //先查车库唯一标识
   //parkList := sv.getHikParkList() //先查有几个停车场
   //fmt.Println("parkList:", parkList)
   //if parkList != nil {
   //   url := "/api/pms/v1/parkingSpace/spaceNo"
   //   for _,p := range parkList {
   //      reqBody := map[string]interface{} {
   //         "parkSyscode": p.ParkIndexCode,//停车库唯一标识
   //         "spaceNos": "",  //车位号,多个用逗号隔开
   //         "state": 1, //车位状态,0:空闲,1:停车
   //         "bindCars": "", //绑定的车辆车牌号,多个用逗号隔开
   //         "pageNo": 1,
   //         "pageSize": 1000,
   //      }
   //      result := sv.hikUtil.Post(url, reqBody)
   //      if result.Code == reqUtil.HikResult_Success {
   //         rb, err := json.Marshal(result.Data)
   //         if err != nil {
   //            fmt.Println("hik find spaceNo err:",err)
   //            return nil
   //         }
   //         var spaceList []SpaceNo
   //         err = json.Unmarshal(rb, &spaceList)
   //         if err != nil {
   //            fmt.Println("unmarshal spaceNos err:",err)
   //            return nil
   //         }
   //         for _,s := range spaceList {
   //            pi := models.PosInfo {
   //               SpaceNo: s.SpaceNo,
   //               PosNo: "",
   //               State: s.State,
   //               PlateNo: s.PlateNos,
   //            }
   //            if v,ok := models.SpaceNo2Pos[s.SpaceNo];ok {
   //               pi.PosNo = v
   //            }
   //            resultList = append(resultList, pi)
   //         }
   //      }
   //   }
   //}
   parkList := sv.getHikParkList() //先查有几个停车场
   fmt.Println("parkList:", parkList)
   if parkList != nil {
      url := "/api/pms/v1/parkingSpace/spaceNo"
      for _,p := range parkList {
         reqBody := map[string]interface{} {
            "parkSyscode": p.ParkIndexCode,//停车库唯一标识
            "spaceNos": "",  //车位号,多个用逗号隔开
            "state": 1, //车位状态,0:空闲,1:停车
            "bindCars": "", //绑定的车辆车牌号,多个用逗号隔开
            "pageNo": 1,
            "pageSize": 1000,
         }
         result := sv.hikUtil.Post(url, reqBody)
         if result.Code == reqUtil.HikResult_Success {
            rb, err := json.Marshal(result.Data)
            if err != nil {
               fmt.Println("hik find spaceNo err:",err)
               return nil
            }
            var spaceList []SpaceNo
            err = json.Unmarshal(rb, &spaceList)
            if err != nil {
               fmt.Println("unmarshal spaceNos err:",err)
               return nil
            }
            for _,s := range spaceList {
               pi := models.PosInfo {
                  SpaceNo: s.SpaceNo,
                  PosNo: "",
                  State: s.State,
                  PlateNo: s.PlateNos,
               }
               if v,ok := models.SpaceNo2Pos[s.SpaceNo];ok {
                  pi.PosNo = v
               }
               resultList = append(resultList, pi)
            }
         }
      }
   }
   return resultList
}