Blame view

src/th/co/ais/ssbsrfc/substate/SubWaitChargeReport.java 12.4 KB
1048b156   Suraputt Suntimitr   Template
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
package th.co.ais.ssbsrfc.substate;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Random;

import ec02.af.abstracts.AbstractAF;
import ec02.af.data.EquinoxRawData;
import ec02.af.data.GlobalData;
import ec02.utils.AppLog;
import th.co.ais.ssbsrfc.config.Constant;
import th.co.ais.ssbsrfc.config.StateConfig;
import th.co.ais.ssbsrfc.instance.AccessSecurity;
import th.co.ais.ssbsrfc.instance.AdjustmentInfo;
import th.co.ais.ssbsrfc.instance.AdjustmentObj;
import th.co.ais.ssbsrfc.instance.AdjustmentRequest;
import th.co.ais.ssbsrfc.instance.AdjustmentRequestIns;
import th.co.ais.ssbsrfc.instance.ChargeReportIns;
import th.co.ais.ssbsrfc.instance.CheckRequest;
import th.co.ais.ssbsrfc.instance.EC02Instance;
import th.co.ais.ssbsrfc.instance.EQXRawInstance;
import th.co.ais.ssbsrfc.instance.OwnershipInfo;
import th.co.ais.ssbsrfc.instance.RequestHeader;
import th.co.ais.ssbsrfc.instance.Stat;
import th.co.ais.ssbsrfc.instance.SubAccessCode;
import th.co.ais.ssbsrfc.utils.EqxStringUtils;
import th.co.ais.ssbsrfc.utils.Global;

public class SubWaitChargeReport extends WaitSubState {

	AdjustmentRequestIns adjustmentRequest = new AdjustmentRequestIns();
	HashMap<String, String> map = new HashMap<String, String>();
	ChargeReportIns chargeResponseIns = new ChargeReportIns();

	public void configSubstate(EC02Instance ec02Instance, EquinoxRawData equinoxRawData) {
		this._state = StateConfig.SSTATE_W_CHARGEREPORT;
		this._eventType = StateConfig.Incoming_ChargeReport_Request;
		this._stateType = Constant.SUBSTATE_TYPE_W_REQUEST;
		if (equinoxRawData != null) {
			ec02Instance.getAFInstance().setOrig(equinoxRawData.getOrig());
			ec02Instance.getAFInstance().setInvoke(equinoxRawData.getInvoke());
			ec02Instance.getAFInstance().setInitialInvoke(equinoxRawData.getInvoke());
		}
		ec02Instance.getAFInstance().setFlow(Constant.FLOW_CHARGE_REPORT);
	}

	public Object getMessage(EC02Instance ec02Instance, EquinoxRawData equinoxRawData) {
		String value = EqxStringUtils.getMessage(equinoxRawData, ec02Instance);
		AppLog.d("## PARAMETERS : " + value);
		String page = equinoxRawData.getRawDataAttribute("val");
		CheckRequest checkRequest = new CheckRequest();
		checkRequest.setDn(page);
		String[] dnList = checkRequest.getDn().split("&", -1);
		page = dnList[0].substring("ssid=".length());
		int i = 0;
		while (i < dnList.length) {
			map.put(dnList[i].substring(0, dnList[i].indexOf("=")), dnList[i].substring(dnList[i].indexOf("=") + 1));
			i++;
		}

		DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS");
		Calendar cal = Calendar.getInstance();
		Random random = new Random();
		String rand = "000";
		int x = random.nextInt(1000);
		rand += x;
		rand = rand.substring(rand.length() - 3);
		ec02Instance.getAFInstance().setRand(rand);
		String ChargeId = dateFormat.format(cal.getTime()) + rand;
		ec02Instance.getAFInstance().setChargeId(ChargeId);
		ec02Instance.getAFInstance().setDn(map);

		AppLog.d("########Random : " + rand);
		AppLog.d("########MessageSeq : " + ChargeId);

		this.type = Constant.TYPE_SUCCESS;

		RequestHeader requestHeader = new RequestHeader();
		requestHeader.setVersion(
				ec02Instance.getAbstractAF().getUtils().getHmWarmConfig().get("AdjustmentRequestVersion").get(0));
		AppLog.d("AdjustmentRequestVersion :" + Global.getEC02WarmConfig("AdjustmentRequestVersion"));
		requestHeader.setBusinessCode(
				ec02Instance.getAbstractAF().getUtils().getHmWarmConfig().get("BusinessCode_Refund").get(0));
		AppLog.d("BusinessCode_Refund :" + Global.getEC02WarmConfig("BusinessCode_Refund"));
		requestHeader.setMessageSeq(ChargeId);
		OwnershipInfo ownershipInfo = new OwnershipInfo();
		if (null == ec02Instance.getAbstractAF().getUtils().getHmWarmConfig().get("BEID")) {
			ownershipInfo.setBEID("101");
			AppLog.d("BEID :" + Global.getEC02WarmConfig("BEID"));
		} else {
			ownershipInfo.setBEID(ec02Instance.getAbstractAF().getUtils().getHmWarmConfig().get("BEID").get(0));
			AppLog.d("BEID :" + Global.getEC02WarmConfig("BEID"));
		}
		ownershipInfo.setBRID(ec02Instance.getAbstractAF().getUtils().getHmWarmConfig().get("BRID").get(0));
		AppLog.d("BRID :" + Global.getEC02WarmConfig("BRID"));