From 50c3437ec2e1874df6468bb83a9d5acf40482e6a Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期二, 08 九月 2020 11:08:29 +0800
Subject: [PATCH] rm push msg title and nightMsg for manger

---
 service/carService.go |  127 ++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 121 insertions(+), 6 deletions(-)

diff --git a/service/carService.go b/service/carService.go
index 9a2c6a1..5d79f47 100644
--- a/service/carService.go
+++ b/service/carService.go
@@ -7,6 +7,7 @@
 	"encoding/json"
 	"fmt"
 	"github.com/astaxie/beego"
+	"sort"
 	"strconv"
 	"strings"
 )
@@ -175,6 +176,89 @@
 	return nil
 }
 
+
+type SpaceUser struct {
+	SpaceNo 	string 			`json:"spaceNo"`
+	PlateNo 	string 			`json:"plateNo"`
+	Username 	string 			`json:"username"`
+	PhoneNum 	string 			`json:"phoneNum"`
+	CarType 	string 			`json:"carType"`
+}
+
+type SpaceUserArr []SpaceUser
+func (arr SpaceUserArr) Len()int {
+	return len(arr)
+}
+func (arr SpaceUserArr) Swap(i,j int) {
+	arr[i],arr[j] = arr[j],arr[i]
+}
+func (arr SpaceUserArr) Less(i,j int) bool {
+	sn1,_ := strconv.Atoi(arr[i].SpaceNo)
+	sn2,_ := strconv.Atoi(arr[j].SpaceNo)
+	return sn1 < sn2
+}
+
+func (sv *CarService) FindHikSpaceUser() SpaceUserArr {
+	resultList := make(SpaceUserArr, 0)
+	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)
+		} else {
+			var spaceList []SpaceNo
+			err = json.Unmarshal(rb, &spaceList)
+			if err != nil {
+				fmt.Println("unmarshal spaceNos err:", err)
+			} else {
+				if len(spaceList) > 0 { //褰撳墠鏈夊仠鐣欒溅
+					personMap := sv.GetHikPersonMap()
+					vehicleMap := sv.GetHikVehicleMap()
+					for _,sp := range spaceList {
+						if sp.State == 1 {
+							su := SpaceUser{
+								SpaceNo: sp.SpaceNo,
+								PlateNo: sp.PlateNo,
+							}
+							if sp.PlateNo != "" {
+								r := []rune(sp.PlateNo)
+								ncStr := string(r[1:]) //鎶婄涓�浣嶆眽瀛楀墧闄ゆ帀
+								newK := strings.ReplaceAll(ncStr, "D", "*")
+								newK = strings.ReplaceAll(newK, "0", "*")
+								personId := ""
+								if v,exist := vehicleMap[newK]; exist {
+									personId = v.PersonId
+								}
+
+								if personId != "" {
+									su.CarType = "澶囨杞�"
+									if person, in := personMap[personId]; in {
+										su.Username = person.PersonName
+										su.PhoneNum = person.PhoneNo
+									}
+								} else {
+									su.CarType = "涓存椂杞�"
+								}
+							} else {
+								su.PlateNo = "鏃犺溅鐗�"
+							}
+							resultList = append(resultList, su)
+						}
+					}
+				}
+			}
+		}
+	}
+
+	sort.Sort(resultList)
+	return resultList
+}
+
 func (sv *CarService) FindSpaceNo(userId string) models.PosResult {
 	resultList := make(models.PosResult,0)
 	var myPlateNosMap = make(map[string]string)
@@ -183,7 +267,8 @@
 		if vehicles != nil {
 			for _,veh := range vehicles {
 				if veh.PlateNo != "" {
-					ncStr := veh.PlateNo[1:] //鎶婄涓�浣嶆眽瀛楀墧闄ゆ帀
+					r := []rune(veh.PlateNo)
+					ncStr := string(r[1:]) //鎶婄涓�浣嶆眽瀛楀墧闄ゆ帀
 					myPlateNosMap[ncStr] = ncStr
 				}
 				//myPlateNosMap[veh.PlateNo] = veh.PlateNo
@@ -252,11 +337,10 @@
 //1.鐩墠鏈夎璇嗗埆鐨勯棶棰橈紝浼氭妸D璇嗗埆鎴�0,D鍜�0涓嶅垎
 //2.姹夊瓧璇瘑鍒殑鍑犵巼姣旇緝楂�
 func isMyPlateNo(plateNoM map[string]string, targetPlateNo string) bool {
-	if targetPlateNo == "浜琋34809"{
-		fmt.Println("isMyPlateNo plateNoM:", plateNoM)
-	}
 	if targetPlateNo != "" {
-		nctPlateNo := targetPlateNo[1:]
+		r := []rune(targetPlateNo)
+		nctPlateNo := string(r[1:])
+
 		if _,exist := plateNoM[nctPlateNo];exist {
 			return true
 		} else {
@@ -265,7 +349,7 @@
 				newK := strings.ReplaceAll(k, "D", "*")
 				newK = strings.ReplaceAll(newK, "0", "*")
 
-				tt := strings.ReplaceAll(targetPlateNo,"D", "*")
+				tt := strings.ReplaceAll(nctPlateNo,"D", "*")
 				tt = strings.ReplaceAll(tt,"0", "*")
 				if newK == tt {
 					match = true
@@ -312,6 +396,37 @@
 	PersonId 						string 				`json:"personId"`
 }
 
+//浠ヤ汉鍛榠d涓簁ey
+func (sv *CarService) GetHikPersonMap() map[string]HikPerson {
+	m := make(map[string]HikPerson)
+	personList := sv.GetHikPersonList()
+	if personList != nil {
+		for _,p := range personList {
+			m[p.PersonId] = p
+		}
+	}
+	return m
+}
+
+//浠ヨ溅鐗屽彿涓篕ey
+func (sv *CarService) GetHikVehicleMap() map[string] HikVehicle {
+	m := make(map[string]HikVehicle)
+	carPersons := sv.GetVehicleListByPerson("")
+	if carPersons != nil {
+		for _,veh := range carPersons {
+			if veh.PlateNo != "" {
+				r := []rune(veh.PlateNo)
+				ncStr := string(r[1:]) //鎶婄涓�浣嶆眽瀛楀墧闄ゆ帀
+				newK := strings.ReplaceAll(ncStr, "D", "*")
+				newK = strings.ReplaceAll(newK, "0", "*")
+				m[newK] = veh
+			}
+		}
+	}
+
+	return m
+}
+
 func (sv *CarService) GetHikPersonList() []HikPerson {
 	url := "/artemis/api/resource/v2/person/personList"
 	pageSize := 1000

--
Gitblit v1.8.0