| | |
| | | |
| | | func (sv *CarService) Statistic() (*models.CarStatistic, bool) { |
| | | m := models.CarStatistic{ |
| | | TotalPermPlace: 0, |
| | | Left: 0, |
| | | } |
| | | parkList := sv.getHikParkList() //先查有几个停车场 |
| | | flag := false |
| | | if parkList != nil { |
| | | flag = true |
| | | for _,p := range parkList { |
| | | remainList := sv.getRemainSpaceNum(p.ParkIndexCode) |
| | | if remainList != nil { |
| | | for _,r := range remainList { |
| | | m.Left += r.LeftPlace |
| | | m.TotalPermPlace += r.LeftPermPlace |
| | | } |
| | | } |
| | | } |
| | | TotalPlace: 0, |
| | | Left: 0, |
| | | } |
| | | |
| | | return &m, flag |
| | | remainList := sv.getRemainSpaceNum("") |
| | | if remainList != nil { |
| | | for _,r:=range remainList { |
| | | m.TotalPlace += r.TotalPlace |
| | | m.Left += r.LeftPlace |
| | | } |
| | | return &m, true |
| | | } else { |
| | | return &m, false |
| | | } |
| | | } |
| | | |
| | | type ParkInfo struct { |
| | |
| | | PlateNoPicUri string `json:"plateNoPicUri"` |
| | | AswSyscode string `json:"aswSyscode"` |
| | | PlateNos string `json:"plateNos"` |
| | | PlateNo string `json:"plateNo"` |
| | | AlarmPlateNos string `json:"alarmPlateNos"` |
| | | SpaceType string `json:"spaceType"` |
| | | } |
| | |
| | | func (sv *CarService) FindSpaceNo(userId string) models.PosResult { |
| | | resultList := make(models.PosResult,0) |
| | | var myPlateNosMap = make(map[string]string) |
| | | vehicles := sv.GetVehicleListByPerson(userId) |
| | | if vehicles != nil { |
| | | for _,veh := range vehicles { |
| | | myPlateNosMap[veh.PlateNo] = veh.PlateNo |
| | | //myPlateNos = append(myPlateNos, veh.PlateNo) |
| | | if userId !="" { |
| | | vehicles := sv.GetVehicleListByPerson(userId) |
| | | if vehicles != nil { |
| | | for _,veh := range vehicles { |
| | | myPlateNosMap[veh.PlateNo] = veh.PlateNo |
| | | //myPlateNos = append(myPlateNos, veh.PlateNo) |
| | | } |
| | | } |
| | | } |
| | | //bindCars := strings.Join(myPlateNos, ",") |
| | | //先查车库唯一标识 |
| | | //parkList := sv.getHikParkList() //先查有几个停车场 |
| | | //if parkList != nil { |
| | | url := "/artemis/api/pms/v1/parkingSpace/spaceNo" |
| | | //for _,p := range parkList { |
| | | reqBody := map[string]interface{} { |
| | | //"parkSyscode": p.ParkIndexCode,//停车库唯一标识 |
| | | //"state": 1, //车位状态,0:空闲,1:停车 |
| | | //"bindCars": bindCars, |
| | | "pageNo": 1, |
| | | "pageSize": 1000, |
| | | |
| | | url := "/artemis/api/pms/v1/parkingSpace/spaceNo" |
| | | |
| | | reqBody := map[string]interface{} { |
| | | //"parkSyscode": p.ParkIndexCode,//停车库唯一标识 |
| | | //"state": 1, //车位状态,0:空闲,1:停车 |
| | | //"bindCars": bindCars, |
| | | "pageNo": 1, |
| | | "pageSize": 1000, |
| | | } |
| | | pageResult := sv.getHikPageResult(url, reqBody) |
| | | //fmt.Println("findSpaceNo pageResult:", pageResult) |
| | | if pageResult != nil { |
| | | rb, err := json.Marshal(pageResult.List) |
| | | if err != nil { |
| | | fmt.Println("marshal pageResult.List 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 { |
| | | isMine := false |
| | | if _,exist := myPlateNosMap[s.PlateNos]; exist { |
| | | isMine = true |
| | | } |
| | | pageResult := sv.getHikPageResult(url, reqBody) |
| | | fmt.Println("findSpaceNo pageResult:", pageResult) |
| | | if pageResult != nil { |
| | | rb, err := json.Marshal(pageResult.List) |
| | | if err != nil { |
| | | fmt.Println("marshal pageResult.List 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 { |
| | | isMine := false |
| | | if _,exist := myPlateNosMap[s.PlateNos]; exist { |
| | | isMine = true |
| | | } |
| | | pi := models.PosInfo { |
| | | SpaceNo: s.SpaceNo, |
| | | PosNo: "", |
| | | State: s.State, |
| | | PlateNo: s.PlateNos, |
| | | IsMine: isMine, |
| | | } |
| | | if v,ok := models.SpaceNo2Pos[s.SpaceNo];ok { |
| | | pi.PosNo = v |
| | | } |
| | | resultList = append(resultList, pi) |
| | | } |
| | | pi := models.PosInfo { |
| | | SpaceNo: s.SpaceNo, |
| | | PosNo: "", |
| | | State: s.State, |
| | | IsMine: isMine, |
| | | } |
| | | //} |
| | | //} |
| | | if s.PlateNo != "" { |
| | | pi.PlateNo = s.PlateNo |
| | | } else if s.PlateNos != "" { |
| | | pi.PlateNo = s.PlateNos |
| | | } |
| | | if v,ok := models.SpaceNo2Pos[s.SpaceNo];ok { |
| | | pi.PosNo = v |
| | | } |
| | | resultList = append(resultList, pi) |
| | | } |
| | | } |
| | | if len(resultList) == 0 { |
| | | for i:=1;i<91;i++ { |
| | | pi := models.PosInfo { |
| | |
| | | url := "/artemis/api/resource/v2/vehicle/advance/vehicleList" |
| | | reqBody := map[string]interface{} { |
| | | "pageNo": 1, |
| | | "pageSize": 100, |
| | | "pageSize": 1000, |
| | | "personIds": personId, |
| | | } |
| | | pageResult := sv.getHikPageResult(url, reqBody) |