| | |
| | | "sort" |
| | | "strconv" |
| | | "strings" |
| | | "time" |
| | | ) |
| | | type CarService struct { |
| | | hikUtil *reqUtil.HikHttpUtil |
| | |
| | | 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{} { |
| | |
| | | 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 |
| | |
| | | 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{} { |
| | |
| | | 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{ |
| | |
| | | } else { |
| | | su.PlateNo = "无车牌" |
| | | } |
| | | resultList = append(resultList, su) |
| | | |
| | | if isSuper { |
| | | resultList = append(resultList, su) |
| | | } else { |
| | | if isSpaceShow(vipPlateNoArr, su.PlateNo) { |
| | | resultList = append(resultList, su) |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | return resultList |
| | | } |
| | | |
| | | //1.白天管理员能看到所有人的车,包括vip车辆 |
| | | //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) { //是vip车辆 |
| | | return false |
| | | } |
| | | } |
| | | } |
| | | return true |
| | | } |
| | | |
| | | func (sv *CarService) FindSpaceNo(userId string) models.PosResult { |
| | | resultList := make(models.PosResult,0) |
| | | var myPlateNosMap = make(map[string]string) |