|
|
@@ -5,50 +5,94 @@
|
|
|
|
|
|
#include "ControlEx.h"
|
|
|
|
|
|
+OrderListUI::OrderListUI()
|
|
|
+{
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+OrderListUI::~OrderListUI()
|
|
|
+{
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
void OrderListUI::Refresh()
|
|
|
{
|
|
|
+ //开始转菊花
|
|
|
+ this->SetVisible(false);
|
|
|
+
|
|
|
+ m_pManager->FindControl(_T("main_orderlist_loading"))->SetVisible(true);
|
|
|
+
|
|
|
+ //启动一个线程,进行网络请求操作
|
|
|
+ OrderListStatus* status = new OrderListStatus;
|
|
|
+ status->m_status = m_status;
|
|
|
+ status->m_page = m_page;
|
|
|
+
|
|
|
+ std::thread t(&OrderListUI::HandleRefresh, this, status);
|
|
|
+ t.detach();
|
|
|
+}
|
|
|
+
|
|
|
+void OrderListUI::HandleRefresh(OrderListStatus* status)
|
|
|
+{
|
|
|
std::string url;
|
|
|
- if (m_status == 1)
|
|
|
+ if (status->m_status == 1)
|
|
|
{
|
|
|
url = "/waimaiorder/getopenlist";
|
|
|
}
|
|
|
- else if (m_status == 2)
|
|
|
+ else if (status->m_status == 2)
|
|
|
{
|
|
|
url = "/waimaiorder/getconfirmedlist";
|
|
|
}
|
|
|
- else if (m_status == 3)
|
|
|
+ else if (status->m_status == 3)
|
|
|
{
|
|
|
url = "/waimaiorder/getdeliverylist";
|
|
|
}
|
|
|
- else if (m_status == 4)
|
|
|
+ else if (status->m_status == 4)
|
|
|
{
|
|
|
url = "/waimaiorder/getsucceededlist";
|
|
|
}
|
|
|
- else if (m_status == 5)
|
|
|
+ else if (status->m_status == 5)
|
|
|
{
|
|
|
url = "/waimaiorder/getfailedlist";
|
|
|
}
|
|
|
- else if (m_status == 6)
|
|
|
+ else if (status->m_status == 6)
|
|
|
{
|
|
|
url = "/waimaiorder/getcancelledlist";
|
|
|
}
|
|
|
- else if (m_status == 7)
|
|
|
+ else if (status->m_status == 7)
|
|
|
{
|
|
|
url = "/waimaiorder/getrefundlist";
|
|
|
}
|
|
|
|
|
|
//请求外卖的未处理订单,直接用当前的page值去请求
|
|
|
std::map<string, string> params;
|
|
|
- params["page"] = to_string(m_page);
|
|
|
+ params["page"] = to_string(status->m_page);
|
|
|
std::string response;
|
|
|
|
|
|
CZhipuziHttpClient::RequestOld(url.c_str(), params, response);
|
|
|
|
|
|
+ //走到这里,网络请求结束了,对比状态是否发生了改变
|
|
|
+ if (status->m_page != m_page || status->m_status != m_status)
|
|
|
+ {
|
|
|
+ //用户已经点击了其他状态,这个状态结果无效了,直接返回
|
|
|
+ delete status;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ //将网络返回结果保存起来,等待消息处理重新渲染页面
|
|
|
+ m_response = response;
|
|
|
+
|
|
|
+ ::PostMessage(m_pManager->GetPaintWindow(), WM_ORDERLIST_REFRESH, 0, 0);
|
|
|
+
|
|
|
+ delete status;
|
|
|
+}
|
|
|
+
|
|
|
+void OrderListUI::DoRefresh()
|
|
|
+{
|
|
|
//请求成功之后,清空之前的数据
|
|
|
this->RemoveAll();
|
|
|
|
|
|
rapidjson::Document document;
|
|
|
- document.Parse(response.c_str());
|
|
|
+ document.Parse(m_response.c_str());
|
|
|
|
|
|
if (document.HasParseError())
|
|
|
{
|
|
|
@@ -134,6 +178,10 @@ void OrderListUI::Refresh()
|
|
|
size.cx = 0;
|
|
|
size.cy = 0;
|
|
|
this->SetScrollPos(size);
|
|
|
+
|
|
|
+ this->SetVisible(true);
|
|
|
+
|
|
|
+ m_pManager->FindControl(_T("main_orderlist_loading"))->SetVisible(false);
|
|
|
}
|
|
|
|
|
|
void OrderListUI::LastPage()
|