/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：FUSV0286_FUSV0286OPDBMapper
*	ソースファイル名：FUSV0286_FUSV0286OPDBMapper.java
*	作成者			：富士通
*	日付			：2014年08月08日
*＜機能概要＞
*	キャンペーン適用判定マッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v10.00		2014/08/08	FJ)川瀬 	【案件番号：ANK-2223-00-00】新規作成
*
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JFUStrConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JFUWebCommon;

/**
 * DataBean-BPマッピングをします。
 *
 * <br>
 * @author 富士通
 */
public class FUSV0286_FUSV0286OPDBMapper
{

	/** 割引サービス登録マップ */
	private static final String JFUADDWRIBSVCCCMAP = "JFUAddWribSvcCdCC";

	/** 割引サービスリスト名 */
	private static final String ADDWRIBSVCLIST = "AddWribSvcCdList";

	/** データ抽出項目マップ */
	private static final String JFUADDDCHSKMCDCCMAP = "JFUAddDchskmCdCC";

	/** データ抽出項目コードリスト名 */
	private static final String ADDDCHSKMCDLIST = "AddDchskmCdList";

	/** 割引サービス番号 */
	private static final String WRIB_SVC_CD = "addWribSvcCd";

	/** データ抽出項目コード */
	private static final String DCHSKM_CD = "addDchskmCd";

	/** 検索最大件数 */
	private static final String MAX_SEARCH_NUM = "max_search_num";

	/** eoスマートリンクキャンペーン有効区分リスト */
	private static final String SML_CAMP_LIST = "SML_CAMP_LIST";

	/** チェック用料金コースコード */
	private static final String CHK_PCRS_CD = "chk_pcrs_cd";

	/** チェック用料金プランコード */
	private static final String CHK_PPLAN_CD = "chk_pplan_cd";

	/** チェック用料金グループコード */
	private static final String CHK_PRC_GRP_CD = "chk_prc_grp_cd";

	/** 割引サービス番号 */
	private static final String IN_WRIB_SVC_CD = "wrib_svc_cd";

	/** データ抽出項目コード */
	private static final String IN_DCHSKM_CD = "dchskm_cd";

	/**
	 * 割引サービスコード上りマッピングをする
	 * @param bean　[0]：割引サービスコード登録CCマップ　[1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param checkPrcsCd
	 * @param checkPplanCd
	 * @param prcGrpCd
	 * @return outputMap
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public HashMap<String, Object> setFUSV028601CC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code,
			String checkPrcsCd, String checkPplanCd, String prcGrpCd) throws Exception
	{

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		ArrayList<Object> addwribsvclist = new ArrayList<Object>();

		// eoスマートリンクキャンペーン有効区分リストを取得
		String[] smlCampList = null; 
		String smlCamp = JFUWebCommon.getDispText(JFUStrConst.EMPTY, SML_CAMP_LIST).trim();
		if (!JFUWebCommon.isNull(smlCamp))
		{
			smlCampList = smlCamp.split(JFUStrConst.COMMA, 0);
		}
		
		if (smlCampList != null && smlCampList.length > 0)
		{
			for (int i = 0; i < smlCampList.length; i++)
			{
				String wribSvcCd = JFUWebCommon.getDispTextSmlCamp(smlCampList[i], IN_WRIB_SVC_CD);
				
				if (!JFUWebCommon.isNull(wribSvcCd))
				{
					HashMap<String, Object> childMap = new HashMap<String, Object>();

					// 共通情報のマッピング
					childMap.put(JCMConstants.FUNC_CODE_KEY, func_code);

					// 検索最大件数
					childMap.put(MAX_SEARCH_NUM, JFUStrConst.MAX_SEARCH_NUM);

					// 割引サービス契約番号
					childMap.put(WRIB_SVC_CD, wribSvcCd);

					// チェック用料金コースコード
					childMap.put(CHK_PCRS_CD, checkPrcsCd);

					// チェック用料金プランコード
					childMap.put(CHK_PPLAN_CD, checkPplanCd);

					// 料金グループコード
					childMap.put(CHK_PRC_GRP_CD, prcGrpCd);

					addwribsvclist.add(childMap);
				}
			}
		}

		parentMap.put(ADDWRIBSVCLIST, addwribsvclist);

		outputMap.put(JFUADDWRIBSVCCCMAP, parentMap);

		
		return outputMap;
	}

	/**
	 * データ抽出項目コード上りマッピングをする
	 * @param bean　[0]：データ抽出項目コード登録CCマップ　[1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param checkPrcsCd
	 * @param checkPplanCd
	 * @param prcGrpCd
	 * @return outputMap
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public HashMap<String, Object> setFUSV028602CC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code,
			String checkPrcsCd, String checkPplanCd, String prcGrpCd) throws Exception
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		ArrayList<Object> addwribsvclist = new ArrayList<Object>();

		// eoスマートリンクキャンペーン有効区分リストを取得
		String[] smlCampList = null; 
		String smlCamp = JFUWebCommon.getDispText(JFUStrConst.EMPTY, SML_CAMP_LIST).trim();
		if (!JFUWebCommon.isNull(smlCamp))
		{
			smlCampList = smlCamp.split(JFUStrConst.COMMA, 0);
		}

		if (smlCampList != null && smlCampList.length > 0)
		{
		
			for (int i = 0; i < smlCampList.length; i++)
			{
				String dchskmCd = JFUWebCommon.getDispTextSmlCamp(smlCampList[i], IN_DCHSKM_CD);

				if (!JFUWebCommon.isNull(dchskmCd))
				{
					HashMap<String, Object> childMap = new HashMap<String, Object>();
	
					// 共通情報のマッピング
					childMap.put(JCMConstants.FUNC_CODE_KEY, func_code);

					// 検索最大件数
					childMap.put(MAX_SEARCH_NUM, JFUStrConst.MAX_SEARCH_NUM);

					// データ抽出項目コード
					childMap.put(DCHSKM_CD, dchskmCd);

					// チェック用料金コースコード
					childMap.put(CHK_PCRS_CD, checkPrcsCd);

					// チェック用料金プランコード
					childMap.put(CHK_PPLAN_CD, checkPplanCd);

					// 料金グループコード
					childMap.put(CHK_PRC_GRP_CD, prcGrpCd);

					addwribsvclist.add(childMap);
				}
			}
		}

			parentMap.put(ADDDCHSKMCDLIST, addwribsvclist);

			outputMap.put(JFUADDDCHSKMCDCCMAP, parentMap);

		return outputMap;
	}

}
