/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JZMCtrlBbssInfoStubImpl
*	ソースファイル名：JZMCtrlBbssInfoStubImpl.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.JWCStrConst;


/**
 * BBSS連携独自処理部品（検証環境用）クラスです。
 * @author FJ
 */
public class JKKCtrlBbssInfoStubImpl extends JKKCtrlBbssInfo
{
	/**
	 * ステータスコード（正常）
	 */
	private static String NORMAL = "OK01";
	
	/**
	 * ステータスコード（異常）
	 */
	private static String FALT = "NG11";


	/**
	 * KKIFE355_BBSS申込依頼の返却値を擬似的に返却します
	 * <br>
	 * @param serviceMap サービスマップハッシュテーブル
	 * @return サービスマップ戻り値
	 * @throws Exception 例外が発生した場合
	 */
	public Map<String, Object> call_KKIFE355(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>>();
		
		HashMap<String, String> dateMap = JCCGetSystemDateUtil.getSystemDateTime();
		String dateTime = dateMap.get("sysDateTime");
		
		String bbssMemberId = (String)serviceMap.get("bbssMemberId");
		
		// テスト用にユーザーサブスクリプションPINを作成
		// BBSS会員ID + 00000
		String userSubscriptionPin = bbssMemberId + "00000";
		
		// テスト用にサブスクリプションIDを作成
		// BBSS会員ID + YYYYMMDDHHMMSS
		String subscriptionIds = bbssMemberId + dateTime;
		
		// 返却値をマップに格納
		if(bbssMemberId.startsWith("900000"))
		{
			resultinfo.put("userSubscriptionPin" ,"");						// ユーザーサブスクリプションPIN
			resultinfo.put("subscriptionIds" ,"");							// サブスクリプションID
			resultinfo.put("statusCode" ,FALT);								// ステータスコード(異常)
			resultinfo.put("statusMessage" ,"引数異常");					// ステータスメッセージ
		}
		else
		{
			resultinfo.put("userSubscriptionPin" ,userSubscriptionPin);		// ユーザーサブスクリプションPIN
			resultinfo.put("subscriptionIds" ,subscriptionIds);				// サブスクリプションID
			resultinfo.put("statusCode" ,NORMAL);							// ステータスコード(正常)
			resultinfo.put("statusMessage" ,"");							// ステータスメッセージ
		}
		
		nodelist.add(resultinfo);
		resultMap.put(JWCStrConst.CMD_RESULT_CD,"0");				// コマンド実行結果
		resultMap.put(JWCStrConst.CMD_RESULT_DETAIL,nodelist);
		
		return resultMap;
	}
}
