/**
 * Copyright (c) 2003-2004 System Integrator Corporation.
 *                 All Rights Reserved.
 */
package jp.co.sint.upload;

import java.io.*;
import java.sql.Connection;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.ServletContext;

import org.apache.log4j.Category;

import jp.co.sint.beans.mallmgr.UICmdtyDeleteImgList;
import jp.co.sint.config.SIConfig;
import jp.co.sint.database.SIDatabaseConnection;
import jp.co.sint.servlet.SIServlet;
import jp.co.sint.tools.*;

/**
 * @version $Id: SICmdtyUploadImgSrv.java,v 1.0 2004/09/28  Exp $
 * @author  Chihiro Imai
 * <br>Description:
 * <p>History</p>
 * <p>Author&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Date&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reason</p>
 *  ============&nbsp;&nbsp;&nbsp;==========&nbsp;&nbsp;===========================<br>
 * Chihiro Imai   2004/09/28  Original
 */
public class SICmdtyDeleteImgSrv extends SIServlet{
  //ログ用のインスタンスの生成
  private static Category log=Category.getInstance(SIConfig.SILOG4J_WEBSHOP_CATEGORY_NAME);

  /**
   * <b>doUpdate</b>
   * HTTP リクエストの処理
   * @param  request　リクエスト
   * @param  response
   * @return なし
   * @throws ServletException
   * @throws IOException
   * @throws FileNotFoundException
   */
  public void doUpdate(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException, FileNotFoundException{
    HttpSession session=request.getSession();
    SIURLParameter urlParam = new SIURLParameter(request);
    String actionName = this.getActionName(urlParam); //画面からのアクション
	
    UICmdtyDeleteImgList DeteleImgList=(UICmdtyDeleteImgList)session.getAttribute(SIConfig.SISESSION_MAN_DELETE_IMG_NAME);
    if(DeteleImgList==null) DeteleImgList=new UICmdtyDeleteImgList();

    //ファイル削除時
    if(SIConfig.SIACTION_DELETE.equalsIgnoreCase(actionName)){
      //削除ファイルのリスト取得
      DeteleImgList.initDelete(request);
      String[] FileList = DeteleImgList.getFileChk();
      
      //削除ファイル数だけループし、該当ファイルを削除
      if (FileList.length > 0) {
        for (int ii=0;ii<FileList.length;ii++){
          String deleteFileName = SIUtil.changeToJIS(FileList[ii]);
          String deleteFile = DeteleImgList.getFileDir() + deleteFileName;
          File file = new File(deleteFile);
          if (file.exists()){
            //7.2.1 ST2019 修正ここから
            if (file.isFile()) {
              file.delete();
            } else {
              DeteleImgList.deleteDirecty(file);
            }
            //7.2.1 ST2019 修正ここまで
            request.setAttribute(SIConfig.SIMESSAGE_ATTRIBUTE_RESULT_NAME,SIErrorFactory.getErrorMsg("manager.message.success.delete"));
          }
        }
      //ファイル未選択時のエラーメッセージ出力処理
      } else {
        request.setAttribute(SIConfig.SIMESSAGE_ATTRIBUTE_RESULT_NAME,SIErrorFactory.getErrorMsg("input.data.checkbox.require","削除"));				
      }
      forwardKey(request,response,"webshop.jsp.manager.cmdty.deleteimg");	
			
    //ファイル一覧表示時
    } else {
      String fileDirPath = "";
      //パラメータ取得
      DeteleImgList.init(urlParam);
      SIDatabaseConnection databaseConnection=new SIDatabaseConnection();
      try {
        //DBへのコネクションの作成
        Connection connection= databaseConnection.getConnection();
        //表示を行うフォルダのパスを設定
        ServletContext sc = getServletConfig().getServletContext();

        if (DeteleImgList.validate(request)){ 
          //ショップロゴ画像以外のときsubDir(ショップコード)を設定
          if(DeteleImgList.getDestPath().equalsIgnoreCase(SIConfig.SISITELOGO_FOLDER_NAME)){
			fileDirPath = sc.getRealPath("/" + DeteleImgList.getDestPath()) + SIUtil.getOsFileName("/");
          }else{
			fileDirPath = sc.getRealPath("/" + DeteleImgList.getDestPath() + "/"+ DeteleImgList.getShopCode()) + SIUtil.getOsFileName("/");
          }
          DeteleImgList.setFileDir(fileDirPath);
        }
      } catch(Exception e) {
        e.printStackTrace();
      }finally{
        databaseConnection.close();
      }
      
      //セッションにDeteleImgListオブジェクトを格納
      session.setAttribute(SIConfig.SISESSION_MAN_DELETE_IMG_NAME,DeteleImgList);
      //ファイル検索
      forwardKey(request,response,"webshop.jsp.manager.cmdty.deleteimg");
    }
  }
}
