Exemple #1
0
 /**
  * <br>
  * [機 能] 添付ファイルの名称を取得します。 <br>
  * [解 説] <br>
  * [備 考]
  *
  * @param tempDir 添付ディレクトリPATH
  * @return String ファイル名
  * @throws IOToolsException 添付ファイルへのアクセスに失敗
  */
 private String __getFileName(String tempDir) throws IOToolsException {
   String ret = null;
   List<String> fileList = IOTools.getFileNames(tempDir);
   if (fileList != null) {
     for (int i = 0; i < fileList.size(); i++) {
       // ファイル名を取得
       String fileName = fileList.get(i);
       if (!fileName.endsWith(GSConstCommon.ENDSTR_OBJFILE)) {
         continue;
       }
       // オブジェクトファイルを取得
       ObjectFile objFile = new ObjectFile(tempDir, fileName);
       Object fObj = objFile.load();
       if (fObj == null) {
         continue;
       }
       Cmn110FileModel fMdl = (Cmn110FileModel) fObj;
       ret = fMdl.getFileName();
       if (ret != null) {
         return ret;
       }
     }
   }
   log__.debug("添付ファイルの名称 = " + ret);
   return ret;
 }
Exemple #2
0
  /**
   * <br>
   * [機 能] 送信メール情報の添付ファイル一覧を取得する <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param tempRootDir テンポラリルートディレクトリ
   * @param reqMdl リクエスト情報
   * @return 添付ファイル情報
   * @throws IOToolsException 添付ファイル情報取得時に例外発生
   */
  private List<MailTempFileModel> __getSendMailFileData(String tempRootDir, RequestModel reqMdl)
      throws IOToolsException {

    List<MailTempFileModel> fileDataList = new ArrayList<MailTempFileModel>();

    String tempDir = getSendTempDir(tempRootDir, reqMdl);
    List<String> fileList = IOTools.getFileNames(tempDir);
    if (fileList != null && !fileList.isEmpty()) {

      Cmn110FileModel tempFileModel = null;
      CommonBiz cmnBiz = new CommonBiz();
      for (String fileName : fileList) {
        if (!fileName.endsWith(GSConstCommon.ENDSTR_OBJFILE)) {
          continue;
        }

        // オブジェクトファイルを取得
        ObjectFile objFile = new ObjectFile(tempDir, fileName);
        Object fObj = objFile.load();
        if (fObj == null) {
          continue;
        }

        tempFileModel = (Cmn110FileModel) fObj;
        MailTempFileModel sendFileData = new MailTempFileModel();
        sendFileData.setFileName(tempFileModel.getFileName());
        sendFileData.setFileSizeDsp(
            cmnBiz.getByteSizeString(new File(tempDir + tempFileModel.getSaveFileName()).length()));
        fileDataList.add(sendFileData);
      }
    }

    return fileDataList;
  }
Exemple #3
0
  /**
   * <br>
   * [機 能] 添付ファイルダウンロードの処理 <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param map アクションマッピング
   * @param form アクションフォーム
   * @param req リクエスト
   * @param res レスポンス
   * @param con コネクション
   * @throws SQLException SQL実行例外
   * @throws Exception 実行時例外
   * @return ActionForward
   */
  private ActionForward __doDownLoad(
      ActionMapping map,
      Rng020Form form,
      HttpServletRequest req,
      HttpServletResponse res,
      Connection con)
      throws SQLException, Exception {

    RequestModel reqMdl = getRequestModel(req);
    CommonBiz cmnBiz = new CommonBiz();
    String tempDir = cmnBiz.getTempDir(getTempPath(req), RngConst.PLUGIN_ID_RINGI, reqMdl);
    Rng020Biz biz = new Rng020Biz(reqMdl);
    tempDir = biz.getTemplateFileDir(tempDir);
    String fileId = form.getRng020TemplateFileId();

    // オブジェクトファイルを取得
    ObjectFile objFile = new ObjectFile(tempDir, fileId.concat(GSConstCommon.ENDSTR_OBJFILE));
    Object fObj = objFile.load();
    Cmn110FileModel fMdl = (Cmn110FileModel) fObj;
    // 添付ファイル保存用のパスを取得する(フルパス)
    String filePath = tempDir + fileId.concat(GSConstCommon.ENDSTR_SAVEFILE);
    filePath = IOTools.replaceFileSep(filePath);

    GsMessage gsMsg = new GsMessage(reqMdl);
    String msg = gsMsg.getMessage("cmn.download");

    // ログ出力処理
    RngBiz rngBiz = new RngBiz(con);
    rngBiz.outPutLog(map, msg, GSConstLog.LEVEL_INFO, fMdl.getFileName(), reqMdl);

    // 時間のかかる処理の前にコネクションを破棄
    JDBCUtil.closeConnectionAndNull(con);
    // ファイルをダウンロードする
    TempFileUtil.downloadAtachment(req, res, filePath, fMdl.getFileName(), Encoding.UTF_8);

    return null;
  }
Exemple #4
0
  /**
   * <br>
   * [機 能] 送信メール情報を取得する <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param con コネクション
   * @param reqMdl リクエスト情報
   * @param tempRootDir テンポラリルートディレクトリ
   * @return パラメータ情報
   * @throws SQLException SQL実行時例外
   * @throws IOToolsException 送信メール情報の読み込みに失敗
   */
  public Wml012ParamModel getInitData(Connection con, RequestModel reqMdl, String tempRootDir)
      throws SQLException, IOToolsException {
    File sendMailDataPath = __getSaveFilePath(reqMdl, tempRootDir);
    Wml012ParamModel paramMdl = null;
    if (sendMailDataPath.exists()) {
      ObjectFile objFile = new ObjectFile(sendMailDataPath.getParent(), sendMailDataPath.getName());

      paramMdl = (Wml012ParamModel) objFile.load();
      Map<String, String> domainMap = new HashMap<String, String>();
      domainType__ = 0;
      paramMdl.setWml012ToList(__createAddressList(paramMdl.getWml010sendAddressTo(), domainMap));
      paramMdl.setWml012CcList(__createAddressList(paramMdl.getWml010sendAddressCc(), domainMap));
      paramMdl.setWml012BccList(__createAddressList(paramMdl.getWml010sendAddressBcc(), domainMap));

      paramMdl.setWml012ViewBody(paramMdl.getWml010svSendContent());
      if (paramMdl.getWml010sendMailHtml() != Wml010Const.SEND_HTMLMAIL_HTML) {
        paramMdl.setWml012ViewBody(
            StringUtilHtml.transToHTmlForTextArea(paramMdl.getWml012ViewBody()));
      }

      GsMessage gsMsg = new GsMessage(reqMdl);
      String sendPlanDate = null;

      int sendAccountSid = paramMdl.getWml010sendAccount();
      if (paramMdl.getSendMailPlanType() == Wml010Form.SENDMAILPLAN_TYPE_LATER) {
        sendPlanDate =
            gsMsg.getMessage(
                "cmn.view.date",
                new String[] {
                  paramMdl.getWml010sendMailPlanDateYear(),
                  paramMdl.getWml010sendMailPlanDateMonth(),
                  paramMdl.getWml010sendMailPlanDateDay(),
                  paramMdl.getWml010sendMailPlanDateHour(),
                  paramMdl.getWml010sendMailPlanDateMinute()
                });
      } else {
        int timeSendMinute = 0;

        boolean timsentImm = paramMdl.getWml010sendMailPlanImm() == Wml010Const.SENDPLAN_IMM;
        WmlAdmConfDao admConfDao = new WmlAdmConfDao(con);
        WmlAdmConfModel wmlAdmConf = admConfDao.selectAdmData();

        if (wmlAdmConf.getWadPermitKbn() == GSConstWebmail.PERMIT_ADMIN) {
          // 管理者設定 時間差送信 = 有効 に設定されている
          // かつ、画面上で"即時送信"が選択されていない場合
          if (wmlAdmConf.getWadTimesent() == GSConstWebmail.WAC_TIMESENT_LATER
              || (wmlAdmConf.getWadTimesent() == GSConstWebmail.WAC_TIMESENT_INPUT
                  && !timsentImm)) {
            timeSendMinute = 5;
          }
        } else {
          WmlAccountDao wacDao = new WmlAccountDao(con);
          WmlAccountModel wacMdl = wacDao.select(sendAccountSid);
          if (wacMdl.getWacTimesent() == GSConstWebmail.WAC_TIMESENT_INPUT) {
            if (!timsentImm) {
              timeSendMinute = 5;
            }
          } else {
            WmlBiz wmlBiz = new WmlBiz();
            timeSendMinute = wmlBiz.getTimeSentMinute(con, sendAccountSid);
          }
        }

        if (timeSendMinute > 0) {
          sendPlanDate =
              gsMsg.getMessage("wml.242", new String[] {Integer.toString(timeSendMinute)});
        } else {
          sendPlanDate = gsMsg.getMessage("wml.wml012.01");
        }
      }
      paramMdl.setWml012SendPlanDate(sendPlanDate);

      paramMdl.setWml012TempfileList(__getSendMailFileData(tempRootDir, reqMdl));

      // [宛先、添付ファイルの確認]を設定
      setAccountSendConf(con, paramMdl, sendAccountSid);
    }

    return paramMdl;
  }
Exemple #5
0
 /**
  * <br>
  * [機 能] 送信メール情報を保存する <br>
  * [解 説] <br>
  * [備 考]
  *
  * @param paramMdl パラメータ情報
  * @param reqMdl リクエスト情報
  * @param tempRootDir テンポラリルートディレクトリ
  * @throws IOToolsException 送信メール情報の読み込みに失敗
  */
 public void saveSendMailData(Wml012ParamModel paramMdl, RequestModel reqMdl, String tempRootDir)
     throws IOToolsException {
   File sendMailDataPath = __getSaveFilePath(reqMdl, tempRootDir);
   ObjectFile objFile = new ObjectFile(sendMailDataPath.getParent(), sendMailDataPath.getName());
   objFile.save(paramMdl);
 }
Exemple #6
0
  /**
   * <br>
   * [機 能] 入力チェックを行う <br>
   * [解 説] <br>
   * [備 考]
   *
   * @param reqMdl リクエスト情報
   * @param tempDir 添付DIR
   * @param con DBコネクション
   * @param netSid ネットワークSID
   * @param mode インポートモード
   * @return エラー
   * @throws SQLException SQL実行例外
   * @throws IOToolsException SQL実行例外
   * @throws Exception 実行例外
   */
  public ActionErrors validateCheck(
      RequestModel reqMdl, String tempDir, Connection con, int netSid, String mode)
      throws IOToolsException, SQLException, Exception {

    log__.debug("=== 入力チェック ===");
    ActionErrors errors = new ActionErrors();
    GsMessage gsMsg = new GsMessage(reqMdl);
    String textSelectFile = gsMsg.getMessage("cmn.capture.file");
    String textCsvFile = gsMsg.getMessage("cmn.csv.file.format");

    // インポートファイルチェック
    // テンポラリディレクトリにあるファイル名称を取得
    List<String> fileList = IOTools.getFileNames(tempDir);
    String saveFileName = "";
    String baseFileName = "";
    String eprefix = "inputFile.";
    if (fileList == null) {
      ActionMessage msg = new ActionMessage("error.select.required.text", textSelectFile);
      StrutsUtil.addMessage(errors, msg, eprefix + "error.select.required.text");
    } else {
      for (int i = 0; i < fileList.size(); i++) {
        // ファイル名を取得
        String fileName = fileList.get(i);
        if (!fileName.endsWith(GSConstCommon.ENDSTR_OBJFILE)) {
          continue;
        }

        // オブジェクトファイルを取得
        ObjectFile objFile = new ObjectFile(tempDir, fileName);
        Object fObj = objFile.load();
        if (fObj == null) {
          continue;
        }
        Cmn110FileModel fMdl = (Cmn110FileModel) fObj;
        saveFileName = fMdl.getSaveFileName();
        baseFileName = fMdl.getFileName();
      }
      boolean csvError = false;
      // 複数選択エラー
      if (fileList.size() > 2) {
        ActionMessage msg = new ActionMessage("error.input.notfound.file", textSelectFile);
        StrutsUtil.addMessage(errors, msg, eprefix + "error.input.notfound.file");
        csvError = true;
      } else {
        // 拡張子チェック
        String strExt = StringUtil.getExtension(baseFileName);
        if (strExt == null || !strExt.toUpperCase().equals(".CSV")) {
          ActionMessage msg = new ActionMessage("error.select.required.text", textCsvFile);
          StrutsUtil.addMessage(errors, msg, eprefix + "error.select.required.text");
          csvError = true;
        }
      }
      if (!csvError) {
        String fullPath = tempDir + saveFileName;
        ArrayList<String> ipadListCsv = new ArrayList<String>();
        IpkCsvCheck csvCheck = new IpkCsvCheck(errors, con, netSid, mode, ipadListCsv, reqMdl);
        // CSVチェック
        csvCheck.isCsvDataOk(fullPath);
      }
    }
    return errors;
  }