From 1cb224fb1769112729050024b17d7569d0302d9a Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期二, 22 九月 2020 20:43:59 +0800
Subject: [PATCH] spaceInfo and spaceUser add vip except
---
conf/app.conf | 5 +-
service/carService.go | 103 +++++++++++++++++++++++++++++++++++++++++++++++++--
controllers/car.go | 6 ++-
3 files changed, 106 insertions(+), 8 deletions(-)
diff --git a/conf/app.conf b/conf/app.conf
index e7b3f32..51ff4e8 100644
--- a/conf/app.conf
+++ b/conf/app.conf
@@ -22,5 +22,6 @@
initPushLeft = 88
pushOpen = false
testPushPhones = 18601263339
-nightManagerPhones = 15210613764,19821586309,13611298216,13693616515
-nightVipPlateNos = 浜琇AK619,浜琋K00M0,浜琈R5102,浜琀94985
\ No newline at end of file
+nightManagerPhones = 13611298216,13693616515
+nightVipPlateNos = 浜琇AK619,浜琋K00M0,浜琈R5102,浜琀94985
+superManagerPhones = 15210613764,19821586309
\ No newline at end of file
diff --git a/controllers/car.go b/controllers/car.go
index 7b65575..9cccaff 100644
--- a/controllers/car.go
+++ b/controllers/car.go
@@ -284,8 +284,9 @@
}
// @router /spaceInfo [get]
func (c *CarController) SpaceInfo() {
+ userId := c.GetString("userId")
sv := service.NewCarService()
- spaceInfo := sv.FindHikSpaceInfo()
+ spaceInfo := sv.FindHikSpaceInfo(userId)
c.Data["json"] = code.Code{
Success: true,
Status: http.StatusOK,
@@ -296,8 +297,9 @@
// @router /spaceUser [get]
func (c *CarController) SpaceUser() {
+ userId := c.GetString("userId")
sv := service.NewCarService()
- spaceUser := sv.FindHikSpaceUser()
+ spaceUser := sv.FindHikSpaceUser(userId)
c.Data["json"] = code.Code{
Success: true,
Status: http.StatusOK,
diff --git a/service/carService.go b/service/carService.go
index 5d79f47..6d6d340 100644
--- a/service/carService.go
+++ b/service/carService.go
@@ -10,6 +10,7 @@
"sort"
"strconv"
"strings"
+ "time"
)
type CarService struct {
hikUtil *reqUtil.HikHttpUtil
@@ -144,7 +145,7 @@
SpaceType string `json:"spaceType"`
}
-func (sv *CarService) FindHikSpaceInfo() []SpaceNo {
+func (sv *CarService) FindHikSpaceInfo(userId string) []SpaceNo {
url := "/artemis/api/pms/v1/parkingSpace/spaceNo"
reqBody := map[string]interface{} {
@@ -164,10 +165,49 @@
fmt.Println("unmarshal spaceNos err:", err)
return nil
} else {
+ curLoginManagerPhone := ""
+ personMap := sv.GetHikPersonMap()
+ if userId != "" {
+ if mm,ok := personMap[userId];ok {
+ curLoginManagerPhone = mm.PhoneNo
+ }
+ }
+ isSuper := false
+ if curLoginManagerPhone != "" {
+ superPhoneArr := strings.Split(beego.AppConfig.String("superManagerPhones"), ",")
+ if superPhoneArr != nil {
+ for _,sp := range superPhoneArr {
+ if sp == curLoginManagerPhone { //鏄秴绾х鐞嗗憳
+ isSuper = true
+ break
+ }
+ }
+ }
+ }
+
+ var vipPlateNoArr []string
+ vipArr := strings.Split(beego.AppConfig.String("nightVipPlateNos"), ",")
+ if vipArr != nil && len(vipArr) >0 {
+ for _,po := range vipArr {
+ if po != "" {
+ cnPo := preDealPlateNo(po)
+ if cnPo != "" {
+ vipPlateNoArr = append(vipPlateNoArr, cnPo)
+ }
+ }
+ }
+ }
+
var resultArr []SpaceNo
for _,si := range spaceList {
if si.State == 1 { //鏈夎溅
- resultArr = append(resultArr, si)
+ if isSuper {
+ resultArr = append(resultArr, si)
+ } else {
+ if isSpaceShow(vipPlateNoArr, si.PlateNo) {
+ resultArr = append(resultArr, si)
+ }
+ }
}
}
return resultArr
@@ -198,7 +238,7 @@
return sn1 < sn2
}
-func (sv *CarService) FindHikSpaceUser() SpaceUserArr {
+func (sv *CarService) FindHikSpaceUser(userId string) SpaceUserArr {
resultList := make(SpaceUserArr, 0)
url := "/artemis/api/pms/v1/parkingSpace/spaceNo"
reqBody := map[string]interface{} {
@@ -219,6 +259,38 @@
if len(spaceList) > 0 { //褰撳墠鏈夊仠鐣欒溅
personMap := sv.GetHikPersonMap()
vehicleMap := sv.GetHikVehicleMap()
+ curLoginManagerPhone := ""
+ if userId != "" {
+ if mm,ok := personMap[userId];ok {
+ curLoginManagerPhone = mm.PhoneNo
+ }
+ }
+ isSuper := false
+ if curLoginManagerPhone != "" {
+ superPhoneArr := strings.Split(beego.AppConfig.String("superManagerPhones"), ",")
+ if superPhoneArr != nil {
+ for _,sp := range superPhoneArr {
+ if sp == curLoginManagerPhone { //鏄秴绾х鐞嗗憳
+ isSuper = true
+ break
+ }
+ }
+ }
+ }
+
+ var vipPlateNoArr []string
+ vipArr := strings.Split(beego.AppConfig.String("nightVipPlateNos"), ",")
+ if vipArr != nil && len(vipArr) >0 {
+ for _,po := range vipArr {
+ if po != "" {
+ cnPo := preDealPlateNo(po)
+ if cnPo != "" {
+ vipPlateNoArr = append(vipPlateNoArr, cnPo)
+ }
+ }
+ }
+ }
+
for _,sp := range spaceList {
if sp.State == 1 {
su := SpaceUser{
@@ -247,7 +319,15 @@
} else {
su.PlateNo = "鏃犺溅鐗�"
}
- resultList = append(resultList, su)
+
+ if isSuper {
+ resultList = append(resultList, su)
+ } else {
+ if isSpaceShow(vipPlateNoArr, su.PlateNo) {
+ resultList = append(resultList, su)
+ }
+ }
+
}
}
}
@@ -259,6 +339,21 @@
return resultList
}
+//1.鐧藉ぉ绠$悊鍛樿兘鐪嬪埌鎵�鏈変汉鐨勮溅锛屽寘鎷瑅ip杞﹁締
+//2.澶滄櫄绠$悊鍛樼湅涓嶅埌vip杞﹁締
+func isSpaceShow(vipPlateNoArr []string, spacePto string) bool {
+ hour := time.Now().Hour()
+ if hour >= 22 || hour <= 7 {
+ if vipPlateNoArr != nil && len(vipPlateNoArr) >0 {
+ targetPto := preDealPlateNo(spacePto)
+ if isVipCar(targetPto, vipPlateNoArr) { //鏄痸ip杞﹁締
+ return false
+ }
+ }
+ }
+ return true
+}
+
func (sv *CarService) FindSpaceNo(userId string) models.PosResult {
resultList := make(models.PosResult,0)
var myPlateNosMap = make(map[string]string)
--
Gitblit v1.8.0