Parcourir la source

添加满赠
更新版本

zhangyang il y a 5 ans
Parent
commit
fe80941d03

BIN
bin/Win32/Release/setup/lewaimai_pos_windows_setup_1.0.2.4.exe


+ 1 - 1
bin/Win32/Release/setup/乐外卖接单软件安装脚本.nsi

@@ -2,7 +2,7 @@
 
 ; HM NIS Edit Wizard helper defines
 !define PRODUCT_NAME "乐外卖接单软件"
-!define PRODUCT_VERSION "1.0.2.4"
+!define PRODUCT_VERSION "1.0.2.6"
 !define PRODUCT_PUBLISHER "深圳市迅享科技有限公司"
 !define PRODUCT_WEB_SITE "https://www.lewaimai.com"
 !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\${PRODUCT_NAME}.exe"

+ 28 - 0
lewaimai_pos_windows/control/CWaimaiOrderInfoUI.cpp

@@ -41,8 +41,36 @@ void CWaimaiOrderInfoUI::Refresh(CWaimaiOrder& order)
 		pFoodList->Add(pEle);
 	}
 
+	if (order.m_manzeng_name.length() > 0)
+	{
+		//处理满赠的情况
+		std::string food_name = "【满赠】" + CLewaimaiString::UTF8ToANSI(order.m_manzeng_name);
+		std::string food_price = "";
+		std::string quantity = "";
+
+		CDialogBuilder builder;
+		CListContainerElementUI* pEle = static_cast<CListContainerElementUI *>(builder.Create(_T("waimai_order_info_page_listitem.xml"), (UINT)0, NULL, m_pManager));
+
+		CLabelUI *pName = static_cast<CLabelUI *>(pEle->FindSubControl(_T("waimai_order_info_page_listitem_foodname")));
+		pName->SetText(CLewaimaiString::ANSIToUnicode(food_name).c_str());
+
+		CLabelUI *pQuantity = static_cast<CLabelUI *>(pEle->FindSubControl(_T("waimai_order_info_page_listitem_quantity")));
+		pQuantity->SetText(CLewaimaiString::UTF8ToUnicode(quantity).c_str());
+
+		CLabelUI *pPrice = static_cast<CLabelUI *>(pEle->FindSubControl(_T("waimai_order_info_page_listitem_price")));
+		pPrice->SetText(CLewaimaiString::UTF8ToUnicode(food_price).c_str());
+
+		pFoodList->Add(pEle);
+	}
+
 	//重设商品列表的高度
 	int order_item_height = (order.m_order_items.size() + 1) * 30;
+
+	if (order.m_manzeng_name.length() > 0)
+	{
+		order_item_height += 30;
+	}
+
 	pFoodList->SetFixedHeight(order_item_height);
 
 	CLabelUI *pMemo = static_cast<CLabelUI *>(this->FindSubControl(_T("waimaorder_info_page_memo")));

+ 5 - 0
lewaimai_pos_windows/network/CLewaimaiHttpClient.cpp

@@ -152,6 +152,11 @@ bool CLewaimaiHttpClient::Request(std::string url, std::map<string, string> para
 		//ret为0表示没有出错
 		return true;
 	}
+	else
+	{
+		//返回值说明 https://blog.csdn.net/u011857683/article/details/53069268
+		LOG_INFO("request error, ret value:" << ret);
+	}
 
 	return false;
 }

+ 2 - 0
lewaimai_pos_windows/order/CWaimaiOrder.cpp

@@ -159,6 +159,8 @@ bool CWaimaiOrder::InitData(std::string order_id, std::string order_no)
 			}
 
 			m_show_qiangdan_qrcode = data["show_qiangdan_qrcode"].GetString();
+
+			m_manzeng_name = data["manzeng_name"].GetString();
 		}
 	}
 

+ 2 - 0
lewaimai_pos_windows/order/CWaimaiOrder.h

@@ -106,5 +106,7 @@ public:
 	std::vector<CWaimaiOrderField> m_addservie;
 
 	std::string m_show_qiangdan_qrcode;
+
+	std::string m_manzeng_name;
 };
 

BIN
lewaimai_pos_windows/resource/lewaimai_pos_windows.aps


BIN
lewaimai_pos_windows/resource/lewaimai_pos_windows.rc


+ 14 - 0
lewaimai_pos_windows/tool/CPosPrinter.cpp

@@ -692,6 +692,14 @@ void CPosPrinter::PrintWaimaiOrderShouyin(CWaimaiOrder& order)
 
         POS_FeedLine();
 
+		if (order.m_manzeng_name.length() > 0)
+		{
+			CWaimaiOrderItem manzengItem;
+			manzengItem.m_food_name = CLewaimaiString::ANSIToUTF8("【满赠】" + CLewaimaiString::UTF8ToANSI(order.m_manzeng_name));
+
+			order.m_order_items.push_back(manzengItem);
+		}
+
         //商品内容
         for(std::vector<CWaimaiOrderItem>::iterator it = order.m_order_items.begin(); it != order.m_order_items.end(); it++)
         {
@@ -703,6 +711,12 @@ void CPosPrinter::PrintWaimaiOrderShouyin(CWaimaiOrder& order)
             double item_price = atof(food_price.c_str()) * atof(quantity.c_str());
             std::string food_total_price = CLewaimaiString::DoubleToString(item_price, 2);
 
+			if (food_total_price == "0.00")
+			{
+				//这里是特殊处理满赠的展示
+				food_total_price = "";
+			}
+
             food_name = CLewaimaiString::UTF8ToANSI(food_name);
 
             //先输出商品名字

+ 6 - 37
lewaimai_pos_windows/wnd/CLoginWnd.cpp

@@ -81,11 +81,6 @@ void CLoginWnd::Notify(TNotifyUI& msg)
     {
         if(msg.pSender->GetName() == _T("closebtn"))
         {
-			if (m_is_login_ing)
-			{
-				return;
-			}
-
 			PostQuitMessage(0);
             return;
         }
@@ -305,11 +300,6 @@ LRESULT CLoginWnd::MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, bool&
 {
     if(uMsg == WM_KEYDOWN)
     {
-		if (m_is_login_ing)
-		{
-			return true;
-		}
-
         if(wParam == VK_RETURN)
         {
             CEditUI* pEdit = static_cast<CEditUI*>(m_pm.FindControl(_T("accountedit")));
@@ -326,8 +316,7 @@ LRESULT CLoginWnd::MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, bool&
                 }
                 else
                 {
-					SetFocus(m_hWnd);
-					this->StartLogin();
+                    this->HandleLogin();
                 }
             }
             return true;
@@ -352,6 +341,7 @@ LRESULT CLoginWnd::MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, bool&
 	else if (uMsg == WM_NEED_UPDATE)
 	{
 		//说明需要升级了
+
 		Update();
 
 		return true;
@@ -384,8 +374,6 @@ void CLoginWnd::StartLogin()
 
 void CLoginWnd::HandleLogin()
 {
-	m_is_login_ing = true;
-
 	CLabelUI* pLoginResultLabel = static_cast<CLabelUI*>(m_pm.FindControl(_T("loginresult")));
 
 	//真正登录前,先检测是否有需要更新
@@ -395,8 +383,6 @@ void CLoginWnd::HandleLogin()
 	bool ret = CLewaimaiHttpClient::Request("/version/getwindowsversion", params, response);
 	if (!ret)
 	{
-		m_is_login_ing = false;
-
 		pLoginResultLabel->SetText(std::wstring(_T("网络请求出错")).c_str());
 		pLoginResultLabel->SetVisible(true);
 
@@ -410,8 +396,6 @@ void CLoginWnd::HandleLogin()
 
 	if (document.HasParseError())
 	{
-		m_is_login_ing = false;
-
 		pLoginResultLabel->SetText(std::wstring(_T("服务器返回数据格式错误")).c_str());
 		pLoginResultLabel->SetVisible(true);
 
@@ -423,8 +407,6 @@ void CLoginWnd::HandleLogin()
 	{
 		if (!document.HasMember("errcode") || !document.HasMember("errmsg") || !document.HasMember("data"))
 		{
-			m_is_login_ing = false;
-
 			pLoginResultLabel->SetText(std::wstring(_T("服务器返回数据格式错误")).c_str());
 			pLoginResultLabel->SetVisible(true);
 
@@ -437,8 +419,6 @@ void CLoginWnd::HandleLogin()
 		int errcode = v_errcode.GetInt();
 		if (errcode != 0)
 		{
-			m_is_login_ing = false;
-
 			std::string errmsg = "response failed! message:" + string(document["errmsg"].GetString());
 			pLoginResultLabel->SetText(CLewaimaiString::UTF8ToUnicode(errmsg).c_str());
 			pLoginResultLabel->SetVisible(true);
@@ -455,13 +435,11 @@ void CLoginWnd::HandleLogin()
 
 		if (newest_version > CSystem::GetVersion())
 		{
-			m_is_login_ing = false;
-
 			//说明有新版本,要更新
 			PostMessage(WM_NEED_UPDATE);
 			return;
 		}
-	 }	
+	}
 
     //判断账号密码是否正确
     std::wstring account, password;
@@ -490,8 +468,6 @@ void CLoginWnd::HandleLogin()
 
 	if (s_account.compare("") == 0)
 	{
-		m_is_login_ing = false;
-
 		pLoginResultLabel->SetText(std::wstring(_T("用户名不能为空")).c_str());
 		pLoginResultLabel->SetVisible(true);
 
@@ -502,8 +478,6 @@ void CLoginWnd::HandleLogin()
 
 	if (s_password.compare("") == 0)
 	{
-		m_is_login_ing = false;
-
 		pLoginResultLabel->SetText(std::wstring(_T("密码不能为空")).c_str());
 		pLoginResultLabel->SetVisible(true);
 
@@ -562,21 +536,17 @@ void CLoginWnd::HandleLogin()
 
 		PostMessage(WM_LOGIN_SUCCESS);
 
-		m_is_login_ing = false;
-
 		return;
     }
     else
     {
         //登录失败了
-        CLabelUI* pLoginResultLabel = static_cast<CLabelUI*>(m_pm.FindControl(_T("loginresult")));
-
-        pLoginResultLabel->SetText(std::wstring(_T("登录失败:") + CLewaimaiString::UTF8ToUnicode(errmsg)).c_str());
+		pLoginResultLabel->SetText(std::wstring(_T("登录失败:") + CLewaimaiString::UTF8ToUnicode(errmsg)).c_str());
         pLoginResultLabel->SetVisible(true);
 
-		m_is_login_ing = false;
-
 		PostMessage(WM_LOGIN_ERROR);
+
+		return;
     }
 }
 
@@ -640,6 +610,5 @@ void CLoginWnd::ShowLoginAgainOut()
 	pMessagebox->Create(m_hWnd, _T(""), UI_WNDSTYLE_DIALOG, WS_EX_WINDOWEDGE);
 	pMessagebox->SetIcon(IDI_ICON_DUILIB);
 	pMessagebox->CenterWindow();
-
 	UINT ret = pMessagebox->ShowModal();
 }