Bläddra i källkod

Z991239-5274 #comment stopinput调整到获取输入流程结束(含正常、取消、业务退出、异常)

oilyang 1 år sedan
förälder
incheckning
520b6e1afc
1 ändrade filer med 9 tillägg och 25 borttagningar
  1. 9 25
      Module/mod_pinpad/PinPadFSM.cpp

+ 9 - 25
Module/mod_pinpad/PinPadFSM.cpp

@@ -65,9 +65,10 @@ ErrorCodeEnum CPinPadFSM::OnExit()
 	if (m_hDevHelper != nullptr)
 	{
 		m_ullBeginTime = SP::Module::Comm::RVCGetTickCount();
-		eErr = m_hDevHelper->StopInput();
+		ErrorCodeEnum errClosePinPad = m_hDevHelper->StopInput();
 		m_ullEndTime = SP::Module::Comm::RVCGetTickCount();
-		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::StopInput").setCostTime(m_ullEndTime - m_ullBeginTime)("%s", SpStrError(eErr));
+		if (errClosePinPad != Error_Succeed)
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::StopInput").setResultCode("RTA2614").setCostTime(m_ullEndTime - m_ullBeginTime)("OnExit:close pinpad(%d).", SpStrError(errClosePinPad));
 		m_hDevHelper.TearDown();
 	}
 	return eErr;
@@ -804,12 +805,6 @@ Err:
 	if (m_bExit)
 	{
 		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("exit");
-		m_ullBeginTime = SP::Module::Comm::RVCGetTickCount();
-		ErrorCodeEnum errClosePinPad = m_hDevHelper->StopInput();
-		m_ullEndTime = SP::Module::Comm::RVCGetTickCount();
-		if (errClosePinPad != Error_Succeed)
-			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::StopInput").setResultCode("RTA2614")("close pinpad(%d).", errClosePinPad);
-
 		ctxSM->Answer(Error_Unexpect, PinPad_UserErrorCode_Unexpected_Exit);
 		return Error_Unexpect;
 	}
@@ -819,23 +814,11 @@ Err:
 	if (bCancelInput)
 	{
 		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR040220602")("input cancel(pin)");
-		m_ullBeginTime = SP::Module::Comm::RVCGetTickCount();
-		ErrorCodeEnum errClosePinPad = m_hDevHelper->StopInput();
-		m_ullEndTime = SP::Module::Comm::RVCGetTickCount();
-		if (errClosePinPad != Error_Succeed)
-			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::StopInput").setResultCode("RTA2614")("close pinpad(%d).", errClosePinPad);
-
 		ctxSM->Answer(Error_Cancel);
 		return Error_Cancel;
 	}
 	if (readed < len) {
 		if (elapsed >= MAX_PINPAD_INPUT_TIMEOUT) {
-			m_ullBeginTime = SP::Module::Comm::RVCGetTickCount();
-			ErrorCodeEnum errClosePinPad = m_hDevHelper->StopInput();
-			m_ullEndTime = SP::Module::Comm::RVCGetTickCount();
-			if (errClosePinPad != Error_Succeed)
-				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::StopInput").setResultCode("RTA2614")("close pinpad(%d).", errClosePinPad);
-
 			ctxSM->Answer(Error_TimeOut);
 			return Error_TimeOut;
 		}
@@ -977,11 +960,6 @@ Err:
 	}
 	DbgWithLink(LOG_LEVEL_INFO, ctxSM->link.checkEmpty() ? LOG_TYPE_SYSTEM : LOG_TYPE_USER).setLogCode(PinPadService_LogCode_GetInputSM)
 		.setAPI("DevAdapter::GetPinBlock").setCostTime(m_ullEndTime - m_ullBeginTime)("获取密文成功");
-	m_ullBeginTime = SP::Module::Comm::RVCGetTickCount();
-	ErrorCodeEnum errClosePinPad = m_hDevHelper->StopInput();
-	if (errClosePinPad != Error_Succeed)
-		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("close pinpad(%d).", errClosePinPad);
-	m_ullEndTime = SP::Module::Comm::RVCGetTickCount();
 	Sleep(100);
 	ctxSM->Answer(Error_Succeed);
 	return Error_Succeed;
@@ -1013,6 +991,12 @@ int CPinPadFSM::GetInput(SpReqAnsContext<PinPadService_GetInputSM_Req, PinPadSer
 	ErrorCodeEnum err;
 	err = GetEncryptText(m_inputSMCtx);
 
+	m_ullBeginTime = SP::Module::Comm::RVCGetTickCount();
+	ErrorCodeEnum errClosePinPad = m_hDevHelper->StopInput();
+	m_ullEndTime = SP::Module::Comm::RVCGetTickCount();
+	if (errClosePinPad != Error_Succeed)
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::StopInput").setResultCode("RTA2614").setCostTime(m_ullEndTime - m_ullBeginTime)("close pinpad(%d).", SpStrError(errClosePinPad));
+
 	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)
 		("req acc.len:%d,confirm:%d,len:%d. ans:ck.len:%d", m_inputSMCtx->Req.account.GetLength(), m_inputSMCtx->Req.confirm
 			, m_inputSMCtx->Req.length, m_inputSMCtx->Ans.checkcode.IsNullOrEmpty() ? 0 : m_inputSMCtx->Ans.checkcode.GetLength());