| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366 |
- #include "pch.h"
- #include "CWaimaiOrderItemUI.h"
- CWaimaiOrderItemUI::CWaimaiOrderItemUI()
- {
- }
- CWaimaiOrderItemUI::~CWaimaiOrderItemUI()
- {
- }
- void CWaimaiOrderItemUI::SetData(rapidjson::Value& orderinfo)
- {
- m_name = orderinfo["customer_name"].GetString();
- m_address = orderinfo["address"].GetString();
- m_phone = orderinfo["customer_phone"].GetString();
- m_price = orderinfo["price"].GetString();
- m_order_no = orderinfo["order_no"].GetString();
- m_init_date = orderinfo["init_date"].GetString();
- m_is_selftake = orderinfo["is_selftake"].GetString();
- m_delivery_date = orderinfo["delivery_date"].GetString();
- m_deliverytime = orderinfo["delivertime"].GetString();
- m_restaurant_number = orderinfo["restaurant_number"].GetString();
- m_orderid = orderinfo["id"].GetString();
- m_from_type = orderinfo["from_type"].GetString();
- m_take_food_code = CLewaimaiJson::ToString(orderinfo["take_food_code"]);
- m_is_self_delivery = CLewaimaiJson::ToString(orderinfo["is_self_delivery"]);
- m_is_book = CLewaimaiJson::ToString(orderinfo["is_book"]);
- std::string third_delivery_fee = CLewaimaiJson::ToString(orderinfo["third_delivery_fee"]);
- std::string courier_type = CLewaimaiJson::ToString(orderinfo["courier_type"]);
- // 值写入 _val 控件,标签文本保留在 XML 静态(两列式,无冒号)
- this->FindSubControl(L"waimai_order_list_name_val")->SetText(CLewaimaiString::UTF8ToUnicode(m_name).c_str());
- this->FindSubControl(L"waimai_order_list_address_val")->SetText(CLewaimaiString::UTF8ToUnicode(m_address).c_str());
- this->FindSubControl(L"waimai_order_list_phone_val")->SetText(CLewaimaiString::UTF8ToUnicode(m_phone).c_str());
- this->FindSubControl(L"waimai_order_list_price_val")->SetText(CLewaimaiString::UTF8ToUnicode(m_price).c_str());
- this->FindSubControl(L"waimai_order_list_liushuihao_val")->SetText((L"#" + CLewaimaiString::UTF8ToUnicode(m_restaurant_number)).c_str());
- this->FindSubControl(L"waimai_order_list_order_num_val")->SetText(CLewaimaiString::UTF8ToUnicode(m_order_no).c_str());
- this->FindSubControl(L"waimai_order_list_init_date_val")->SetText(CLewaimaiString::UTF8ToUnicode(m_init_date).c_str());
- std::wstring order_type;
- std::wstring delivery_date;
- CHorizontalLayoutUI* pZiquLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(L"waimai_order_list_ziqu_layout"));
- CHorizontalLayoutUI* pPeisongLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(L"waimai_order_list_peisong_layout"));
- if (m_is_selftake == "1")
- {
- order_type = L"到店自取";
- delivery_date = CLewaimaiString::UTF8ToUnicode(m_deliverytime);
- this->FindSubControl(L"waimai_order_list_ziqu")->SetVisible(true);
- pZiquLayout->SetVisible(true);
- pPeisongLayout->SetVisible(false);
- CLabelUI* qucanhaoLabel = static_cast<CLabelUI*>(this->FindSubControl(L"waimai_order_list_ziqu_qucanhao"));
- qucanhaoLabel->SetText((L"取餐号:" + CLewaimaiString::UTF8ToUnicode(m_take_food_code)).c_str());
- }
- else
- {
- order_type = L"外卖配送";
- delivery_date = CLewaimaiString::UTF8ToUnicode(m_deliverytime);
- this->FindSubControl(L"waimai_order_list_ziqu")->SetVisible(false);
- pZiquLayout->SetVisible(false);
- pPeisongLayout->SetVisible(true);
- CLabelUI* peisongLabel = static_cast<CLabelUI*>(this->FindSubControl(L"waimai_order_list_peisong_type"));
- CButtonUI* fadanBtn = static_cast<CButtonUI*>(this->FindSubControl(L"waimai_order_list_peisong_fadan"));
- CButtonUI* quxiaoFadanBtn = static_cast<CButtonUI*>(this->FindSubControl(L"waimai_order_list_peisong_quxiaofadan"));
- CLabelUI* fadanInfoLabel = static_cast<CLabelUI*>(this->FindSubControl(L"waimai_order_list_peisong_fadan_info"));
- if (m_status == 2)
- {
- //针对已确认非配送中订单进行处理
- if ((m_from_type == CLewaimaiString::UnicodeToUTF8(L"美团外卖") || m_from_type == CLewaimaiString::UnicodeToUTF8(L"饿了么")) && m_is_self_delivery == "0")
- {
- //美团饿了么订单,并且非商家自配送订单
- peisongLabel->SetText(L"外卖平台专送订单,等待骑手接单");
- peisongLabel->SetTextColor(0xFFFF4500);
- //隐藏发单按钮
- fadanBtn->SetVisible(false);
- fadanInfoLabel->SetVisible(false);
- quxiaoFadanBtn->SetVisible(false);
- }
- else
- {
- peisongLabel->SetText(L"自配送订单");
- peisongLabel->SetTextColor(0xFF509962);
- if (atof(third_delivery_fee.c_str()) > 0.0001)
- {
- //第三方配送费大于0,说明已经发单给第三方了
- fadanBtn->SetVisible(false);
- fadanInfoLabel->SetVisible(true);
- quxiaoFadanBtn->SetVisible(true);
- if (courier_type == "3")
- {
- fadanInfoLabel->SetText(L"已发单给快服务,等待骑手接单...");
- }
- else if (courier_type == "5")
- {
- fadanInfoLabel->SetText(L"已发单给达达,等待骑手接单...");
- }
- else if (courier_type == "7")
- {
- fadanInfoLabel->SetText(L"已发单给顺丰同城,等待骑手接单...");
- }
- else if (courier_type == "8")
- {
- fadanInfoLabel->SetText(L"已发单给乐外卖同城配送,等待骑手接单...");
- }
- else if (courier_type == "9")
- {
- fadanInfoLabel->SetText(L"已发单给蜂鸟配送,等待骑手接单...");
- }
- }
- else
- {
- //说明还没发第三方配送
- fadanBtn->SetVisible(true);
- fadanInfoLabel->SetVisible(false);
- quxiaoFadanBtn->SetVisible(false);
- }
- }
- }
- else if (m_status == 3)
- {
- //针对已确认非配送中订单进行处理
- if ((m_from_type == CLewaimaiString::UnicodeToUTF8(L"美团外卖") || m_from_type == CLewaimaiString::UnicodeToUTF8(L"饿了么")) && m_is_self_delivery == "0")
- {
- //美团饿了么订单,并且非商家自配送订单
- peisongLabel->SetText(L"外卖平台专送订单,骑手已接单");
- peisongLabel->SetTextColor(0xFFFF4500);
- //隐藏发单按钮
- fadanBtn->SetVisible(false);
- fadanInfoLabel->SetVisible(false);
- quxiaoFadanBtn->SetVisible(false);
- }
- else
- {
- peisongLabel->SetText(L"自配送订单,骑手已接单");
- peisongLabel->SetTextColor(0xFF509962);
- //针对配送中订单进行处理
- fadanBtn->SetVisible(false);
- std::string courier_name = CLewaimaiJson::ToString(orderinfo["courier_name"]);
- std::string courier_phone = CLewaimaiJson::ToString(orderinfo["courier_phone"]);
- std::wstring qishou_type = L"";
- if (courier_type == "1")
- {
- qishou_type = L"自配送";
- }
- else if (courier_type == "3")
- {
- qishou_type = L"快服务";
- }
- else if (courier_type == "5")
- {
- qishou_type = L"达达";
- }
- else if (courier_type == "7")
- {
- qishou_type = L"顺丰同城";
- }
- else if (courier_type == "8")
- {
- qishou_type = L"乐外卖";
- }
- else if (courier_type == "9")
- {
- qishou_type = L"蜂鸟";
- }
- std::wstring qishouInfo;
- qishouInfo += qishou_type + L"骑手:" + CLewaimaiString::UTF8ToUnicode(courier_name) + L"," + CLewaimaiString::UTF8ToUnicode(courier_phone);
- fadanInfoLabel->SetVisible(true);
- fadanInfoLabel->SetText(qishouInfo.c_str());
- quxiaoFadanBtn->SetVisible(true);
- }
- }
- else
- {
- //针对已确认非配送中订单进行处理
- if ((m_from_type == CLewaimaiString::UnicodeToUTF8(L"美团外卖") || m_from_type == CLewaimaiString::UnicodeToUTF8(L"饿了么")) && m_is_self_delivery == "0")
- {
- //美团饿了么订单,并且非商家自配送订单
- peisongLabel->SetText(L"外卖平台专送订单");
- peisongLabel->SetTextColor(0xFFFF4500);
- //隐藏发单按钮
- fadanBtn->SetVisible(false);
- fadanInfoLabel->SetVisible(false);
- quxiaoFadanBtn->SetVisible(false);
- }
- else
- {
- peisongLabel->SetText(L"自配送订单");
- peisongLabel->SetTextColor(0xFF509962);
- }
- fadanBtn->SetVisible(false);
- fadanInfoLabel->SetVisible(false);
- quxiaoFadanBtn->SetVisible(false);
- }
- }
- //显示预约的戳
- if (m_is_book == "0")
- {
- this->FindSubControl(L"waimai_order_list_yuyue")->SetVisible(false);
- }
- else
- {
- this->FindSubControl(L"waimai_order_list_yuyue")->SetVisible(true);
- }
- this->FindSubControl(L"waimai_order_list_type_val")->SetText(order_type.c_str());
- this->FindSubControl(L"waimai_order_list_delivery_date_val")->SetText(delivery_date.c_str());
- CControlUI* meituan_icon = this->FindSubControl(L"waimai_order_list_meituan_icon");
- CControlUI* eleme_icon = this->FindSubControl(L"waimai_order_list_eleme_icon");
- CControlUI* zhipuzi_icon = this->FindSubControl(L"waimai_order_list_zhipuzi_icon");
- if (m_from_type == CLewaimaiString::UnicodeToUTF8(L"美团外卖"))
- {
- meituan_icon->SetVisible(true);
- }
- else if (m_from_type == CLewaimaiString::UnicodeToUTF8(L"饿了么"))
- {
- eleme_icon->SetVisible(true);
- }
- else
- {
- zhipuzi_icon->SetVisible(true);
- }
- if (m_status == 1)
- {
- this->FindSubControl(L"waimai_order_list_refund_status")->SetVisible(false);
- this->FindSubControl(L"waimai_order_list_refund_status_val")->SetVisible(false);
- this->FindSubControl(L"waimai_order_list_confirme")->SetVisible(true);
- this->FindSubControl(L"waimai_order_list_success")->SetVisible(false);
- this->FindSubControl(L"waimai_order_list_fail")->SetVisible(true);
- this->FindSubControl(L"waimai_order_list_agree")->SetVisible(false);
- this->FindSubControl(L"waimai_order_list_disagree")->SetVisible(false);
- }
- else if (m_status == 2 || m_status == 3)
- {
- this->FindSubControl(L"waimai_order_list_refund_status")->SetVisible(false);
- this->FindSubControl(L"waimai_order_list_refund_status_val")->SetVisible(false);
- this->FindSubControl(L"waimai_order_list_confirme")->SetVisible(false);
- this->FindSubControl(L"waimai_order_list_success")->SetVisible(true);
- this->FindSubControl(L"waimai_order_list_fail")->SetVisible(true);
- this->FindSubControl(L"waimai_order_list_agree")->SetVisible(false);
- this->FindSubControl(L"waimai_order_list_disagree")->SetVisible(false);
- }
- else if (m_status == 4 || m_status == 5)
- {
- this->FindSubControl(L"waimai_order_list_refund_status")->SetVisible(false);
- this->FindSubControl(L"waimai_order_list_refund_status_val")->SetVisible(false);
- this->FindSubControl(L"waimai_order_list_confirme")->SetVisible(false);
- this->FindSubControl(L"waimai_order_list_success")->SetVisible(false);
- this->FindSubControl(L"waimai_order_list_fail")->SetVisible(false);
- this->FindSubControl(L"waimai_order_list_agree")->SetVisible(false);
- this->FindSubControl(L"waimai_order_list_disagree")->SetVisible(false);
- }
- else if (m_status == 6)
- {
- this->FindSubControl(L"waimai_order_list_refund_status")->SetVisible(false);
- this->FindSubControl(L"waimai_order_list_refund_status_val")->SetVisible(false);
- this->FindSubControl(L"waimai_order_list_confirme")->SetVisible(false);
- this->FindSubControl(L"waimai_order_list_success")->SetVisible(false);
- this->FindSubControl(L"waimai_order_list_fail")->SetVisible(false);
- this->FindSubControl(L"waimai_order_list_agree")->SetVisible(false);
- this->FindSubControl(L"waimai_order_list_disagree")->SetVisible(false);
- }
- else if (m_status == 7)
- {
- this->FindSubControl(L"waimai_order_list_confirme")->SetVisible(false);
- this->FindSubControl(L"waimai_order_list_success")->SetVisible(false);
- this->FindSubControl(L"waimai_order_list_fail")->SetVisible(false);
- std::string refund_status = orderinfo["refund_status"].GetString();
- if (refund_status == "1")
- {
- this->FindSubControl(L"waimai_order_list_agree")->SetVisible(true);
- this->FindSubControl(L"waimai_order_list_disagree")->SetVisible(true);
- }
- else if (refund_status == "5")
- {
- this->FindSubControl(L"waimai_order_list_agree")->SetVisible(true);
- this->FindSubControl(L"waimai_order_list_disagree")->SetVisible(false);
- }
- else
- {
- this->FindSubControl(L"waimai_order_list_agree")->SetVisible(false);
- this->FindSubControl(L"waimai_order_list_disagree")->SetVisible(false);
- }
- this->FindSubControl(L"waimai_order_list_refund_status")->SetVisible(true);
- this->FindSubControl(L"waimai_order_list_refund_status_val")->SetVisible(true);
- std::wstring refund_status_text;
- if (refund_status == "1")
- {
- refund_status_text = L"顾客申请退款,等待商家处理";
- }
- else if (refund_status == "2")
- {
- refund_status_text = L"退款成功,订单失败";
- }
- else if (refund_status == "3")
- {
- refund_status_text = L"商家已拒绝退款,等待顾客受理";
- }
- else if (refund_status == "4")
- {
- refund_status_text = L"退款失败,订单变为已确认";
- }
- else if (refund_status == "5")
- {
- refund_status_text = L"顾客再次发起退款,等待客服介入处理中";
- }
- this->FindSubControl(L"waimai_order_list_refund_status_val")->SetText(refund_status_text.c_str());
- }
- // 左侧状态色条:默认绿色,失败/取消时变色(随卡片圆角,走专用 PNG)
- CControlUI* leftBar = static_cast<CControlUI*>(this->FindSubControl(L"waimai_order_item_leftbar"));
- if (leftBar != NULL)
- {
- if (m_status == 5)
- leftBar->SetBkImage(L"file='waimai_bar_red.png'"); // 失败 - 红色
- else if (m_status == 6)
- leftBar->SetBkImage(L"file='waimai_bar_gray.png'"); // 已取消 - 灰色
- else
- leftBar->SetBkImage(L"file='waimai_bar_green.png'"); // 其余 - 绿色
- }
- }
|