From c6b1cadc0214c6791a5c5bcc62ab57601e38f457 Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期四, 13 八月 2020 11:31:08 +0800
Subject: [PATCH] add db restriction
---
service/carService.go | 169 +++++++++++++++++++++++++++++++++-----------------------
1 files changed, 100 insertions(+), 69 deletions(-)
diff --git a/service/carService.go b/service/carService.go
index a688cd3..3fdff76 100644
--- a/service/carService.go
+++ b/service/carService.go
@@ -25,25 +25,20 @@
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 {
@@ -142,6 +137,7 @@
PlateNoPicUri string `json:"plateNoPicUri"`
AswSyscode string `json:"aswSyscode"`
PlateNos string `json:"plateNos"`
+ PlateNo string `json:"plateNo"`
AlarmPlateNos string `json:"alarmPlateNos"`
SpaceType string `json:"spaceType"`
}
@@ -149,60 +145,62 @@
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 {
+
+ pi := models.PosInfo {
+ SpaceNo: s.SpaceNo,
+ PosNo: "",
+ State: s.State,
}
- 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)
- }
+ if s.PlateNo != "" {
+ pi.PlateNo = s.PlateNo
+ } else if s.PlateNos != "" {
+ pi.PlateNo = s.PlateNos
}
- //}
- //}
+ isMine := false
+ if _,exist := myPlateNosMap[pi.PlateNo]; exist {
+ isMine = true
+ }
+ pi.IsMine = isMine
+ 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 {
@@ -305,6 +303,34 @@
return list
}
+func SyncHikPerson() int {
+ syncCount := 0
+ sv := NewCarService()
+ hikPersons := sv.GetHikPersonList()
+ if hikPersons != nil && len(hikPersons) >0 {
+ var u models.User
+ idMap := u.GetAllMap()
+ hikPM := make(map[string]string)
+ for _,hp := range hikPersons {
+ hikPM[hp.PersonId] = hp.PhoneNo
+ if sp,ok := idMap[hp.PersonId];ok {
+ if sp.PhoneNum != hp.PhoneNo {
+ u.UpdatePhoneNum(hp.PhoneNo, hp.PersonId)
+ syncCount++
+ }
+ }
+ }
+ for k,_ := range idMap {
+ if _,in := hikPM[k];!in {
+ u.Delete(k)
+ syncCount++
+ }
+ }
+
+ }
+ return syncCount
+}
+
func (sv *CarService) getHikPageResult(url string, reqBody map[string]interface{}) *vo.HikPageResult {
fmt.Println(url, reqBody)
result := sv.hikUtil.Post(url, reqBody)
@@ -352,11 +378,14 @@
url := "/artemis/api/resource/v2/vehicle/advance/vehicleList"
reqBody := map[string]interface{} {
"pageNo": 1,
- "pageSize": 100,
- "personIds": personId,
+ "pageSize": 1000,
+ }
+ if personId != "" {
+ reqBody["personIds"] = personId
}
pageResult := sv.getHikPageResult(url, reqBody)
if pageResult ==nil {
+ fmt.Println("GetVehicleListByPerson pageResult is nil")
return nil
}
@@ -365,6 +394,8 @@
var list []HikVehicle
if err = json.Unmarshal(b, &list);err == nil {
return list
+ } else {
+ fmt.Println("unmarshal err:", err)
}
}
--
Gitblit v1.8.0