/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：CKSV0020_CKSV0020OPDBMapper
*	ソースファイル名：CKSV0020_CKSV0020OPDBMapper.java
*	作成者			：Fujitsu
*	日付			：2012年02月03日
*＜機能概要＞
*	BP（メール再送信依頼_再送信サービス）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/02/03	Fujitsu		新規作成
*
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class CKSV0020_CKSV0020OPDBMapper {
	
	/**
	 * コンストラクタ
	 */
	public CKSV0020_CKSV0020OPDBMapper(){
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：メール再送信依頼
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCKSV002001SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// "CKM1000008" → メール送信情報登録SC.メールコード
		parentMap.put("mail_cd", "CKM1000008");
		// "01"(リアルタイム) → メール送信情報登録SC.メール送信パターンコード
		parentMap.put("mail_send_pattern_cd", "01");
		
		// DataBeanの構造と合わないため、追記
		ArrayList<HashMap<String, Object>> list1 = new ArrayList<HashMap<String, Object>>();
		ArrayList<HashMap<String, Object>> list2 = new ArrayList<HashMap<String, Object>>();
		ArrayList<HashMap<String, Object>> list3 = new ArrayList<HashMap<String, Object>>();
		HashMap<String, Object> childMap1 = new HashMap<String, Object>();
		HashMap<String, Object> childMap2 = new HashMap<String, Object>();
		HashMap<String, Object> childMap3 = new HashMap<String, Object>();
		
		// 最新メールアドレス → メール送信情報登録SC.送信先一覧明細.送信先メールアドレス
		childMap1.put("mlad", bean[0].sendMessageString("最新メールアドレス", X31CWebConst.DATABEAN_GET_VALUE));
		// "01"(TO) → メール送信情報登録SC.送信先一覧明細.メールアドレス設定フィールドコード
		childMap1.put("mlad_set_field_cd", "01");
		list1.add(childMap1);
		parentMap.put("ECC0021D010CBSMsg1List", list1);
		
		// 本文 → メール送信情報登録SC.非定型文字列一覧明細.本文非定型置換文字
		childMap2.put("text_htk_ckam_moji", bean[0].sendMessageString("本文", X31CWebConst.DATABEAN_GET_VALUE));
		list2.add(childMap2);
		parentMap.put("ECC0021D010CBSMsg2List", list2);
		
		// "Subject" → メール送信情報登録SC.メールヘッダー一覧明細.メールヘッダーキー
		childMap3.put("mail_header_key", "Subject");
		// 件名（メールID編集） → メール送信情報登録SC.メールヘッダー一覧明細.メールヘッダー値
		String title = bean[0].sendMessageString("件名", X31CWebConst.DATABEAN_GET_VALUE);
		// 件名に"MID="を含む場合
		if(title.indexOf("MID=") != -1)
		{
			// 後ろ３文字を削る（送信回数はサービスで追記する）
			title = title.substring(0, title.length()-3);
		}
		else
		{
			String mailId = bean[0].sendMessageString("メールＩＤ", X31CWebConst.DATABEAN_GET_VALUE);
			// 件名＋"(MID="＋メールID＋"_"
			title = title + "(MID=" + mailId + "_";
		}
		childMap3.put("mail_header_value", title);
		
		list3.add(childMap3);
		parentMap.put("ECC0021D010CBSMsg5List", list3);

		outputMap.put("CKSV002001SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：メール再送信依頼
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCKSV002002SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// メールＩＤ → メール情報登録SC.メールID
		parentMap.put("mail_id", bean[0].sendMessageString("メールＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// ＳＹＳＩＤ → メール情報登録SC.SYSID
		parentMap.put("sysid", bean[0].sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// メール送信年月日時分秒 → メール情報登録SC.メール送信年月日時分秒
		parentMap.put("mail_send_dtm", bean[0].sendMessageString("メール送信年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
//		// 状態コード → メール情報登録SC.メール送信状態コード
//		parentMap.put("mail_send_stat_cd", bean[0].sendMessageString("状態コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 最新メールアドレス → メール情報登録SC.送信先メールアドレス
		parentMap.put("mlad", bean[0].sendMessageString("最新メールアドレス", X31CWebConst.DATABEAN_GET_VALUE));
		// メールコード → メール情報登録SC.メールコード
		parentMap.put("mail_cd", bean[0].sendMessageString("メールコード", X31CWebConst.DATABEAN_GET_VALUE));
		// ｅｏＩＤ → メール情報登録SC.eoID
		parentMap.put("eoid", bean[0].sendMessageString("ｅｏＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 送信先契約者カナ名 → メール情報登録SC.送信先契約者カナ名
		parentMap.put("sends_ksh_kana", bean[0].sendMessageString("送信先契約者カナ名", X31CWebConst.DATABEAN_GET_VALUE));
		// コンテンツサービスコード → メール情報登録SC.コンテンツサービスコード
		parentMap.put("cont_svc_cd", bean[0].sendMessageString("コンテンツサービスコード", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CKSV002002SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：メール再送信依頼
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCKSV002003SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// メールＩＤ → メール情報登録SC（送信回数取得用）.メールID
		parentMap.put("mail_id", bean[0].sendMessageString("メールＩＤ", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CKSV002003SC", parentMap);
						
		return outputMap;
	}



}
