From 62f5b98dc2c8084bcab1cf91edf7923d84b56c1c Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期一, 17 八月 2020 19:57:45 +0800
Subject: [PATCH] fix ret

---
 service/carService.go |   67 ++++++++++++++++++++++++++++-----
 1 files changed, 56 insertions(+), 11 deletions(-)

diff --git a/service/carService.go b/service/carService.go
index 629b43b..3e8e228 100644
--- a/service/carService.go
+++ b/service/carService.go
@@ -142,6 +142,38 @@
 	SpaceType 				string 		`json:"spaceType"`
 }
 
+func (sv *CarService) FindHikSpaceInfo() []SpaceNo {
+	url := "/artemis/api/pms/v1/parkingSpace/spaceNo"
+
+	reqBody := map[string]interface{} {
+		"pageNo": 1,
+		"pageSize": 1000,
+	}
+	pageResult := sv.getHikPageResult(url, reqBody)
+	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
+		} else {
+			var resultArr []SpaceNo
+			for _,si := range spaceList {
+				if si.State == 1 { //鏈夎溅
+					resultArr = append(resultArr, si)
+				}
+			}
+			return resultArr
+		}
+	}
+	return nil
+}
+
 func (sv *CarService) FindSpaceNo(userId string) models.PosResult {
 	resultList := make(models.PosResult,0)
 	var myPlateNosMap = make(map[string]string)
@@ -179,21 +211,22 @@
 			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,
-				IsMine: isMine,
 			}
 			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
 			}
@@ -302,20 +335,32 @@
 	return list
 }
 
-func SyncHikPerson() {
+func SyncHikPerson() int {
+	syncCount := 0
 	sv := NewCarService()
 	hikPersons := sv.GetHikPersonList()
-	if hikPersons != nil {
+	if hikPersons != nil && len(hikPersons) >0 {
 		var u models.User
-		uMap := u.GetAllMapByPhone()
+		idMap := u.GetAllMap()
+		hikPM := make(map[string]string)
 		for _,hp := range hikPersons {
-			if sp,ok := uMap[hp.PhoneNo];ok {
-				if sp.Id != hp.PersonId {
-					u.SyncHikPersonId(hp.PhoneNo, hp.PersonId)
+			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 {

--
Gitblit v1.8.0