From f64dd9f191dff341b4eb430d7bacc44a3db9a279 Mon Sep 17 00:00:00 2001 From: liuxiaolong <liuxiaolong@aiotlink.com> Date: 星期五, 04 三月 2022 10:12:45 +0800 Subject: [PATCH] fix nil --- service/carService.go | 112 ++++++++++++++++++++++++++++++------------------------- 1 files changed, 61 insertions(+), 51 deletions(-) diff --git a/service/carService.go b/service/carService.go index 6d6d340..7bd48e5 100644 --- a/service/carService.go +++ b/service/carService.go @@ -10,7 +10,6 @@ "sort" "strconv" "strings" - "time" ) type CarService struct { hikUtil *reqUtil.HikHttpUtil @@ -31,12 +30,19 @@ TotalPlace: 0, Left: 0, } - - remainList := sv.getRemainSpaceNum("") - if remainList != nil { - for _,r:=range remainList { - m.TotalPlace += r.TotalPlace - m.Left += r.LeftPlace + //20201117 淇敼缁熻鏂瑰紡锛屾寜鐓� 鍓╀綑杞︿綅鏁�=杞︿綅鎬绘暟-杞﹀簱鍐呭疄闄呭仠杞︽暟锛堥〉闈笂鏄剧ず鐨勶紝涓嶅惈vip杞﹁締鍗犱綅锛� + spaceInfo := sv.FindSpaceNo("") + if spaceInfo != nil { + m.TotalPlace = len(spaceInfo) + usedCount := 0 + for _,si := range spaceInfo { + if si.State == 1 { + usedCount++ + } + } + m.Left = m.TotalPlace-usedCount + if m.Left < 0 { + m.Left = 0 } return &m, true } else { @@ -185,22 +191,11 @@ } } - 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) - } - } - } - } + vipPlateNoArr := getVipPlateNoArr() var resultArr []SpaceNo for _,si := range spaceList { - if si.State == 1 { //鏈夎溅 + if si.State == 1 &&si.PlateNo != "" && si.PlateNo != "鏃犺溅鐗�" { //鏈夎溅 if isSuper { resultArr = append(resultArr, si) } else { @@ -278,21 +273,10 @@ } } - 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) - } - } - } - } + vipPlateNoArr := getVipPlateNoArr() for _,sp := range spaceList { - if sp.State == 1 { + if sp.State == 1 && sp.PlateNo != "" && sp.PlateNo != "鏃犺溅鐗�"{ su := SpaceUser{ SpaceNo: sp.SpaceNo, PlateNo: sp.PlateNo, @@ -339,18 +323,31 @@ 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 +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) { //鏄痸ip杞﹁締 + return false + } + } + return true } @@ -361,7 +358,7 @@ vehicles := sv.GetVehicleListByPerson(userId) if vehicles != nil { for _,veh := range vehicles { - if veh.PlateNo != "" { + if veh.PlateNo != ""{ r := []rune(veh.PlateNo) ncStr := string(r[1:]) //鎶婄涓�浣嶆眽瀛楀墧闄ゆ帀 myPlateNosMap[ncStr] = ncStr @@ -394,6 +391,7 @@ fmt.Println("unmarshal spaceNos err:",err) return nil } + vipPlateNoArr := getVipPlateNoArr() for _,s := range spaceList { pi := models.PosInfo { SpaceNo: s.SpaceNo, @@ -405,11 +403,23 @@ } else if s.PlateNos != "" { pi.PlateNo = s.PlateNos } - pi.IsMine = isMyPlateNo(myPlateNosMap, pi.PlateNo) - if v,ok := models.SpaceNo2Pos[s.SpaceNo];ok { - pi.PosNo = v - } - resultList = append(resultList, pi) + if pi.PlateNo == "鏃犺溅鐗�" { + pi.State = 0 + pi.PlateNo = "" + resultList = append(resultList, pi) + } else { + pi.IsMine = isMyPlateNo(myPlateNosMap, pi.PlateNo) + if v,ok := models.SpaceNo2Pos[s.SpaceNo];ok { + pi.PosNo = v + } + if isSpaceShow(vipPlateNoArr, pi.PlateNo) { + resultList = append(resultList, pi) + } else { + pi.State = 0 + pi.PlateNo = "" + resultList = append(resultList, pi) + } + } } } if len(resultList) == 0 { @@ -432,7 +442,7 @@ //1.鐩墠鏈夎璇嗗埆鐨勯棶棰橈紝浼氭妸D璇嗗埆鎴�0,D鍜�0涓嶅垎 //2.姹夊瓧璇瘑鍒殑鍑犵巼姣旇緝楂� func isMyPlateNo(plateNoM map[string]string, targetPlateNo string) bool { - if targetPlateNo != "" { + if targetPlateNo != "" && plateNoM != nil { r := []rune(targetPlateNo) nctPlateNo := string(r[1:]) @@ -605,7 +615,7 @@ func (sv *CarService) getHikPageResult(url string, reqBody map[string]interface{}) *vo.HikPageResult { fmt.Println(url, reqBody) result := sv.hikUtil.Post(url, reqBody) - if result.Code == reqUtil.HikResult_Success { + if result != nil && result.Code == reqUtil.HikResult_Success { b, err := json.Marshal(result.Data) if err == nil { var pageResult vo.HikPageResult @@ -722,4 +732,4 @@ } return nil -} \ No newline at end of file +} -- Gitblit v1.8.0