| | |
| | | "notification": { |
| | | "title": title, |
| | | "body": msg, |
| | | "big_text": msg, |
| | | "click_type": "intent", |
| | | "intent": intent, |
| | | }, |
| | |
| | | } |
| | | iosPush := map[string]interface{}{ |
| | | "type":"notify", |
| | | "payload":"育英中学停车", |
| | | "payload": "育英中学停车", |
| | | "aps":map[string]interface{}{ |
| | | "alert":map[string]string{ |
| | | "title": title, |
| | |
| | | } |
| | | } |
| | | } |
| | | //夜间某些领导的车可以停在车库内 |
| | | 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) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | hikPersonMap := csv.GetHikPersonMap() |
| | | |
| | | spaceNos := csv.FindSpaceNo("") |
| | |
| | | if sn.State == 1 { //车尚在停车场的车牌 |
| | | inCnPlateNo := preDealPlateNo(sn.PlateNo) |
| | | if inCnPlateNo != "" { |
| | | if personId,ok := carPersonM[inCnPlateNo];ok { |
| | | if phoneNum,ok := pushUserM[personId]; ok { |
| | | if uc.Exist(phoneNum) { |
| | | aliasArr = append(aliasArr, phoneNum) |
| | | if !isVipCar(inCnPlateNo, vipPlateNoArr) { |
| | | if personId,ok := carPersonM[inCnPlateNo];ok { |
| | | if phoneNum,ok := pushUserM[personId]; ok { |
| | | if uc.Exist(phoneNum) { |
| | | aliasArr = append(aliasArr, phoneNum) |
| | | } |
| | | } |
| | | |
| | | if v,ex := hikPersonMap[personId]; ex { |
| | | carOwners = append(carOwners, sn.PlateNo+"("+v.PersonName+")") |
| | | } |
| | | } else { //找不到车主,即视为临时车,将车牌作为车主姓名推送 |
| | | if sn.PlateNo == "无车牌" { |
| | | carOwners = append(carOwners, sn.PlateNo) |
| | | } else { |
| | | carOwners = append(carOwners, sn.PlateNo+"()") |
| | | } |
| | | } |
| | | |
| | | if v,ex := hikPersonMap[personId]; ex { |
| | | carOwners = append(carOwners, v.PersonName) |
| | | } |
| | | } else { //找不到车主,即视为临时车,将车牌作为车主姓名推送 |
| | | carOwners = append(carOwners, sn.PlateNo) |
| | | } |
| | | } |
| | | } |
| | |
| | | return b,e, aliasArr, carOwners |
| | | } |
| | | |
| | | |
| | | //此方法做测试使用 |
| | | //获取停留在车库内车主的姓名,找不到姓名返回这牌 |
| | | func GetLeftCarOwners() []string { |
| | | var carOwners []string |
| | | pushUserM := make(map[string]string) |
| | | var userE models.User |
| | | allUsers, _ := userE.GetAllUsers() |
| | | if allUsers != nil { |
| | | for _,u := range allUsers { |
| | | pushUserM[u.Id] = u.PhoneNum |
| | | } |
| | | } |
| | | |
| | | carPersonM := make(map[string]string) |
| | | csv := NewCarService() |
| | | carPersons := csv.GetVehicleListByPerson("") |
| | | if carPersons != nil { |
| | | for _, cp := range carPersons { |
| | | cnPlateNo := preDealPlateNo(cp.PlateNo) |
| | | if cnPlateNo != "" { |
| | | carPersonM[cnPlateNo] = cp.PersonId |
| | | } |
| | | } |
| | | } |
| | | //夜间某些领导的车可以停在车库内 |
| | | 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) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | hikPersonMap := csv.GetHikPersonMap() |
| | | |
| | | spaceNos := csv.FindSpaceNo("") |
| | | for _,sn := range spaceNos { |
| | | if sn.State == 1 { //车尚在停车场的车牌 |
| | | inCnPlateNo := preDealPlateNo(sn.PlateNo) |
| | | if inCnPlateNo != "" { |
| | | if !isVipCar(inCnPlateNo, vipPlateNoArr) { |
| | | if personId,ok := carPersonM[inCnPlateNo];ok { |
| | | |
| | | if v,ex := hikPersonMap[personId]; ex { |
| | | carOwners = append(carOwners, sn.PlateNo+"("+v.PersonName+")") |
| | | } |
| | | } else { //找不到车主,即视为临时车,将车牌作为车主姓名推送 |
| | | if sn.PlateNo == "无车牌" { |
| | | carOwners = append(carOwners, sn.PlateNo) |
| | | } else { |
| | | carOwners = append(carOwners, sn.PlateNo+"()") |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | return carOwners |
| | | } |
| | | |
| | | //vip车主,不接收请离开的通知,也不通知管理员这个车还在车库内 |
| | | func isVipCar(targetPlateNo string, vipPlateNoArr []string) bool { |
| | | b := false |
| | | if vipPlateNoArr != nil { |
| | | for _,v := range vipPlateNoArr { |
| | | if targetPlateNo == v { |
| | | b = true |
| | | break |
| | | } |
| | | } |
| | | } |
| | | return b |
| | | } |
| | | |
| | | //如果夜间有给车库内的车主推送“请尽快驶离”的消息,则告知管理员 有哪些车尚停在车库内 |
| | | func Push2Manager(title string, msg string) (bool, error, []string) { |
| | | func Push2Manager(title string, msg string, isTest bool) (bool, error, []string) { |
| | | if len(msg) > 256 { |
| | | fmt.Println("夜间停留车太多,message:", msg) |
| | | |
| | | r := []rune(msg) |
| | | msg = string(r[:125])+"..." |
| | | } |
| | | managers := beego.AppConfig.String("nightManagerPhones") |
| | | managers := "" |
| | | if isTest { |
| | | managers = beego.AppConfig.String("testPushPhones") |
| | | } else { |
| | | managers = beego.AppConfig.String("nightManagerPhones") |
| | | } |
| | | if managers == "" { |
| | | return false, errors.New("夜间推送管理员手机号未配置"), []string{} |
| | | } |