fix night push,push to manager if car left
| | |
| | | func nightPush(){ |
| | | |
| | | message := fmt.Sprintf("%s 请尽快驶出停车场", time.Now().Format("2006-01-02 15:04:05")) |
| | | b, e, aliasArr := service.NightPush("育英中学停车", message) |
| | | b, e, aliasArr,carOwnNames := service.NightPush("育英中学停车", message) |
| | | //记录推送日志 |
| | | logE := models.Log{ |
| | | Id: uuid.NewV4().String(), |
| | |
| | | logE.Insert() |
| | | fmt.Println("b:", b,"e:",e, "message:", message) |
| | | |
| | | //如果有成功给过夜车的车主推送通知,则将具体的车主信息推送给管理员 |
| | | if b { |
| | | //将具体的车主信息推送给管理员 |
| | | if carOwnNames != nil && len(carOwnNames) >0 { |
| | | //获取车主姓名 |
| | | var leftUserNames []string |
| | | carSv := service.NewCarService() |
| | | hikPersons := carSv.GetHikPersonList() |
| | | hikPersonM := make(map[string]string) |
| | | for _,hikP := range hikPersons { |
| | | hikPersonM[hikP.PhoneNo] = hikP.PersonName |
| | | } |
| | | for _, pushedPhone := range aliasArr { |
| | | if name,in := hikPersonM[pushedPhone]; in { |
| | | leftUserNames = append(leftUserNames, name) |
| | | } |
| | | } |
| | | nameStr := strings.Join(leftUserNames, " ") |
| | | nameStr := strings.Join(carOwnNames, " ") |
| | | managerMsg := fmt.Sprintf("%s 未驶离车主: %s", time.Now().Format("2006-01-02 15:04:05"), nameStr) |
| | | mb,me, managerArr := service.Push2Manager("育英中学停车", nameStr) |
| | | mLogE := models.Log{ |
| | |
| | | } |
| | | mLogE.Insert() |
| | | fmt.Println("mb:", mb, "me:", me, "message:", managerMsg) |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | 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 |
| | |
| | | } |
| | | } |
| | | 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) |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | 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 |
| | | } |
| | | |
| | | //如果夜间有给车库内的车主推送“请尽快驶离”的消息,则告知管理员 有哪些车尚停在车库内 |