소스 검색

修复bug

张洋 4 년 전
부모
커밋
b8fa9d8e04

+ 3 - 0
.gitignore

@@ -8,3 +8,6 @@
 /bin/Win32/Debug/zhipuzi_pos_windows/dump
 /bin/Win32/Release/zhipuzi_pos_windows/tmp
 /bin/Win32/Release/zhipuzi_pos_windows/dump
+/bin/Win32/Release/zhipuzi_pos_windows/db
+/bin/Win32/Release/zhipuzi_pos_windows/log
+/bin/Win32/Release/zhipuzi_pos_windows/zhipuzi_pos_windows.exe

+ 2 - 2
bin/Win32/Debug/zhipuzi_pos_windows/skin/diandan_page.xml

@@ -70,7 +70,7 @@
 					<HorizontalLayout height="90" name="diandan_pay_layout">
 						<Button name="btn_diandan_weixinzhifu_pay" text="" heiht="75" width="110" padding="15,0,0,15" textcolor="#FF999999" normalimage="" hotimage="" pushedimage="" bordersize="0" bkcolor="#FFFF4242"></Button>
 						<Control bkimage="weixinzhifu_icon.png" width="24" height="22" float="true" pos="60,10,84,32" mouse="false"></Control>
-						<Label text="微信支付/支付宝" width="110" height="35" font="14" float="true" pos="16,35,126,70" textcolor="#FFFFFFFF" mouse="false"></Label>
+						<Label text="微信支付/支付宝/云闪付" multiline="true" width="110" height="40" font="14" float="true" pos="16,35,126,75" textcolor="#FFFFFFFF" mouse="false"></Label>
 						
 						<Button name="btn_diandan_huiyuanzhifu_pay" text="" heiht="75" width="110" padding="15,0,0,15" textcolor="#FF999999" normalimage="" hotimage="" pushedimage="" bordersize="0" bkcolor="#FFFF8910"></Button>
 						<Control bkimage="huiyuanzhifu_icon.png" width="26" height="20" float="true" pos="185,10,211,30" mouse="false"></Control>
@@ -206,7 +206,7 @@
 						<HorizontalLayout name="diandan_jiesuan_zhifufangshi_weixinzhifu" width="120" hegiht="80" float="true">
 							<Button name="diandan_jiesuan_zhifufangshi_weixinzhifu_btn" text="" heiht="80" width="120" padding="0,0,0,0" textcolor="#FF999999" normalimage="" hotimage="" pushedimage="" bordersize="0" bkcolor="#FFFF4242"></Button>
 							<Control name="zhifu_icon" bkimage="weixinzhifu_icon.png" width="24" height="22" float="true" pos="53,10,77,32" mouse="false"></Control>
-							<Label name="zhifu_name" text="微信支付/支付宝" width="180" height="35" font="14" float="true" pos="10,35,190,70" textcolor="#FFFFFFFF" mouse="false"></Label>
+							<Label name="zhifu_name" text="微信支付/支付宝/云闪付" multiline="true" width="115" height="40" font="14" float="true" pos="2,35,117,75" textcolor="#FFFFFFFF" mouse="false"></Label>
 						</HorizontalLayout>
 						
 						<HorizontalLayout name="diandan_jiesuan_zhifufangshi_huiyuan" width="120" hegiht="80" float="true">

+ 6 - 0
bin/Win32/Debug/zhipuzi_pos_windows/skin/weixinzhifu_shoukuan_wnd.xml

@@ -64,6 +64,12 @@
 				<Control></Control>
 			</HorizontalLayout>
 			
+			<HorizontalLayout name="shoukuan_pay_success_logo_yunshanfu" height="100" padding="0,40,0,0" visible="false">
+				<Control></Control>
+				<Control bkimage="yunshanfu_logo.png" width="100" height="100" align="center"></Control>
+				<Control></Control>
+			</HorizontalLayout>
+			
 			<Label height="40" padding="0,20,0,20" name="shoukuan_pay_success_money" text="成功收款:" font="3" textcolor="0xFF3CB371" align="center"></Label>
 			
 			<Label height="60" padding="20,30,20,0" name="shouyin_pay_success_attention" text="按任意键关闭窗口" font="2" textcolor="0xFF808080" multiline="true" align="center" />

BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/yunshanfu_logo.png


BIN
bin/Win32/Release/zhipuzi_pos_windows/zhipuzi_pos_windows.exe


+ 4 - 4
zhipuzi_pos_windows/helper/CLewaimaiLog.h

@@ -1,9 +1,9 @@
 #pragma once
 
-#define LOG_TRACE(logs) LOG4CPLUS_TRACE(log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("lewaimai_dispatch")), logs)
-#define LOG_DEBUG(logs) LOG4CPLUS_DEBUG(log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("lewaimai_dispatch")), logs)
-#define LOG_INFO(logs) LOG4CPLUS_INFO(log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("lewaimai_dispatch")), logs)
-#define LOG_ERROR(logs) LOG4CPLUS_ERROR(log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("lewaimai_dispatch_error")), logs)
+#define LOG_TRACE(logs) LOG4CPLUS_TRACE(log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("zhipuzi_pos")), logs)
+#define LOG_DEBUG(logs) LOG4CPLUS_DEBUG(log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("zhipuzi_pos")), logs)
+#define LOG_INFO(logs) LOG4CPLUS_INFO(log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("zhipuzi_pos")), logs)
+#define LOG_ERROR(logs) LOG4CPLUS_ERROR(log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("zhipuzi_pos_error")), logs)
 
 /*
 日志库头文件

+ 25 - 1
zhipuzi_pos_windows/page/CDiandanPageUI.cpp

@@ -2854,8 +2854,24 @@ void CDiandanPageUI::StartWeixinzhifuShoukuan(std::string fukuanma)
 		UINT ret = pShoukuanWnd->ShowModal();
 		if (ret == IDOK)
 		{
+			int fukuanma_type = pShoukuanWnd->m_fukuanma_type;
+
+			std::string zhifu_type;
+			if (fukuanma_type == 1)
+			{
+				zhifu_type = "weixinzhifu";
+			}
+			else if (fukuanma_type == 2)
+			{
+				zhifu_type = "zhifubao";
+			}
+			else if (fukuanma_type == 3)
+			{
+				zhifu_type = "yunshanfu";
+			}
+
 			//说明收款成功了,需要进行一些后续的处理
-			this->StartWorkAfterShoukuan(pShoukuanWnd->m_kucun_string, pShoukuanWnd->m_take_food_code, pShoukuanWnd->m_show_trade_no, "weixinzhifu");
+			this->StartWorkAfterShoukuan(pShoukuanWnd->m_kucun_string, pShoukuanWnd->m_take_food_code, pShoukuanWnd->m_show_trade_no, zhifu_type);
 		}
 		else
 		{
@@ -3546,6 +3562,14 @@ CDiandanOrder CDiandanPageUI::GetPrintOrderinfo(std::string take_food_code, std:
 	{
 		m_cur_diandan_order.shoukuan_type = CLewaimaiString::UnicodeToUTF8(L"微信支付");
 	}
+	else if (shoukuan_type == "zhifubao")
+	{
+		m_cur_diandan_order.shoukuan_type = CLewaimaiString::UnicodeToUTF8(L"支付宝");
+	}
+	else if (shoukuan_type == "yunshanfu")
+	{
+		m_cur_diandan_order.shoukuan_type = CLewaimaiString::UnicodeToUTF8(L"云闪付");
+	}
 	else if (shoukuan_type == "huiyuanzhifu")
 	{
 		m_cur_diandan_order.shoukuan_type = CLewaimaiString::UnicodeToUTF8(L"会员支付");

BIN
zhipuzi_pos_windows/resource/skin.zip


+ 0 - 4
zhipuzi_pos_windows/tool/CAppEnv.cpp

@@ -18,10 +18,6 @@ CAppEnv::~CAppEnv()
 
 void CAppEnv::Start()
 {
-	//³õʼ»¯ÈÕÖ¾
-	CLewaimaiLog log;
-	log.Init();
-
 	//³õʼ»¯ÅäÖÃ
 	CSetting::GetInstance()->Init();
 

+ 15 - 12
zhipuzi_pos_windows/tool/CSqlite3.cpp

@@ -226,7 +226,6 @@ bool CSqlite3::InitPosChufangPrinter()
 					}
 
 					//走到这里就是表创建成功了
-					LOG_INFO("create table success");
 					sqlite3_finalize(stmt);
 				}
 				else
@@ -257,15 +256,12 @@ bool CSqlite3::InitPosChufangPrinter()
 					if (count == 0)
 					{
 						//说明没找到这个字段,准备添加字段
-						LOG_INFO("not fount field");
 						sqlite3_finalize(stmt);
 						stmt = NULL;
 
 						sql = "ALTER TABLE pos_chufang_printer "  \
 							"add fenlei     CHAR(100)         NOT NULL DEFAULT '0';";
 
-						LOG_INFO("sql:" << sql.c_str());
-
 						if (sqlite3_prepare_v2(m_db, sql.c_str(), -1, &stmt, NULL) == SQLITE_OK)
 						{
 							//执行该语句
@@ -293,8 +289,6 @@ bool CSqlite3::InitPosChufangPrinter()
 					}
 					else
 					{
-						LOG_INFO("fount field");
-
 						//说明已经有这2个字段了
 						sqlite3_finalize(stmt);
 					}
@@ -319,15 +313,12 @@ bool CSqlite3::InitPosChufangPrinter()
 					if (count == 0)
 					{
 						//说明没找到这个字段,准备添加字段
-						LOG_INFO("not fount field");
 						sqlite3_finalize(stmt);
 						stmt = NULL;
 
 						sql = "ALTER TABLE pos_chufang_printer "  \
 							"add fenlei_ids CHAR(2000) NOT NULL DEFAULT '';";
 
-						LOG_INFO("sql:" << sql.c_str());
-
 						if (sqlite3_prepare_v2(m_db, sql.c_str(), -1, &stmt, NULL) == SQLITE_OK)
 						{
 							//执行该语句
@@ -341,7 +332,6 @@ bool CSqlite3::InitPosChufangPrinter()
 							}
 
 							//走到这里就是表创建成功了
-							LOG_INFO("alter table success");
 							sqlite3_finalize(stmt);
 						}
 
@@ -356,8 +346,6 @@ bool CSqlite3::InitPosChufangPrinter()
 					}
 					else
 					{
-						LOG_INFO("fount field");
-
 						//说明已经有这2个字段了
 						sqlite3_finalize(stmt);
 					}
@@ -821,6 +809,8 @@ bool CSqlite3::SaveUsers(std::map<string, string> users)
 
 bool CSqlite3::InitFoodData(rapidjson::Value& foodrows)
 {
+	this->ExeSQl("begin;");
+
 	//先清空之前的旧数据,重新完整写入新数据
 	std::string sql = "delete from pos_food;";
 	this->ExeSQl(sql);
@@ -887,15 +877,20 @@ bool CSqlite3::InitFoodData(rapidjson::Value& foodrows)
 		bool ret = this->ExeSQl(sql);
 		if (!ret)
 		{
+			LOG_INFO("商品插入失败:" << i);
 			return false;
 		}
 	}
 
+	this->ExeSQl("commit;");
+
 	return true;
 }
 
 bool CSqlite3::InitFoodtypeData(rapidjson::Value& foodtyperows)
 {
+	this->ExeSQl("begin;");
+
 	//先清空之前的旧数据,重新完整写入新数据
 	std::string sql = "delete from pos_foodtype;";
 	this->ExeSQl(sql);
@@ -914,16 +909,21 @@ bool CSqlite3::InitFoodtypeData(rapidjson::Value& foodtyperows)
 		bool ret = this->ExeSQl(sql);
 		if (!ret)
 		{
+			LOG_INFO("商品分类插入失败:" << i);
 			return false;
 		}
 	}
 
+	this->ExeSQl("commit;");
+
 	return true;
 }
 
 bool CSqlite3::InitFoodpackageData(rapidjson::Value& foodpackagerows)
 {
 	//先清空之前的旧数据,重新完整写入新数据
+	this->ExeSQl("begin;");
+
 	std::string sql = "delete from pos_foodpackage;";
 	this->ExeSQl(sql);
 
@@ -956,10 +956,13 @@ bool CSqlite3::InitFoodpackageData(rapidjson::Value& foodpackagerows)
 		bool ret = this->ExeSQl(sql);
 		if (!ret)
 		{
+			LOG_INFO("商品套餐插入失败:" << i);
 			return false;
 		}
 	}
 
+	this->ExeSQl("commit;");
+
 	return true;
 }
 

+ 11 - 11
zhipuzi_pos_windows/wnd/CMainWnd.cpp

@@ -659,7 +659,7 @@ LRESULT CMainWnd::OnInput(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandle
 			//通过虚拟键盘码得到名字
 			ToAscii(raw->data.keyboard.VKey, raw->data.keyboard.MakeCode, state, (LPWORD)keytext, 0);
 
-			LOG_INFO("vkey:" << raw->data.keyboard.VKey<<", keytext:"<<keytext);
+			//LOG_INFO("vkey:" << raw->data.keyboard.VKey<<", keytext:"<<keytext);
 
 			if (raw->data.keyboard.VKey >= 48 && raw->data.keyboard.VKey <= 122)
 			{
@@ -681,7 +681,7 @@ LRESULT CMainWnd::OnInput(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandle
 
 					m_catch_string += string(keytext);
 
-					LOG_INFO("起始字符:" << keytext << ",累积:" << m_catch_string.c_str());
+					//LOG_INFO("起始字符:" << keytext << ",累积:" << m_catch_string.c_str());
 
 					m_last_catch_clock = clock();
 				}
@@ -693,7 +693,7 @@ LRESULT CMainWnd::OnInput(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandle
 					double total_t = (double)(now - m_last_catch_clock) / CLOCKS_PER_SEC;
 					if (total_t > 0.05)
 					{
-						LOG_INFO("发现人工输入");
+						//LOG_INFO("发现人工输入");
 
 						//如果超过了50ms,说明是前面一个字符是人工输入的了,不能代表现在这个字符是人工输入的,把之前的字符清空,但是目前的这个字符还是要保存
 						m_catch_string = "";
@@ -703,7 +703,7 @@ LRESULT CMainWnd::OnInput(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandle
 						//把当前字符保存下来
 						m_catch_string += string(keytext);
 
-						LOG_INFO("起始字符:" << keytext << ",累积:" << m_catch_string.c_str());
+						//LOG_INFO("起始字符:" << keytext << ",累积:" << m_catch_string.c_str());
 
 						m_last_catch_clock = clock();
 					}
@@ -722,7 +722,7 @@ LRESULT CMainWnd::OnInput(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandle
 
 						m_catch_string += s_keytext;
 
-						LOG_INFO("抓取字符:" << s_keytext.c_str() << ",累积:" << m_catch_string.c_str());
+						//LOG_INFO("抓取字符:" << s_keytext.c_str() << ",累积:" << m_catch_string.c_str());
 
 						m_last_catch_clock = clock();
 					}
@@ -740,7 +740,7 @@ LRESULT CMainWnd::OnInput(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandle
 					double total_t = (double)(now - m_last_catch_clock) / CLOCKS_PER_SEC;
 					if (total_t > 0.05)
 					{
-						LOG_INFO("抓取enter人工");
+						//LOG_INFO("抓取enter人工");
 
 						//如果超过了50ms,说明前面一个字符是人工输入的,那么相当于这次直接输入了一个enter,也没意义
 						m_is_start_catch = false;
@@ -749,7 +749,7 @@ LRESULT CMainWnd::OnInput(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandle
 					}
 					else
 					{
-						LOG_INFO("抓取enter结束");
+						//LOG_INFO("抓取enter结束");
 
 						//这种说明前一个字符和当前字符都是机器输入的,可以判定输入结束
 						std::string last = m_catch_string;
@@ -776,7 +776,7 @@ LRESULT CMainWnd::OnInput(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandle
 				//这个是大小写切换的按键,扫描大写字母的时候会用到,每个大写字母都是由2个组成,先来个16,再来个对应小写字母的asicc
 				if (m_is_start_catch == false)
 				{
-					LOG_INFO("抓取第1个16");
+					//LOG_INFO("抓取第1个16");
 					//说明第一个字符就是大写字母,暂时还无法判断是机器还是人工输入的,先开启抓取
 					m_is_start_catch = true;
 
@@ -794,7 +794,7 @@ LRESULT CMainWnd::OnInput(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandle
 					double total_t = (double)(now - m_last_catch_clock) / CLOCKS_PER_SEC;
 					if (total_t > 0.05)
 					{
-						LOG_INFO("抓取16人工");
+						//LOG_INFO("抓取16人工");
 						//如果超过了50ms,只能说明之前的字符是人工输入的,不能代表目前的字符是人工输入的,把之前的清空
 
 						m_catch_string = "";
@@ -804,7 +804,7 @@ LRESULT CMainWnd::OnInput(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandle
 					}
 					else
 					{
-						LOG_INFO("抓取16");
+						//LOG_INFO("抓取16");
 						//这个说明之前的和当前的都是机器输入的
 						m_is_next_daxie = true;
 
@@ -814,7 +814,7 @@ LRESULT CMainWnd::OnInput(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandle
 			}
 			else
 			{
-				LOG_INFO("抓取结束,重新开始");
+				//LOG_INFO("抓取结束,重新开始");
 				//输入了无意义的字符,这种直接忽略,重新开始
 				m_is_start_catch = false;
 

+ 10 - 3
zhipuzi_pos_windows/wnd/CWeixinzhifuShoukuanWnd.cpp

@@ -415,15 +415,24 @@ LRESULT CWeixinzhifuShoukuanWnd::OnShoukuanSuccess(UINT uMsg, WPARAM wParam, LPA
 
 	CHorizontalLayoutUI* wx_logo = static_cast<CHorizontalLayoutUI*>(m_pm.FindControl(_T("shoukuan_pay_success_logo_wx")));
 	CHorizontalLayoutUI* zhifubao_logo = static_cast<CHorizontalLayoutUI*>(m_pm.FindControl(_T("shoukuan_pay_success_logo_zhifubao")));
+	CHorizontalLayoutUI* yunshanfu_logo = static_cast<CHorizontalLayoutUI*>(m_pm.FindControl(_T("shoukuan_pay_success_logo_yunshanfu")));
 	if (m_fukuanma_type == 1)
 	{
 		wx_logo->SetVisible(true);
 		zhifubao_logo->SetVisible(false);
+		yunshanfu_logo->SetVisible(false);
 	}
-	else if (m_fukuanma_type == 2 || m_fukuanma_type == 3)
+	else if (m_fukuanma_type == 2)
 	{
 		wx_logo->SetVisible(false);
 		zhifubao_logo->SetVisible(true);
+		yunshanfu_logo->SetVisible(false);
+	}
+	else if (m_fukuanma_type == 3)
+	{
+		wx_logo->SetVisible(false);
+		zhifubao_logo->SetVisible(false);
+		yunshanfu_logo->SetVisible(true);
 	}
 
 	CLabelUI* attention = static_cast<CLabelUI*>(m_pm.FindControl(_T("shouyin_pay_success_attention")));
@@ -783,8 +792,6 @@ void CWeixinzhifuShoukuanWnd::HandleShoukuanPassword()
 			m_take_food_code = data["take_food_code"].GetString();
 			m_show_trade_no = data["show_trade_no"].GetString();
 
-			m_trade_no = data["trade_no"].GetString();
-
 			SendMessage(WM_SHOUKUAN_STATUS_SUCCESS, 0, 0);
 
 			break;

+ 4 - 0
zhipuzi_pos_windows/zhipuzi_pos_windows.cpp

@@ -20,6 +20,10 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
 		return -1;
 	}
 
+	//初始化日志,这个一定要放在这里,才不会被析构掉
+	CLewaimaiLog log;
+	log.Init();
+
 	//初始化所有配置,启动所有异步worker
 	CAppEnv app;
 	app.Start();