From 85f9175b3064094a09dbe9f71ba37b2f11f38e5f Mon Sep 17 00:00:00 2001 From: liuxiaolong <liuxiaolong@aiotlink.com> Date: 星期三, 29 七月 2020 14:21:16 +0800 Subject: [PATCH] use sqlite, spaceNo add isMine --- service/carService.go | 149 +++++++++++++++++++++++++++++++++++-------------- 1 files changed, 107 insertions(+), 42 deletions(-) diff --git a/service/carService.go b/service/carService.go index 3d8054f..edddb6b 100644 --- a/service/carService.go +++ b/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" @@ -149,26 +150,35 @@ SpaceType string `json:"spaceType"` } -func (sv *CarService) FindSpaceNo() models.PosResult { +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) + } + } + //bindCars := strings.Join(myPlateNos, ",") //鍏堟煡杞﹀簱鍞竴鏍囪瘑 - parkList := sv.getHikParkList() //鍏堟煡鏈夊嚑涓仠杞﹀満 - if parkList != nil { + //parkList := sv.getHikParkList() //鍏堟煡鏈夊嚑涓仠杞﹀満 + //if parkList != nil { url := "/artemis/api/pms/v1/parkingSpace/spaceNo" - for _,p := range parkList { + //for _,p := range parkList { reqBody := map[string]interface{} { - "parkSyscode": p.ParkIndexCode,//鍋滆溅搴撳敮涓�鏍囪瘑 + //"parkSyscode": p.ParkIndexCode,//鍋滆溅搴撳敮涓�鏍囪瘑 //"state": 1, //杞︿綅鐘舵�侊紝0锛氱┖闂诧紝1锛氬仠杞� + //"bindCars": bindCars, "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) + pageResult := sv.getHikPageResult(url, reqBody) + fmt.Println("findSpaceNo pageResult:", pageResult) + if pageResult != nil { + rb, err := json.Marshal(pageResult.List) if err != nil { - fmt.Println("hik find spaceNo err:",err) + fmt.Println("marshal pageResult.List err:",err) return nil } var spaceList []SpaceNo @@ -178,11 +188,16 @@ 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 @@ -190,8 +205,8 @@ resultList = append(resultList, pi) } } - } - } + //} + //} return resultList } @@ -208,19 +223,19 @@ } 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"` + PersonId string `json:"personId"` + PersonName string `json:"personName"` + Gender int `json:"gender"` + PhoneNo string `json:"phoneNo"` + 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 { @@ -232,24 +247,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 list +} + +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:", result) } return nil } @@ -283,17 +347,18 @@ "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 - } + pageResult := sv.getHikPageResult(url, reqBody) + if pageResult ==nil { + return nil + } + + b, err := json.Marshal(pageResult.List) + 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