From b94322834b85a1eafe090d6684fcd0493cbd6fa0 Mon Sep 17 00:00:00 2001 From: liuxiaolong <liuxiaolong@aiotlink.com> Date: 星期二, 28 七月 2020 10:21:25 +0800 Subject: [PATCH] fix --- service/carService.go | 199 +++++++++++++++++++++++++++++++++---------------- 1 files changed, 135 insertions(+), 64 deletions(-) diff --git a/service/carService.go b/service/carService.go index 84f1ecb..1c05619 100644 --- a/service/carService.go +++ b/service/carService.go @@ -6,7 +6,6 @@ "encoding/json" "fmt" "github.com/astaxie/beego" - "strconv" ) type CarService struct { hikUtil *reqUtil.HikHttpUtil @@ -22,25 +21,27 @@ } } -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 { @@ -73,8 +74,6 @@ if err !=nil { fmt.Println("marshal result.data err:", err) return nil - } else { - fmt.Println("parkList:", result.Data) } var pList []ParkInfo err = json.Unmarshal(dbytes, &pList) @@ -127,7 +126,6 @@ } return remainList } - fmt.Println("result:", result) return nil } @@ -153,68 +151,53 @@ 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() //鍏堟煡鏈夊嚑涓仠杞﹀満 + 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锛氬仠杞� + "pageNo": 1, + "pageSize": 1000, + } + result := sv.hikUtil.Post(url, reqBody) + fmt.Println("findSpaceNo result:", result) + 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 } func (sv *CarService) BindCarSpace() bool { - url := "/api/pms/v1/parking_space/car_bind/add" + url := "/artemis/api/pms/v1/parking_space/car_bind/add" reqBody := map[string]interface{} { "spaceNos": "", //缁戝畾鐨勮溅浣嶉泦 "floorSyscode": "",//妤煎眰鍞竴鏍囪瘑鐮� @@ -222,4 +205,92 @@ } fmt.Println(url, reqBody) return true +} + +type HikPerson struct { + PersonId string `json:"personId"` + PersonName string `json:"personName"` + Gender int `json:"gender"` + Phone string `json:"phone"` + JobNo string `json:"jobNo"` + OrgIndexCode string `json:"orgIndexCode"` + CertificateType string `json:"certificateCode"` + CertificateNo string `json:"certificateNo"` + CreateTime string `json:"createTime"` + UpdateTime string `json:"updateTime"` + OrgPath string `json:"orgPath"` + OrgPathName string `json:"orgPathName"` + PersonPhone []HikPersonPhoto `json:"personPhoto"` +} + +type HikPersonPhoto struct { + PersonPhotoIndexCode string `json:"personPhotoIndexCode"` + PicUri string `json:"picUri"` + ServerIndexCode string `json:"serverIndexCode"` + PersonId string `json:"personId"` +} + +func (sv *CarService) GetHikPersonList() []HikPerson { + url := "/artemis/api/resource/v2/person/personList" + reqBody := map[string]interface{} { + "pageNo": 1, + "pageSize": 10000, + } + fmt.Println(url, reqBody) + result := sv.hikUtil.Post(url, reqBody) + fmt.Println("findPersonList result:", result) + 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 + } + } + } + return nil +} + +type HikVehicle struct { + VehicleId string `json:"vehicleId"` + PlateNo string `json:"plateNo"` + PersonId string `json:"personId"` + RegionIndexCode string `json:"regionIndexCode"` + PlateType int `json:"plateType"` + PlateColor int `json:"plateColor"` + VehicleType int `json:"vehicleType"` + VehicleColor int `json:"vehicleColor"` + Description string `json:"description"` + CreateTime string `json:"createTime"` + UpdateTime string `json:"updateTime"` + RegionName string `json:"regionName"` + RegionPath string `json:"regionPath"` + RegionPathName string `json:"regionPathName"` + IsBandPerson int `json:"isBandPerson"` + PersonName string `json:"personName"` + OrgPath string `json:"orgPath"` + OrgPathName string `json:"orgPathName"` +} + +//鑾峰彇鎸囧畾浜哄憳鐨勮溅杈嗚溅鐗屼俊鎭� +func (sv *CarService) GetVehicleListByPerson(personId string) []HikVehicle { + url := "/artemis/api/resource/v2/vehicle/advance/vehicleList" + reqBody := map[string]interface{} { + "pageNo": 1, + "pageSize": 100, + "personIds": personId, + } + fmt.Println(url, reqBody) + result := sv.hikUtil.Post(url, reqBody) + fmt.Println("getVehicleList result:", result) + if result.Code == reqUtil.HikResult_Success { + b, err := json.Marshal(result.Data) + if err == nil { + var list []HikVehicle + if err = json.Unmarshal(b, &list);err == nil { + return list + } + } + } + return nil } \ No newline at end of file -- Gitblit v1.8.0