/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JKKCtrlMcafeeInfoStubImpl
*	ソースファイル名：JKKCtrlMcafeeInfoStubImpl.java
*	作成者			：FJ）原田
*	日付			：2017年04月18日
*＜機能概要＞
*	BBSS社 SOAP連携（検証環境用）コマンド発行部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v32.00.00	2017/04/18  FJ)原田		【ANK-3149-00-00】新セキュリティパック
*
**********************************************************************/
package eo.common.util;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import eo.common.constant.JKKStrConst;
import eo.common.constant.JWCStrConst;


/**
 * BBSS連携独自処理部品（検証環境用）クラスです。
 * @author FJ
 */
public class JKKCtrlMcafeeInfoStubImpl extends JKKCtrlMcafeeInfo
{
	/**
	 * トランザクション・コード（正常）
	 */
	private static String NORMAL = "1000";
	
	/**
	 * トランザクション・コード（ワーニング）
	 */
	private static String WARN = "5002";
	
	/**
	 * トランザクション・コード（異常）
	 */
	private static String FALT = "2002";
	
	/**
	 * トランザクション・コード説明（正常）
	 */
	private static String NORMAL_MSG = "Transaction is successful";
	
	/**
	 * トランザクション・コード説明（ワーニング）
	 */
	private static String WARN_MSG = "Invalid data";
	
	/**
	 * トランザクション・コード説明（異常）
	 */
	private static String FALT_MSG = "Invalid data";
	
	
	/**
	 * KKIFE355_BBSS申込依頼の返却値を擬似的に返却します
	 * <br>
	 * @param serviceMap サービスマップハッシュテーブル
	 * @return サービスマップ戻り値
	 * @throws Exception 例外が発生した場合
	 */
	public Map<String, Object> call_KKIFE354(Map<String, Object> serviceMap) throws Exception
	{
		HashMap<String, Object> resultMap = new HashMap<String, Object>();
		HashMap<String, Object> resultinfo = new HashMap<String, Object>();
		ArrayList<Map<String, Object>>nodelist = new ArrayList<Map<String, Object>>();
		
		
		String tajgsKeiIdoSbtCd = (String)serviceMap.get("tajgsKeiIdoSbtCd");
		
		if(JKKStrConst.TAJGS_KEI_IDO_SBT_CD_MCAFEE_BUY_REQ.equals(tajgsKeiIdoSbtCd))
		{
			resultinfo = this.returnBuyInfo(serviceMap);
		}
		else if(JKKStrConst.TAJGS_KEI_IDO_SBT_CD_MCAFEE_DSL_REQ.equals(tajgsKeiIdoSbtCd))
		{
			resultinfo = this.returnCancelInfo(serviceMap);
		}
		
		nodelist.add(resultinfo);
		resultMap.put(JWCStrConst.CMD_RESULT_CD,"0");				// コマンド実行結果
		resultMap.put(JWCStrConst.CMD_RESULT_DETAIL,nodelist);
		
		return resultMap;
	}
	
	/**
	 * serviceMapの情報からテスト用に返却する値を作成し、返却する
	 * @param serviceMap 引継情報
	 * @return テスト用の返却値
	 * @throws Exception Exception
	 */
	public HashMap<String, Object> returnBuyInfo(Map<String, Object> serviceMap) throws Exception
	{
		HashMap<String, Object> resultinfo = new HashMap<String, Object>();
		
		String mcafeeMemberId = (String)serviceMap.get("mcafeeMemberId");
		String tajgsKeiIdoNo = (String)serviceMap.get("tajgsKeiIdoNo");
		String mcafeeNinshoMlad = (String)serviceMap.get("mcafeeNinshoMlad");
		String mcafeeNinshoPwd = (String)serviceMap.get("mcafeeNinshoPwd");
		
		// テスト用にMcAfeeセールス・オーダーIDを作成
		// マカフィー会員ID + 00000
		String mcafeeBuyId = mcafeeMemberId + "00000";
		
		// テスト用に製品ダウンロードURLを作成
		// http://test. + マカフィー会員ID
		String mcafeeSehnDlUrl = "http://test." + mcafeeMemberId;
		
		// 返却値をマップに格納
		if(mcafeeMemberId.startsWith("900000"))
		{
			resultinfo.put("mcafeeMemberId", mcafeeMemberId);			// カスタマーID
			resultinfo.put("tajgsKeiIdoNo", tajgsKeiIdoNo);				// パートナー・オーダー照会番号
			resultinfo.put("mcafeeBuyId", "");							// McAfeeセールス・オーダーID
			resultinfo.put("mcafeeNinshoMlad", "");						// e-mailアドレス
			resultinfo.put("password", "");								// パスワード
			resultinfo.put("mcafeeSehnDlUrl", "");						// 製品ダウンロードURL
			resultinfo.put("returnCode", FALT);							// トランザクション・コード
			resultinfo.put("returnCodeSetmei", FALT_MSG);				// トランザクション・コード説明
		}
		else if(mcafeeMemberId.startsWith("800000"))
		{
			resultinfo.put("mcafeeMemberId", mcafeeMemberId);			// カスタマーID
			resultinfo.put("tajgsKeiIdoNo", tajgsKeiIdoNo);				// パートナー・オーダー照会番号
			resultinfo.put("mcafeeBuyId", mcafeeBuyId);					// McAfeeセールス・オーダーID
			resultinfo.put("mcafeeNinshoMlad", mcafeeNinshoMlad);		// e-mailアドレス
			resultinfo.put("password", mcafeeNinshoPwd);				// パスワード
			resultinfo.put("mcafeeSehnDlUrl", mcafeeSehnDlUrl);			// 製品ダウンロードURL
			resultinfo.put("returnCode", WARN);							// トランザクション・コード
			resultinfo.put("returnCodeSetmei", WARN_MSG);				// トランザクション・コード説明
		}
		else
		{
			resultinfo.put("mcafeeMemberId", mcafeeMemberId);			// カスタマーID
			resultinfo.put("tajgsKeiIdoNo", tajgsKeiIdoNo);				// パートナー・オーダー照会番号
			resultinfo.put("mcafeeBuyId", mcafeeBuyId);					// McAfeeセールス・オーダーID
			resultinfo.put("mcafeeNinshoMlad", mcafeeNinshoMlad);		// e-mailアドレス
			resultinfo.put("password", mcafeeNinshoPwd);				// パスワード
			resultinfo.put("mcafeeSehnDlUrl", mcafeeSehnDlUrl);			// 製品ダウンロードURL
			resultinfo.put("returnCode", NORMAL);						// トランザクション・コード
			resultinfo.put("returnCodeSetmei", NORMAL_MSG);				// トランザクション・コード説明
		}
		
		return resultinfo;
	}
	
	/**
	 * serviceMapの情報からテスト用に返却する値を作成し、返却する
	 * @param serviceMap 引継情報
	 * @return テスト用の返却値
	 * @throws Exception Exception
	 */
	public HashMap<String, Object> returnCancelInfo(Map<String, Object> serviceMap) throws Exception
	{
		HashMap<String, Object> resultinfo = new HashMap<String, Object>();
		
		String mcafeeMemberId = (String)serviceMap.get("mcafeeMemberId");
		String tajgsKeiIdoNo = (String)serviceMap.get("tajgsKeiIdoNo");
		
		// 返却値をマップに格納
		if(mcafeeMemberId.startsWith("900000"))
		{
			resultinfo.put("mcafeeMemberId", mcafeeMemberId);		// カスタマーID
			resultinfo.put("tajgsKeiIdoNo", tajgsKeiIdoNo);			// パートナー・オーダー照会番号
			resultinfo.put("mcafeeBuyId", "");						// McAfeeセールス・オーダーID
			resultinfo.put("mcafeeNinshoMlad", "");					// e-mailアドレス
			resultinfo.put("password", "");							// パスワード
			resultinfo.put("mcafeeSehnDlUrl", "");					// 製品ダウンロードURL
			resultinfo.put("returnCode", FALT);						// トランザクション・コード
			resultinfo.put("returnCodeSetmei", FALT_MSG);			// トランザクション・コード説明
		}
		else if(mcafeeMemberId.startsWith("800000"))
		{
			resultinfo.put("mcafeeMemberId", mcafeeMemberId);		// カスタマーID
			resultinfo.put("tajgsKeiIdoNo", tajgsKeiIdoNo);			// パートナー・オーダー照会番号
			resultinfo.put("mcafeeBuyId", "");						// McAfeeセールス・オーダーID
			resultinfo.put("returnCode", WARN);						// トランザクション・コード
			resultinfo.put("returnCodeSetmei", WARN_MSG);			// トランザクション・コード説明
		}
		else
		{
			resultinfo.put("mcafeeMemberId", mcafeeMemberId);		// カスタマーID
			resultinfo.put("tajgsKeiIdoNo", tajgsKeiIdoNo);			// パートナー・オーダー照会番号
			resultinfo.put("mcafeeBuyId", "");						// McAfeeセールス・オーダーID
			resultinfo.put("returnCode", NORMAL);					// トランザクション・コード
			resultinfo.put("returnCodeSetmei", NORMAL_MSG);			// トランザクション・コード説明
		}
		
		return resultinfo;
	}
}
