Răsfoiți Sursa

Z991239-5508 #comment feat: 优化吞卡js接口

Signed-Off-By: commit-hook
刘文涛80174520 1 an în urmă
părinte
comite
98449745a3

+ 12 - 3
Module/mod_cardissuerstore/CardIssuerFSM.cpp

@@ -197,6 +197,15 @@ unsigned int CCardIssuerFSM::s2_on_event(FSMEvent* pEvt)
 		pEvt->SetHandled();
 	}
 		break;
+	case USER_EVT_JS_CAPTURE:
+	{
+		CaptureJSEvent* cejs = dynamic_cast<CaptureJSEvent*>(pEvt);
+		CaptureJSTask* task = new CaptureJSTask(this);
+		task->ctx = cejs->ctx;
+		GetEntityBase()->GetFunction()->PostThreadPoolTask(task);
+		pEvt->SetHandled();
+	}
+		break;
 	case USER_EVT_ISSUE_EX:
 	{
 		IssueTask* task = new IssueTask(this);
@@ -7750,7 +7759,7 @@ int CCardIssuerFSM::MoveBacktoSlotJS(SpReqAnsContext<CardIssuerStoreService_Move
 		m_mapJsonErr["cardResult"] = JsonElem(CardResult_Invalid_Slot);
 		m_mapJsonErr["tips"] = JsonElem("[RTA2W8B] 卡槽地址非法,请联系行内开发人员排查");
 		ctx->Answer(Error_Unexpect, CardIssuerStore_UserErrorCode_Dev_SlotInvalid, generateJsonString(m_mapJsonErr));
-		return 1;//跳到S4
+		return 0;//跳到S4
 	}
 
 
@@ -7765,7 +7774,7 @@ int CCardIssuerFSM::MoveBacktoSlotJS(SpReqAnsContext<CardIssuerStoreService_Move
 		errMsg = CSimpleStringA::Format("MoveBacktoSlotJS MoveCardToSlot succ, slot:%d,account:%s", slot, maskCardno.GetData());
 		LogWarn(Severity_Low, Error_Unexpect, CardIssuerStore_UserErrorCode_MoveCardToSlot, errMsg.GetData());
 		ctx->Answer(Error_Succeed);
-		return 0;//跳到S2
+		return 1;//跳到S2
 	}
 	else {
 		//移动失败
@@ -7778,7 +7787,7 @@ int CCardIssuerFSM::MoveBacktoSlotJS(SpReqAnsContext<CardIssuerStoreService_Move
 		m_mapJsonErr["userCode"] = JsonElem(dwTmpUserErrCode);
 		m_mapJsonErr["tips"] = JsonElem("[RTA2W03] 卡片从读卡器移回到卡槽失败,请联系卡库厂商排查");
 		ctx->Answer(Error_Unexpect, dwTmpUserErrCode, generateJsonString(m_mapJsonErr));
-		return 1;//跳到S4
+		return 0;//跳到S4
 	}
 }
 

+ 3 - 2
Module/mod_cardissuerstore/CardIssuerFSM.h

@@ -885,6 +885,7 @@ public:
 		FSM_RULE_ENTRY(s2, s10, USER_EVT_JS_MOVE_AND_READ_CARD_FROMSLOT, 0)//JS 移卡读卡
 		FSM_RULE_ENTRY(s2, s10, USER_EVT_JS_ADD_AND_READ_CRAD_FROMBOX, 0)//JS 加卡
 		FSM_RULE_ENTRY(s2, s10, USER_EVT_JS_ISSUE_FROM_SLOT, 0)//JS 领卡发卡
+		FSM_RULE_ENTRY(s2, s8,  USER_EVT_JS_CAPTURE, 0)//JS 吞卡
 		FSM_RULE_ENTRY(s4,s5,USER_EVT_READ,0)
 		FSM_RULE_ENTRY(s4,s6,USER_EVT_EJECT,0)
 		FSM_RULE_ENTRY(s4, s6, USER_EVT_JS_EJECT, 0)//JS 吐卡
@@ -938,8 +939,8 @@ public:
 		FSM_RULE_ENTRY(s10, s4, USER_EVT_JS_ADD_AND_READ_CRAD_FROMBOX_FINISHED, 0)//JS
 		FSM_RULE_ENTRY(s10, s2, USER_EVT_JS_ADD_AND_READ_CRAD_FROMBOX_FINISHED, 1)//JS
 		FSM_RULE_ENTRY(s10, s9, USER_EVT_JS_ADD_AND_READ_CRAD_FROMBOX_FINISHED, 2)//JS 
-		FSM_RULE_ENTRY(s10, s2, USER_EVT_JS_MOVEBACK_TO_SLOT_FINISHED, 0)//JS 
-		FSM_RULE_ENTRY(s10, s4, USER_EVT_JS_MOVEBACK_TO_SLOT_FINISHED, 1)//JS 
+		FSM_RULE_ENTRY(s10, s4, USER_EVT_JS_MOVEBACK_TO_SLOT_FINISHED, 0)//JS 
+		FSM_RULE_ENTRY(s10, s2, USER_EVT_JS_MOVEBACK_TO_SLOT_FINISHED, 1)//JS
 		FSM_RULE_ENTRY(s10, s4, USER_EVT_JS_ISSUE_FROM_SLOT_FINISHED, 0)//JS 
 		FSM_RULE_ENTRY(s10, s2, USER_EVT_JS_ISSUE_FROM_SLOT_FINISHED, 1)//JS 
 		FSM_RULE_ENTRY(s10, s9, USER_EVT_JS_ISSUE_FROM_SLOT_FINISHED, 2)//JS 

+ 6 - 6
Module/mod_cardissuerstore/mod_cardissuer.h

@@ -330,18 +330,18 @@ public:
 		if (!m_fsm.GetDevInitFlag()) {
 			ctx->Answer(Error_DevNotAvailable, CardIssuerStore_UserErrorCode_DevOpen_Failed);
 		}
-		else if(_stricmp(m_fsm.GetCurrStateName(), "Hold") != 0){
+		else if(_stricmp(m_fsm.GetCurrStateName(), "Hold") == 0 || _stricmp(m_fsm.GetCurrStateName(), "Idle") == 0){
+			CaptureJSEvent* e = new CaptureJSEvent();
+			e->ctx = ctx;
+			m_fsm.PostEventFIFO(e);
+		}
+		else {
 			//不符合请求调用,告知具体错误流程
 			DWORD errCode = m_fsm.GetFsmStateErrCode();
 			int state = m_fsm.GetFSMState();
 			DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("CaptureJS req is unhandled ,CurrState=%d", state);
 			ctx->Answer(Error_Unexpect, errCode);
 		}
-		else {
-			CaptureJSEvent* e = new CaptureJSEvent();
-			e->ctx = ctx;
-			m_fsm.PostEventFIFO(e);
-		}
 	}
 
 	void ReadBatchCardInfoInRangeJS(SpReqAnsContext<CardIssuerStoreService_ReadBatchCardInfoInRangeJS_Req, CardIssuerStoreService_ReadBatchCardInfoInRangeJS_Ans>::Pointer ctx)