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