From 37f69af50f54e1a15cbfbf8d652fb1042618fb78 Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期二, 01 九月 2020 17:56:12 +0800
Subject: [PATCH] add user isAdmin
---
service/carService.go | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 113 insertions(+), 0 deletions(-)
diff --git a/service/carService.go b/service/carService.go
index 2ae876a..3d3ca03 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,87 @@
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 {
+ 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)
@@ -312,6 +394,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