/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JFUAutoResponseInterface
*   ソースファイル名：JFUAutoResponseInterface.java
*   作成者          ：富士通
*   日付            ：2011年09月22日
*＜機能概要＞
*   自動応答サーバの外部APIを呼び出すIF部品です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/09/22   FJ）和田    新規作成
*
**********************************************************************/
package eo.web.webview.common;

import java.util.List;
import java.util.Map;

import eo.common.constant.JFUStrConst;

/**
 * 自動応答サーバの外部APIを呼び出すIF部品です。
 * <br>
 * @author 富士通
 */
public class JFUAutoResponseInterface
{
	/** テストモード */
	private static final String MODE = "0";

	/** 通話ログ件数（番ポ可） */
	private static final int LOG_COUNT = 1;

	/** SQL結果カラム名 通話ログ件数 */
	private static final String COLUMN_LOG_CNT = "LOG_CNT";

	/**
	 * 自動応答サーバ通話ログ存在チェック処理
	 * <br>
	 * @param param SQL実行時のパラメータ
	 * @return true:通話ログ存在 false:通話ログ未存在
	 */
	public static boolean isAutoResponseLog(List<Object> param)
	{
		String testMode = JCCWebCommon.getApplicationConst(JFUStrConst.FU_C_AUTO_RESPONSE_SERVER_MODE);

		if (MODE.equals(testMode))
		{
			// テストモードの場合、DBサーバへアクセスしない
			return true;
		}

		JFUDbConnectionUtil dbUtil = null;
		List<Map<String, Object>> resultList = null;

		// 接続情報取得
		String driver = JCCWebCommon.getApplicationConst(JFUStrConst.FU_C_AUTO_RESPONSE_SERVER_DRIVER);
		String url = JCCWebCommon.getApplicationConst(JFUStrConst.FU_C_AUTO_RESPONSE_SERVER_URL);
		String user = JCCWebCommon.getApplicationConst(JFUStrConst.FU_C_AUTO_RESPONSE_SERVER_USER);
		String pass = JCCWebCommon.getApplicationConst(JFUStrConst.FU_C_AUTO_RESPONSE_SERVER_PASS);

		// パスワード複合化
		pass = JFUWebCommon.getDecryptResultPassword(pass);

		// 通話ログ件数取得SQL
		String sql = JCCWebCommon.getApplicationConst(JFUStrConst.FU_TUWA_LOG_SEARCH_SQL);

		try
		{
			dbUtil = new JFUDbConnectionUtil(driver, url, user, pass);
			resultList = dbUtil.executeQuery(sql, param);
		}
		finally
		{
			dbUtil.close();
		}

		if (resultList == null || resultList.size() == 0)
		{
			return false;
		}

		Map<String, Object> resultMap = resultList.get(0);

		Object obj = resultMap.get(COLUMN_LOG_CNT);
		int result = 0;

		// 環境によって型が異なるため型確認を行う。
		if(obj instanceof Integer )
		{
		        result = ((Integer)obj).intValue();
		}
		else if(obj instanceof Long )
		{
		        result = ((Long)obj).intValue();
		}

		if (LOG_COUNT <= result)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
}
