/**
   * @param smsMessage
   * @param msg
   * @return
   * @throws PersistenceException
   */
  @Override
  public SendModem2Info saveOrUpdate(SendSMSMessage smsMessage, OutboundMessage msg)
      throws PersistenceException {
    SendModem2Info config = new SendModem2Info();

    config.setGatewayID(msg.getGatewayId());

    config.setMessageId(String.valueOf(msg.getMessageId()));
    config.setMessageUUID(msg.getUuid());
    config.setEncoding(msg.getEncoding().toString());
    config.setDataGerada(msg.getDate().toString());
    config.setSmscRefNum(msg.getRefNo());
    config.setNumDestinatario(smsMessage.getNumero());
    if (msg.getDispatchDate() == null) {

      config.setDataExapedicao("Não há data prevista para expedição");

    } else {
      config.setDataExapedicao(msg.getDispatchDate().toString());
    }
    config.setMsgStatus(msg.getMessageStatus().toString());
    config.setCausaFalha(String.valueOf(msg.getFailureCause()));
    config.setPeriodoValido(String.valueOf(msg.getValidityPeriod()));
    config.setRelatorioStatus(msg.getStatusReport());
    config.setPortaDestino(String.valueOf(msg.getSrcPort()));
    config.setFlashSMS(msg.getFlashSms());
    config.setMensagem(smsMessage.getMensagem());
    config.setPduData(msg.getPduUserData());

    if (msg.getScheduledDeliveryDate() == null) {

      config.setEntregaPrevista("SEM DATA PREVISTA");
    } else {
      config.setEntregaPrevista(msg.getScheduledDeliveryDate().toString());
    }
    return new BaseRepository<SendModem2Info>(SendModem2Info.class).saveOrUpdate(config);
  }
Beispiel #2
0
 /*
  * (non-Javadoc)
  *
  * @see org.smslib.smsserver.AInterface#markMessage(org.smslib.OutboundMessage)
  */
 @Override
 public void markMessage(org.smslib.OutboundMessage msg) throws Exception {
   if (msg == null) {
     return;
   }
   File f = getMessageCache().get(msg.getMessageId());
   File newF = null;
   switch (msg.getMessageStatus()) {
     case SENT:
       newF = new File(this.outSentDirectory, f.getName());
       break;
     case FAILED:
       newF = new File(this.outFailedDirectory, f.getName());
       break;
     default:
       break;
   }
   if (f.renameTo(newF)) {
     getService().getLogger().logInfo(f + " marked.", null, null);
   } else {
     getService().getLogger().logWarn("Can't move " + f + " to " + newF, null, null);
   }
   getMessageCache().remove(msg.getMessageId());
 }
  private void TransmitirSMS() {

    try {
      List<MdlAlertameEnviados> SMSEnviarList =
          Persistence.Listar("from MdlAlertameEnviados e where e.transmitido = " + 0 + "");

      if (!SMSEnviarList.isEmpty()) {
        for (MdlAlertameEnviados sms : SMSEnviarList) {
          try {
            Long userid = sms.getUserid();
            String mensagem = sms.getMensagem();
            MdlUser User = (MdlUser) Persistence.carregar(userid, MdlUser.class);
            String number = "";

            String phone1 = User.getPhone1();

            if (!phone1.equals("")) {
              if (phone1.contains("(")) {
                number =
                    User.getPhone1()
                        .replaceAll(Pattern.quote("("), "")
                        .replaceAll(Pattern.quote(")"), "")
                        .replaceAll(Pattern.quote("-"), "")
                        .replaceAll(Pattern.quote(" "), "");
              } else {
                number = phone1;
              }
            } else {
              String phone2 = User.getPhone2();
              if (!phone2.equals("")) {
                if (phone2.contains("(")) {
                  number =
                      User.getPhone2()
                          .replaceAll(Pattern.quote("("), "")
                          .replaceAll(Pattern.quote(")"), "")
                          .replaceAll(Pattern.quote("-"), "")
                          .replaceAll(Pattern.quote(" "), "");
                } else {
                  number = phone2;
                }
              } else {
                MailUtil.sendEmailError(
                    "Usuario: " + User.toString() + " Sem numero de telefone cadastrado!");
              }
            }

            if (!number.equals("")) {

              System.out.println("###########################   Number: " + number);

              OutboundMessage msg = SMSUtil.getInstance().sendMessage(number, mensagem);

              String status = msg.getMessageStatus().name();

              if (status.equalsIgnoreCase("SENT")) {
                long currentTimeMillis = System.currentTimeMillis();
                sms.setTransmitido(new Long(1));
                sms.setHorario(currentTimeMillis);

                Persistence.atualizar(sms);

              } else if (status.equalsIgnoreCase("FAILED")) {

                // executar um comportamento que verifica a causa do erro
                // estudar todos os erros possiveis gerados pelo SMSLib
                // pra tentar se auto corrigir
                // MailUtil.sendEmailError(msg.toString());
              }
            }
          } catch (Exception ex) {
            MailUtil.sendEmailError(ex);
            Logger.getLogger(ReEnviarSMS.class.getName()).log(Level.SEVERE, null, ex);
          }
        }
      } else {
        System.out.println("Nada a ser enviado!");
        block();
      }
    } catch (Exception ex) {
      MailUtil.sendEmailError(ex);
      Logger.getLogger(ReEnviarSMS.class.getName()).log(Level.SEVERE, null, ex);
    }
  }