Просмотр исходного кода

加入部分日志,解决读取用户的错误

KarsusNeko 6 лет назад
Родитель
Сommit
f91c796564
3 измененных файлов с 33 добавлено и 12 удалено
  1. 1 1
      MT5MonkPAMM/MT5MonkMAM.cpp
  2. 31 10
      MT5MonkPAMM/PluginInstance.cpp
  3. 1 1
      MT5MonkPAMM/PluginInstance.h

+ 1 - 1
MT5MonkPAMM/MT5MonkMAM.cpp

@@ -10,7 +10,7 @@ MTPluginInfo ExtPluginInfo =
 	MTServerAPIVersion,
 	L"Monk MT5 MAM",
 	L"",
-	L"order append plugin"
+	L"Multi Account Management"
 };
 
 MTPluginParam ExtPluginDefaults[] =

+ 31 - 10
MT5MonkPAMM/PluginInstance.cpp

@@ -87,6 +87,8 @@ MTAPIRES CPluginInstance::Stop()
 	m_api = nullptr;
 	m_enable = false;
 
+	stop_redis();
+
 	if (m_work_thread.joinable())
 		m_work_thread.join();
 
@@ -134,8 +136,8 @@ void CPluginInstance::OnOrderDelete(const IMTOrder * order)
 	if (!m_enable)			return;
 	if (order->Login() != m_trader)	return;
 
-	//m_api->LoggerOut(MTLogOK, L"OnOrderDelete, login: %lld, ord: %lld, pos: %lld, state: %d, vol_init: %lld, vol_cur: %lld",
-	//	order->Login(), order->Order(), order->PositionID(), order->State(), order->VolumeInitial(), order->VolumeCurrent());
+	m_api->LoggerOut(MTLogOK, L"OnOrderDelete, login: %lld, ord: %lld, pos: %lld, state: %d, vol_init: %lld, vol_cur: %lld",
+		order->Login(), order->Order(), order->PositionID(), order->State(), order->VolumeInitial(), order->VolumeCurrent());
 
 	if (order->Type() != IMTOrder::OP_BUY
 		&& order->Type() != IMTOrder::OP_SELL)
@@ -289,14 +291,13 @@ void CPluginInstance::OnOrderDelete(const IMTOrder * order)
 			MTAPIRES ret = m_api->OrderAdd(new_order);
 			if (ret != MT_RET_OK)
 			{
-				m_api->LoggerOut(MTLogErr, L"%lld failed to add order, original order #%lld [%d]", login, order->Login(), ret);
+				m_api->LoggerOut(MTLogErr, L"%lld failed to add order, original order #%lld [%d]", login, order->Order(), ret);
 				// FIXME: 如果做单失败该怎么办
 				continue;
 			}
-			else
-			{
-				new_order_id = new_order->Order();
-			}
+
+			new_order_id = new_order->Order();
+			m_api->LoggerOut(MTLogOK, L"%lld add order #%lld, original order #%lld [%d]", login, new_order_id, order->Order());
 
 			// 完成之后,写入新纪录
 			context.cur_ord = new_order_id;
@@ -413,6 +414,8 @@ void CPluginInstance::OnDealPerform(const IMTDeal * deal, IMTAccount * account,
 		m_redis_client->sync_commit();
 		auto reply = fut.get();
 
+		m_api->LoggerOut(MTLogOK, L"%lld add deal, original deal #%lld", login, deal->Deal());
+
 		// 如果不存在,忽略
 		if (reply.ko())	continue;
 		if (reply.is_null())	continue;
@@ -455,7 +458,9 @@ void CPluginInstance::OnDealPerform(const IMTDeal * deal, IMTAccount * account,
 			// TODO: 有没有更多的错误处理?
 			m_api->LoggerOut(MTLogErr, L"%lld cannot add deal [%d], original deal: #%lld", login, ret, deal->Deal());
 			continue;
-		}
+		}
+
+		m_api->LoggerOut(MTLogOK, L"add deal #%lld, original deal #%lld [%d]", new_deal->Deal(), deal->Deal());
 
 		if (position->Volume() == 0)
 		{
@@ -511,6 +516,8 @@ MTAPIRES CPluginInstance::LoadParam()
 	});
 	std::lock_guard<decltype(m_lock)> lk(m_lock);
 
+	//m_api->LoggerOut(MTLogOK, L"Load redis server params");
+
 	if ((res = m_config->ParameterGet(L"Redis Server", param)) != MT_RET_OK || param->Type() != IMTConParam::TYPE_STRING)
 	{
 		return(MT_RET_ERR_PARAMS);
@@ -557,6 +564,8 @@ MTAPIRES CPluginInstance::LoadParam()
 		}
 	}
 
+	//m_api->LoggerOut(MTLogOK, L"Load trade params");
+
 	if ((res = m_config->ParameterGet(L"Trader", param)) != MT_RET_OK || param->Type() != IMTConParam::TYPE_INT)
 	{
 		return(MT_RET_ERR_PARAMS);
@@ -576,16 +585,22 @@ MTAPIRES CPluginInstance::LoadParam()
 	{
 		return(MT_RET_ERR_PARAMS);
 	}
-	m_groups = param->ValueString();
+	wcsncpy(m_groups, param->ValueString(), 1024);
 	//if ((res = m_config->ParameterGet(L"Logins", param)) != MT_RET_OK || param->Type() != IMTConParam::TYPE_STRING)
 	//{
 	//	return(MT_RET_ERR_PARAMS);
 	//}
 	//m_logins = param->ValueString();
 
+
 	res = LoadLogins();
 	if (res != MT_RET_OK)
+	{
+		m_api->LoggerOut(MTLogErr, L"failed to load clients [%d]", res);
 		return res;
+	}
+
+	//m_api->LoggerOut(MTLogOK, L"Load param success");
 
 	m_enable = true;
 
@@ -611,6 +626,9 @@ MTAPIRES CPluginInstance::LoadLogins()
 	{
 		ret = m_api->GroupNext(i, group);
 		if (ret != MT_RET_OK)	break;
+		if (CheckGroup(m_groups, group->Group()) == FALSE)	continue;
+
+		m_api->LoggerOut(MTLogOK, L"group %s matched config", group->Group());
 		groups.push_back(group->Group());
 	}
 
@@ -618,11 +636,14 @@ MTAPIRES CPluginInstance::LoadLogins()
 	{
 		UINT64* logins = nullptr;
 		UINT total_users = 0;
+
 		ret = m_api->UserLogins(group.c_str(), logins, total_users);
-		if (ret = MT_RET_OK)
+		m_api->LoggerOut(MTLogOK, L"add group %s, total users: %d", group.c_str(), total_users);
+		if (ret == MT_RET_OK && logins != nullptr)
 		{
 			for (int i = 0; i < total_users; ++i)
 			{
+				m_api->LoggerOut(MTLogOK, L"add %d to list", logins[i]);
 				m_followers.push_back(logins[i]);
 			}
 		}

+ 1 - 1
MT5MonkPAMM/PluginInstance.h

@@ -77,7 +77,7 @@ private:
 	std::string		m_redis_password;
 	int				m_redis_port;
 
-	std::wstring	m_groups;
+	wchar_t			m_groups[1024];
 	//std::wstring	m_logins;
 	UINT64			m_trader;
 	int				m_step;