/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV1007_KKSV1007OPDBMapper
*	ソースファイル名：KKSV1007_KKSV1007OPDBMapper.java
*	作成者			：FJ)星野
*	日付			：2022年07月25日
*＜機能概要＞
*	BP（カード受付情報登録）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン   修正日       修正者                   修正内容
*   v58.00.00   2022/07/25    FJ)星野                  【IT1-2022-0000041】オーソリNG時、カード受付情報の登録不可事象への対応
*
**********************************************************************/
package eo.web.webview.mapping;

import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

import eo.common.util.JKKCommonUtil;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class KKSV1007_KKSV1007OPDBMapper {
	
	/**
	 * コンストラクタ
	 */
	public KKSV1007_KKSV1007OPDBMapper(){
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV100701CC(X31SDataBeanAccess[] bean, HashMap outputMap, HashMap ekka0010004Map, String func_code) 
	{
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}
		
		if(ekka0010004Map == null)
		{
			return null;
		}
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		HashMap<String, Object> authRsltMap = new HashMap<String, Object>();
		//サイトID
		authRsltMap.put("py_site_id", ekka0010004Map.get("py_site_id"));
		// カード情報トークン
		authRsltMap.put("py_card_token", ekka0010004Map.get("py_card_token"));
		// セキュリティコード利用
		authRsltMap.put("py_security_code_use", ekka0010004Map.get("py_security_code_use"));
		//マーチャント取引ＩＤ
		authRsltMap.put("py_trading_id", ekka0010004Map.get("py_trading_id"));
		//決済金額
		authRsltMap.put("py_payment_amount", ekka0010004Map.get("py_payment_amount"));
		//顧客ID
		authRsltMap.put("py_customer_id", ekka0010004Map.get("py_customer_id"));
		//処理結果コード
		authRsltMap.put("py_resultcode", ekka0010004Map.get("py_resultcode"));
		//レスポンスコード
		authRsltMap.put("py_response_code", ekka0010004Map.get("py_response_code"));
		//レスポンス詳細
		authRsltMap.put("py_response_detail", ekka0010004Map.get("py_response_detail"));
		//カード発行会社コード
		authRsltMap.put("py_issur_id", ekka0010004Map.get("py_issur_id"));
		//カード発行会社名
		authRsltMap.put("py_issur_name", ekka0010004Map.get("py_issur_name"));
		//フィンガープリント
		authRsltMap.put("py_fingerprint", ekka0010004Map.get("py_fingerprint"));
		//マスクされたカード番号
		authRsltMap.put("py_masked_card_number", ekka0010004Map.get("py_masked_card_number"));
		//カード有効期限
		authRsltMap.put("py_card_valid_term", ekka0010004Map.get("py_card_valid_term"));
		//取扱カード会社コード
		authRsltMap.put("py_acq_id", ekka0010004Map.get("py_acq_id"));
		//取扱カード会社名
		authRsltMap.put("py_acq_name", ekka0010004Map.get("py_acq_name"));
		//デビット・プリペイド判定結果
		authRsltMap.put("py_debit_prepaid_type", ekka0010004Map.get("py_debit_prepaid_type"));
		//イシュア区分
		authRsltMap.put("py_issur_class", ekka0010004Map.get("py_issur_class"));
		//カードブランド
		authRsltMap.put("py_card_brand", ekka0010004Map.get("py_card_brand"));
		//決済ID
		authRsltMap.put("py_payment_id", ekka0010004Map.get("py_payment_id"));
		//FC取引有無
		authRsltMap.put("py_fc_auth_umu", ekka0010004Map.get("py_fc_auth_umu"));
		//代行提携コード
		authRsltMap.put("py_daiko_code", ekka0010004Map.get("py_daiko_code"));
		//カード種類コード
		authRsltMap.put("py_card_shu_code", ekka0010004Map.get("py_card_shu_code"));
		//カナカード名称
		authRsltMap.put("py_k_card_name", ekka0010004Map.get("py_k_card_name"));
		//ACS支払人認証要求Html
		authRsltMap.put("py_out_acs_html", ekka0010004Map.get("py_out_acs_html"));
		//Attempt区分
		authRsltMap.put("py_attempt_kbn", ekka0010004Map.get("py_attempt_kbn"));
		//承認番号
		authRsltMap.put("py_shonin_no", ekka0010004Map.get("py_shonin_no"));
		// 顧客カード数
		authRsltMap.put("py_num_of_cards", ekka0010004Map.get("py_num_of_cards"));
		// 顧客カードID
		authRsltMap.put("py_customer_card_id", ekka0010004Map.get("py_customer_card_id"));
		// カード名義人
		authRsltMap.put("py_cardholder_name", ekka0010004Map.get("py_cardholder_name"));
		
		// オーソリ結果
		parentMap.put("authRslt", authRsltMap);
		
		// トークン
		String token = (String)ekka0010004Map.get("token");

		if (JKKCommonUtil.isNull(token))
		{
			//オーソリ実施区分(2：有効性チェック)
			parentMap.put("authJssiDiv", "2");
		}
		else
		{
			//オーソリ実施区分(1：預かりオーソリ)
			parentMap.put("authJssiDiv", "1");
		}
		
		// カード受付情報登録マップ
		outputMap.put("KKSV100701CC", parentMap);
		
		return outputMap;
	}


	/**
	 * 下りマッピング
	 * @param bean　[0]：
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV100701CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		
		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV100701CC")){
			parentMap = (HashMap)outputMap.get("KKSV100701CC");
		}


		return bean;
	}
}