فهرست منبع

Z991239-5317 #comment 卡库实体兼容旧运行时文件采用新方案进行修改

Signed-Off-By: commit-hook
刘文涛80174520 1 سال پیش
والد
کامیت
5f78429ac5

+ 24 - 12
Module/mod_CardIssuerStand/CardIssuerFSM.cpp

@@ -1193,63 +1193,75 @@ ErrorCodeEnum CCardIssuerFSM::OnInit()
 		return err;
 	}
 
-	CSimpleStringA runinfoOldFile = runinfoPath + SPLIT_SLASH_STR + "runcfg" + SPLIT_SLASH_STR + "CardIssuer.ini";
+	CSimpleStringA runinfoOldFile = runinfoPath + SPLIT_SLASH_STR + "runcfg" + SPLIT_SLASH_STR + "CardIssuer.ini"; 
 	CSimpleStringA runinfoNewFile = runinfoPath + SPLIT_SLASH_STR + "runcfg" + SPLIT_SLASH_STR + "CardIssuerStand.ini";
 
 	int enterMainPageInt = 0;
 
 	if (ExistsFile(runinfoNewFile.GetData())) {
 		if (ExistsFile(runinfoOldFile)) {
-			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("cardissuerStand.ini is Exist. cardissuer.ini is Exist");
 			//新在,旧也在,新进入首页则不拷贝,否则重新拷贝
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("CardIssuerStand.ini is Exist. CardIssuer.ini is Exist");
 			spConfig->ReadConfigValueInt("all", "enterMainPage", enterMainPageInt);
 			if (enterMainPageInt == 2) {
-				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("cardissuerStand.ini is Exist. enterMainPage=%d, no recopy", enterMainPageInt);
+				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("CardIssuerStand.ini is Exist. enterMainPage=%d, no recopy", enterMainPageInt);
 			}
 			else if (enterMainPageInt == 1) {
 				//先删再拷贝
 				if (RemoveFileA(runinfoNewFile.GetData())) {
 					if (CopyFileA(runinfoOldFile.GetData(), runinfoNewFile.GetData(), FALSE)) {
-						DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("Recopy old cardissuer.ini succ");
+						DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("Recopy old CardIssuer.ini succ");
 						spConfig->WriteConfigValueInt("all", "enterMainPage", 1);//写入初值
 					}
 					else {
-						DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("Recopy old cardissuer.ini failed.err=%d", (int)GetLastError());
+#ifdef RVC_OS_WIN
+						DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("Recopy old CardIssuer.ini failed.err=%d", (int)GetLastError());
+#else
+						DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("Recopy old CardIssuer.ini failed.err=%d", errno);
+#endif
 						return Error_Exception;
 					}
 				}
 				else {
-					DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("remove cardissuerStand.ini failed.err=%d", (int)GetLastError());
+#ifdef RVC_OS_WIN
+					DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("remove CardIssuerStand.ini failed.err=%d", (int)GetLastError());
+#else
+					DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("remove CardIssuerStand.ini failed.err=%d", errno);
+#endif
 					return Error_Exception;
 				}
 			}
 			else {
-				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("cardissuerStore.ini is Exist. but enterMainPage=%d is invalid, continued use cardissuerStand.ini", enterMainPageInt);
+				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("CardIssuerStand.ini is Exist. but enterMainPage=%d is invalid, continued use CardIssuerStand.ini", enterMainPageInt);
 			}
 
 		}
 		else {
 			//新在,旧不在,不处理
-			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("cardissuerStand.ini is Exist. cardissuer.ini not Exist .enterMainPage=%d", enterMainPageInt);
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("CardIssuerStand.ini is Exist. CardIssuer.ini not Exist .enterMainPage=%d", enterMainPageInt);
 		}
 	}
 	else {
 		if (ExistsFile(runinfoOldFile)) {
-			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("cardissuerStand.ini is not Exist. cardissuer.ini is Exist");
 			//新不在,旧在,拷贝,附初值
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("CardIssuerStand.ini is not Exist. CardIssuer.ini is Exist");
 			if (CopyFileA(runinfoOldFile.GetData(), runinfoNewFile.GetData(), FALSE)) {
-				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("copy old cardissuer.ini succ.");
+				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("copy old CardIssuer.ini succ.");
 				spConfig->WriteConfigValueInt("all", "enterMainPage", 1);//写入初值
 			}
 			else {
-				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("copy old cardissuer.ini failed.err=%d", (int)GetLastError());
+#ifdef RVC_OS_WIN
+				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("copy old CardIssuer.ini failed.err=%d", (int)GetLastError());
+#else
+				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("copy old CardIssuer.ini failed.err=%d", errno);
+#endif
 				return Error_Exception;
 			}
 
 		}
 		else {
 			//新旧都不在,附初值
-			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("cardissuerStand.ini is not Exist. cardissuer.ini is not Exist");
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("CardIssuerStand.ini is not Exist. CardIssuer.ini is not Exist");
 			spConfig->WriteConfigValueInt("all", "enterMainPage", 1);//写入初值
 		}
 	}

+ 87 - 10
Module/mod_cardissuerstore/CardIssuerFSM.cpp

@@ -1178,32 +1178,90 @@ ErrorCodeEnum CCardIssuerFSM::OnInit()
 
 	//因替换实体名,需要兼容把以前旧的运行时文件拷贝成新的实体名运行文件
 	CSimpleStringA runinfoPath(true);
+	CSmartPointer<IConfigInfo> spConfig;
 	ErrorCodeEnum  err = GetEntityBase()->GetFunction()->GetPath("RunInfo", runinfoPath);
 	if (err != Error_Succeed) {
 		DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("get system RunInfo value failed.");
 		return Error_Exception;
 	}
-	CSimpleStringA runinfoOldFile = runinfoPath + "\\runcfg\\CardIssuer.ini";
-	CSimpleStringA runinfoNewFile = runinfoPath + "\\runcfg\\CardIssuerStore.ini";
+	err = GetEntityBase()->GetFunction()->OpenConfig(Config_Run, spConfig);
+	if (err != Error_Succeed) {
+		DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("get cfg file failed ");
+		return err;
+	}
+
+	CSimpleStringA runinfoOldFile = runinfoPath + SPLIT_SLASH_STR + "runcfg" + SPLIT_SLASH_STR + "CardIssuer.ini";
+	CSimpleStringA runinfoNewFile = runinfoPath + SPLIT_SLASH_STR + "runcfg" + SPLIT_SLASH_STR + "CardIssuerStore.ini";
+
+	int enterMainPageInt = 0;
+
+	if (ExistsFile(runinfoNewFile.GetData())) {
+		if (ExistsFile(runinfoOldFile)) {
+			//新在,旧也在,新进入首页则不拷贝,否则重新拷贝
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("CardIssuerStore.ini is Exist. CardIssuer.ini is Exist");
+			spConfig->ReadConfigValueInt("all", "enterMainPage", enterMainPageInt);
+			if (enterMainPageInt == 2) {
+				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("CardIssuerStore.ini is Exist. enterMainPage=%d, no recopy", enterMainPageInt);
+			}
+			else if (enterMainPageInt == 1) {
+				//先删再拷贝
+				if (RemoveFileA(runinfoNewFile.GetData())) {
+					if (CopyFileA(runinfoOldFile.GetData(), runinfoNewFile.GetData(), FALSE)) {
+						DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("Recopy old CardIssuer.ini succ");
+						spConfig->WriteConfigValueInt("all", "enterMainPage", 1);//写入初值
+					}
+					else {
+#ifdef RVC_OS_WIN
+						DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("Recopy old CardIssuer.ini failed.err=%d", (int)GetLastError());
+#else
+						DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("Recopy old CardIssuer.ini failed.err=%d", errno);
+#endif
+						return Error_Exception;
+					}
+				}
+				else {
+#ifdef RVC_OS_WIN
+					DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("remove CardIssuerStore.ini failed.err=%d", (int)GetLastError());
+#else
+					DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("remove CardIssuerStore.ini failed.err=%d", errno);
+#endif
+					return Error_Exception;
+				}
+			}
+			else {
+				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("CardIssuerStore.ini is Exist. but enterMainPage=%d is invalid, continued use CardIssuerStore.ini", enterMainPageInt);
+			}
 
-	if (!ExistsFile(runinfoNewFile.GetData())) {
+		}
+		else {
+			//新在,旧不在,不处理
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("CardIssuerStore.ini is Exist. CardIssuer.ini not Exist .enterMainPage=%d", enterMainPageInt);
+		}
+	}
+	else {
 		if (ExistsFile(runinfoOldFile)) {
-			//进行兼容拷贝
+			//新不在,旧在,拷贝,附初值
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("CardIssuerStore.ini is not Exist. CardIssuer.ini is Exist");
 			if (CopyFileA(runinfoOldFile.GetData(), runinfoNewFile.GetData(), FALSE)) {
-				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("copy old cardissuer.ini succ.");
+				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("copy old CardIssuer.ini succ.");
+				spConfig->WriteConfigValueInt("all", "enterMainPage", 1);//写入初值
 			}
 			else {
-				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("copy old cardissuer.ini failed.err=%d", (int)GetLastError());
+#ifdef RVC_OS_WIN
+				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("copy old CardIssuer.ini failed.err=%d", (int)GetLastError());
+#else
+				DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("copy old CardIssuer.ini failed.err=%d", errno);
+#endif
 				return Error_Exception;
 			}
+
 		}
 		else {
-			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("cardissuer.ini is not Exist.");
+			//新旧都不在,附初值
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("CardIssuerStore.ini is not Exist. CardIssuer.ini is not Exist");
+			spConfig->WriteConfigValueInt("all", "enterMainPage", 1);//写入初值
 		}
 	}
-	else{
-		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("cardissuerStore.ini is Exist.");
-	}
 	
 
 
@@ -6973,6 +7031,25 @@ int CCardIssuerFSM::JudgeCardType(CSimpleStringA cardno, bool& bMismatch)
 	//	return 3;
 	return cardType;
 }
+void CCardIssuerFSM::SetEnterMainPage()
+{
+	//设置运行时文件
+	CSmartPointer<IConfigInfo> spConfig;
+	int enterMainPageInt = 0;
+	ErrorCodeEnum err = GetEntityBase()->GetFunction()->OpenConfig(Config_Run, spConfig);
+	if (err != Error_Succeed) {
+		DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM)("SetEnterMainPage, get cfg file failed ");
+	}
+	else {
+		//新在,旧也在,新进入首页则不拷贝,否则重新拷贝
+		spConfig->ReadConfigValueInt("all", "enterMainPage", enterMainPageInt);
+		if (2 != enterMainPageInt) {
+			spConfig->WriteConfigValueInt("all", "enterMainPage", 2);//进入首页
+			LogWarn(Severity_Low, Error_Unexpect, CardIssuerStore_UserErrorCode_EnterMainPage_SetFlag, "CardIssuerStore enterMainPage set succ");
+		}
+	}
+}
+
 void CCardIssuerFSM::HttpsLogCallBack(const char* logtxt) {
 	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("%s", logtxt);
 }

+ 1 - 0
Module/mod_cardissuerstore/CardIssuerFSM.h

@@ -951,6 +951,7 @@ public:
 	bool GetDevInitFlag() { return m_bOpened; }
 
 	void SetInWhatPage(int bValue) { m_iInWhatPage = bValue; }
+	void SetEnterMainPage();
 	static void HttpsLogCallBack(const char* logtxt);
 	int JudgeCardType(CSimpleStringA cardno, bool &bMismatch);
 	void QueryCIStatus(SpReqAnsContext<CardIssuerStoreService_QueryCIStatus_Req, CardIssuerStoreService_QueryCIStatus_Ans>::Pointer ctx);

+ 2 - 0
Module/mod_cardissuerstore/CardIssuerStore_UserErrorCode.h

@@ -208,4 +208,6 @@
 #define CardIssuerStore_UserErrorCode_KakuPanKu_MoveCardFromSlot_Failed				(CardIssuerStore_UserErrorCode_Start + 200)	//卡库盘库失败,卡槽移卡失败
 #define CardIssuerStore_UserErrorCode_KakuPanKu_ReadAccount_Failed					(CardIssuerStore_UserErrorCode_Start + 201)	//卡库盘库失败,读卡失败吞卡
 #define CardIssuerStore_UserErrorCode_KakuPanKu_MoveCardToSlot_Failed				(CardIssuerStore_UserErrorCode_Start + 202)	//卡库盘库失败,卡移回卡槽失败
+
+#define CardIssuerStore_UserErrorCode_EnterMainPage_SetFlag		0x22000300 //卡机进入首页设置运行时标志位
 #endif //_CARDISSUERSTORE_USER_ERRORCODE_H

+ 7 - 3
Module/mod_cardissuerstore/mod_cardissuer.cpp

@@ -149,12 +149,16 @@ void CCardIssuerEntity::OnSysVarEvent(const char* pszKey, const char* pszValue,
 {
 	if ((_strnicmp(pszKey, "UIState", strlen("UIState")) == 0))
 	{
-		if (_strnicmp(pszValue, "M", strlen("M")) == 0)
+		if (_strnicmp(pszValue, "M", strlen("M")) == 0) {
 			m_fsm.SetInWhatPage(PageType_MainPage);
-		else if (_strnicmp(pszValue, "U", strlen("U")) == 0)
+			m_fsm.SetEnterMainPage();//设置进入首页
+		}
+		else if (_strnicmp(pszValue, "U", strlen("U")) == 0) {
 			m_fsm.SetInWhatPage(PageType_UserDesktop);
-		else
+		}
+		else {
 			m_fsm.SetInWhatPage(PageType_Other);
+		}
 	}
 }