From 0ad0f24393f5db3224a8e3900b97bb31cf60f56d Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期二, 18 八月 2020 12:54:39 +0800
Subject: [PATCH] log

---
 service/carService.go |   80 ++++++++++++++++++++++++++++++++++++----
 1 files changed, 72 insertions(+), 8 deletions(-)

diff --git a/service/carService.go b/service/carService.go
index 3fdff76..3c38030 100644
--- a/service/carService.go
+++ b/service/carService.go
@@ -8,6 +8,7 @@
 	"fmt"
 	"github.com/astaxie/beego"
 	"strconv"
+	"strings"
 )
 type CarService struct {
 	hikUtil *reqUtil.HikHttpUtil
@@ -142,6 +143,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)
@@ -149,8 +182,11 @@
 		vehicles := sv.GetVehicleListByPerson(userId)
 		if vehicles != nil {
 			for _,veh := range vehicles {
-				myPlateNosMap[veh.PlateNo] = veh.PlateNo
-				//myPlateNos = append(myPlateNos, veh.PlateNo)
+				if veh.PlateNo != "" {
+					ncStr := veh.PlateNo[1:] //鎶婄涓�浣嶆眽瀛楀墧闄ゆ帀
+					myPlateNosMap[ncStr] = ncStr
+				}
+				//myPlateNosMap[veh.PlateNo] = veh.PlateNo
 			}
 		}
 	}
@@ -179,7 +215,6 @@
 			return nil
 		}
 		for _,s := range spaceList {
-
 			pi := models.PosInfo {
 				SpaceNo: s.SpaceNo,
 				PosNo: "",
@@ -190,11 +225,7 @@
 			} else if s.PlateNos != "" {
 				pi.PlateNo = s.PlateNos
 			}
-			isMine := false
-			if _,exist := myPlateNosMap[pi.PlateNo]; exist {
-				isMine = true
-			}
-			pi.IsMine = isMine
+			pi.IsMine = isMyPlateNo(myPlateNosMap, pi.PlateNo)
 			if v,ok := models.SpaceNo2Pos[s.SpaceNo];ok {
 				pi.PosNo = v
 			}
@@ -217,6 +248,39 @@
 	return resultList
 }
 
+//鍒ゆ柇鏄笉鏄嚜宸辩殑杞︾墝鍙�
+//1.鐩墠鏈夎璇嗗埆鐨勯棶棰橈紝浼氭妸D璇嗗埆鎴�0,D鍜�0涓嶅垎
+//2.姹夊瓧璇瘑鍒殑鍑犵巼姣旇緝楂�
+func isMyPlateNo(plateNoM map[string]string, targetPlateNo string) bool {
+
+	fmt.Println("targetPlateNO:", targetPlateNo)
+	for ip,_ := range plateNoM {
+		fmt.Println("my plateNos:", ip)
+	}
+
+	if targetPlateNo != "" {
+		nctPlateNo := targetPlateNo[1:]
+		if _,exist := plateNoM[nctPlateNo];exist {
+			return true
+		} else {
+			match := false
+			for k,_ := range plateNoM {
+				newK := strings.ReplaceAll(k, "D", "*")
+				newK = strings.ReplaceAll(newK, "0", "*")
+
+				tt := strings.ReplaceAll(targetPlateNo,"D", "*")
+				tt = strings.ReplaceAll(tt,"0", "*")
+				if newK == tt {
+					match = true
+					break
+				}
+			}
+			return match
+		}
+	}
+	return false
+}
+
 func (sv *CarService) BindCarSpace() bool {
 	url := "/artemis/api/pms/v1/parking_space/car_bind/add"
 	reqBody := map[string]interface{} {

--
Gitblit v1.8.0