#include "../pch/pch.h" #include "CWaimaiOrderInfoUI.h" #include "ControlEx.h" void CWaimaiOrderInfoUI::DoEvent(TEventUI& event) { CVerticalLayoutUI::DoEvent(event); } void CWaimaiOrderInfoUI::Refresh(CWaimaiOrder& order) { std::wstring liushuihao_show = L"#" + CLewaimaiString::UTF8ToUnicode(order.m_restaurant_number); this->FindSubControl(_T("waimai_order_info_page_liushuihao"))->SetText(liushuihao_show.c_str()); std::wstring order_no_show = L"订单号:" + CLewaimaiString::UTF8ToUnicode(order.m_order_no); this->FindSubControl(_T("waimai_order_info_page_order_no"))->SetText(order_no_show.c_str()); //商品详情的渲染 CListUI* pFoodList = static_cast(this->FindSubControl(_T("waimai_order_info_page_foodlist"))); pFoodList->RemoveAll(); for (std::vector::iterator it = order.m_order_items.begin(); it != order.m_order_items.end(); it++) { std::string food_name = (*it).m_food_name; std::string food_price = (*it).m_item_price; std::string quantity = (*it).m_quantity; CDialogBuilder builder; CListContainerElementUI* pEle = static_cast(builder.Create(_T("waimai_order_info_page_listitem.xml"), (UINT)0, NULL, m_pManager)); CLabelUI *pName = static_cast(pEle->FindSubControl(_T("waimai_order_info_page_listitem_foodname"))); pName->SetText(CLewaimaiString::UTF8ToUnicode(food_name).c_str()); CLabelUI *pQuantity = static_cast(pEle->FindSubControl(_T("waimai_order_info_page_listitem_quantity"))); pQuantity->SetText(CLewaimaiString::UTF8ToUnicode(quantity).c_str()); CLabelUI *pPrice = static_cast(pEle->FindSubControl(_T("waimai_order_info_page_listitem_price"))); pPrice->SetText(CLewaimaiString::UTF8ToUnicode(food_price).c_str()); pFoodList->Add(pEle); } pFoodList->SetFixedHeight(1000); CLabelUI *pMemo = static_cast(this->FindSubControl(_T("waimaorder_info_page_memo"))); wstring memo = _T("备注:") + CLewaimaiString::UTF8ToUnicode(order.m_memo); pMemo->SetText(memo.c_str()); //开始展示各种费用 CLabelUI *pDlieveryFee = static_cast(this->FindSubControl(_T("waimai_order_info_page_delivery_fee"))); if (order.m_delivery > 0) { pDlieveryFee->SetVisible(true); wstring delivery_fee = L"配送费:" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString((double)order.m_delivery, 2)); pDlieveryFee->SetText(delivery_fee.c_str()); } else { pDlieveryFee->SetVisible(false); } CLabelUI *pDabaoFee = static_cast(this->FindSubControl(_T("waimai_order_info_page_dabao_fee"))); if (order.m_is_dabao == "1") { pDabaoFee->SetVisible(true); wstring dabao_fee = L"打包费:" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString((double)order.m_delivery, 2)); pDabaoFee->SetText(dabao_fee.c_str()); } else { pDabaoFee->SetVisible(false); } //增值服务费 CVerticalLayoutUI* pAddserviceLayout = static_cast(this->FindSubControl(_T("waimai_order_info_page_addservice"))); pAddserviceLayout->RemoveAll(); if (order.m_addservie.size() > 0) { for (std::vector::iterator it = order.m_addservie.begin(); it != order.m_addservie.end(); it++) { wstring addservice = CLewaimaiString::UTF8ToUnicode((*it).name) + L":" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString((double)atof((*it).value.c_str()), 2)); CLabelUI* newField = new CLabelUI(); newField->SetText(addservice.c_str()); newField->SetFixedHeight(38); pAddserviceLayout->Add(newField); } } //店铺折扣 CLabelUI *pDiscountFee = static_cast(this->FindSubControl(_T("waimai_order_info_page_discount"))); if (order.m_discount < 10) { pDiscountFee->SetVisible(true); wstring discount = L"店铺折扣:" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString((double)order.m_discount, 2)) + L"折"; pDiscountFee->SetText(discount.c_str()); } else { pDiscountFee->SetVisible(false); } //会员优惠 CLabelUI *pMemberFee = static_cast(this->FindSubControl(_T("waimai_order_info_page_memberfee"))); if (order.m_is_member_discount == "1") { pMemberFee->SetVisible(true); wstring memberfee = L"会员优惠:-" + CLewaimaiString::UTF8ToUnicode(order.m_member_discount); pDiscountFee->SetText(memberfee.c_str()); } else { pMemberFee->SetVisible(false); } //首单优惠 CLabelUI *pFirstCut = static_cast(this->FindSubControl(_T("waimai_order_info_page_firstcut"))); if (order.m_is_firstcut == "1") { pFirstCut->SetVisible(true); wstring firstcut = L"首单优惠:-" + CLewaimaiString::UTF8ToUnicode(order.m_firstcut_value); pFirstCut->SetText(firstcut.c_str()); } else { pFirstCut->SetVisible(false); } //满减 CLabelUI *pManjian = static_cast(this->FindSubControl(_T("waimai_order_info_page_manjian"))); string::size_type position = order.m_promotion.find(":"); if (position != order.m_promotion.npos) { pManjian->SetVisible(true); string promotion_value; promotion_value.assign(order.m_promotion, position + 1); wstring promotion = L"满减优惠:-" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString((double)(atof(promotion_value.c_str())), 2)); pManjian->SetText(promotion.c_str()); } else { pManjian->SetVisible(false); } //优惠券 CLabelUI *pCoupon = static_cast(this->FindSubControl(_T("waimai_order_info_page_coupon"))); if (order.m_coupon > 0) { pCoupon->SetVisible(true); wstring coupon = L"优惠券:-" + CLewaimaiString::UTF8ToUnicode(CLewaimaiString::DoubleToString((double)order.m_coupon, 2)); pCoupon->SetText(coupon.c_str()); } else { pCoupon->SetVisible(false); } //商品券 CLabelUI *pGoodsCoupon = static_cast(this->FindSubControl(_T("waimai_order_info_page_goodscoupon"))); if (atof(order.m_goods_coupon_value.c_str()) > 0.0001) { pGoodsCoupon->SetVisible(true); wstring goods_coupon = L"商品券:-" + CLewaimaiString::UTF8ToUnicode(order.m_goods_coupon_value); pGoodsCoupon->SetText(goods_coupon.c_str()); } else { pGoodsCoupon->SetVisible(false); } std::wstring name_show = L"姓名:" + CLewaimaiString::UTF8ToUnicode(order.m_customer_name); this->FindSubControl(_T("waimai_order_info_page_name"))->SetText(name_show.c_str()); std::wstring phone_show = L"电话:" + CLewaimaiString::UTF8ToUnicode(order.m_phone); this->FindSubControl(_T("waimai_order_info_page_phone"))->SetText(phone_show.c_str()); std::wstring address_show = L"地址:" + CLewaimaiString::UTF8ToUnicode(order.m_address); this->FindSubControl(_T("waimai_order_info_page_address"))->SetText(address_show.c_str()); std::wstring order_date_show = L"下单时间:" + CLewaimaiString::UTF8ToUnicode(order.m_order_date); this->FindSubControl(_T("waimai_order_info_page_init_date"))->SetText(order_date_show.c_str()); if (order.m_is_selftake == "1") { CLabelUI *pDeliveryType = static_cast(this->FindSubControl(_T("waimai_order_info_page_delivery_type"))); wstring wsDeliveryType = _T("配送方式:到店自取(取餐号:") + CLewaimaiString::UTF8ToUnicode(order.m_take_food_code) + _T(")"); pDeliveryType->SetText(wsDeliveryType.c_str()); } else { CLabelUI *pDeliveryType = static_cast(this->FindSubControl(_T("waimai_order_info_page_delivery_type"))); wstring wsDeliveryType = _T("配送方式:外卖配送"); pDeliveryType->SetText(wsDeliveryType.c_str()); } CLabelUI *pType = static_cast(this->FindSubControl(_T("waimai_order_info_page_type"))); wstring wsType = _T("订单来源:") + CLewaimaiString::UTF8ToUnicode(order.m_from_type); pType->SetText(wsType.c_str()); //预设选项 CVerticalLayoutUI* pLayout = static_cast(this->FindSubControl(_T("waimai_order_info_page_field"))); pLayout->RemoveAll(); if (order.m_order_field.size() > 1) { for (std::vector::iterator it = order.m_order_field.begin(); it != order.m_order_field.end() - 1; it++) { wstring order_field = CLewaimaiString::UTF8ToUnicode((*it).name) + L":" + CLewaimaiString::UTF8ToUnicode((*it).value); CLabelUI* newField = new CLabelUI(); newField->SetText(order_field.c_str()); newField->SetFixedHeight(30); pLayout->Add(newField); } } //配送时间 wstring delivery_date; if (order.m_is_selftake == "1") { delivery_date = L"自取时间:" + CLewaimaiString::UTF8ToUnicode(order.m_delivery_date); } else { delivery_date = L"配送时间:" + CLewaimaiString::UTF8ToUnicode(order.m_delivery_date); } CLabelUI *pTime = static_cast(this->FindSubControl(_T("waimai_order_info_page_delivery_time"))); pTime->SetText(delivery_date.c_str()); CLabelUI *pPayType = static_cast(this->FindSubControl(_T("waimai_order_info_page_pay_type"))); wstring wsPayType = _T("付款方式:") + CLewaimaiString::UTF8ToUnicode(order.m_pay_type); pPayType->SetText(wsPayType.c_str()); }