| | |
| | | "encoding/json" |
| | | "fmt" |
| | | "github.com/astaxie/beego" |
| | | "strconv" |
| | | ) |
| | | type CarService struct { |
| | | hikUtil *reqUtil.HikHttpUtil |
| | |
| | | } |
| | | } |
| | | |
| | | func (sv *CarService) Statistic() *models.CarStatistic { |
| | | func (sv *CarService) Statistic() (*models.CarStatistic, bool) { |
| | | m := models.CarStatistic{ |
| | | 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 { |
| | |
| | | |
| | | 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 |
| | | } |