소스 검색

准备开始进行最后的优化

zhangyang 4 년 전
부모
커밋
aefde08602
43개의 변경된 파일507개의 추가작업 그리고 470개의 파일을 삭제
  1. 2 0
      bin/Win32/Debug/zhipuzi_pos_windows/skin/diandan_page.xml
  2. 36 41
      zhipuzi_pos_windows/network/CZhipuziHttpClient.cpp
  3. 18 15
      zhipuzi_pos_windows/network/CZhipuziHttpClient.h
  4. 1 1
      zhipuzi_pos_windows/page/CBaobiaoPageUI.cpp
  5. 88 43
      zhipuzi_pos_windows/page/CDiandanPageUI.cpp
  6. 2 2
      zhipuzi_pos_windows/page/CDiandanPageUI.h
  7. 1 1
      zhipuzi_pos_windows/page/CDianneiOrderListPageUI.cpp
  8. 4 4
      zhipuzi_pos_windows/page/CGengduoPageUI.cpp
  9. 1 1
      zhipuzi_pos_windows/page/CHuiyuanPageUI.cpp
  10. 4 6
      zhipuzi_pos_windows/page/CJiaobanPageUI.cpp
  11. 137 137
      zhipuzi_pos_windows/page/CSettingPageUI.cpp
  12. 1 1
      zhipuzi_pos_windows/page/CWaimaiOrderListPageUI.cpp
  13. 1 9
      zhipuzi_pos_windows/pch/pch.cpp
  14. 6 6
      zhipuzi_pos_windows/print/CPosPrinter.cpp
  15. 32 32
      zhipuzi_pos_windows/print/CPosPrinterData.cpp
  16. 7 7
      zhipuzi_pos_windows/print/CPosPrinterQueue.cpp
  17. 3 0
      zhipuzi_pos_windows/tool/CAppEnv.cpp
  18. 24 28
      zhipuzi_pos_windows/tool/CSetting.cpp
  19. 27 23
      zhipuzi_pos_windows/tool/CSetting.h
  20. 3 3
      zhipuzi_pos_windows/tool/CSqlite3.cpp
  21. 8 8
      zhipuzi_pos_windows/wnd/CChufangSettingWnd.cpp
  22. 6 6
      zhipuzi_pos_windows/wnd/CFulikaShoukuanWnd.cpp
  23. 1 1
      zhipuzi_pos_windows/wnd/CHuiyuanAddWnd.cpp
  24. 7 7
      zhipuzi_pos_windows/wnd/CHuiyuanChongzhiWnd.cpp
  25. 7 7
      zhipuzi_pos_windows/wnd/CHuiyuanShoukuanWnd.cpp
  26. 24 24
      zhipuzi_pos_windows/wnd/CLoginWnd.cpp
  27. 5 5
      zhipuzi_pos_windows/wnd/CMainWnd.cpp
  28. 1 1
      zhipuzi_pos_windows/wnd/CMemberLoginWnd.cpp
  29. 1 1
      zhipuzi_pos_windows/wnd/CSaomaCikaWnd.cpp
  30. 1 1
      zhipuzi_pos_windows/wnd/CSaomaQuanyikaWnd.cpp
  31. 1 1
      zhipuzi_pos_windows/wnd/CSaomaShangpinquanWnd.cpp
  32. 1 1
      zhipuzi_pos_windows/wnd/CSaomaYouhuiquanWnd.cpp
  33. 1 1
      zhipuzi_pos_windows/wnd/CUpdateWnd.cpp
  34. 6 6
      zhipuzi_pos_windows/wnd/CWeixinzhifuShoukuanWnd.cpp
  35. 6 6
      zhipuzi_pos_windows/wnd/CXianjinShoukuanWnd.cpp
  36. 6 6
      zhipuzi_pos_windows/wnd/CZidingyiShoukuanWnd.cpp
  37. 3 3
      zhipuzi_pos_windows/worker/CChengzhongWorker.cpp
  38. 6 6
      zhipuzi_pos_windows/worker/CMessagePushWorker.cpp
  39. 2 2
      zhipuzi_pos_windows/zhipuzi/CDiandanOrder.cpp
  40. 0 5
      zhipuzi_pos_windows/zhipuzi/CShopinfo.cpp
  41. 9 5
      zhipuzi_pos_windows/zhipuzi/CShopinfo.h
  42. 6 6
      zhipuzi_pos_windows/zhipuzi/CWaimaiOrder.cpp
  43. 1 1
      zhipuzi_pos_windows/zhipuzi_pos_windows.vcxproj

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

@@ -221,6 +221,7 @@
 							<Label name="zhifu_name" text="现金支付" width="180" height="35" font="14" float="true" pos="30,35,210,70" textcolor="#FFFFFFFF" mouse="false"></Label>
 						</HorizontalLayout>
 						
+						<!--
 						<HorizontalLayout name="diandan_jiesuan_zhifufangshi_gouwuka" width="122" hegiht="80" float="true">
 							<Button name="diandan_jiesuan_zhifufangshi_gouwuka_btn" text="" heiht="80" width="120" padding="0,0,0,0" textcolor="#FF999999" normalimage="" hotimage="" pushedimage="" bordersize="1" bordercolor="#FFC1C1C1" bkcolor="#FFF7F7F7"></Button>
 							<Control name="zhifu_icon" bkimage="gouwuka_icon.png" width="34" height="28" float="true" pos="45,10,79,38" mouse="false"></Control>
@@ -232,6 +233,7 @@
 							<Control name="zhifu_icon" bkimage="meishicheng_icon.png" width="37" height="27" float="true" pos="48,10,85,37" mouse="false"></Control>
 							<Label name="zhifu_name" text="美食城临时卡" width="180" height="35" font="14" float="true" pos="25,35,205,70" mouse="false"></Label>
 						</HorizontalLayout>
+						-->
 						
 						<HorizontalLayout name="diandan_jiesuan_zhifufangshi_fulika" width="122" hegiht="80" float="true">
 							<Button name="diandan_jiesuan_zhifufangshi_fulika_btn" text="" heiht="80" width="120" padding="0,0,0,0" textcolor="#FF999999" normalimage="" hotimage="" pushedimage="" bordersize="1" bordercolor="#FFC1C1C1" bkcolor="#FFF7F7F7"></Button>

+ 36 - 41
zhipuzi_pos_windows/network/CZhipuziHttpClient.cpp

@@ -35,15 +35,10 @@ CZhipuziHttpClient::CZhipuziHttpClient()
 	//初始化curl
 	curl_global_init(CURL_GLOBAL_ALL);
 
-	m_client.m_http_proxy.ip = CSetting::GetParam("http_proxy_ip");
-	m_client.m_http_proxy.port = CSetting::GetParam("http_proxy_port");
-	m_client.m_http_proxy.username = CSetting::GetParam("http_proxy_username");
-	m_client.m_http_proxy.password = CSetting::GetParam("http_proxy_password");
-}
-
-
-CZhipuziHttpClient::~CZhipuziHttpClient()
-{
+	m_http_proxy.ip = CSetting::GetInstance()->GetParam("http_proxy_ip");
+	m_http_proxy.port = CSetting::GetInstance()->GetParam("http_proxy_port");
+	m_http_proxy.username = CSetting::GetInstance()->GetParam("http_proxy_username");
+	m_http_proxy.password = CSetting::GetInstance()->GetParam("http_proxy_password");
 }
 
 /*
@@ -51,31 +46,31 @@ CZhipuziHttpClient::~CZhipuziHttpClient()
  **/
 void CZhipuziHttpClient::UpdateProxy()
 {
-	std::string http_is_proxy = CSetting::GetParam("http_is_proxy");
+	std::string http_is_proxy = CSetting::GetInstance()->GetParam("http_is_proxy");
 	if (http_is_proxy == "1")
 	{
-		m_client.m_http_proxy.m_is_proxy = true;
+		m_http_proxy.m_is_proxy = true;
 	}
 	else
 	{
-		m_client.m_http_proxy.m_is_proxy = false;
+		m_http_proxy.m_is_proxy = false;
 	}
 
-	m_client.m_http_proxy.ip = CSetting::GetParam("http_proxy_ip");
-	m_client.m_http_proxy.port = CSetting::GetParam("http_proxy_port");
-	m_client.m_http_proxy.username = CSetting::GetParam("http_proxy_username");
-	m_client.m_http_proxy.password = CSetting::GetParam("http_proxy_password");
+	m_http_proxy.ip = CSetting::GetInstance()->GetParam("http_proxy_ip");
+	m_http_proxy.port = CSetting::GetInstance()->GetParam("http_proxy_port");
+	m_http_proxy.username = CSetting::GetInstance()->GetParam("http_proxy_username");
+	m_http_proxy.password = CSetting::GetInstance()->GetParam("http_proxy_password");
 }
 
 void CZhipuziHttpClient::Init(std::string username, std::string password)
 {
-	m_client.m_username = username;
-	m_client.m_password = password;
+	m_username = username;
+	m_password = password;
 }
 
 std::string CZhipuziHttpClient::GetUsername()
 {
-	return m_client.m_username;
+	return m_username;
 }
 
 bool CZhipuziHttpClient::Login(std::string& errmsg)
@@ -83,7 +78,7 @@ bool CZhipuziHttpClient::Login(std::string& errmsg)
 	std::map<string, string> params;
 
     std::string response;
-    bool ret = m_client.RequestPingtaiNew("/login/login", params, response);
+    bool ret = RequestPingtaiNew("/login/login", params, response);
 
 	if (!ret)
 	{
@@ -130,21 +125,21 @@ bool CZhipuziHttpClient::Login(std::string& errmsg)
 	rapidjson::Value& v_data = document["data"]; 
 
 	rapidjson::Value& v_version_type = v_data["version_type"];
-	m_client.m_version_type = v_version_type.GetString();
+	m_version_type = v_version_type.GetString();
 
-	if (m_client.m_version_type == "1")
+	if (m_version_type == "1")
 	{
-		m_client.m_yewu_url = m_client.m_canyin_yewu_url;
+		m_yewu_url = m_canyin_yewu_url;
 	}
 	else
 	{
-		m_client.m_yewu_url = m_client.m_lingshou_yewu_url;
+		m_yewu_url = m_lingshou_yewu_url;
 	}
 
-	m_client.lwm_sess_token = v_data["lwm_sess_token"].GetString();
+	lwm_sess_token = v_data["lwm_sess_token"].GetString();
 
 	//保存店铺信息
-	CShopinfo::m_shopinfo.InitShopinfoByLogin(v_data);
+	CShopinfo::GetInstance()->InitShopinfoByLogin(v_data);
 
     return true;
 }
@@ -156,10 +151,10 @@ bool CZhipuziHttpClient::Request(std::string url, std::map<string, string> param
 	std::string nonce = "123456";
 
 	//先添加默认参数,用于计算签名
-	params["username"] = m_client.m_username;
+	params["username"] = m_username;
 	params["nonce"] = nonce;
 	params["timestamp"] = timestamp;
-	params["url"] = m_client.m_yewu_url + url;
+	params["url"] = m_yewu_url + url;
 
 	//计算签名
 	std::string postString;
@@ -178,7 +173,7 @@ bool CZhipuziHttpClient::Request(std::string url, std::map<string, string> param
 	//LOG_INFO("postString:" << postString.c_str());
 
 	//用于计算签名的临时变量
-	std::string password = md5(m_client.m_password);
+	std::string password = md5(m_password);
 	transform(password.begin(), password.end(), password.begin(), ::toupper);
 
 	string tmp = postString + password;
@@ -208,7 +203,7 @@ bool CZhipuziHttpClient::Request(std::string url, std::map<string, string> param
 	//LOG_INFO("postString:" << postString.c_str());
 
 	CHttpClient m_httpClient;
-	int ret = m_httpClient.Posts(m_client.m_yewu_url + url, postString, response, NULL, m_client.m_http_proxy);
+	int ret = m_httpClient.Posts(m_yewu_url + url, postString, response, NULL, m_http_proxy);
 
 	//LOG_INFO("response:" << response.c_str());
 
@@ -231,12 +226,12 @@ bool CZhipuziHttpClient::RequestNew(std::string url, std::map<string, string> pa
 	std::string open_secret = "kMDNjjid91ydo#!9DH1";
 
 	//先添加默认参数,用于计算签名
-	params["username"] = m_client.m_username;
-	params["password"] = md5(m_client.m_password);
+	params["username"] = m_username;
+	params["password"] = md5(m_password);
 	params["lwm_appid"] = lwm_appid;
 	params["nonce"] = nonce;
 	params["timestamp"] = timestamp;
-	params["lwm_sess_token"] = m_client.lwm_sess_token;
+	params["lwm_sess_token"] = lwm_sess_token;
 
 	//计算签名
 	std::string postString;
@@ -281,7 +276,7 @@ bool CZhipuziHttpClient::RequestNew(std::string url, std::map<string, string> pa
 	//LOG_INFO("postString:" << postString.c_str());
 
 	CHttpClient m_httpClient;
-	int ret = m_httpClient.Posts(m_client.m_yewu_url + url, postString, response, NULL, m_client.m_http_proxy);
+	int ret = m_httpClient.Posts(m_yewu_url + url, postString, response, NULL, m_http_proxy);
 
 	//LOG_INFO("response:" << response.c_str());
 
@@ -300,10 +295,10 @@ bool CZhipuziHttpClient::RequestPingtai(std::string url, std::map<string, string
 	std::string nonce = "123456";
 
 	//先添加默认参数,用于计算签名
-	params["username"] = m_client.m_username;
+	params["username"] = m_username;
 	params["nonce"] = nonce;
 	params["timestamp"] = timestamp;
-	params["url"] = m_client.m_pingtai_url + url;
+	params["url"] = m_pingtai_url + url;
 
 	//计算签名
 	std::string postString;
@@ -322,7 +317,7 @@ bool CZhipuziHttpClient::RequestPingtai(std::string url, std::map<string, string
 	//LOG_INFO("postString:" << postString.c_str());
 
 	//用于计算签名的临时变量
-	std::string password = md5(m_client.m_password);
+	std::string password = md5(m_password);
 	transform(password.begin(), password.end(), password.begin(), ::toupper);
 
 	string tmp = postString + password;
@@ -352,7 +347,7 @@ bool CZhipuziHttpClient::RequestPingtai(std::string url, std::map<string, string
 	//LOG_INFO("postString:" << postString.c_str());
 
 	CHttpClient m_httpClient;
-	int ret = m_httpClient.Posts(m_client.m_pingtai_url + url, postString, response, NULL, m_client.m_http_proxy);
+	int ret = m_httpClient.Posts(m_pingtai_url + url, postString, response, NULL, m_http_proxy);
 
 	//LOG_INFO("response:" << response.c_str());
 
@@ -374,8 +369,8 @@ bool CZhipuziHttpClient::RequestPingtaiNew(std::string url, std::map<string, str
 	std::string open_secret = "#repast!@#AfAS#@!";
 
 	//先添加默认参数,用于计算签名
-	params["username"] = CLewaimaiString::UrlEncode(m_client.m_username);
-	params["password"] = md5(m_client.m_password);
+	params["username"] = CLewaimaiString::UrlEncode(m_username);
+	params["password"] = md5(m_password);
 	params["lwm_appid"] = lwm_appid;
 	params["nonce"] = nonce;
 	params["timestamp"] = timestamp;
@@ -423,7 +418,7 @@ bool CZhipuziHttpClient::RequestPingtaiNew(std::string url, std::map<string, str
 	//LOG_INFO("postString:" << postString.c_str());
 
 	CHttpClient m_httpClient;
-	int ret = m_httpClient.Posts(m_client.m_pingtai_url + url, postString, response, NULL, m_client.m_http_proxy);
+	int ret = m_httpClient.Posts(m_pingtai_url + url, postString, response, NULL, m_http_proxy);
 
 	//LOG_INFO("response:" << response.c_str());
 

+ 18 - 15
zhipuzi_pos_windows/network/CZhipuziHttpClient.h

@@ -7,8 +7,12 @@
 class CZhipuziHttpClient
 {
 public:
-	CZhipuziHttpClient();
-	~CZhipuziHttpClient();
+	static CZhipuziHttpClient* GetInstance()
+	{
+		static CZhipuziHttpClient instance;
+
+		return &instance;
+	}
 
 	enum Env
 	{
@@ -17,22 +21,22 @@ public:
 		RELEASE
 	};
 
-public:
-	static void Init(std::string username, std::string password);
-	static std::string GetUsername();
+private:
+	CZhipuziHttpClient();
 
-	static void UpdateProxy();
+public:
+	void Init(std::string username, std::string password);
+	std::string GetUsername();
 
-	static bool Login(std::string& errmsg);
+	void UpdateProxy();
 
-	static bool Request(std::string url, std::map<string, string> params, std::string& response);
-	static bool RequestNew(std::string url, std::map<string, string> params, std::string& response);
+	bool Login(std::string& errmsg);
 
-	static bool RequestPingtai(std::string url, std::map<string, string> params, std::string& response);
-	static bool RequestPingtaiNew(std::string url, std::map<string, string> params, std::string& response);
+	bool Request(std::string url, std::map<string, string> params, std::string& response);
+	bool RequestNew(std::string url, std::map<string, string> params, std::string& response);
 
-public:
-	static CZhipuziHttpClient m_client;
+	bool RequestPingtai(std::string url, std::map<string, string> params, std::string& response);
+	bool RequestPingtaiNew(std::string url, std::map<string, string> params, std::string& response);
 
 private:
 	std::string m_username;
@@ -56,5 +60,4 @@ public:
 
 	//当前运行环境
 	Env m_env;
-};
-
+};

+ 1 - 1
zhipuzi_pos_windows/page/CBaobiaoPageUI.cpp

@@ -259,7 +259,7 @@ void CBaobiaoPageUI::HandleRefresh()
 	params["end_time"] = m_end_time;
 	std::string response;
 
-	CZhipuziHttpClient::RequestNew(url.c_str(), params, response);
+	CZhipuziHttpClient::GetInstance()->RequestNew(url.c_str(), params, response);
 
 	m_response = response;
 

+ 88 - 43
zhipuzi_pos_windows/page/CDiandanPageUI.cpp

@@ -214,7 +214,7 @@ void CDiandanPageUI::UpdateFoodtypePos()
 void CDiandanPageUI::InitFoodShow()
 {	
 	bool is_youtu;
-	if (CSetting::GetParam("setting_xianshi_is_youtu") == "1")
+	if (CSetting::GetInstance()->GetParam("setting_xianshi_is_youtu") == "1")
 	{
 		is_youtu = true;
 	}
@@ -323,8 +323,6 @@ void CDiandanPageUI::InitFoodShow()
 //仅仅初始化结算相关的显示(比如折扣、优惠、价格等)
 void CDiandanPageUI::InitJiesuanShow()
 {
-	CShopinfo shopinfo = CShopinfo::m_shopinfo;
-
 	//先清空会员登录状态
 	m_is_member = false;
 
@@ -388,12 +386,10 @@ void CDiandanPageUI::InitJiesuanShow()
 
 void CDiandanPageUI::InitJiesuanZhifu()
 {
-	CShopinfo shopinfo = CShopinfo::m_shopinfo;
-
 	int num = 0;
 
 	CHorizontalLayoutUI* pWeixinLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("diandan_jiesuan_zhifufangshi_weixinzhifu")));
-	if (shopinfo.m_is_online_pay_open == "1")
+	if (CShopinfo::GetInstance()->m_is_online_pay_open == "1")
 	{
 		//展示微信支付,并且调整位置
 		pWeixinLayout->SetVisible(true);
@@ -407,7 +403,7 @@ void CDiandanPageUI::InitJiesuanZhifu()
 
 	//会员支付
 	CHorizontalLayoutUI* pHuiyuanLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("diandan_jiesuan_zhifufangshi_huiyuan")));
-	if (shopinfo.m_is_vip_pay_open == "1")
+	if (CShopinfo::GetInstance()->m_is_vip_pay_open == "1")
 	{
 		pHuiyuanLayout->SetVisible(true);
 
@@ -420,7 +416,7 @@ void CDiandanPageUI::InitJiesuanZhifu()
 
 	//现金支付
 	CHorizontalLayoutUI* pXianjinLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("diandan_jiesuan_zhifufangshi_xianjin")));
-	if (shopinfo.m_is_cash_pay_open == "1")
+	if (CShopinfo::GetInstance()->m_is_cash_pay_open == "1")
 	{
 		pXianjinLayout->SetVisible(true);
 
@@ -431,9 +427,10 @@ void CDiandanPageUI::InitJiesuanZhifu()
 		pXianjinLayout->SetVisible(false);
 	}
 
+	/*
 	//购物卡
 	CHorizontalLayoutUI* pGouwukaLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("diandan_jiesuan_zhifufangshi_gouwuka")));
-	if (shopinfo.m_is_giftcard_pay_open == "1")
+	if (CShopinfo::GetInstance()->m_is_giftcard_pay_open == "1")
 	{
 		pGouwukaLayout->SetVisible(true);
 
@@ -446,7 +443,7 @@ void CDiandanPageUI::InitJiesuanZhifu()
 
 	//美食城临时卡
 	CHorizontalLayoutUI* pMeishichengLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("diandan_jiesuan_zhifufangshi_meishicheng")));
-	if (shopinfo.m_is_food_town_card_pay_open == "1")
+	if (CShopinfo::GetInstance()->m_is_food_town_card_pay_open == "1")
 	{
 		pMeishichengLayout->SetVisible(true);
 
@@ -456,10 +453,11 @@ void CDiandanPageUI::InitJiesuanZhifu()
 	{
 		pMeishichengLayout->SetVisible(false);
 	}
+	*/
 
 	//福利卡
 	CHorizontalLayoutUI* pFulikaLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("diandan_jiesuan_zhifufangshi_fulika")));
-	if (shopinfo.m_is_open_fulika_pay == "1")
+	if (CShopinfo::GetInstance()->m_is_open_fulika_pay == "1")
 	{
 		pFulikaLayout->SetVisible(true);
 
@@ -473,7 +471,7 @@ void CDiandanPageUI::InitJiesuanZhifu()
 	CHorizontalLayoutUI* pZhifufangshiLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("diandan_jiesuan_zhifufangshi_layout")));
 
 	//接着添加自定义支付的
-	for (std::vector<SelfPay>::iterator it = shopinfo.m_self_pay.begin(); it != shopinfo.m_self_pay.end(); it++)
+	for (std::vector<SelfPay>::iterator it = CShopinfo::GetInstance()->m_self_pay.begin(); it != CShopinfo::GetInstance()->m_self_pay.end(); it++)
 	{
 		SelfPay selfpay = *it;
 
@@ -505,8 +503,6 @@ void CDiandanPageUI::InitJiesuanZhifu()
 
 void CDiandanPageUI::UpdateJiesuanZhifuPos()
 {
-	CShopinfo shopinfo = CShopinfo::m_shopinfo;
-
 	//添加支付方式
 	int nWidth = m_nPageWidth;
 	if (nWidth == 0)
@@ -847,31 +843,84 @@ void CDiandanPageUI::HandleTextCapture(std::string content)
 	if (m_is_show_modal_wnd == true)
 	{
 		m_curModalWnd->HandleTextCapture(content);
+
+		return;
+	}
+	
+	//没有任何弹框,那么就是按扫描商品条码来处理
+	bool ret = this->SaomiaoBarcode(content);
+	if (ret == true)
+	{
+		//已经找到了条码,那么就处理完了
+		return;
+	}
+
+	if (content.length() != 12 && content.length() != 13 && content.length() != 17 && content.length() != 18)
+	{
+		//位数不对,那肯定不是称重条码
 	}
 	else
 	{
-		//没有任何弹框,那么就是按扫描商品条码来处理
-		bool ret = this->SaomiaoBarcode(content);
+		//如果没有找到条码,就找一下是不是称重的标签秤的码,这个时候要对码进行各种分析了
+		ret = this->BiaoqianchengSaomaBarcode(content);
 		if (ret == true)
 		{
-			//已经找到了条码,就不接着处理了
+			return;
 		}
-		else
-		{
-			if (content.length() != 12 && content.length() != 13 && content.length() != 17 && content.length() != 18)
-			{
-				//位数不对,那肯定不是称重条码,这里如果不return后面会报错
-				return;
-			}
+	}
 
-			//如果没有找到条码,就找一下是不是称重的标签秤的码,这个时候要对码进行各种分析了
-			ret = this->BiaoqianchengSaomaBarcode(content);
-			if (ret == false)
-			{
-				m_pMainWnd->ShowToast(L"该条码对应的商品不存在!");
-			}
+	//代码走到这里,肯定不是条码了,也不是称重码,判断是不是付款码
+	std::string s_Fukuanma = content;
+
+	int length = s_Fukuanma.size();
+	if (length != 18 && length != 19)
+	{
+		//肯定不是付款码
+		m_pMainWnd->ShowToast(L"无效的条码!");
+		return;
+	}
+
+	for (int i = 0; i < length; i++)
+	{
+		char c = *(s_Fukuanma.c_str() + i);
+		if (isdigit(c) == 0)
+		{
+			//不是数字
+			m_pMainWnd->ShowToast(L"无效的条码!");
+			return;
 		}
 	}
+
+	if (s_Fukuanma.find("10") == 0 \
+		|| s_Fukuanma.find("11") == 0 \
+		|| s_Fukuanma.find("12") == 0 \
+		|| s_Fukuanma.find("13") == 0 \
+		|| s_Fukuanma.find("14") == 0 \
+		|| s_Fukuanma.find("15") == 0)
+	{
+		//微信付款码
+	}
+	else if (s_Fukuanma.find("25") == 0 \
+		|| s_Fukuanma.find("26") == 0 \
+		|| s_Fukuanma.find("27") == 0 \
+		|| s_Fukuanma.find("28") == 0 \
+		|| s_Fukuanma.find("29") == 0 \
+		|| s_Fukuanma.find("30") == 0)
+	{
+		//支付宝付款码
+	}
+	else if (s_Fukuanma.find("62") == 0)
+	{
+		//云闪付付款码
+	}
+	else
+	{
+		m_pMainWnd->ShowToast(L"无效的条码!");
+		return;
+	}
+
+	//代码能走到这里,说明肯定就是付款码了,默认唤起支付
+	this->StartWeixinzhifuShoukuan(content);
 }
 
 void CDiandanPageUI::AddDiandanOrderItemShow(int index)
@@ -1094,7 +1143,7 @@ void CDiandanPageUI::UpdateJiesuanInfo()
 	//再判断分等级会员折扣
 	m_member_zhekou_youhui = 0;
 
-	std::vector<DiscountInfo> member_discount_info = CShopinfo::m_shopinfo.m_discount_info;
+	std::vector<DiscountInfo> member_discount_info = CShopinfo::GetInstance()->m_discount_info;
 
 	for (std::vector<DiscountInfo>::iterator it = member_discount_info.begin(); it != member_discount_info.end(); it++)
 	{
@@ -1167,11 +1216,11 @@ void CDiandanPageUI::UpdateJiesuanInfo()
 	//满减优惠
 	m_manjian_youhui = 0;
 
-	if (CShopinfo::m_shopinfo.m_open_promotion == "1")
+	if (CShopinfo::GetInstance()->m_open_promotion == "1")
 	{
 		//开启了满减,进行判断
 
-		std::vector<Promotion> promotion = CShopinfo::m_shopinfo.m_promotion;
+		std::vector<Promotion> promotion = CShopinfo::GetInstance()->m_promotion;
 
 		for (std::vector<Promotion>::iterator it = promotion.begin(); it != promotion.end(); it++)
 		{
@@ -2736,7 +2785,7 @@ std::map<string, string> CDiandanPageUI::GetSendorderParams()
 	return params;
 }
 
-void CDiandanPageUI::StartWeixinzhifuShoukuan()
+void CDiandanPageUI::StartWeixinzhifuShoukuan(std::string fukuanma)
 {
 	if (m_is_show_modal_wnd == true)
 	{
@@ -2767,12 +2816,10 @@ void CDiandanPageUI::StartWeixinzhifuShoukuan()
 		//这里要对提交订单的参数进行组装,然后方便请求
 		pShoukuanWnd->SetCommonParams(GetSendorderParams());
 
-		/*
-		if (m_is_start_catch && m_catch_string.length() == 18)
+		if (fukuanma != "")
 		{
-			pShoukuanWnd->InitFukuanma(m_catch_string);
+			pShoukuanWnd->InitFukuanma(fukuanma);
 		}
-		}*/
 
 		UINT ret = pShoukuanWnd->ShowModal();
 		if (ret == IDOK)
@@ -3112,7 +3159,7 @@ bool CDiandanPageUI::BiaoqianchengSaomaBarcode(std::string barcode)
 	std::string weight;
 	std::string jiaoyan;
 
-	std::string setting_tiaomacheng_geshi = CSetting::GetParam("setting_tiaomacheng_geshi");
+	std::string setting_tiaomacheng_geshi = CSetting::GetInstance()->GetParam("setting_tiaomacheng_geshi");
 	if (setting_tiaomacheng_geshi == "1")
 	{
 		if (barcode.length() != 12 && barcode.length() != 13)
@@ -3432,7 +3479,7 @@ void CDiandanPageUI::StartWorkAfterShoukuan(std::string kucunstring, std::string
 	//针对现金收款成功,单独做一个打开钱箱的判断处理
 	if (shoukuan_type == "xianjinzhifu")
 	{
-		std::string setting_is_diannei_xianjin_qianxiang = CSetting::GetParam("setting_is_diannei_xianjin_qianxiang");
+		std::string setting_is_diannei_xianjin_qianxiang = CSetting::GetInstance()->GetParam("setting_is_diannei_xianjin_qianxiang");
 		if (setting_is_diannei_xianjin_qianxiang == "1")
 		{
 			//打开钱箱
@@ -3456,9 +3503,7 @@ void CDiandanPageUI::StartWorkAfterShoukuan(std::string kucunstring, std::string
 
 CDiandanOrder CDiandanPageUI::GetPrintOrderinfo(std::string take_food_code, std::string show_trade_no, std::string shoukuan_type)
 {
-	CShopinfo shopinfo = CShopinfo::m_shopinfo;
-
-	m_cur_diandan_order.shopname = shopinfo.m_shop_name;
+	m_cur_diandan_order.shopname = CShopinfo::GetInstance()->m_shop_name;
 	m_cur_diandan_order.take_food_code = take_food_code;
 	m_cur_diandan_order.show_trade_no = show_trade_no;
 

+ 2 - 2
zhipuzi_pos_windows/page/CDiandanPageUI.h

@@ -152,8 +152,8 @@ public:
 	//点击餐牌号按钮
 	void ClickCanpai();
 
-	//开始进行微信支付收款
-	void StartWeixinzhifuShoukuan();
+	//开始进行微信支付收款,如果fukuanma不为空,默认自动唤起支付
+	void StartWeixinzhifuShoukuan(std::string fukuanma = "");
 
 	//开始进行会员收款
 	void StartHuiyuanShoukuan();

+ 1 - 1
zhipuzi_pos_windows/page/CDianneiOrderListPageUI.cpp

@@ -133,7 +133,7 @@ void CDianneiOrderListPageUI::HandleRefresh(DianneiOrderListStatus* status)
 	params["ordercode"] = "";
 	std::string response;
 
-	CZhipuziHttpClient::Request(url.c_str(), params, response);
+	CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
 
 	//走到这里,网络请求结束了,对比状态是否发生了改变
 	if (status->m_page != m_page)

+ 4 - 4
zhipuzi_pos_windows/page/CGengduoPageUI.cpp

@@ -20,9 +20,9 @@ CGengduoPageUI::~CGengduoPageUI()
 void CGengduoPageUI::InitShow()
 {
 	//根据当前数据库里面对功能的配置,来初始化显示
-	m_changyongString = CSetting::GetParam("setting_gongneng_changyong_string");
+	m_changyongString = CSetting::GetInstance()->GetParam("setting_gongneng_changyong_string");
 
-	m_gengduoString = CSetting::GetParam("setting_gongneng_gengduo_string");
+	m_gengduoString = CSetting::GetInstance()->GetParam("setting_gongneng_gengduo_string");
 
 	Refresh();
 }
@@ -789,9 +789,9 @@ void CGengduoPageUI::GengduoJiaohuan(CControlUI* pSender)
 
 void CGengduoPageUI::Save()
 {
-	CSetting::SetParam("setting_gongneng_changyong_string", m_changyongString);
+	CSetting::GetInstance()->SetParam("setting_gongneng_changyong_string", m_changyongString);
 
-    CSetting::SetParam("setting_gongneng_gengduo_string", m_gengduoString);
+    CSetting::GetInstance()->SetParam("setting_gongneng_gengduo_string", m_gengduoString);
 }
 
 void CGengduoPageUI::DianjiBtn(CControlUI* pSender)

+ 1 - 1
zhipuzi_pos_windows/page/CHuiyuanPageUI.cpp

@@ -246,7 +246,7 @@ void CHuiyuanPageUI::StartHuiyuanSousuo()
 	params["phone"] = m_phone;
 
 	std::string response;
-	bool ret = CZhipuziHttpClient::Request("/member/membercheckbyphone", params, response);
+	bool ret = CZhipuziHttpClient::GetInstance()->Request("/member/membercheckbyphone", params, response);
 	if (!ret)
 	{
 		ShowError(L"ÍøÂçÇëÇó³ö´í");

+ 4 - 6
zhipuzi_pos_windows/page/CJiaobanPageUI.cpp

@@ -115,7 +115,7 @@ void CJiaobanPageUI::HandleJiaobanShijian()
 	std::map<string, string> params;
 	std::string response;
 
-	CZhipuziHttpClient::Request(url.c_str(), params, response);
+	CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
 
 	rapidjson::Document document;
 	document.Parse(response.c_str());
@@ -208,7 +208,7 @@ void CJiaobanPageUI::HandleRefresh()
 	params["end_time"] = m_end_time;
 	std::string response;
 
-	CZhipuziHttpClient::RequestNew(url.c_str(), params, response);
+	CZhipuziHttpClient::GetInstance()->RequestNew(url.c_str(), params, response);
 
 	m_response = response;
 
@@ -325,10 +325,8 @@ void CJiaobanPageUI::StartJiaoban()
 	order.m_diannei_xianjin_tuikuan = m_diannei_xianjin_tuikuan;
 	order.m_diannei_xianjin_zengzhang = m_diannei_xianjin_zengzhang;
 
-	CShopinfo shopinfo = CShopinfo::m_shopinfo;
-
-	order.shopname = shopinfo.m_shop_name;
-	order.employee_name = CZhipuziHttpClient::GetUsername();
+	order.shopname = CShopinfo::GetInstance()->m_shop_name;
+	order.employee_name = CZhipuziHttpClient::GetInstance()->GetUsername();
 
 	CPosPrinter printer;
 	printer.PirntJiaobanOrder(order);

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 137 - 137
zhipuzi_pos_windows/page/CSettingPageUI.cpp


+ 1 - 1
zhipuzi_pos_windows/page/CWaimaiOrderListPageUI.cpp

@@ -294,7 +294,7 @@ void CWaimaiOrderListPageUI::HandleRefresh(OrderListStatus* status)
 	params["page"] = to_string(status->m_page);
 	std::string response;
 
-	CZhipuziHttpClient::Request(url.c_str(), params, response);
+	CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
 
 	//走到这里,网络请求结束了,对比状态是否发生了改变
 	if (status->m_page != m_page || status->m_status != m_status)

+ 1 - 9
zhipuzi_pos_windows/pch/pch.cpp

@@ -4,12 +4,4 @@
 
 // 一般情况下,忽略此文件,但如果你使用的是预编译标头,请保留它。
 
-//所有的全局变量都在这里初始化
-
-//最先初始化sqllite数据
-CSetting CSetting::m_setting;
-
-//然后才初始化网络等
-CZhipuziHttpClient CZhipuziHttpClient::m_client;
-
-CShopinfo CShopinfo::m_shopinfo;
+//所有的全局变量都在这里初始化

+ 6 - 6
zhipuzi_pos_windows/print/CPosPrinter.cpp

@@ -13,7 +13,7 @@ CPosPrinter::~CPosPrinter()
 //完成所有打印一个外卖订单的操作
 void CPosPrinter::PrintWaimaiOrder(CWaimaiOrder& order)
 {
-	if (CSetting::GetParam("setting_is_new_waimai_printer") == "1")
+	if (CSetting::GetInstance()->GetParam("setting_is_new_waimai_printer") == "1")
 	{
 		//执行收银小票打印操作
 		CPosPrinterData printData;
@@ -26,7 +26,7 @@ void CPosPrinter::PrintWaimaiOrder(CWaimaiOrder& order)
 		}
 	}
 
-	if (CSetting::GetParam("setting_is_new_waimai_biaoqian_printer") == "1")
+	if (CSetting::GetInstance()->GetParam("setting_is_new_waimai_biaoqian_printer") == "1")
 	{
 		//执行标签小票打印操作
 		CPosPrinterData printData;
@@ -40,7 +40,7 @@ void CPosPrinter::PrintWaimaiOrder(CWaimaiOrder& order)
 	}
 
 	//判断是否进行自动的厨房打印
-	if (CSetting::GetParam("setting_is_new_waimai_chufang_printer") == "1")
+	if (CSetting::GetInstance()->GetParam("setting_is_new_waimai_chufang_printer") == "1")
 	{
 		//进行厨房打印
 		CPosPrinterData printData;
@@ -74,7 +74,7 @@ void CPosPrinter::PrintWaimaiOrder(std::string order_id, std::string order_no)
 //完成所有打印一个点单订单的操作
 void CPosPrinter::PrintDiandanOrder(CDiandanOrder& order)
 {
-	if (CSetting::GetParam("setting_is_new_diannei_printer") == "1")
+	if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_printer") == "1")
 	{
 		//执行收银小票打印操作
 		CPosPrinterData printData;
@@ -87,7 +87,7 @@ void CPosPrinter::PrintDiandanOrder(CDiandanOrder& order)
 		}
 	}
 
-	if (CSetting::GetParam("setting_is_new_diannei_biaoqian_printer") == "1")
+	if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_biaoqian_printer") == "1")
 	{
 		//执行标签小票打印操作
 		CPosPrinterData printData;
@@ -101,7 +101,7 @@ void CPosPrinter::PrintDiandanOrder(CDiandanOrder& order)
 	}
 
 	//判断是否进行自动的厨房打印
-	if (CSetting::GetParam("setting_is_new_diannei_chufang_printer") == "1")
+	if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_chufang_printer") == "1")
 	{
 		//进行厨房打印
 		CPosPrinterData printData;

+ 32 - 32
zhipuzi_pos_windows/print/CPosPrinterData.cpp

@@ -19,8 +19,8 @@ CPosPrinterData::~CPosPrinterData()
 std::string CPosPrinterData::PrintWaimaiOrderShouyin(CWaimaiOrder& order)
 {
     //读取当前收银打印机的设置
-    std::string guige = CSetting::GetParam("setting_printer_guige");
-    std::string lianshu = CSetting::GetParam("setting_printer_lianshu");
+    std::string guige = CSetting::GetInstance()->GetParam("setting_printer_guige");
+    std::string lianshu = CSetting::GetInstance()->GetParam("setting_printer_lianshu");
     int n_lianshu = atoi(lianshu.c_str());
 
     //正式开始打印
@@ -40,7 +40,7 @@ std::string CPosPrinterData::PrintWaimaiOrderShouyin(CWaimaiOrder& order)
 		/*
 		bool setting_printer_peisongshijian_big = false;
 
-		if (CSetting::GetParam("setting_printer_peisongshijian_big") == "1")
+		if (CSetting::GetInstance()->GetParam("setting_printer_peisongshijian_big") == "1")
 		{
 			setting_printer_peisongshijian_big = true;
 		}
@@ -81,7 +81,7 @@ std::string CPosPrinterData::PrintWaimaiOrderShouyin(CWaimaiOrder& order)
 		/*
         bool setting_printer_quhuo_big = false;
 
-        if(CSetting::GetParam("setting_printer_quhuo_big") == "1")
+        if(CSetting::GetInstance()->GetParam("setting_printer_quhuo_big") == "1")
         {
             setting_printer_quhuo_big = true;
         }
@@ -109,7 +109,7 @@ std::string CPosPrinterData::PrintWaimaiOrderShouyin(CWaimaiOrder& order)
         //订单号
         bool setting_printer_dingdanhao_big = false;
 
-        if(CSetting::GetParam("setting_printer_dingdanhao_big") == "1")
+        if(CSetting::GetInstance()->GetParam("setting_printer_dingdanhao_big") == "1")
         {
             setting_printer_dingdanhao_big = true;
         }
@@ -121,7 +121,7 @@ std::string CPosPrinterData::PrintWaimaiOrderShouyin(CWaimaiOrder& order)
         //下单时间
         bool setting_printer_xiadanshijian_big = false;
 
-        if(CSetting::GetParam("setting_printer_xiadanshijian_big") == "1")
+        if(CSetting::GetInstance()->GetParam("setting_printer_xiadanshijian_big") == "1")
         {
             setting_printer_xiadanshijian_big = true;
         }
@@ -133,7 +133,7 @@ std::string CPosPrinterData::PrintWaimaiOrderShouyin(CWaimaiOrder& order)
         //姓名
         bool setting_printer_name_big = false;
 
-        if(CSetting::GetParam("setting_printer_name_big") == "1")
+        if(CSetting::GetInstance()->GetParam("setting_printer_name_big") == "1")
         {
             setting_printer_name_big = true;
         }
@@ -155,7 +155,7 @@ std::string CPosPrinterData::PrintWaimaiOrderShouyin(CWaimaiOrder& order)
         //电话
         bool setting_printer_phone_big = false;
 
-        if(CSetting::GetParam("setting_printer_phone_big") == "1")
+        if(CSetting::GetInstance()->GetParam("setting_printer_phone_big") == "1")
         {
             setting_printer_phone_big = true;
         }
@@ -167,7 +167,7 @@ std::string CPosPrinterData::PrintWaimaiOrderShouyin(CWaimaiOrder& order)
         //地址
         bool setting_printer_address_big = false;
 
-        if(CSetting::GetParam("setting_printer_address_big") == "1")
+        if(CSetting::GetInstance()->GetParam("setting_printer_address_big") == "1")
         {
             setting_printer_address_big = true;
         }
@@ -208,7 +208,7 @@ std::string CPosPrinterData::PrintWaimaiOrderShouyin(CWaimaiOrder& order)
         //商品标题
         bool setting_printer_shangpin_big = false;
 
-        if(CSetting::GetParam("setting_printer_shangpin_big") == "1")
+        if(CSetting::GetInstance()->GetParam("setting_printer_shangpin_big") == "1")
         {
             setting_printer_shangpin_big = true;
         }
@@ -301,7 +301,7 @@ std::string CPosPrinterData::PrintWaimaiOrderShouyin(CWaimaiOrder& order)
         {
             bool setting_printer_memo_big = false;
 
-            if(CSetting::GetParam("setting_printer_memo_big") == "1")
+            if(CSetting::GetInstance()->GetParam("setting_printer_memo_big") == "1")
             {
                 setting_printer_memo_big = true;
             }
@@ -320,7 +320,7 @@ std::string CPosPrinterData::PrintWaimaiOrderShouyin(CWaimaiOrder& order)
         bool is_other_money = false;
         bool setting_printer_price_big = false;
 
-        if(CSetting::GetParam("setting_printer_price_big") == "1")
+        if(CSetting::GetInstance()->GetParam("setting_printer_price_big") == "1")
         {
             setting_printer_price_big = true;
         }
@@ -413,7 +413,7 @@ std::string CPosPrinterData::PrintWaimaiOrderShouyin(CWaimaiOrder& order)
         //显示付款方式
         bool setting_printer_pay_big = false;
 
-        if(CSetting::GetParam("setting_printer_pay_big") == "1")
+        if(CSetting::GetInstance()->GetParam("setting_printer_pay_big") == "1")
         {
             setting_printer_pay_big = true;
         }
@@ -443,12 +443,12 @@ std::string CPosPrinterData::PrintWaimaiOrderShouyin(CWaimaiOrder& order)
 
 std::string CPosPrinterData::PrintWaimaiOrderBiaoqian(CWaimaiOrder& order)
 {
-    std::string printer_usb = CSetting::GetParam("setting_biaoqian_printer_usb");
+    std::string printer_usb = CSetting::GetInstance()->GetParam("setting_biaoqian_printer_usb");
     std::wstring ws_printer_usb = CLewaimaiString::UTF8ToUnicode(printer_usb);
 
 	//读取标签纸的规格和方向
 	int biaoqian_width, biaoqian_height;
-	std::string printer_guige = CSetting::GetParam("setting_biaoqian_printer_guige");
+	std::string printer_guige = CSetting::GetInstance()->GetParam("setting_biaoqian_printer_guige");
 	if (printer_guige == "40*30mm")
 	{
 		biaoqian_width = 40;
@@ -476,7 +476,7 @@ std::string CPosPrinterData::PrintWaimaiOrderBiaoqian(CWaimaiOrder& order)
 	}
 
 	int nDIRECTION;
-	std::string printer_fangxiang = CSetting::GetParam("setting_biaoqian_printer_fangxiang");
+	std::string printer_fangxiang = CSetting::GetInstance()->GetParam("setting_biaoqian_printer_fangxiang");
 	if (printer_fangxiang ==  "1")
 	{
 		nDIRECTION = 1;
@@ -636,7 +636,7 @@ std::vector<ChufangPrinterContent> CPosPrinterData::PrintWaimaiOrderChufang(CWai
 	std::vector<ChufangPrinterContent> datas;
 
     //读取厨房打印机信息
-    std::vector<ChufangPrinter> total_printers = CSetting::getChufangPrints();
+    std::vector<ChufangPrinter> total_printers = CSetting::GetInstance()->getChufangPrints();
 
     for(std::vector<ChufangPrinter>::iterator it = total_printers.begin(); it != total_printers.end(); it++)
     {
@@ -969,8 +969,8 @@ std::vector<ChufangPrinterContent> CPosPrinterData::PrintWaimaiOrderChufang(CWai
 std::string CPosPrinterData::PrintDiandanOrderShouyin(CDiandanOrder& order)
 {
 	//读取当前收银打印机的设置
-	std::string guige = CSetting::GetParam("setting_printer_guige");
-	std::string lianshu = CSetting::GetParam("setting_printer_lianshu");
+	std::string guige = CSetting::GetInstance()->GetParam("setting_printer_guige");
+	std::string lianshu = CSetting::GetInstance()->GetParam("setting_printer_lianshu");
 	int n_lianshu = atoi(lianshu.c_str());
 
 	//正式开始打印
@@ -1001,7 +1001,7 @@ std::string CPosPrinterData::PrintDiandanOrderShouyin(CDiandanOrder& order)
 
 		//订单号
 		bool setting_printer_dingdanhao_big = false;
-		if (CSetting::GetParam("setting_printer_dingdanhao_big") == "1")
+		if (CSetting::GetInstance()->GetParam("setting_printer_dingdanhao_big") == "1")
 		{
 			setting_printer_dingdanhao_big = true;
 		}
@@ -1033,7 +1033,7 @@ std::string CPosPrinterData::PrintDiandanOrderShouyin(CDiandanOrder& order)
 		//下单时间
 		bool setting_printer_xiadanshijian_big = false;
 
-		if (CSetting::GetParam("setting_printer_xiadanshijian_big") == "1")
+		if (CSetting::GetInstance()->GetParam("setting_printer_xiadanshijian_big") == "1")
 		{
 			setting_printer_xiadanshijian_big = true;
 		}
@@ -1073,7 +1073,7 @@ std::string CPosPrinterData::PrintDiandanOrderShouyin(CDiandanOrder& order)
 		//商品标题
 		bool setting_printer_shangpin_big = false;
 
-		if (CSetting::GetParam("setting_printer_shangpin_big") == "1")
+		if (CSetting::GetInstance()->GetParam("setting_printer_shangpin_big") == "1")
 		{
 			setting_printer_shangpin_big = true;
 		}
@@ -1168,7 +1168,7 @@ std::string CPosPrinterData::PrintDiandanOrderShouyin(CDiandanOrder& order)
 		{
 			bool setting_printer_memo_big = false;
 
-			if (CSetting::GetParam("setting_printer_memo_big") == "1")
+			if (CSetting::GetInstance()->GetParam("setting_printer_memo_big") == "1")
 			{
 				setting_printer_memo_big = true;
 			}
@@ -1187,7 +1187,7 @@ std::string CPosPrinterData::PrintDiandanOrderShouyin(CDiandanOrder& order)
 		bool is_other_money = false;
 		bool setting_printer_price_big = false;
 
-		if (CSetting::GetParam("setting_printer_price_big") == "1")
+		if (CSetting::GetInstance()->GetParam("setting_printer_price_big") == "1")
 		{
 			setting_printer_price_big = true;
 		}
@@ -1309,7 +1309,7 @@ std::string CPosPrinterData::PrintDiandanOrderShouyin(CDiandanOrder& order)
 		//显示付款方式
 		bool setting_printer_pay_big = false;
 
-		if (CSetting::GetParam("setting_printer_pay_big") == "1")
+		if (CSetting::GetInstance()->GetParam("setting_printer_pay_big") == "1")
 		{
 			setting_printer_pay_big = true;
 		}
@@ -1339,12 +1339,12 @@ std::string CPosPrinterData::PrintDiandanOrderShouyin(CDiandanOrder& order)
 
 std::string CPosPrinterData::PrintDiandanOrderBiaoqian(CDiandanOrder& order)
 {
-	std::string printer_usb = CSetting::GetParam("setting_biaoqian_printer_usb");
+	std::string printer_usb = CSetting::GetInstance()->GetParam("setting_biaoqian_printer_usb");
 	std::wstring ws_printer_usb = CLewaimaiString::UTF8ToUnicode(printer_usb);
 
 	//读取标签纸的规格和方向
 	int biaoqian_width, biaoqian_height;
-	std::string printer_guige = CSetting::GetParam("setting_biaoqian_printer_guige");
+	std::string printer_guige = CSetting::GetInstance()->GetParam("setting_biaoqian_printer_guige");
 	if (printer_guige == "40*30mm")
 	{
 		biaoqian_width = 40;
@@ -1372,7 +1372,7 @@ std::string CPosPrinterData::PrintDiandanOrderBiaoqian(CDiandanOrder& order)
 	}
 
 	int nDIRECTION;
-	std::string printer_fangxiang = CSetting::GetParam("setting_biaoqian_printer_fangxiang");
+	std::string printer_fangxiang = CSetting::GetInstance()->GetParam("setting_biaoqian_printer_fangxiang");
 	if (printer_fangxiang == "1")
 	{
 		nDIRECTION = 1;
@@ -1387,8 +1387,8 @@ std::string CPosPrinterData::PrintDiandanOrderBiaoqian(CDiandanOrder& order)
 
 	std::vector<CDiandanOrderItemPrint> cur_printer_use;
 
-	std::string setting_biaoqian_printer_is_type = CSetting::GetParam("setting_biaoqian_printer_is_type");
-	std::string setting_biaoqian_printer_type_ids = CSetting::GetParam("setting_biaoqian_printer_type_ids");
+	std::string setting_biaoqian_printer_is_type = CSetting::GetInstance()->GetParam("setting_biaoqian_printer_is_type");
+	std::string setting_biaoqian_printer_type_ids = CSetting::GetInstance()->GetParam("setting_biaoqian_printer_type_ids");
 
 	if (setting_biaoqian_printer_is_type == "0")
 	{
@@ -1531,7 +1531,7 @@ std::vector<ChufangPrinterContent> CPosPrinterData::PrintDiandanOrderChufang(CDi
 	std::vector<ChufangPrinterContent> datas;
 
 	//读取厨房打印机信息
-	std::vector<ChufangPrinter> total_printers = CSetting::getChufangPrints();
+	std::vector<ChufangPrinter> total_printers = CSetting::GetInstance()->getChufangPrints();
 
 	for (std::vector<ChufangPrinter>::iterator it = total_printers.begin(); it != total_printers.end(); it++)
 	{
@@ -1848,7 +1848,7 @@ std::vector<ChufangPrinterContent> CPosPrinterData::PrintDiandanOrderChufang(CDi
 std::string CPosPrinterData::PrintJiaobanOrder(CJiaobaoOrder& order)
 {
 	//读取当前收银打印机的设置
-	std::string guige = CSetting::GetParam("setting_printer_guige");
+	std::string guige = CSetting::GetInstance()->GetParam("setting_printer_guige");
 
 	//正式开始打印
 	POS_Reset();

+ 7 - 7
zhipuzi_pos_windows/print/CPosPrinterQueue.cpp

@@ -179,7 +179,7 @@ void CPosPrinterQueue::SendDataToShouyinPirnter(std::string data)
 	boost::asio::io_service m_io;
 	boost::asio::ip::tcp::socket m_socket(m_io);
 
-	std::string printer_leixing = CSetting::GetParam("setting_printer_leixing");
+	std::string printer_leixing = CSetting::GetInstance()->GetParam("setting_printer_leixing");
 
 	if (printer_leixing == "auto")
 	{
@@ -192,7 +192,7 @@ void CPosPrinterQueue::SendDataToShouyinPirnter(std::string data)
 	}
 	else if (printer_leixing == "usb")
 	{
-		std::string printer_usb = CSetting::GetParam("setting_printer_usb");
+		std::string printer_usb = CSetting::GetInstance()->GetParam("setting_printer_usb");
 		std::wstring ws_printer_usb = CLewaimaiString::UTF8ToUnicode(printer_usb);
 
 		bool ret = InitOneUsb(ws_printer_usb, 1);
@@ -218,7 +218,7 @@ void CPosPrinterQueue::SendDataToShouyinPirnter(std::string data)
 		//改为网口模式
 		nType = 2;
 
-		std::string wangkou_ip = CSetting::GetParam("setting_printer_wangkou_ip");
+		std::string wangkou_ip = CSetting::GetInstance()->GetParam("setting_printer_wangkou_ip");
 
 		//初始化连接
 		try
@@ -284,7 +284,7 @@ void CPosPrinterQueue::SendDataToShouyinPirnter(std::string data)
 
 void CPosPrinterQueue::SendDataToBiaoqianPirnter(std::string data)
 {
-	std::string printer_usb = CSetting::GetParam("setting_biaoqian_printer_usb");
+	std::string printer_usb = CSetting::GetInstance()->GetParam("setting_biaoqian_printer_usb");
 	std::wstring ws_printer_usb = CLewaimaiString::UTF8ToUnicode(printer_usb);
 
 	//连接usb端口
@@ -324,7 +324,7 @@ void CPosPrinterQueue::SendDataToChufangPirnter(ChufangPrinterContent chufang_da
 	boost::asio::ip::tcp::socket m_socket(m_io);
 
 	//读取厨房打印机信息
-	std::vector<ChufangPrinter> total_printers = CSetting::getChufangPrints();
+	std::vector<ChufangPrinter> total_printers = CSetting::GetInstance()->getChufangPrints();
 
 	std::string ip = chufang_data.ip;
 	std::string data = chufang_data.data;
@@ -375,10 +375,10 @@ void CPosPrinterQueue::InitUsb()
 
 	while (i < nDevice)
 	{
-		std::string setting_biaoqian_printer_usb = CSetting::GetParam("setting_biaoqian_printer_usb");
+		std::string setting_biaoqian_printer_usb = CSetting::GetInstance()->GetParam("setting_biaoqian_printer_usb");
 		std::wstring ws_setting_biaoqian_printer_usb = CLewaimaiString::UTF8ToUnicode(setting_biaoqian_printer_usb);
 
-		if (CSetting::GetParam("setting_is_new_waimai_biaoqian_printer") == "1" && ws_setting_biaoqian_printer_usb == m_usb_devices[i])
+		if (CSetting::GetInstance()->GetParam("setting_is_new_waimai_biaoqian_printer") == "1" && ws_setting_biaoqian_printer_usb == m_usb_devices[i])
 		{
 			//碰到了一个在设置中心明确设置的标签打印机,过滤掉
 			i++;

+ 3 - 0
zhipuzi_pos_windows/tool/CAppEnv.cpp

@@ -22,6 +22,9 @@ void CAppEnv::Start()
 	CLewaimaiLog log;
 	log.Init();
 
+	//初始化配置
+	CSetting::GetInstance()->Init();
+
 	//启动打印队列
 	CPosPrinterQueue::GetInstance()->StartWork();
 

+ 24 - 28
zhipuzi_pos_windows/tool/CSetting.cpp

@@ -5,11 +5,7 @@
 
 CSetting::CSetting()
 {
-	this->Init();
-}
 
-CSetting::~CSetting()
-{
 }
 
 void CSetting::Init()
@@ -350,11 +346,11 @@ void CSetting::Init()
 
 void CSetting::SetParam(std::string name, std::string value, bool isSave)
 {
-	m_setting.m_mutex.lock();
+	m_mutex.lock();
 
-	m_setting.m_paramsMap[name] = value;
+	m_paramsMap[name] = value;
 
-	m_setting.m_mutex.unlock();
+	m_mutex.unlock();
 
 	if (isSave)
 	{
@@ -364,11 +360,11 @@ void CSetting::SetParam(std::string name, std::string value, bool isSave)
 
 std::string CSetting::GetParam(std::string name)
 {
-	m_setting.m_mutex.lock();
+	m_mutex.lock();
 
-	std::string value = m_setting.m_paramsMap[name];
+	std::string value = m_paramsMap[name];
 
-	m_setting.m_mutex.unlock();
+	m_mutex.unlock();
 
 	return value;
 }
@@ -385,7 +381,7 @@ void CSetting::AddChufangPrinter(std::string date, std::string name, std::string
 	newPrinter.fenlei = fenlei;
 	newPrinter.fenlei_ids = fenlei_ids;
 
-	m_setting.m_chufang_printers.push_back(newPrinter);
+	m_chufang_printers.push_back(newPrinter);
 
 	if (isSave)
 	{
@@ -395,7 +391,7 @@ void CSetting::AddChufangPrinter(std::string date, std::string name, std::string
 
 void CSetting::UpdateChufangPrinter(std::string date, std::string name, std::string ip, std::string guige, std::string fendan, std::string fenlei, std::string fenlei_ids, bool isSave)
 {
-	for (std::vector<ChufangPrinter>::iterator it = m_setting.m_chufang_printers.begin(); it != m_setting.m_chufang_printers.end(); it++)
+	for (std::vector<ChufangPrinter>::iterator it = m_chufang_printers.begin(); it != m_chufang_printers.end(); it++)
 	{
 		if ((*it).date == date)
 		{
@@ -421,11 +417,11 @@ void CSetting::UpdateChufangPrinter(std::string date, std::string name, std::str
  **/
 void CSetting::DelChufangPrinter(std::string date)
 {
-	for (std::vector<ChufangPrinter>::iterator it = m_setting.m_chufang_printers.begin(); it != m_setting.m_chufang_printers.end(); it++)
+	for (std::vector<ChufangPrinter>::iterator it = m_chufang_printers.begin(); it != m_chufang_printers.end(); it++)
 	{
 		if ((*it).date == date)
 		{
-			m_setting.m_chufang_printers.erase(it);
+			m_chufang_printers.erase(it);
 
 			break;
 		}
@@ -436,7 +432,7 @@ void CSetting::DelChufangPrinter(std::string date)
 
 ChufangPrinter CSetting::GetChufangPrinter(std::string date)
 {
-	for (std::vector<ChufangPrinter>::iterator it = m_setting.m_chufang_printers.begin(); it != m_setting.m_chufang_printers.end(); it++)
+	for (std::vector<ChufangPrinter>::iterator it = m_chufang_printers.begin(); it != m_chufang_printers.end(); it++)
 	{
 		if ((*it).date == date)
 		{
@@ -449,35 +445,35 @@ ChufangPrinter CSetting::GetChufangPrinter(std::string date)
 
 ChufangPrinter CSetting::getLastChufangPrinter()
 {
-	return m_setting.m_chufang_printers.back();
+	return m_chufang_printers.back();
 }
 
 std::vector<ChufangPrinter>& CSetting::getChufangPrints()
 {
-	return m_setting.m_chufang_printers;
+	return m_chufang_printers;
 }
 
 void CSetting::SaveParams()
 {
 	CSqlite3 sqllite;
-	sqllite.SaveParams(m_setting.m_paramsMap);
+	sqllite.SaveParams(m_paramsMap);
 }
 
 void CSetting::SaveChufangPrinter()
 {
 	CSqlite3 sqllite;
-	sqllite.SaveChufangPrinter(m_setting.m_chufang_printers);
+	sqllite.SaveChufangPrinter(m_chufang_printers);
 }
 
 void CSetting::SaveUsers()
 {
 	CSqlite3 sqllite;
-	sqllite.SaveUsers(m_setting.m_users);
+	sqllite.SaveUsers(m_users);
 }
 
 void CSetting::SetUser(std::string name, std::string password, bool isSave)
 {
-	m_setting.m_users[name] = password;
+	m_users[name] = password;
 
 	if (isSave)
 	{
@@ -487,31 +483,31 @@ void CSetting::SetUser(std::string name, std::string password, bool isSave)
 
 std::string CSetting::GetUser(std::string name)
 {
-	if (m_setting.m_users.find(name) == m_setting.m_users.end())
+	if (m_users.find(name) == m_users.end())
 	{
 		return "";
 	}
 
-	return m_setting.m_users[name];
+	return m_users[name];
 }
 
 std::map<string, string> CSetting::getUsers()
 {
-	return m_setting.m_users;
+	return m_users;
 }
 
 void CSetting::SetLoginInfo(std::string username, std::string password)
 {
-	m_setting.m_username = username;
-	m_setting.m_password = password;
+	m_username = username;
+	m_password = password;
 }
 
 std::string CSetting::getUsername()
 {
-	return m_setting.m_username;
+	return m_username;
 }
 
 std::string CSetting::getPassword()
 {
-	return m_setting.m_password;
+	return m_password;
 }

+ 27 - 23
zhipuzi_pos_windows/tool/CSetting.h

@@ -17,48 +17,53 @@ public:
 class CSetting
 {
 public:
+	static CSetting* GetInstance()
+	{
+		static CSetting instance;
+
+		return &instance;
+	}
+
+private:
 	CSetting();
-	~CSetting();
 
+public:
 	//刚打开程序的时候,根据数据库初始化内存,并且添加默认参数
 	void Init();
 
 	//修改内存中的参数设置
-	static void SetParam(std::string name, std::string value, bool isSave = true);
-	static std::string GetParam(std::string name);
+	void SetParam(std::string name, std::string value, bool isSave = true);
+	std::string GetParam(std::string name);
 
 	//厨房打印机相关的参数配置
-	static void AddChufangPrinter(std::string date, std::string name, std::string ip, std::string guige, std::string fendan, std::string fenlei, std::string fenlei_ids, bool isSave = true);
-	static void UpdateChufangPrinter(std::string date, std::string name, std::string ip, std::string guige, std::string fendan, std::string fenlei, std::string fenlei_ids, bool isSave = true);
-	static void DelChufangPrinter(std::string date);
-	static ChufangPrinter GetChufangPrinter(std::string date);
-	static ChufangPrinter getLastChufangPrinter();
-	static std::vector<ChufangPrinter>& getChufangPrints();
+	void AddChufangPrinter(std::string date, std::string name, std::string ip, std::string guige, std::string fendan, std::string fenlei, std::string fenlei_ids, bool isSave = true);
+	void UpdateChufangPrinter(std::string date, std::string name, std::string ip, std::string guige, std::string fendan, std::string fenlei, std::string fenlei_ids, bool isSave = true);
+	void DelChufangPrinter(std::string date);
+	ChufangPrinter GetChufangPrinter(std::string date);
+	ChufangPrinter getLastChufangPrinter();
+	std::vector<ChufangPrinter>& getChufangPrints();
 
 	/*
 	 *把内存中的厨房打印机信息,存到数据库
 	 **/
-	static void SaveChufangPrinter();
+	void SaveChufangPrinter();
 
-	static void SetUser(std::string name, std::string password, bool isSave = true);
-	static std::string GetUser(std::string name);
-	static std::map<string, string> getUsers();	
+	void SetUser(std::string name, std::string password, bool isSave = true);
+	std::string GetUser(std::string name);
+	std::map<string, string> getUsers();	
 
-	static void SetLoginInfo(std::string username, std::string password);
+	void SetLoginInfo(std::string username, std::string password);
 
-	static std::string getUsername();
-	static std::string getPassword();
+	std::string getUsername();
+	std::string getPassword();
 
 private:
 	/*
 	 *把内存中的参数,写到数据库中
 	 **/
-	static void SaveParams();
+	void SaveParams();
 
-	static void SaveUsers();
-
-public:
-	static CSetting m_setting;
+	void SaveUsers();
 
 private:
 	std::map<std::string, std::string> m_paramsMap;
@@ -70,5 +75,4 @@ private:
 
 	std::string m_username;
 	std::string m_password;
-};
-
+};

+ 3 - 3
zhipuzi_pos_windows/tool/CSqlite3.cpp

@@ -156,7 +156,7 @@ bool CSqlite3::InitPosConfig()
 					std::string name = (char*)sqlite3_column_text(stmt, 0);
 					std::string value = (char*)sqlite3_column_text(stmt, 1);
 
-					CSetting::SetParam(name, value, false);
+					CSetting::GetInstance()->SetParam(name, value, false);
 				}
 
 				sqlite3_finalize(stmt);
@@ -386,7 +386,7 @@ bool CSqlite3::InitPosChufangPrinter()
 					std::string fenlei_ids = (char*)sqlite3_column_text(stmt, 7);
 
 					//这里仅仅是把数据库内容读到内存,所以之类用false
-					CSetting::AddChufangPrinter(date, name, ip, guige, fendan, fenlei, fenlei_ids, false);
+					CSetting::GetInstance()->AddChufangPrinter(date, name, ip, guige, fendan, fenlei, fenlei_ids, false);
 				}
 
 				sqlite3_finalize(stmt);
@@ -468,7 +468,7 @@ bool CSqlite3::InitPosUser()
 					std::string password = (char*)sqlite3_column_text(stmt, 2);
 
 					//这里仅仅是把数据库内容读到内存,所以之类用false
-					CSetting::SetUser(username, password);
+					CSetting::GetInstance()->SetUser(username, password);
 				}
 
 				sqlite3_finalize(stmt);

+ 8 - 8
zhipuzi_pos_windows/wnd/CChufangSettingWnd.cpp

@@ -120,7 +120,7 @@ void CChufangSettingWnd::Init()
 	}
 	else
 	{
-		ChufangPrinter updatePrinter = CSetting::GetChufangPrinter(m_printer_date);
+		ChufangPrinter updatePrinter = CSetting::GetInstance()->GetChufangPrinter(m_printer_date);
 		name->SetText(CLewaimaiString::UTF8ToUnicode(updatePrinter.name).c_str());
 	}
 
@@ -132,7 +132,7 @@ void CChufangSettingWnd::Init()
 	}
 	else
 	{
-		ChufangPrinter updatePrinter = CSetting::GetChufangPrinter(m_printer_date);
+		ChufangPrinter updatePrinter = CSetting::GetInstance()->GetChufangPrinter(m_printer_date);
 		ip->SetText(CLewaimaiString::UTF8ToUnicode(updatePrinter.ip).c_str());
 	}
 
@@ -144,7 +144,7 @@ void CChufangSettingWnd::Init()
 	}
 	else
 	{
-		ChufangPrinter updatePrinter = CSetting::GetChufangPrinter(m_printer_date);
+		ChufangPrinter updatePrinter = CSetting::GetInstance()->GetChufangPrinter(m_printer_date);
 		if (updatePrinter.guige == "58")
 		{
 			com->SetInternVisible(true);
@@ -165,7 +165,7 @@ void CChufangSettingWnd::Init()
 	}
 	else
 	{
-		ChufangPrinter updatePrinter = CSetting::GetChufangPrinter(m_printer_date);
+		ChufangPrinter updatePrinter = CSetting::GetInstance()->GetChufangPrinter(m_printer_date);
 		if (updatePrinter.fendan == "1")
 		{
 			fendan->Selected(true, false);
@@ -183,7 +183,7 @@ void CChufangSettingWnd::Init()
 	}
 	else
 	{
-		ChufangPrinter updatePrinter = CSetting::GetChufangPrinter(m_printer_date);
+		ChufangPrinter updatePrinter = CSetting::GetInstance()->GetChufangPrinter(m_printer_date);
 		if (updatePrinter.fenlei == "1")
 		{
 			fenlei->Selected(true, false);
@@ -205,7 +205,7 @@ void CChufangSettingWnd::Init()
 
 	if (m_mode == 2)
 	{
-		updatePrinter = CSetting::GetChufangPrinter(m_printer_date);
+		updatePrinter = CSetting::GetInstance()->GetChufangPrinter(m_printer_date);
 		std::string foodtype_ids = updatePrinter.fenlei_ids;
 		std::vector<string> ids = CLewaimaiString::Split(foodtype_ids, ",");
 		for (std::vector<string>::iterator it = ids.begin(); it != ids.end(); it++)
@@ -337,11 +337,11 @@ void CChufangSettingWnd::Notify(TNotifyUI& msg)
 
 			if (m_mode == 1)
 			{
-				CSetting::AddChufangPrinter(date, name, ip, guige, fendan, fenlei, fenlei_ids, true);
+				CSetting::GetInstance()->AddChufangPrinter(date, name, ip, guige, fendan, fenlei, fenlei_ids, true);
 			}
 			else
 			{
-				CSetting::UpdateChufangPrinter(m_printer_date, name, ip, guige, fendan, fenlei, fenlei_ids, true);
+				CSetting::GetInstance()->UpdateChufangPrinter(m_printer_date, name, ip, guige, fendan, fenlei, fenlei_ids, true);
 			}
 
 			Close(IDOK);

+ 6 - 6
zhipuzi_pos_windows/wnd/CFulikaShoukuanWnd.cpp

@@ -709,7 +709,7 @@ LRESULT CFulikaShoukuanWnd::OnShoukuanNeedPassword(UINT uMsg, WPARAM wParam, LPA
 {
 	wstring path = CSystem::GetProgramDir() + L"\\music\\pay_password.wav";
 
-	if (CSetting::GetParam("shoukuan_setting_yuyinbobao") == "1")
+	if (CSetting::GetInstance()->GetParam("shoukuan_setting_yuyinbobao") == "1")
 	{
 		PlaySound(path.c_str(), NULL, SND_FILENAME | SND_ASYNC);
 	}
@@ -727,7 +727,7 @@ LRESULT CFulikaShoukuanWnd::OnShoukuanNeedPassword(UINT uMsg, WPARAM wParam, LPA
 LRESULT CFulikaShoukuanWnd::OnShoukuanSuccess(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
 {
 	//播放收款成功的金额
-	if (CSetting::GetParam("setting_is_new_diannei_voice") == "1")
+	if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_voice") == "1")
 	{
 		std::thread(&CFulikaShoukuanWnd::ReadShoukuanValue, this).detach();
 	}
@@ -759,7 +759,7 @@ LRESULT CFulikaShoukuanWnd::OnShoukuanFail(UINT uMsg, WPARAM wParam, LPARAM lPar
 {
 	wstring path = CSystem::GetProgramDir() + L"\\music\\pay_fail.wav";
 
-	if (CSetting::GetParam("setting_is_new_diannei_voice") == "1")
+	if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_voice") == "1")
 	{
 		PlaySound(path.c_str(), NULL, SND_FILENAME | SND_ASYNC);
 	}
@@ -912,7 +912,7 @@ void CFulikaShoukuanWnd::HandleShoukuan()
 	std::string response;
 
 	std::string url = "/diancan/sendorder";
-	bool ret = CZhipuziHttpClient::Request(url.c_str(), m_commonParams, response);
+	bool ret = CZhipuziHttpClient::GetInstance()->Request(url.c_str(), m_commonParams, response);
 	if (ret == false)
 	{
 		m_shoukuan_status = 4;
@@ -1038,7 +1038,7 @@ void CFulikaShoukuanWnd::HandleShoukuanPassword()
 		std::string response;
 
 		std::string url = "/diancan/queryorderstatus";
-		bool ret = CZhipuziHttpClient::Request(url.c_str(), params, response);
+		bool ret = CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
 		if (ret == false)
 		{
 			m_shoukuan_status = 4;
@@ -1151,7 +1151,7 @@ void CFulikaShoukuanWnd::HandleCancelShoukuan()
 	std::string response;
 
 	std::string url = "/diancan/closeorder";
-	bool ret = CZhipuziHttpClient::Request(url.c_str(), params, response);
+	bool ret = CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
 	if (ret == false)
 	{
 		m_shoukuan_status = 4;

+ 1 - 1
zhipuzi_pos_windows/wnd/CHuiyuanAddWnd.cpp

@@ -668,7 +668,7 @@ void CHuiyuanAddWnd::ConfirmMember()
 	params["is_no_card"] = "1";
 
 	std::string response;
-	bool ret = CZhipuziHttpClient::Request("/member/add", params, response);
+	bool ret = CZhipuziHttpClient::GetInstance()->Request("/member/add", params, response);
 	if (!ret)
 	{
 		m_errorInfo = _T("网络请求出错");

+ 7 - 7
zhipuzi_pos_windows/wnd/CHuiyuanChongzhiWnd.cpp

@@ -674,7 +674,7 @@ LRESULT CHuiyuanChongzhiWnd::OnShoukuanNeedPassword(UINT uMsg, WPARAM wParam, LP
 {
 	wstring path = CSystem::GetProgramDir() + L"\\music\\pay_password.wav";
 
-	if (CSetting::GetParam("shoukuan_setting_yuyinbobao") == "1")
+	if (CSetting::GetInstance()->GetParam("shoukuan_setting_yuyinbobao") == "1")
 	{
 		PlaySound(path.c_str(), NULL, SND_FILENAME | SND_ASYNC);
 	}
@@ -694,7 +694,7 @@ LRESULT CHuiyuanChongzhiWnd::OnShoukuanSuccess(UINT uMsg, WPARAM wParam, LPARAM
 	m_is_start_saoma = false;
 
 	//播放充值成功的金额
-	if (CSetting::GetParam("setting_is_new_diannei_voice") == "1")
+	if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_voice") == "1")
 	{
 		std::thread(&CHuiyuanChongzhiWnd::ReadShoukuanValue, this).detach();
 	}
@@ -728,7 +728,7 @@ LRESULT CHuiyuanChongzhiWnd::OnShoukuanFail(UINT uMsg, WPARAM wParam, LPARAM lPa
 
 	wstring path = CSystem::GetProgramDir() + L"\\music\\pay_fail.wav";
 
-	if (CSetting::GetParam("setting_is_new_diannei_voice") == "1")
+	if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_voice") == "1")
 	{
 		PlaySound(path.c_str(), NULL, SND_FILENAME | SND_ASYNC);
 	}
@@ -834,7 +834,7 @@ void CHuiyuanChongzhiWnd::HandleShoukuan()
 	std::string response;
 
 	std::string url = "/member/getpaytoken";
-	bool ret = CZhipuziHttpClient::Request(url.c_str(), params, response);
+	bool ret = CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
 	if (ret == false)
 	{
 		m_shoukuan_status = 4;
@@ -919,7 +919,7 @@ void CHuiyuanChongzhiWnd::HandleShoukuan()
 	std::string response_2;
 
 	std::string url_2 = "/member/newpay";
-	bool ret_2 = CZhipuziHttpClient::Request(url_2.c_str(), params_2, response_2);
+	bool ret_2 = CZhipuziHttpClient::GetInstance()->Request(url_2.c_str(), params_2, response_2);
 	if (ret_2 == false)
 	{
 		m_shoukuan_status = 4;
@@ -1031,7 +1031,7 @@ void CHuiyuanChongzhiWnd::HandleShoukuanPassword()
 		std::string response;
 
 		std::string url = "/member/queryorderstatus";
-		bool ret = CZhipuziHttpClient::Request(url.c_str(), params, response);
+		bool ret = CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
 		if (ret == false)
 		{
 			m_shoukuan_status = 4;
@@ -1138,7 +1138,7 @@ void CHuiyuanChongzhiWnd::HandleCancelShoukuan()
 	std::string response;
 
 	std::string url = "/member/closeorder";
-	bool ret = CZhipuziHttpClient::Request(url.c_str(), params, response);
+	bool ret = CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
 	if (ret == false)
 	{
 		m_shoukuan_status = 4;

+ 7 - 7
zhipuzi_pos_windows/wnd/CHuiyuanShoukuanWnd.cpp

@@ -708,7 +708,7 @@ LRESULT CHuiyuanShoukuanWnd::OnShoukuanNeedPassword(UINT uMsg, WPARAM wParam, LP
 {
 	wstring path = CSystem::GetProgramDir() + L"\\music\\pay_password.wav";
 
-	if (CSetting::GetParam("setting_is_new_diannei_voice") == "1")
+	if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_voice") == "1")
 	{
 		PlaySound(path.c_str(), NULL, SND_FILENAME | SND_ASYNC);
 	}
@@ -726,7 +726,7 @@ LRESULT CHuiyuanShoukuanWnd::OnShoukuanNeedPassword(UINT uMsg, WPARAM wParam, LP
 LRESULT CHuiyuanShoukuanWnd::OnShoukuanSuccess(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
 {
 	//播放收款成功的金额
-	if (CSetting::GetParam("setting_is_new_diannei_voice") == "1")
+	if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_voice") == "1")
 	{
 		std::thread(&CHuiyuanShoukuanWnd::ReadShoukuanValue, this).detach();
 	}
@@ -758,7 +758,7 @@ LRESULT CHuiyuanShoukuanWnd::OnShoukuanFail(UINT uMsg, WPARAM wParam, LPARAM lPa
 {
 	wstring path = CSystem::GetProgramDir() + L"\\music\\pay_fail.wav";
 
-	if (CSetting::GetParam("setting_is_new_diannei_voice") == "1")
+	if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_voice") == "1")
 	{
 		PlaySound(path.c_str(), NULL, SND_FILENAME | SND_ASYNC);
 	}
@@ -907,7 +907,7 @@ void CHuiyuanShoukuanWnd::HandleShoukuan()
 		std::string response;
 
 		std::string url = "/member/membercheckbyqrcode";
-		bool ret = CZhipuziHttpClient::Request(url.c_str(), param, response);
+		bool ret = CZhipuziHttpClient::GetInstance()->Request(url.c_str(), param, response);
 		if (ret == false)
 		{
 			m_shoukuan_status = 4;
@@ -993,7 +993,7 @@ void CHuiyuanShoukuanWnd::HandleShoukuan()
 	std::string response;
 
 	std::string url = "/diancan/sendorder";
-	bool ret = CZhipuziHttpClient::Request(url.c_str(), m_commonParams, response);
+	bool ret = CZhipuziHttpClient::GetInstance()->Request(url.c_str(), m_commonParams, response);
 	if (ret == false)
 	{
 		m_shoukuan_status = 4;
@@ -1109,7 +1109,7 @@ void CHuiyuanShoukuanWnd::HandleShoukuanPassword()
 		std::string response;
 
 		std::string url = "/diancan/queryorderstatus";
-		bool ret = CZhipuziHttpClient::Request(url.c_str(), params, response);
+		bool ret = CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
 		if (ret == false)
 		{
 			m_shoukuan_status = 4;
@@ -1222,7 +1222,7 @@ void CHuiyuanShoukuanWnd::HandleCancelShoukuan()
 	std::string response;
 
 	std::string url = "/diancan/closeorder";
-	bool ret = CZhipuziHttpClient::Request(url.c_str(), params, response);
+	bool ret = CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
 	if (ret == false)
 	{
 		m_shoukuan_status = 4;

+ 24 - 24
zhipuzi_pos_windows/wnd/CLoginWnd.cpp

@@ -13,7 +13,7 @@ void CLoginWnd::Init()
 	//初始化下拉框的用户名
 	CComboUI* pCom = static_cast<CComboUI*>(m_pm.FindControl(_T("accountcombo")));
 
-	std::map<string, string> users = CSetting::getUsers();
+	std::map<string, string> users = CSetting::GetInstance()->getUsers();
 	for (std::map<string, string>::iterator it = users.begin(); it != users.end(); it++)
 	{
 		std::string username = it->first;
@@ -27,7 +27,7 @@ void CLoginWnd::Init()
 	CCheckBoxUI* pAuto = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("login_auto_login")));
 	CCheckBoxUI* pRemember = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("login_remember_password")));
 
-	if (CSetting::GetParam("setting_is_remember_password") == "1")
+	if (CSetting::GetInstance()->GetParam("setting_is_remember_password") == "1")
 	{
 		pRemember->Selected(true, false);
 	}
@@ -36,7 +36,7 @@ void CLoginWnd::Init()
 		pRemember->Selected(false, false);
 	}
 
-	if (CSetting::GetParam("setting_is_auto_login") == "1")
+	if (CSetting::GetInstance()->GetParam("setting_is_auto_login") == "1")
 	{
 		//自动登录开启了,记住密码一定要开启
 		pAuto->Selected(true, false);
@@ -47,8 +47,8 @@ void CLoginWnd::Init()
 		pAuto->Selected(false, false);
 	}
 
-	std::string last_login_username = CSetting::GetParam("last_login_username");
-	std::string password = CSetting::GetUser(last_login_username);
+	std::string last_login_username = CSetting::GetInstance()->GetParam("last_login_username");
+	std::string password = CSetting::GetInstance()->GetUser(last_login_username);
 
 	CEditUI* pAccountEdit = static_cast<CEditUI*>(m_pm.FindControl(_T("accountedit")));
 	CEditUI* pPasswordEdit = static_cast<CEditUI*>(m_pm.FindControl(_T("pwdedit")));
@@ -56,7 +56,7 @@ void CLoginWnd::Init()
 	pAccountEdit->SetText(CLewaimaiString::UTF8ToUnicode(last_login_username).c_str());
 	pPasswordEdit->SetText(CLewaimaiString::UTF8ToUnicode(password).c_str());
 
-	if (CSetting::GetParam("setting_is_auto_login") == "1")
+	if (CSetting::GetInstance()->GetParam("setting_is_auto_login") == "1")
 	{
 		StartLogin();
 	}
@@ -126,7 +126,7 @@ void CLoginWnd::Notify(TNotifyUI& msg)
 			CComboUI* pCom = static_cast<CComboUI*>(m_pm.FindControl(_T("accountcombo")));
 
 			std::wstring name = pCom->GetItemAt(pCom->GetCurSel())->GetText();
-			std::string password = CSetting::GetUser(CLewaimaiString::UnicodeToUTF8(name));
+			std::string password = CSetting::GetInstance()->GetUser(CLewaimaiString::UnicodeToUTF8(name));
 			std::wstring wspassword = CLewaimaiString::UTF8ToUnicode(password);
 
 			CEditUI* pEdit = static_cast<CEditUI*>(m_pm.FindControl(_T("accountedit")));
@@ -389,7 +389,7 @@ void CLoginWnd::HandleLogin()
 	std::map<string, string> params;
 
 	std::string response;
-	bool ret = CZhipuziHttpClient::RequestPingtaiNew("/version/getwindowsposversion", params, response);
+	bool ret = CZhipuziHttpClient::GetInstance()->RequestPingtaiNew("/version/getwindowsposversion", params, response);
 	if (!ret)
 	{
 		m_wsLoginErrMsg = _T("网络请求出错");
@@ -483,15 +483,15 @@ void CLoginWnd::HandleLogin()
 		return;
 	}
 
-    CZhipuziHttpClient::Init(s_account, s_password);
+	CZhipuziHttpClient::GetInstance()->Init(s_account, s_password);
 
     std::string errmsg;
-    bool res = CZhipuziHttpClient::Login(errmsg);
+    bool res = CZhipuziHttpClient::GetInstance()->Login(errmsg);
 
     if(res)
     {
 		//判断当前shop_id是否为0,如果为0说明是主账号还没有绑定店铺,那么就跳转进行店铺绑定
-		if (CShopinfo::m_shopinfo.m_is_shop == "0")
+		if (CShopinfo::GetInstance()->m_is_shop == "0")
 		{
 			m_wsLoginErrMsg = _T("主账号未绑定店铺");
 			PostMessage(WM_LOGIN_ERROR);
@@ -504,41 +504,41 @@ void CLoginWnd::HandleLogin()
 
 		if (pAuto->IsSelected())
 		{
-			CSetting::SetParam("setting_is_auto_login", "1", false);
-			CSetting::SetParam("setting_is_remember_password", "1", false);
+			CSetting::GetInstance()->SetParam("setting_is_auto_login", "1", false);
+			CSetting::GetInstance()->SetParam("setting_is_remember_password", "1", false);
 
 			//相当于开启自动登录,默认就是开启了记住密码了
-			CSetting::SetUser(s_account, s_password, true);
+			CSetting::GetInstance()->SetUser(s_account, s_password, true);
 		}
 		else
 		{
-			CSetting::SetParam("setting_is_auto_login", "0", false);
+			CSetting::GetInstance()->SetParam("setting_is_auto_login", "0", false);
 
 			if (pRemember->IsSelected())
 			{
-				CSetting::SetParam("setting_is_remember_password", "1", false);
+				CSetting::GetInstance()->SetParam("setting_is_remember_password", "1", false);
 			}
 			else
 			{
-				CSetting::SetParam("setting_is_remember_password", "0", false);
+				CSetting::GetInstance()->SetParam("setting_is_remember_password", "0", false);
 			}
 
 
 			if (pRemember->IsSelected())
 			{
-				CSetting::SetUser(s_account, s_password, true);
+				CSetting::GetInstance()->SetUser(s_account, s_password, true);
 			}
 			else
 			{
-				CSetting::SetUser(s_account, "", true);
+				CSetting::GetInstance()->SetUser(s_account, "", true);
 			}
 		}		
 
 		//在这里设置完参数后,统一保存到数据库
-		CSetting::SetParam("last_login_username", s_account, true);
+		CSetting::GetInstance()->SetParam("last_login_username", s_account, true);
 
 		//把用户名和密码保存起来
-		CSetting::SetLoginInfo(s_account, s_password);
+		CSetting::GetInstance()->SetLoginInfo(s_account, s_password);
 
 		//发送一个消息,更新界面状态
 		PostMessage(WM_LOGIN_START_INIT_DATA);
@@ -655,7 +655,7 @@ bool CLoginWnd::HandleInitData()
 	std::map<string, string> params;
 
 	std::string response;
-	bool ret = CZhipuziHttpClient::Request("/goods/getallgoods", params, response);
+	bool ret = CZhipuziHttpClient::GetInstance()->Request("/goods/getallgoods", params, response);
 	if (!ret)
 	{
 		m_wsLoginErrMsg = _T("网络请求出错");
@@ -721,7 +721,7 @@ bool CLoginWnd::GetShopinfo()
 	std::map<string, string> params;
 
 	std::string response;
-	bool ret = CZhipuziHttpClient::Request("/shop/getoneshopinfo", params, response);
+	bool ret = CZhipuziHttpClient::GetInstance()->Request("/shop/getoneshopinfo", params, response);
 	if (!ret)
 	{
 		m_wsLoginErrMsg = _T("网络请求出错");
@@ -780,7 +780,7 @@ bool CLoginWnd::GetShopinfo()
 	rapidjson::Value& data = document["data"];
 
 	//把获取到的数据保存起来
-	CShopinfo::m_shopinfo.InitShopinfoByGetshopinfo(data);
+	CShopinfo::GetInstance()->InitShopinfoByGetshopinfo(data);
 
 	return true;
 }

+ 5 - 5
zhipuzi_pos_windows/wnd/CMainWnd.cpp

@@ -20,7 +20,7 @@ void CMainWnd::Init()
 {
 	//设置店铺名字
 	CLabelUI* pShopname = static_cast<CLabelUI*>(m_pm.FindControl(_T("main_shopname")));
-	pShopname->SetText(CLewaimaiString::UTF8ToUnicode(CShopinfo::m_shopinfo.m_shop_name).c_str());
+	pShopname->SetText(CLewaimaiString::UTF8ToUnicode(CShopinfo::GetInstance()->m_shop_name).c_str());
 
 	//设置推送的消息窗口
 	CMessagePushWorker::GetInstance()->SetHWND(GetHWND());
@@ -220,7 +220,7 @@ void CMainWnd::HandleClickMsg(TNotifyUI& msg)
 
     if(msg.pSender == m_pCloseBtn)
     {
-        if(CSetting::GetParam("setting_is_close_min") == "1")
+        if(CSetting::GetInstance()->GetParam("setting_is_close_min") == "1")
         {
             AddTrayIcon();
         }
@@ -910,7 +910,7 @@ LRESULT CMainWnd::OnTrayIcon(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHan
 
 void CMainWnd::LoginOut(int mode)
 {
-    CSetting::SetParam("setting_is_auto_login", "0", true);
+    CSetting::GetInstance()->SetParam("setting_is_auto_login", "0", true);
     CLoginWnd* pLogin = new CLoginWnd();
 
     if(pLogin == NULL)
@@ -959,7 +959,7 @@ void CMainWnd::ShowToast(std::wstring toast_value)
 //根据更多里面的设置,刷新左边的功能导航
 void CMainWnd::UpdateGongnengDaohang()
 {
-	std::string changyongString = CSetting::GetParam("setting_gongneng_changyong_string");
+	std::string changyongString = CSetting::GetInstance()->GetParam("setting_gongneng_changyong_string");
 	std::vector<string> changyongVector;
 	if (changyongString == "")
 	{
@@ -1179,7 +1179,7 @@ void CMainWnd::SwitchPageByName(std::wstring name)
 	//处理左侧的高亮与选中状态
 	
 	//先判断跳转的页面,是不是常用里面的
-	std::string changyongString = CSetting::GetParam("setting_gongneng_changyong_string");
+	std::string changyongString = CSetting::GetInstance()->GetParam("setting_gongneng_changyong_string");
 	std::vector<string> changyongVector;
 	if (changyongString == "")
 	{

+ 1 - 1
zhipuzi_pos_windows/wnd/CMemberLoginWnd.cpp

@@ -396,7 +396,7 @@ void CMemberLoginWnd::ConfirmMember()
 	params["phone"] = phone;
 
 	std::string response;
-	bool ret = CZhipuziHttpClient::Request("/member/membercheckbyphone", params, response);
+	bool ret = CZhipuziHttpClient::GetInstance()->Request("/member/membercheckbyphone", params, response);
 	if (!ret)
 	{
 		m_errorInfo = _T("ÍøÂçÇëÇó³ö´í");

+ 1 - 1
zhipuzi_pos_windows/wnd/CSaomaCikaWnd.cpp

@@ -191,7 +191,7 @@ void CSaomaCikaWnd::ConfirmMember()
 	params["rand_number"] = m_code;
 
 	std::string response;
-	bool ret = CZhipuziHttpClient::RequestNew("/crm/marketing/timescoupon/gettimescouponinfobyrandnumber", params, response);
+	bool ret = CZhipuziHttpClient::GetInstance()->RequestNew("/crm/marketing/timescoupon/gettimescouponinfobyrandnumber", params, response);
 	if (!ret)
 	{
 		m_errorInfo = _T("ÍøÂçÇëÇó³ö´í");

+ 1 - 1
zhipuzi_pos_windows/wnd/CSaomaQuanyikaWnd.cpp

@@ -191,7 +191,7 @@ void CSaomaQuanyikaWnd::ConfirmMember()
 	params["code"] = m_code;
 
 	std::string response;
-	bool ret = CZhipuziHttpClient::RequestNew("/crm/marketing/equitycard/getinfobycode", params, response);
+	bool ret = CZhipuziHttpClient::GetInstance()->RequestNew("/crm/marketing/equitycard/getinfobycode", params, response);
 	if (!ret)
 	{
 		m_errorInfo = _T("ÍøÂçÇëÇó³ö´í");

+ 1 - 1
zhipuzi_pos_windows/wnd/CSaomaShangpinquanWnd.cpp

@@ -191,7 +191,7 @@ void CSaomaShangpinquanWnd::ConfirmMember()
 	params["rand_number"] = m_code;
 
 	std::string response;
-	bool ret = CZhipuziHttpClient::RequestNew("/crm/marketing/goodscoupon/getgoodscouponinfobyrandnumber", params, response);
+	bool ret = CZhipuziHttpClient::GetInstance()->RequestNew("/crm/marketing/goodscoupon/getgoodscouponinfobyrandnumber", params, response);
 	if (!ret)
 	{
 		m_errorInfo = _T("ÍøÂçÇëÇó³ö´í");

+ 1 - 1
zhipuzi_pos_windows/wnd/CSaomaYouhuiquanWnd.cpp

@@ -191,7 +191,7 @@ void CSaomaYouhuiquanWnd::ConfirmMember()
 	params["rand_number"] = m_code;
 
 	std::string response;
-	bool ret = CZhipuziHttpClient::Request("/coupon/getcouponinfobyrandnumber", params, response);
+	bool ret = CZhipuziHttpClient::GetInstance()->Request("/coupon/getcouponinfobyrandnumber", params, response);
 	if (!ret)
 	{
 		m_errorInfo = _T("ÍøÂçÇëÇó³ö´í");

+ 1 - 1
zhipuzi_pos_windows/wnd/CUpdateWnd.cpp

@@ -33,7 +33,7 @@ void CUpdateWnd::Notify(TNotifyUI& msg)
             CComboUI* pCom = static_cast<CComboUI*>(m_pm.FindControl(_T("accountcombo")));
 
             std::wstring name = pCom->GetItemAt(pCom->GetCurSel())->GetText();
-            std::string password = CSetting::GetUser(CLewaimaiString::UnicodeToUTF8(name));
+            std::string password = CSetting::GetInstance()->GetUser(CLewaimaiString::UnicodeToUTF8(name));
             std::wstring wspassword = CLewaimaiString::UTF8ToUnicode(password);
 
             CEditUI* pEdit = static_cast<CEditUI*>(m_pm.FindControl(_T("accountedit")));

+ 6 - 6
zhipuzi_pos_windows/wnd/CWeixinzhifuShoukuanWnd.cpp

@@ -379,7 +379,7 @@ LRESULT CWeixinzhifuShoukuanWnd::OnShoukuanNeedPassword(UINT uMsg, WPARAM wParam
 {
 	wstring path = CSystem::GetProgramDir() + L"\\music\\pay_password.wav";
 
-	if (CSetting::GetParam("setting_is_new_diannei_voice") == "1")
+	if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_voice") == "1")
 	{
 		PlaySound(path.c_str(), NULL, SND_FILENAME | SND_ASYNC);
 	}
@@ -397,7 +397,7 @@ LRESULT CWeixinzhifuShoukuanWnd::OnShoukuanNeedPassword(UINT uMsg, WPARAM wParam
 LRESULT CWeixinzhifuShoukuanWnd::OnShoukuanSuccess(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
 {
 	//播放收款成功的金额
-	if (CSetting::GetParam("setting_is_new_diannei_voice") == "1")
+	if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_voice") == "1")
 	{
 		std::thread(&CWeixinzhifuShoukuanWnd::ReadShoukuanValue, this).detach();
 	}
@@ -442,7 +442,7 @@ LRESULT CWeixinzhifuShoukuanWnd::OnShoukuanFail(UINT uMsg, WPARAM wParam, LPARAM
 {
 	wstring path = CSystem::GetProgramDir() + L"\\music\\pay_fail.wav";
 
-	if (CSetting::GetParam("setting_is_new_diannei_voice") == "1")
+	if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_voice") == "1")
 	{
 		PlaySound(path.c_str(), NULL, SND_FILENAME | SND_ASYNC);
 	}
@@ -598,7 +598,7 @@ void CWeixinzhifuShoukuanWnd::HandleShoukuan()
 	std::string response;
 
 	std::string url = "/diancan/sendorder";
-	bool ret = CZhipuziHttpClient::Request(url.c_str(), m_commonParams, response);
+	bool ret = CZhipuziHttpClient::GetInstance()->Request(url.c_str(), m_commonParams, response);
 	if (ret == false)
 	{
 		m_shoukuan_status = 4;
@@ -718,7 +718,7 @@ void CWeixinzhifuShoukuanWnd::HandleShoukuanPassword()
 		std::string response;
 
 		std::string url = "/diancan/queryorderstatus";
-		bool ret = CZhipuziHttpClient::Request(url.c_str(), params, response);
+		bool ret = CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
 		if (ret == false)
 		{
 			m_shoukuan_status = 4;
@@ -833,7 +833,7 @@ void CWeixinzhifuShoukuanWnd::HandleCancelShoukuan()
 	std::string response;
 
 	std::string url = "/diancan/closeorder";
-	bool ret = CZhipuziHttpClient::Request(url.c_str(), params, response);
+	bool ret = CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
 	if (ret == false)
 	{
 		m_shoukuan_status = 4;

+ 6 - 6
zhipuzi_pos_windows/wnd/CXianjinShoukuanWnd.cpp

@@ -544,7 +544,7 @@ LRESULT CXianjinShoukuanWnd::OnShoukuanNeedPassword(UINT uMsg, WPARAM wParam, LP
 {
 	wstring path = CSystem::GetProgramDir() + L"\\music\\pay_password.wav";
 
-	if (CSetting::GetParam("shoukuan_setting_yuyinbobao") == "1")
+	if (CSetting::GetInstance()->GetParam("shoukuan_setting_yuyinbobao") == "1")
 	{
 		PlaySound(path.c_str(), NULL, SND_FILENAME | SND_ASYNC);
 	}
@@ -562,7 +562,7 @@ LRESULT CXianjinShoukuanWnd::OnShoukuanNeedPassword(UINT uMsg, WPARAM wParam, LP
 LRESULT CXianjinShoukuanWnd::OnShoukuanSuccess(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
 {
 	//播放收款成功的金额
-	if (CSetting::GetParam("setting_is_new_diannei_voice") == "1")
+	if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_voice") == "1")
 	{
 		std::thread(&CXianjinShoukuanWnd::ReadShoukuanValue, this).detach();
 	}
@@ -594,7 +594,7 @@ LRESULT CXianjinShoukuanWnd::OnShoukuanFail(UINT uMsg, WPARAM wParam, LPARAM lPa
 {
 	wstring path = CSystem::GetProgramDir() + L"\\music\\pay_fail.wav";
 
-	if (CSetting::GetParam("setting_is_new_diannei_voice") == "1")
+	if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_voice") == "1")
 	{
 		PlaySound(path.c_str(), NULL, SND_FILENAME | SND_ASYNC);
 	}
@@ -708,7 +708,7 @@ void CXianjinShoukuanWnd::HandleShoukuan()
 	std::string response;
 
 	std::string url = "/diancan/sendorder";
-	bool ret = CZhipuziHttpClient::Request(url.c_str(), m_commonParams, response);
+	bool ret = CZhipuziHttpClient::GetInstance()->Request(url.c_str(), m_commonParams, response);
 	if (ret == false)
 	{
 		m_shoukuan_status = 4;
@@ -824,7 +824,7 @@ void CXianjinShoukuanWnd::HandleShoukuanPassword()
 		std::string response;
 
 		std::string url = "/diancan/queryorderstatus";
-		bool ret = CZhipuziHttpClient::Request(url.c_str(), params, response);
+		bool ret = CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
 		if (ret == false)
 		{
 			m_shoukuan_status = 4;
@@ -937,7 +937,7 @@ void CXianjinShoukuanWnd::HandleCancelShoukuan()
 	std::string response;
 
 	std::string url = "/diancan/closeorder";
-	bool ret = CZhipuziHttpClient::Request(url.c_str(), params, response);
+	bool ret = CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
 	if (ret == false)
 	{
 		m_shoukuan_status = 4;

+ 6 - 6
zhipuzi_pos_windows/wnd/CZidingyiShoukuanWnd.cpp

@@ -336,7 +336,7 @@ LRESULT CZidingyiShoukuanWnd::OnShoukuanNeedPassword(UINT uMsg, WPARAM wParam, L
 {
 	wstring path = CSystem::GetProgramDir() + L"\\music\\pay_password.wav";
 
-	if (CSetting::GetParam("shoukuan_setting_yuyinbobao") == "1")
+	if (CSetting::GetInstance()->GetParam("shoukuan_setting_yuyinbobao") == "1")
 	{
 		PlaySound(path.c_str(), NULL, SND_FILENAME | SND_ASYNC);
 	}
@@ -354,7 +354,7 @@ LRESULT CZidingyiShoukuanWnd::OnShoukuanNeedPassword(UINT uMsg, WPARAM wParam, L
 LRESULT CZidingyiShoukuanWnd::OnShoukuanSuccess(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
 {
 	//播放收款成功的金额
-	if (CSetting::GetParam("setting_is_new_diannei_voice") == "1")
+	if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_voice") == "1")
 	{
 		std::thread(&CZidingyiShoukuanWnd::ReadShoukuanValue, this).detach();
 	}
@@ -386,7 +386,7 @@ LRESULT CZidingyiShoukuanWnd::OnShoukuanFail(UINT uMsg, WPARAM wParam, LPARAM lP
 {
 	wstring path = CSystem::GetProgramDir() + L"\\music\\pay_fail.wav";
 
-	if (CSetting::GetParam("setting_is_new_diannei_voice") == "1")
+	if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_voice") == "1")
 	{
 		PlaySound(path.c_str(), NULL, SND_FILENAME | SND_ASYNC);
 	}
@@ -477,7 +477,7 @@ void CZidingyiShoukuanWnd::HandleShoukuan()
 	std::string response;
 
 	std::string url = "/diancan/sendorder";
-	bool ret = CZhipuziHttpClient::Request(url.c_str(), m_commonParams, response);
+	bool ret = CZhipuziHttpClient::GetInstance()->Request(url.c_str(), m_commonParams, response);
 	if (ret == false)
 	{
 		m_shoukuan_status = 4;
@@ -593,7 +593,7 @@ void CZidingyiShoukuanWnd::HandleShoukuanPassword()
 		std::string response;
 
 		std::string url = "/diancan/queryorderstatus";
-		bool ret = CZhipuziHttpClient::Request(url.c_str(), params, response);
+		bool ret = CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
 		if (ret == false)
 		{
 			m_shoukuan_status = 4;
@@ -706,7 +706,7 @@ void CZidingyiShoukuanWnd::HandleCancelShoukuan()
 	std::string response;
 
 	std::string url = "/diancan/closeorder";
-	bool ret = CZhipuziHttpClient::Request(url.c_str(), params, response);
+	bool ret = CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
 	if (ret == false)
 	{
 		m_shoukuan_status = 4;

+ 3 - 3
zhipuzi_pos_windows/worker/CChengzhongWorker.cpp

@@ -37,9 +37,9 @@ void CChengzhongWorker::RestartWork()
 
 void CChengzhongWorker::HandleWork()
 {
-	std::string setting_dianzicheng_xinghao = CSetting::GetParam("setting_dianzicheng_xinghao");
-	std::string dianzicheng_com = CSetting::GetParam("setting_dianzicheng_com");
-	std::string setting_dianzicheng_botelv = CSetting::GetParam("setting_dianzicheng_botelv");
+	std::string setting_dianzicheng_xinghao = CSetting::GetInstance()->GetParam("setting_dianzicheng_xinghao");
+	std::string dianzicheng_com = CSetting::GetInstance()->GetParam("setting_dianzicheng_com");
+	std::string setting_dianzicheng_botelv = CSetting::GetInstance()->GetParam("setting_dianzicheng_botelv");
 
 	m_serial.setPortNum(CLewaimaiString::UTF8ToUnicode(dianzicheng_com));
 	m_serial.setBaudRate(atoi(setting_dianzicheng_botelv.c_str()));

+ 6 - 6
zhipuzi_pos_windows/worker/CMessagePushWorker.cpp

@@ -37,7 +37,7 @@ void CMessagePushWorker::KeepAlive()
 		doc.SetObject();
 		rapidjson::Document::AllocatorType& allocator = doc.GetAllocator(); //获取分配器
 
-		std::string username = CSetting::getUsername();
+		std::string username = CSetting::GetInstance()->getUsername();
 		std::string timestamp = to_string(time(NULL));
 		doc.AddMember("username", StringRef(username.c_str(), username.length()), allocator);
 		doc.AddMember("timestamp", StringRef(timestamp.c_str(), timestamp.length()), allocator);
@@ -84,7 +84,7 @@ void CMessagePushWorker::KeepAlive()
 				doc_1.SetObject();
 				rapidjson::Document::AllocatorType& allocator_1 = doc_1.GetAllocator(); //获取分配器
 
-				std::string username_1 = CSetting::getUsername();
+				std::string username_1 = CSetting::GetInstance()->getUsername();
 				std::string timestamp_1 = to_string(time(NULL));
 				doc_1.AddMember("username", StringRef(username_1.c_str(), username_1.length()), allocator_1);
 				doc_1.AddMember("timestamp", StringRef(timestamp_1.c_str(), timestamp_1.length()), allocator_1);
@@ -229,9 +229,9 @@ void CMessagePushWorker::HandelMessage(std::string msg)
 		std::string order_no = document["waimai_order_no"].GetString();
 
 		//新订单来了,首先判断是否要语音提醒
-		if (CSetting::GetParam("setting_is_new_waimai_voice") == "1")
+		if (CSetting::GetInstance()->GetParam("setting_is_new_waimai_voice") == "1")
 		{
-			if (CSetting::GetParam("setting_is_new_waimai_autoconfirm") == "1")
+			if (CSetting::GetInstance()->GetParam("setting_is_new_waimai_autoconfirm") == "1")
 			{
 				CVoiceWorker::GetInstance()->AddVoice(2);
 			}
@@ -242,7 +242,7 @@ void CMessagePushWorker::HandelMessage(std::string msg)
 		}
 
 		//判断是否要自动确认
-		if (CSetting::GetParam("setting_is_new_waimai_autoconfirm") == "1")
+		if (CSetting::GetInstance()->GetParam("setting_is_new_waimai_autoconfirm") == "1")
 		{
 			CCommonWorker::GetInstance()->AddConfirm(order_id);
 		}
@@ -263,7 +263,7 @@ void CMessagePushWorker::HandelMessage(std::string msg)
 		std::string order_id = document["waimai_order_id"].GetString();
 
 		//新订单来了,首先判断是否要语音提醒
-		if (CSetting::GetParam("setting_is_new_diannei_voice") == "1")
+		if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_voice") == "1")
 		{
 			CVoiceWorker::GetInstance()->AddVoice(5);
 		}

+ 2 - 2
zhipuzi_pos_windows/zhipuzi/CDiandanOrder.cpp

@@ -348,7 +348,7 @@ bool CDiandanOrder::InitData(std::string order_id)
 	params["id"] = order_id;
 
 	std::string response;
-	bool ret = CZhipuziHttpClient::Request("/diancan/getorderdetail", params, response);
+	bool ret = CZhipuziHttpClient::GetInstance()->Request("/diancan/getorderdetail", params, response);
 	if (!ret)
 	{
 		LOG_INFO("ÍøÂçÇëÇó³ö´í");
@@ -505,7 +505,7 @@ bool CDiandanOrder::Refund(std::string order_id)
 	params["id"] = order_id;
 	std::string response;
 
-	CZhipuziHttpClient::Request(url.c_str(), params, response);
+	CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
 
 	rapidjson::Document document;
 	document.Parse(response.c_str());

+ 0 - 5
zhipuzi_pos_windows/zhipuzi/CShopinfo.cpp

@@ -7,11 +7,6 @@ CShopinfo::CShopinfo()
 {
 }
 
-
-CShopinfo::~CShopinfo()
-{
-}
-
 // 处理登录接口返回的店铺信息
 void CShopinfo::InitShopinfoByLogin(rapidjson::Value& v_data)
 {

+ 9 - 5
zhipuzi_pos_windows/zhipuzi/CShopinfo.h

@@ -40,12 +40,17 @@ public:
 class CShopinfo
 {
 public:
+	static CShopinfo* GetInstance()
+	{
+		static CShopinfo instance;
+
+		return &instance;
+	}
+
+private:
 	CShopinfo();
-	~CShopinfo();
 
 public:
-	static CShopinfo m_shopinfo;
-
 	//处理登录接口返回的店铺信息
 	void InitShopinfoByLogin(rapidjson::Value& v_data);
 
@@ -164,5 +169,4 @@ public:
 	std::string m_is_giftcard_pay_open;
 	std::string m_is_food_town_card_pay_open;
 	std::string m_is_open_fulika_pay;
-};
-
+};

+ 6 - 6
zhipuzi_pos_windows/zhipuzi/CWaimaiOrder.cpp

@@ -18,7 +18,7 @@ bool CWaimaiOrder::InitData(std::string order_id, std::string order_no)
     params["order_no"] = order_no;
 
     std::string response;
-    bool ret = CZhipuziHttpClient::Request("/waimaiorder/getorderdetail", params, response);
+    bool ret = CZhipuziHttpClient::GetInstance()->Request("/waimaiorder/getorderdetail", params, response);
     if(!ret)
     {
         LOG_INFO("网络请求出错");
@@ -240,7 +240,7 @@ bool CWaimaiOrder::ConfirmeOrder(std::string order_id)
     params["id"] = order_id;
     std::string response;
 
-    CZhipuziHttpClient::Request(url.c_str(), params, response);
+    CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
 
     rapidjson::Document document;
     document.Parse(response.c_str());
@@ -282,7 +282,7 @@ bool CWaimaiOrder::SuccessOrder(std::string order_id)
     params["id"] = order_id;
     std::string response;
 
-    CZhipuziHttpClient::Request(url.c_str(), params, response);
+    CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
 
     rapidjson::Document document;
     document.Parse(response.c_str());
@@ -325,7 +325,7 @@ bool CWaimaiOrder::FailOrder(std::string order_id, std::string reason)
     params["failed_reason"] = reason;
     std::string response;
 
-    CZhipuziHttpClient::Request(url.c_str(), params, response);
+    CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
 
     rapidjson::Document document;
     document.Parse(response.c_str());
@@ -372,7 +372,7 @@ bool CWaimaiOrder::AgreeRefund(std::string order_id)
     params["order_id"] = order_id;
     std::string response;
 
-    CZhipuziHttpClient::Request(url.c_str(), params, response);
+    CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
 
     rapidjson::Document document;
     document.Parse(response.c_str());
@@ -414,7 +414,7 @@ bool CWaimaiOrder::DisagreeRefund(std::string order_id)
     params["order_id"] = order_id;
     std::string response;
 
-    CZhipuziHttpClient::Request(url.c_str(), params, response);
+    CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
 
     rapidjson::Document document;
     document.Parse(response.c_str());

+ 1 - 1
zhipuzi_pos_windows/zhipuzi_pos_windows.vcxproj

@@ -130,7 +130,7 @@ copy $(ProjectDir)conf\ $(SolutionDir)bin\$(Platform)\$(Configuration)\conf\</Co
       <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
       <AdditionalIncludeDirectories>$(SolutionDir)include;$(ProjectDir)pch</AdditionalIncludeDirectories>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
-      <DisableSpecificWarnings>4099;4091</DisableSpecificWarnings>
+      <DisableSpecificWarnings>4099;4091;4838</DisableSpecificWarnings>
     </ClCompile>
     <Link>
       <SubSystem>Windows</SubSystem>