liuxiaolong
2020-09-02 3e9cf4df58f5d8266e606fff63cb9da1105a4dcf
service/msgPush.go
@@ -424,8 +424,9 @@
   return false, errors.New("推送失败")
}
func NightPush(title string, msg string) (bool, error, []string) {
func NightPush(title string, msg string) (bool, error, []string, []string) {
   var aliasArr []string
   var carOwners []string
   pushUserM := make(map[string]string)
   var userE models.User
@@ -436,24 +437,36 @@
      }
   }
   if len(pushUserM) == 0 {
      return false, errors.New("len(pushUserM) == 0"), aliasArr
      return false, errors.New("len(pushUserM) == 0"), aliasArr, carOwners
   }
   carPersonM := make(map[string]string)
   csv := NewCarService()
   carPersons := csv.GetVehicleListByPerson("")
   if carPersons != nil {
      for _, cp := range carPersons {
         carPersonM[cp.PlateNo] = cp.PersonId
         cnPlateNo := preDealPlateNo(cp.PlateNo)
         if cnPlateNo != "" {
            carPersonM[cnPlateNo] = cp.PersonId
         }
      }
   }
   hikPersonMap := csv.GetHikPersonMap()
   spaceNos := csv.FindSpaceNo("")
   var uc models.UserClient
   for _,sn := range spaceNos {
      if sn.State == 1 && sn.PlateNo != "" { //已经把车停到停车场的车主,不再推送消息
         if personId,ok := carPersonM[sn.PlateNo];ok {
            if phoneNum,ok := pushUserM[personId]; ok { //此人已注册到系统,并且车不在停车库内
               if uc.Exist(phoneNum) {
                  aliasArr = append(aliasArr, phoneNum)
      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 v,ex := hikPersonMap[personId]; ex {
                  carOwners = append(carOwners, v.PersonName)
               }
            }
         }
@@ -462,17 +475,17 @@
   if len(aliasArr) == 0 {
      fmt.Println("没有推送目标,aliasArr is empty")
      return false, errors.New("没有推送目标,aliasArr is empty"), aliasArr
      return false, errors.New("没有推送目标,aliasArr is empty"), aliasArr, carOwners
   }
   cResult, taskId, ce := createPushMsg(title, msg)
   if !cResult {
      fmt.Println("createPushMsg taskId:", taskId, "err:", ce)
      return false, errors.New("创建推送前置消息失败"), aliasArr
      return false, errors.New("创建推送前置消息失败"), aliasArr, carOwners
   }
   b,e := doPush(taskId, aliasArr)
   return b,e, aliasArr
   return b,e, aliasArr, carOwners
}
//如果夜间有给车库内的车主推送“请尽快驶离”的消息,则告知管理员 有哪些车尚停在车库内