Kaynağa Gözat

优化交易记录展示

zhangyang 5 yıl önce
ebeveyn
işleme
8aca1131f0

+ 18 - 6
zhipuzi_pay_plugin/wnd/CJiaoyijiluWnd.cpp

@@ -26,9 +26,6 @@ void CJiaoyijiluWnd::Init()
 	pDateStart->SetText(CLewaimaiString::UTF8ToUnicode(s_start).c_str());
 
 	StartQuery();
-
-	//启动一个线程,刷新列表内容
-	std::thread(&CJiaoyijiluWnd::StartRefreshWork, this).detach();
 }
 
 LRESULT CJiaoyijiluWnd::OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
@@ -198,12 +195,12 @@ void CJiaoyijiluWnd::HandleClickMsg(TNotifyUI& msg)
 	{
 		m_curpage--;
 
-		this->StartRefreshWork();
+		this->StartQuery();
 	}
 	else if (senderName == L"jiaoyijilu_list_next")
 	{
 		m_curpage++;
-		this->StartRefreshWork();
+		this->StartQuery();
 	}
 	else if (senderName == L"jiaoyijilu_query")
 	{
@@ -224,6 +221,13 @@ void CJiaoyijiluWnd::HandleItemSelectMsg(TNotifyUI& msg)
 
 void CJiaoyijiluWnd::StartQuery()
 {
+	if (m_is_query)
+	{
+		return;
+	}
+
+	m_is_query = true;
+
 	CDateTimeUI* pDateStart = static_cast<CDateTimeUI*>(m_pm.FindControl(_T("jiaoyijilu_time_start")));
 	SYSTEMTIME syDataStart = pDateStart->GetTime();	
 
@@ -250,12 +254,14 @@ void CJiaoyijiluWnd::StartQuery()
 	{
 		//起始时间不能大于7天
 		MessageBox(GetHWND(), L"选择的时间段不能超过7天", L"提示", MB_OK);
+		m_is_query = false;
 		return;
 	}
 
 	if (end_time - start_time < 0)
 	{
 		MessageBox(GetHWND(), L"结束时间不能小于起始时间", L"提示", MB_OK);
+		m_is_query = false;
 		return;
 	}
 
@@ -263,7 +269,8 @@ void CJiaoyijiluWnd::StartQuery()
 	m_start_time = s_start;
 	m_end_time = s_end;
 
-	StartRefreshWork();
+	//启动一个线程,刷新列表内容
+	std::thread(&CJiaoyijiluWnd::StartRefreshWork, this).detach();
 }
 
 /*
@@ -293,12 +300,14 @@ void CJiaoyijiluWnd::StartRefreshWork()
 	if (document.HasParseError())
 	{
 		LOG_INFO("parse response error!");
+		m_is_query = false;
 		return;
 	}
 
 	if (!document.HasMember("errcode") || !document.HasMember("errmsg") || !document.HasMember("data"))
 	{
 		LOG_INFO("json error!");
+		m_is_query = false;
 		return;
 	}
 
@@ -309,6 +318,7 @@ void CJiaoyijiluWnd::StartRefreshWork()
 		LOG_INFO("response failed! message:" << document["errmsg"].GetString());
 		wstring errmsg = CLewaimaiString::UTF8ToUnicode(document["errmsg"].GetString());
 		MessageBox(GetHWND(), errmsg.c_str(), L"提示", MB_OK);
+		m_is_query = false;
 		return;
 	}
 
@@ -384,4 +394,6 @@ void CJiaoyijiluWnd::StartRefreshWork()
 	CLabelUI* pPageNum = static_cast<CLabelUI*>(m_pm.FindControl(_T("jiaoyijilu_list_page")));
 	wstring pageinfo = _T("第") + CLewaimaiString::ANSIToUnicode(to_string(m_curpage)) + _T("页/共") + CLewaimaiString::ANSIToUnicode(to_string(m_totalpage)) + _T("页");
 	pPageNum->SetText(pageinfo.c_str());
+
+	m_is_query = false;
 }

+ 2 - 0
zhipuzi_pay_plugin/wnd/CJiaoyijiluWnd.h

@@ -90,5 +90,7 @@ private:
 
 	std::string m_start_time;
 	std::string m_end_time;
+
+	int m_is_query = false;
 };