fix
liuxiaolong
2020-10-10 447e03afc0c6cefe4793ffdf64128dc2dd7f7dee
service/carService.go
@@ -144,7 +144,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 +164,38 @@
         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
                  }
               }
            }
         }
         vipPlateNoArr := getVipPlateNoArr()
         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 +226,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 +247,27 @@
            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
                        }
                     }
                  }
               }
               vipPlateNoArr := getVipPlateNoArr()
               for _,sp := range spaceList {
                  if sp.State == 1 {
                     su := SpaceUser{
@@ -247,7 +296,15 @@
                     } else {
                        su.PlateNo = "无车牌"
                     }
                     resultList = append(resultList, su)
                     if isSuper {
                        resultList = append(resultList, su)
                     } else {
                        if isSpaceShow(vipPlateNoArr, su.PlateNo) {
                           resultList = append(resultList, su)
                        }
                     }
                  }
               }
            }
@@ -257,6 +314,34 @@
   sort.Sort(resultList)
   return resultList
}
func getVipPlateNoArr() []string {
   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)
            }
         }
      }
   }
   return vipPlateNoArr
}
//白天和夜晚管理员都看不到vip车辆
func isSpaceShow(vipPlateNoArr []string, spacePto string) bool {
   if vipPlateNoArr != nil && len(vipPlateNoArr) >0 {
      targetPto := preDealPlateNo(spacePto)
      if isVipCar(targetPto, vipPlateNoArr) { //是vip车辆
         return false
      }
   }
   return true
}
func (sv *CarService) FindSpaceNo(userId string) models.PosResult {
@@ -299,6 +384,7 @@
         fmt.Println("unmarshal spaceNos err:",err)
         return nil
      }
      vipPlateNoArr := getVipPlateNoArr()
      for _,s := range spaceList {
         pi := models.PosInfo {
            SpaceNo: s.SpaceNo,
@@ -314,7 +400,13 @@
         if v,ok := models.SpaceNo2Pos[s.SpaceNo];ok {
            pi.PosNo = v
         }
         resultList = append(resultList, pi)
         if isSpaceShow(vipPlateNoArr, pi.PlateNo) {
            resultList = append(resultList, pi)
         } else {
            pi.State = 0
            pi.PlateNo = ""
            resultList = append(resultList, pi)
         }
      }
   }
   if len(resultList) == 0 {