liuxiaolong
2020-09-22 1cb224fb1769112729050024b17d7569d0302d9a
spaceInfo and spaceUser add vip except
3个文件已修改
114 ■■■■■ 已修改文件
conf/app.conf 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/car.go 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/carService.go 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
conf/app.conf
@@ -22,5 +22,6 @@
initPushLeft = 88
pushOpen = false
testPushPhones = 18601263339
nightManagerPhones = 15210613764,19821586309,13611298216,13693616515
nightVipPlateNos = 京LAK619,京NK00M0,京MR5102,京H94985
nightManagerPhones = 13611298216,13693616515
nightVipPlateNos = 京LAK619,京NK00M0,京MR5102,京H94985
superManagerPhones = 15210613764,19821586309
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,
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.白天管理员能看到所有人的车,包括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)