| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910 |
- #include "../pch/pch.h"
- #include "CZhengcanPageUI.h"
- #include "../control/ControlEx.h"
- #include "../tool/CSqlite3.h"
- #include "../wnd/CZhengcanKaitaiWnd.h"
- #include "../wnd/CAttentionWnd.h"
- #include "../wnd/CZhengcanSaomadiancanWnd.h"
- CZhengcanPageUI::CZhengcanPageUI()
- {
- }
- CZhengcanPageUI::~CZhengcanPageUI()
- {
- }
- //初始化当前页面的展示,处理默认展示效果,在页面被加载的时候调用
- void CZhengcanPageUI::InitShow()
- {
- if (is_type_init == false)
- {
- InitTabletypeShow();
- is_type_init = true;
- }
- RefreshTableShow();
- }
- //处理按钮点击类事件
- void CZhengcanPageUI::HandleClickMsg(TNotifyUI& msg)
- {
- CDuiString name = msg.pSender->GetName();
- if (name == L"zhengcan_tableitem")
- {
- CZhengcanTableItemUI* tableitemUI = static_cast<CZhengcanTableItemUI*>(msg.pSender);
- m_cur_click_table_item = tableitemUI;
- this->ClickTableAction();
- }
- else if (name == L"zhengcan_zhuantai_cancel")
- {
- this->CancelZhuanTai();
- }
- else if (name == L"zhengcan_zhuantai_queding")
- {
- this->QurenZhuantai();
- }
- else if (name == L"zhengcan_saomadiancan_btn")
- {
- this->SaomadiancanClick();
- }
- }
- //处理option切换事件
- void CZhengcanPageUI::HandleSelectChangeMsg(TNotifyUI& msg)
- {
- CDuiString name = msg.pSender->GetName();
- COptionUI* curOption = static_cast<COptionUI*>(msg.pSender);
- std::wstring groupname = curOption->GetGroup();
- if (groupname == L"zhengcan_tabletype")
- {
- //商品分类切换
- CTabletypeOptionUI* typeUI = static_cast<CTabletypeOptionUI*>(curOption);
- std::string id = typeUI->GetTypeId();
- if (m_cur_type_id != id)
- {
- //切换了商品分类
- m_curZhuozitypeOption->SetBkColor(0xFFECECEC);
- msg.pSender->SetBkColor(0xFF3CB371);
- m_curZhuozitypeOption = static_cast<CControlUI*>(msg.pSender);
- m_cur_type_id = id;
- this->RefreshTableShow();
- return;
- }
- }
- }
- //处理下拉框、radio的切换事件
- void CZhengcanPageUI::HandleItemSelectMsg(TNotifyUI& msg)
- {
- }
- //处理编辑框输入内容改变事件
- void CZhengcanPageUI::HandleTextChangedMsg(TNotifyUI& msg)
- {
- CDuiString name = msg.pSender->GetName();
- }
- //处理扫码枪捕捉到的扫码信息
- void CZhengcanPageUI::HandleTextCapture(std::string content)
- {
- }
- void CZhengcanPageUI::SetPos(RECT rc, bool bNeedInvalidate)
- {
- m_nPageWidth = rc.right - rc.left;
- m_nPageHeight = rc.bottom - rc.top;
- //更新分类位置
- UpdateTabletypePos();
- //更新桌子位置
- UpdateTablePos();
- CContainerUI::SetPos(rc, bNeedInvalidate);
- }
- void CZhengcanPageUI::InitTabletypeShow()
- {
- //初始化商品渲染相关的信息
- m_zhuozitypeLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("zhengcan_zhuozi_type_layout")));
- m_zhuozitypeLayout->RemoveAll();
- std::vector<TableType> tableTypes = CShopinfo::GetInstance()->m_tabletypes;
- //计算总的桌子分类数量
- m_tabletype_num = tableTypes.size() + 1;
- m_cur_type_id = "all";
- m_curZhuozitypeOption = NULL;
- //先添加全部分类
- CDialogBuilder builder;
- CDialogBuilderCallbackEx cb;
- CFoodtypeOptionUI* pItem = static_cast<CFoodtypeOptionUI*>(builder.Create(_T("tabletype_option.xml"), (UINT)0, &cb, m_pManager));
- pItem->SetName(L"全部桌子");
- pItem->SetTypeId("all");
- pItem->SetGroup(L"zhengcan_tabletype");
- m_zhuozitypeLayout->Add(pItem);
- if (m_cur_type_id == "all")
- {
- m_curZhuozitypeOption = pItem;
- }
- //接下来开始处理商品分类
- for (std::vector<TableType>::iterator it = tableTypes.begin(); it != tableTypes.end(); it++)
- {
- CDialogBuilder builder;
- CDialogBuilderCallbackEx cb;
- CFoodtypeOptionUI* pItem = static_cast<CFoodtypeOptionUI*>(builder.Create(_T("tabletype_option.xml"), (UINT)0, &cb, m_pManager));
- pItem->SetName(CLewaimaiString::UTF8ToUnicode(it->name));
- pItem->SetTypeId(it->id);
- pItem->SetGroup(L"zhengcan_tabletype");
- m_zhuozitypeLayout->Add(pItem);
- }
- if (m_curZhuozitypeOption != NULL)
- {
- m_curZhuozitypeOption->SetBkColor(0xFF3CB371);
- }
- //如果不是一个分类都没有,选中第一个分类
- if (m_cur_type_id != "")
- {
- CFoodtypeOptionUI* curTypeUI = static_cast<CFoodtypeOptionUI*>(m_zhuozitypeLayout->GetItemAt(0));
- curTypeUI->Selected(true, false);
- }
- UpdateTabletypePos();
- }
- void CZhengcanPageUI::UpdateTabletypePos()
- {
- int nFoodtypeNum = m_tabletype_num;
- //添加支付方式
- int nWidth = m_nPageWidth;
- if (nWidth == 0)
- {
- return;
- }
- //根据宽度计算每行显示的数量
- int nMeihangNum = (nWidth - 20) / 140;
- if (nMeihangNum < 1)
- {
- nMeihangNum = 1;
- }
- int num = 0;
- CHorizontalLayoutUI* pFenleiLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("zhengcan_zhuozi_type_layout")));
- for (int i = 0; i < nFoodtypeNum; i++)
- {
- CButtonUI* curItem = static_cast<CButtonUI*>(pFenleiLayout->GetItemAt(i));
- int curRow = num / nMeihangNum + 1;
- int curCol = num % nMeihangNum + 1;
- RECT rect;
- rect.left = (curCol - 1) * 140 + 10;
- rect.right = rect.left + 130;
- rect.top = (curRow - 1) * 52 + 10;
- rect.bottom = rect.top + 42;
- curItem->SetFloat(true);
- curItem->SetPos(rect);
- num++;
- }
- //调整区域高度
- int lastRow = (num - 1) / nMeihangNum + 1;
- pFenleiLayout->SetFixedHeight(lastRow * 52 + 10);
- //处理滚动条问题
- CVerticalLayoutUI* pFenleiScrollLayout = static_cast<CVerticalLayoutUI*>(this->FindSubControl(_T("zhengcan_zhuozi_type_layout_scrolllayout")));
- if (lastRow > 2)
- {
- lastRow = 2;
- }
- pFenleiScrollLayout->SetFixedHeight(lastRow * 52 + 10);
- SIZE size;
- size.cx = 0;
- size.cy = 0;
- pFenleiScrollLayout->SetScrollPos(size);
- }
- void CZhengcanPageUI::RefreshTableShow()
- {
- //开始转菊花
- CVerticalLayoutUI* pTableLayout = static_cast<CVerticalLayoutUI*>(this->FindSubControl(_T("zhengcan_tablelist")));
- pTableLayout->SetVisible(false);
- this->FindSubControl(_T("loading"))->SetVisible(true);
- //启动一个线程,进行网络请求操作
- std::thread t(&CZhengcanPageUI::DoRefreshTable, this);
- t.detach();
- }
- void CZhengcanPageUI::DoRefreshTable()
- {
- std::map<string, string> params;
- if (m_cur_type_id == "all")
- {
- params["type_id"] = "-2";
- }
- else
- {
- params["type_id"] = m_cur_type_id;
- }
- std::string response;
- std::string url = "/dinnercash/gettableinfobytypeid";
- bool ret = CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
- if (ret == false)
- {
- return;
- }
- rapidjson::Document document;
- document.Parse(response.c_str());
- if (document.HasParseError())
- {
- LOG_INFO("parse response error!");
- return;
- }
- if (!document.HasMember("errcode") || !document.HasMember("errmsg"))
- {
- LOG_INFO("json error!");
- return;
- }
- rapidjson::Value& v_errcode = document["errcode"];
- int errcode = v_errcode.GetInt();
- if (errcode != 0)
- {
- return;
- }
- if (!document.HasMember("data"))
- {
- return;
- }
- //网络请求结束,要进行处理了,加锁
- m_table_mutex.lock();
- m_tableLayout = static_cast<CVerticalLayoutUI*>(this->FindSubControl(_T("zhengcan_tablelist")));
- m_tableLayout->RemoveAll();
- m_table_items.clear();
- rapidjson::Value& data = document["data"];
- rapidjson::Value& table = data["table"];
- m_table_num = 0;
- for (rapidjson::SizeType i = 0; i < table.Size(); ++i)
- {
- rapidjson::Value& tableinfo = table[i];
- CDialogBuilder builder;
- CDialogBuilderCallbackEx cb;
- CZhengcanTableItemUI* pItem = static_cast<CZhengcanTableItemUI*>(builder.Create(_T("zhengcan_tableitem.xml"), (UINT)0, &cb, m_pManager));
- pItem->SetInfo(CLewaimaiJson::ToString(tableinfo["table_id"]), CLewaimaiJson::ToString(tableinfo["name"]), CLewaimaiJson::ToString(tableinfo["type_id"]), CLewaimaiJson::ToString(tableinfo["status"]), CLewaimaiJson::ToString(tableinfo["order_init_time"]), CLewaimaiJson::ToString(tableinfo["from_type"]), CLewaimaiJson::ToString(tableinfo["order_status"]), CLewaimaiJson::ToString(tableinfo["order_id"]), CLewaimaiJson::ToString(tableinfo["limit_number"]), CLewaimaiJson::ToString(tableinfo["person_num"]));
- pItem->UpdateShow();
- m_tableLayout->Add(pItem);
- m_table_items.push_back(pItem);
-
- m_table_num++;
- }
- CVerticalLayoutUI* pTableLayout = static_cast<CVerticalLayoutUI*>(this->FindSubControl(_T("zhengcan_tablelist")));
- pTableLayout->SetVisible(true);
- this->FindSubControl(_T("loading"))->SetVisible(false);
- m_table_mutex.unlock();
- UpdateTablePos();
- if (m_nModel == 1)
- {
-
- }
- else if (m_nModel == 2)
- {
- ShowZhuanTai();
- }
- //每次刷新桌子之后,刷新扫码点餐数量
- this->UpdateSaomadiancanNum();
- }
- void CZhengcanPageUI::UpdateTablePos()
- {
- m_table_mutex.lock();
- int nTableNum = m_table_num;
- //添加支付方式
- int nWidth = m_nPageWidth;
- if (nWidth == 0)
- {
- m_table_mutex.unlock();
- return;
- }
- //根据宽度计算每行显示的数量
- int nMeihangNum = (nWidth - 20) / 187;
- if (nMeihangNum < 1)
- {
- nMeihangNum = 1;
- }
- int num = 0;
- CVerticalLayoutUI* pTabllistLayout = static_cast<CVerticalLayoutUI*>(this->FindSubControl(_T("zhengcan_tablelist")));
- for (int i = 0; i < nTableNum; i++)
- {
- CButtonUI* curItem = static_cast<CButtonUI*>(pTabllistLayout->GetItemAt(i));
- int curRow = num / nMeihangNum + 1;
- int curCol = num % nMeihangNum + 1;
- RECT rect;
- rect.left = (curCol - 1) * 187 + 10;
- rect.right = rect.left + 177;
- rect.top = (curRow - 1) * 150 + 10;
- rect.bottom = rect.top + 140;
- curItem->SetFloat(true);
- curItem->SetPos(rect);
- num++;
- }
- //调整区域高度
- int lastRow = (num - 1) / nMeihangNum + 1;
- pTabllistLayout->SetFixedHeight(lastRow * 150 + 10);
- SIZE size;
- size.cx = 0;
- size.cy = 0;
- CVerticalLayoutUI* pFenleiLayoutScroll = static_cast<CVerticalLayoutUI*>(this->FindSubControl(_T("zhengcan_tablelist_scrolllayout")));
- pFenleiLayoutScroll->SetScrollPos(size);
- m_table_mutex.unlock();
- //更新转台操作栏的位置
- CHorizontalLayoutUI* pZhuantaiLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("zhengcan_zhuantai_layout")));
- CVerticalLayoutUI* pFenleiScrollLayout = static_cast<CVerticalLayoutUI*>(this->FindSubControl(_T("zhengcan_zhuozi_type_layout_scrolllayout")));
- int nFenleiHeight = pFenleiScrollLayout->GetFixedHeight();
- RECT rect;
- rect.left = (nWidth - 700) / 2;
- rect.right = rect.left + 700;
- rect.top = m_nPageHeight - 80 - 30 - nFenleiHeight;
- rect.bottom = rect.top + 80;
- pZhuantaiLayout->SetPos(rect);
- //更新扫码点餐操作栏的位置
- CHorizontalLayoutUI* pSaomadiancanLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("zhengcan_saomadiancan_layout")));
- rect.left = nWidth - 250;
- rect.right = rect.left + 250;
- rect.top = nFenleiHeight + 200;
- rect.bottom = rect.top + 102;
- pSaomadiancanLayout->SetPos(rect);
- }
- void CZhengcanPageUI::ClickTableAction()
- {
- std::string table_id = m_cur_click_table_item->GetTableId();
- std::string status = m_cur_click_table_item->GetStatus();
- std::string order_id = m_cur_click_table_item->GetOrderId();
- std::string table_name = m_cur_click_table_item->GetTableName();
- std::string order_status = m_cur_click_table_item->GetOrderStatus();
- if (m_nModel == 1)
- {
- if (status == "0")
- {
- //未开台,弹框进行人数选择
- CZhengcanKaitaiWnd* pKaitaiDlg = new CZhengcanKaitaiWnd();
- if (pKaitaiDlg != NULL)
- {
- pKaitaiDlg->Create(m_pManager->GetPaintWindow(), _T(""), UI_WNDSTYLE_DIALOG, WS_EX_WINDOWEDGE);
- pKaitaiDlg->SetIcon(IDI_ICON_DUILIB);
- pKaitaiDlg->CenterWindow();
- pKaitaiDlg->SetTitle(CLewaimaiString::UTF8ToUnicode(table_name));
- UINT ret = pKaitaiDlg->ShowModal();
- if (ret == IDOK)
- {
- //这说明人数输入了
- std::string renshu = pKaitaiDlg->getContent();
- bool ret = this->Kaitai(table_id, renshu);
- if (ret == true)
- {
- //开台成功,进入桌子
- this->EnterTable(table_id);
- }
- else
- {
- this->m_pMainWnd->ShowToast(L"开台失败!");
- }
- delete pKaitaiDlg;
- }
- else
- {
- delete pKaitaiDlg;
- return;
- }
- }
- }
- else if (status == "1")
- {
- //预约中
- }
- else if (status == "2")
- {
- if (order_status == "SUCCESS")
- {
- //表示已支付待清台
- CAttentionWnd* pKaitaiDlg = new CAttentionWnd();
- if (pKaitaiDlg != NULL)
- {
- pKaitaiDlg->Create(m_pManager->GetPaintWindow(), _T(""), UI_WNDSTYLE_DIALOG, WS_EX_WINDOWEDGE);
- pKaitaiDlg->SetIcon(IDI_ICON_DUILIB);
- pKaitaiDlg->CenterWindow();
- pKaitaiDlg->SetTitle(CLewaimaiString::UTF8ToUnicode(table_name));
- pKaitaiDlg->SetContent(L"该桌子已结账,确定要对该桌子进行清台吗?");
- UINT ret = pKaitaiDlg->ShowModal();
- if (ret == IDOK)
- {
- //开始对桌子进行清台
- this->StartQingtai();
- delete pKaitaiDlg;
- }
- else
- {
- delete pKaitaiDlg;
- return;
- }
- }
- }
- else
- {
- //已开台
- this->EnterTable(table_id);
- }
- }
- }
- else if (m_nModel == 2)
- {
- if (status == "0")
- {
- if (m_cur_zhuanru_item != NULL)
- {
- m_cur_zhuanru_item->ShowZhuanru(false);
- }
- //未开台,正常选中
- m_cur_zhuanru_item = m_cur_click_table_item;
- m_cur_zhuanru_item->ShowZhuanru(true);
- CButtonUI* zhuantaiQuerenBtn = static_cast<CButtonUI*>(this->FindSubControl(L"zhengcan_zhuantai_queding"));
- zhuantaiQuerenBtn->SetEnabled(true);
- }
- else if (status == "1")
- {
- //预约中
- m_pMainWnd->ShowToast(L"只有未开台的桌子才能转入");
- }
- else if (status == "2")
- {
- //已开台
- m_pMainWnd->ShowToast(L"只有未开台的桌子才能转入");
- }
- }
- }
- bool CZhengcanPageUI::Kaitai(std::string table_id, std::string renshu)
- {
- std::map<string, string> params;
- params["table_id"] = table_id;
- params["person"] = renshu;
- std::string response;
- std::string url = "/dinnercash/opentable";
- bool ret = CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
- if (ret == false)
- {
- return false;
- }
- rapidjson::Document document;
- document.Parse(response.c_str());
- if (document.HasParseError())
- {
- LOG_INFO("parse response error!");
- return false;
- }
- if (!document.HasMember("errcode") || !document.HasMember("errmsg"))
- {
- LOG_INFO("json error!");
- return false;
- }
- rapidjson::Value& v_errcode = document["errcode"];
- int errcode = v_errcode.GetInt();
- if (errcode != 0)
- {
- return false;
- }
- if (!document.HasMember("data"))
- {
- return false;
- }
- rapidjson::Value& data = document["data"];
- return true;
- }
- void CZhengcanPageUI::EnterTable(std::string table_id)
- {
- CZhengcanDiandanPageUI* page = static_cast<CZhengcanDiandanPageUI*>(m_pMainWnd->GetPage(CMainWnd::ZHENGCANDIANDAN));
- page->SetTableId(table_id);
- m_pMainWnd->SwitchPage(CMainWnd::ZHENGCANDIANDAN);
- }
- void CZhengcanPageUI::SetModel(int nModel)
- {
- m_nModel = nModel;
- }
- void CZhengcanPageUI::SetHuantaiTableId(std::string tableId)
- {
- m_HuantaiTableId = tableId;
- }
- void CZhengcanPageUI::ShowZhuanTai()
- {
- if (m_nModel != 2)
- {
- return;
- }
- //展示转出标记
- for (std::vector<CZhengcanTableItemUI*>::iterator it = m_table_items.begin(); it != m_table_items.end(); it++)
- {
- if ((*it)->GetTableId() == m_HuantaiTableId)
- {
- (*it)->ShowZhuanchu(true);
-
- break;
- }
- }
- //展示转出悬浮条
- CHorizontalLayoutUI* pZhuantaiLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("zhengcan_zhuantai_layout")));
- pZhuantaiLayout->SetVisible(true);
- //禁用转入悬浮条的确认按钮
- CButtonUI* zhuantaiQuerenBtn = static_cast<CButtonUI*>(this->FindSubControl(L"zhengcan_zhuantai_queding"));
- zhuantaiQuerenBtn->SetEnabled(false);
- //初始化转入没选中
- m_cur_zhuanru_item = NULL;
- }
- void CZhengcanPageUI::CancelZhuanTai()
- {
- m_nModel = 1;
- for (std::vector<CZhengcanTableItemUI*>::iterator it = m_table_items.begin(); it != m_table_items.end(); it++)
- {
- if ((*it)->GetTableId() == m_HuantaiTableId)
- {
- (*it)->ShowZhuanchu(false);
- break;
- }
- }
- CHorizontalLayoutUI* pZhuantaiLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("zhengcan_zhuantai_layout")));
- pZhuantaiLayout->SetVisible(false);
- if (m_cur_zhuanru_item != NULL)
- {
- m_cur_zhuanru_item->ShowZhuanru(false);
- m_cur_zhuanru_item = NULL;
- }
- }
- void CZhengcanPageUI::QurenZhuantai()
- {
- if (m_nModel != 2)
- {
- return;
- }
- if (m_cur_zhuanru_item == NULL)
- {
- m_pMainWnd->ShowToast(L"还未选择转入桌子,无法确认");
- }
- std::string ZhuanruTableId = m_cur_zhuanru_item->GetTableId();
- std::map<string, string> params;
- params["old_table_id"] = m_HuantaiTableId;
- params["new_table_id"] = ZhuanruTableId;
- std::string response;
- std::string url = "/dinnercash/changetable";
- bool ret = CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
- if (ret == false)
- {
- m_pMainWnd->ShowToast(L"服务器错误,转台失败");
- return;
- }
- rapidjson::Document document;
- document.Parse(response.c_str());
- if (document.HasParseError())
- {
- m_pMainWnd->ShowToast(L"服务器错误,转台失败");
- return;
- }
- if (!document.HasMember("errcode") || !document.HasMember("errmsg"))
- {
- m_pMainWnd->ShowToast(L"服务器错误,转台失败");
- return;
- }
- rapidjson::Value& v_errcode = document["errcode"];
- int errcode = v_errcode.GetInt();
- if (errcode != 0)
- {
- m_pMainWnd->ShowToast(L"服务器错误,转台失败");
- return;
- }
- if (!document.HasMember("data"))
- {
- m_pMainWnd->ShowToast(L"服务器错误,转台失败");
- return;
- }
- rapidjson::Value& data = document["data"];
- //走到这里说明转台成功了
- m_nModel = 1;
- CHorizontalLayoutUI* pZhuantaiLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("zhengcan_zhuantai_layout")));
- pZhuantaiLayout->SetVisible(false);
- InitShow();
- }
- void CZhengcanPageUI::StartQingtai()
- {
- //开始转菊花
- CVerticalLayoutUI* pTableLayout = static_cast<CVerticalLayoutUI*>(this->FindSubControl(_T("zhengcan_tablelist")));
- pTableLayout->SetVisible(false);
- this->FindSubControl(_T("loading"))->SetVisible(true);
- //启动一个线程,进行网络请求操作
- std::thread t(&CZhengcanPageUI::DoQingtai, this);
- t.detach();
- }
- void CZhengcanPageUI::DoQingtai()
- {
- std::map<string, string> params;
- params["order_id"] = m_cur_click_table_item->GetOrderId();
- std::string response;
- std::string url = "/dinnercash/cleartable";
- bool ret = CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
- if (ret == false)
- {
- return;
- }
- rapidjson::Document document;
- document.Parse(response.c_str());
- if (document.HasParseError())
- {
- LOG_INFO("parse response error!");
- return;
- }
- if (!document.HasMember("errcode") || !document.HasMember("errmsg"))
- {
- LOG_INFO("json error!");
- return;
- }
- rapidjson::Value& v_errcode = document["errcode"];
- int errcode = v_errcode.GetInt();
- if (errcode != 0)
- {
- return;
- }
- if (!document.HasMember("data"))
- {
- return;
- }
- //清台成功,这时候要刷新桌子
- DoRefreshTable();
- }
- void CZhengcanPageUI::SaomadiancanClick()
- {
- if (m_nSaomadiancanNum == 0)
- {
- m_pMainWnd->ShowToast(L"暂时没有需要处理的扫码点餐订单");
- return;
- }
- //弹框对扫码点餐的进行处理
- CZhengcanSaomadiancanWnd* pSaomadiancanDlg = new CZhengcanSaomadiancanWnd();
- if (pSaomadiancanDlg != NULL)
- {
- pSaomadiancanDlg->SetPageUI(this);
- pSaomadiancanDlg->Create(m_pManager->GetPaintWindow(), _T(""), UI_WNDSTYLE_DIALOG, WS_EX_WINDOWEDGE);
- pSaomadiancanDlg->SetIcon(IDI_ICON_DUILIB);
- pSaomadiancanDlg->CenterWindow();
- pSaomadiancanDlg->SetTitle(L"扫码点餐待处理");
- UINT ret = pSaomadiancanDlg->ShowModal();
- if (ret == IDOK)
- {
-
- delete pSaomadiancanDlg;
- }
- else
- {
-
- delete pSaomadiancanDlg;
- }
- }
- }
- void CZhengcanPageUI::UpdateSaomadiancanNum()
- {
- std::map<string, string> params;
- params["order_id"] = "0";
- std::string response;
- std::string url = "/dinnercash/getnothandleordernumber";
- bool ret = CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
- if (ret == false)
- {
- return;
- }
- rapidjson::Document document;
- document.Parse(response.c_str());
- if (document.HasParseError())
- {
- LOG_INFO("parse response error!");
- return;
- }
- if (!document.HasMember("errcode") || !document.HasMember("errmsg"))
- {
- LOG_INFO("json error!");
- return;
- }
- rapidjson::Value& v_errcode = document["errcode"];
- int errcode = v_errcode.GetInt();
- if (errcode != 0)
- {
- return;
- }
- if (!document.HasMember("data"))
- {
- return;
- }
- rapidjson::Value& data = document["data"];
- std::string total = CLewaimaiJson::ToString(data["total"]);
- m_nSaomadiancanNum = atoi(total.c_str());
- CLabelUI* numLabel = static_cast<CLabelUI*>(this->FindSubControl(L"zhengcan_saomadiancan_num_value"));
- numLabel->SetText(CLewaimaiString::UTF8ToUnicode(total).c_str());
- }
|