فهرست منبع

没什么改的

zhangyang 6 سال پیش
والد
کامیت
0a216b0d2f
2فایلهای تغییر یافته به همراه258 افزوده شده و 258 حذف شده
  1. BIN
      bin/Win32/Debug/zhipuzi_pos_windows/db/pos.db
  2. 258 258
      lewaimai_dispatch/network/CMessagePush.cpp

BIN
bin/Win32/Debug/zhipuzi_pos_windows/db/pos.db


+ 258 - 258
lewaimai_dispatch/network/CMessagePush.cpp

@@ -4,368 +4,368 @@
 #include "../tool/CPosPrinter.h"
 #include "../tool/CPosPrinter.h"
 #include "../order/CWaimaiOrder.h"
 #include "../order/CWaimaiOrder.h"
 
 
-#include "mmsystem.h" 
+#include "mmsystem.h"
 
 
 CMessagePush::~CMessagePush()
 CMessagePush::~CMessagePush()
 {
 {
-	
+
 }
 }
 
 
 void CMessagePush::Start()
 void CMessagePush::Start()
 {
 {
-	//开始处理接收消息
-	std::thread t_1(&CMessagePush::Run, this);
-	t_1.detach();
+    //开始处理接收消息
+    std::thread t_1(&CMessagePush::Run, this);
+    t_1.detach();
 
 
-	//处理声音提醒
-	std::thread t_2(&CMessagePush::HandleVoice, this);
-	t_2.detach();
+    //处理声音提醒
+    std::thread t_2(&CMessagePush::HandleVoice, this);
+    t_2.detach();
 
 
-	//处理订单确认
-	std::thread t_3(&CMessagePush::HandleConfirm, this);
-	t_3.detach();
+    //处理订单确认
+    std::thread t_3(&CMessagePush::HandleConfirm, this);
+    t_3.detach();
 
 
-	//处理收银打印
-	std::thread t_4(&CMessagePush::HandleShouyinPrinter, this);
-	t_4.detach();
+    //处理收银打印
+    std::thread t_4(&CMessagePush::HandleShouyinPrinter, this);
+    t_4.detach();
 
 
-	//处理厨房打印
-	std::thread t_5(&CMessagePush::HandleChufangPrinter, this);
-	t_5.detach();
+    //处理厨房打印
+    std::thread t_5(&CMessagePush::HandleChufangPrinter, this);
+    t_5.detach();
 
 
-	std::thread t_6(&CMessagePush::HandlePrinter, this);
-	t_6.detach();
+    std::thread t_6(&CMessagePush::HandlePrinter, this);
+    t_6.detach();
 }
 }
 
 
 void CMessagePush::Run()
 void CMessagePush::Run()
 {
 {
-	try
-	{
-		char host[] = "127.0.0.1";
-		char port[] = "9001";
-
-		tcp::resolver resolver(m_io_context);
-		tcp::resolver::results_type endpoints =
-			resolver.resolve(tcp::v4(), host, port);
-
-		boost::asio::connect(socket_, endpoints);
-
-		//发送身份信息
-		rapidjson::Document doc;
-		doc.SetObject();
-		rapidjson::Document::AllocatorType &allocator = doc.GetAllocator(); //获取分配器
-
-		doc.AddMember("username", "zhangyang", allocator);
-
-		rapidjson::StringBuffer buffer;
-		rapidjson::Writer<StringBuffer> writer(buffer);
-		doc.Accept(writer);
-
-		//返回给接入层的消息
-		std::string m_login_msg = buffer.GetString();
-
-		//异步发送消息
-		PushMessage(m_login_msg);
-
-		//同时启动一个异步接受消息
-		socket_.async_read_some(boost::asio::buffer(data_, max_length),
-			boost::bind(&CMessagePush::handle_read, this,
-				boost::asio::placeholders::error,
-				boost::asio::placeholders::bytes_transferred));
-
-		m_io_context.run();
-	}
-	catch (std::exception& e)
-	{
-		std::cerr << "Exception: " << e.what() << "\n";
-	}
+    try
+    {
+        char host[] = "127.0.0.1";
+        char port[] = "9001";
+
+        tcp::resolver resolver(m_io_context);
+        tcp::resolver::results_type endpoints =
+            resolver.resolve(tcp::v4(), host, port);
+
+        boost::asio::connect(socket_, endpoints);
+
+        //发送身份信息
+        rapidjson::Document doc;
+        doc.SetObject();
+        rapidjson::Document::AllocatorType& allocator = doc.GetAllocator(); //获取分配器
+
+        doc.AddMember("username", "zhangyang", allocator);
+
+        rapidjson::StringBuffer buffer;
+        rapidjson::Writer<StringBuffer> writer(buffer);
+        doc.Accept(writer);
+
+        //返回给接入层的消息
+        std::string m_login_msg = buffer.GetString();
+
+        //异步发送消息
+        PushMessage(m_login_msg);
+
+        //同时启动一个异步接受消息
+        socket_.async_read_some(boost::asio::buffer(data_, max_length),
+                                boost::bind(&CMessagePush::handle_read, this,
+                                            boost::asio::placeholders::error,
+                                            boost::asio::placeholders::bytes_transferred));
+
+        m_io_context.run();
+    }
+    catch(std::exception& e)
+    {
+        std::cerr << "Exception: " << e.what() << "\n";
+    }
 }
 }
 
 
 void CMessagePush::PushMessage(std::string msg)
 void CMessagePush::PushMessage(std::string msg)
 {
 {
-	boost::asio::async_write(socket_,
-		boost::asio::buffer(msg.c_str(), msg.length()),
-		boost::bind(&CMessagePush::handle_write, this,
-			boost::asio::placeholders::error));
+    boost::asio::async_write(socket_,
+                             boost::asio::buffer(msg.c_str(), msg.length()),
+                             boost::bind(&CMessagePush::handle_write, this,
+                                         boost::asio::placeholders::error));
 }
 }
 
 
 void CMessagePush::HandleMessage(std::string msg)
 void CMessagePush::HandleMessage(std::string msg)
 {
 {
-	try
-	{
-		//收到服务器的消息,对服务器的消息进行处理
-		rapidjson::Document document;
-		document.Parse(msg.c_str());
-		if (!document.IsObject())
-		{
-			LOG_INFO("message 非法!");
-			return;
-		}
-
-		int type = document["type"].GetInt();
-
-		if (type == 0)
-		{
-			std::string status = document["status"].GetString();
-
-			if (status == "ok")
-			{
-				//表示连接服务器成功了
-			}
-		}
-		else if (type == 1)
-		{
-			std::string username = document["username"].GetString();
-			std::string order_id = document["order_id"].GetString();
-			std::string order_no = document["order_no"].GetString();
-
-			//新订单来了,首先判断是否要语音提醒
-			if (CSetting::GetParam("setting_is_new_waimai_voice") == "1")
-			{
-				AddVoice(order_id);
-			}
-
-			//判断是否要自动确认
-			if (CSetting::GetParam("setting_is_new_waimai_autoconfirm") == "1")
-			{
-				AddConfirm(order_id);
-			}
-
-			//判断是否右下角弹框提醒
-			if (CSetting::GetParam("setting_is_new_waimai_dialog") == "1")
-			{
-				
-			}
-
-			AddPinter(order_id, order_no);
-		}
-	}
-	catch (std::exception& e)
-	{
-		std::cerr << "Exception: " << e.what() << "\n";
-	}
+    try
+    {
+        //收到服务器的消息,对服务器的消息进行处理
+        rapidjson::Document document;
+        document.Parse(msg.c_str());
+        if(!document.IsObject())
+        {
+            LOG_INFO("message 非法!");
+            return;
+        }
+
+        int type = document["type"].GetInt();
+
+        if(type == 0)
+        {
+            std::string status = document["status"].GetString();
+
+            if(status == "ok")
+            {
+                //表示连接服务器成功了
+            }
+        }
+        else if(type == 1)
+        {
+            std::string username = document["username"].GetString();
+            std::string order_id = document["order_id"].GetString();
+            std::string order_no = document["order_no"].GetString();
+
+            //新订单来了,首先判断是否要语音提醒
+            if(CSetting::GetParam("setting_is_new_waimai_voice") == "1")
+            {
+                AddVoice(order_id);
+            }
+
+            //判断是否要自动确认
+            if(CSetting::GetParam("setting_is_new_waimai_autoconfirm") == "1")
+            {
+                AddConfirm(order_id);
+            }
+
+            //判断是否右下角弹框提醒
+            if(CSetting::GetParam("setting_is_new_waimai_dialog") == "1")
+            {
+
+            }
+
+            AddPinter(order_id, order_no);
+        }
+    }
+    catch(std::exception& e)
+    {
+        std::cerr << "Exception: " << e.what() << "\n";
+    }
 }
 }
 
 
 void CMessagePush::handle_read(const boost::system::error_code& error,
 void CMessagePush::handle_read(const boost::system::error_code& error,
-	size_t bytes_transferred)
+                               size_t bytes_transferred)
 {
 {
-	if (!error)
-	{
-		string s_reply = data_;
-		HandleMessage(s_reply);
-
-		memset(data_, 0, max_length);
-		socket_.async_read_some(boost::asio::buffer(data_, max_length),
-			boost::bind(&CMessagePush::handle_read, this,
-				boost::asio::placeholders::error,
-				boost::asio::placeholders::bytes_transferred));
-	}
-	else
-	{
-		//这里有时会出现,看看是什么错误,可能是断开了跟服务器的连接
-	}
+    if(!error)
+    {
+        string s_reply = data_;
+        HandleMessage(s_reply);
+
+        memset(data_, 0, max_length);
+        socket_.async_read_some(boost::asio::buffer(data_, max_length),
+                                boost::bind(&CMessagePush::handle_read, this,
+                                            boost::asio::placeholders::error,
+                                            boost::asio::placeholders::bytes_transferred));
+    }
+    else
+    {
+        //这里有时会出现,看看是什么错误,可能是断开了跟服务器的连接
+    }
 }
 }
 
 
 void CMessagePush::handle_write(const boost::system::error_code& error)
 void CMessagePush::handle_write(const boost::system::error_code& error)
 {
 {
-	if (!error)
-	{
-		LOG_INFO("send success!");
-	}
-	else
-	{
-		//这里有时会出现,看看是什么错误,可能是断开了跟服务器的连接
-	}
+    if(!error)
+    {
+        LOG_INFO("send success!");
+    }
+    else
+    {
+        //这里有时会出现,看看是什么错误,可能是断开了跟服务器的连接
+    }
 }
 }
 
 
 void CMessagePush::AddVoice(std::string order_id)
 void CMessagePush::AddVoice(std::string order_id)
 {
 {
-	m_voice_mutex.lock();
+    m_voice_mutex.lock();
 
 
-	m_voice_queue.push(order_id);
+    m_voice_queue.push(order_id);
 
 
-	m_voice_mutex.unlock();
+    m_voice_mutex.unlock();
 }
 }
 
 
 void CMessagePush::AddConfirm(std::string order_id)
 void CMessagePush::AddConfirm(std::string order_id)
 {
 {
-	m_confirm_mutex.lock();
+    m_confirm_mutex.lock();
 
 
-	m_confirm_queue.push(order_id);
+    m_confirm_queue.push(order_id);
 
 
-	m_confirm_mutex.unlock();
+    m_confirm_mutex.unlock();
 }
 }
 
 
 void CMessagePush::AddPinter(std::string order_id, std::string order_no)
 void CMessagePush::AddPinter(std::string order_id, std::string order_no)
 {
 {
-	m_printer_mutex.lock();
+    m_printer_mutex.lock();
 
 
-	WaimaiPinterInfo newPrinter;
-	newPrinter.order_id = order_id;
-	newPrinter.order_no = order_no;
+    WaimaiPinterInfo newPrinter;
+    newPrinter.order_id = order_id;
+    newPrinter.order_no = order_no;
 
 
-	m_printer_queue.push(newPrinter);
+    m_printer_queue.push(newPrinter);
 
 
-	m_printer_mutex.unlock();
+    m_printer_mutex.unlock();
 }
 }
 
 
 void CMessagePush::AddShouyinPrinter(CWaimaiOrder order)
 void CMessagePush::AddShouyinPrinter(CWaimaiOrder order)
 {
 {
-	m_shouyin_printer_mutex.lock();
+    m_shouyin_printer_mutex.lock();
 
 
-	m_shouyin_printer_queue.push(order);
+    m_shouyin_printer_queue.push(order);
 
 
-	m_shouyin_printer_mutex.unlock();
+    m_shouyin_printer_mutex.unlock();
 }
 }
 
 
 void CMessagePush::AddChufangPrinter(CWaimaiOrder order)
 void CMessagePush::AddChufangPrinter(CWaimaiOrder order)
 {
 {
-	m_chufang_printer_mutex.lock();
+    m_chufang_printer_mutex.lock();
 
 
-	m_chufang_printer_queue.push(order);
+    m_chufang_printer_queue.push(order);
 
 
-	m_chufang_printer_mutex.unlock();
+    m_chufang_printer_mutex.unlock();
 }
 }
 
 
 void CMessagePush::HandleVoice()
 void CMessagePush::HandleVoice()
 {
 {
-	while (true)
-	{
-		m_voice_mutex.lock();
+    while(true)
+    {
+        m_voice_mutex.lock();
 
 
-		if (m_voice_queue.empty())
-		{
-			m_voice_mutex.unlock();
+        if(m_voice_queue.empty())
+        {
+            m_voice_mutex.unlock();
 
 
-			CSystem::my_sleep(1);
-			continue;
-		}
+            CSystem::my_sleep(1);
+            continue;
+        }
 
 
-		std::string order_id = m_voice_queue.back();
-		m_voice_queue.pop();
+        std::string order_id = m_voice_queue.back();
+        m_voice_queue.pop();
 
 
-		m_voice_mutex.unlock();
+        m_voice_mutex.unlock();
 
 
-		wstring path = CSystem::GetProgramDir() + L"\\music\\new_wamai_order.wav";
-		PlaySound(path.c_str(), NULL, SND_FILENAME | SND_ASYNC);
+        wstring path = CSystem::GetProgramDir() + L"\\music\\new_wamai_order.wav";
+        PlaySound(path.c_str(), NULL, SND_FILENAME | SND_ASYNC);
 
 
-		//8秒内最多播放一次
-		CSystem::my_sleep(8);
-	}
+        //8秒内最多播放一次
+        CSystem::my_sleep(8);
+    }
 }
 }
 
 
 void CMessagePush::HandleConfirm()
 void CMessagePush::HandleConfirm()
 {
 {
-	while (true)
-	{
-		m_confirm_mutex.lock();
+    while(true)
+    {
+        m_confirm_mutex.lock();
 
 
-		if (m_confirm_queue.empty())
-		{
-			m_confirm_mutex.unlock();
+        if(m_confirm_queue.empty())
+        {
+            m_confirm_mutex.unlock();
 
 
-			CSystem::my_sleep(1);
-			continue;
-		}
+            CSystem::my_sleep(1);
+            continue;
+        }
 
 
-		std::string order_id = m_confirm_queue.back();
-		m_confirm_queue.pop();
+        std::string order_id = m_confirm_queue.back();
+        m_confirm_queue.pop();
 
 
-		m_confirm_mutex.unlock();
+        m_confirm_mutex.unlock();
 
 
-		CWaimaiOrder newOrder;
-		newOrder.ConfirmeOrder(order_id);
-	}
+        CWaimaiOrder newOrder;
+        newOrder.ConfirmeOrder(order_id);
+    }
 }
 }
 
 
 void CMessagePush::HandlePrinter()
 void CMessagePush::HandlePrinter()
 {
 {
-	while (true)
-	{
-		m_printer_mutex.lock();
-
-		if (m_printer_queue.empty())
-		{
-			m_printer_mutex.unlock();
-
-			CSystem::my_sleep(1);
-			continue;
-		}
-
-		WaimaiPinterInfo printerInfo = m_printer_queue.back();
-		std::string order_id = printerInfo.order_id;
-		std::string order_no = printerInfo.order_no;
-
-		m_printer_queue.pop();
-
-		m_printer_mutex.unlock();
-
-		CWaimaiOrder order;
-		if (CSetting::GetParam("setting_is_new_waimai_printer") == "1" || CSetting::GetParam("setting_is_new_waimai_chufang_printer") == "1")
-		{
-			order.InitData(order_id, order_no);
-		}
-
-		//判断是否自动打印收银小票
-		if (CSetting::GetParam("setting_is_new_waimai_printer") == "1")
-		{
-			AddShouyinPrinter(order);
-		}
-
-		//判断是否进行自动的厨房打印
-		if (CSetting::GetParam("setting_is_new_waimai_chufang_printer") == "1")
-		{
-			AddChufangPrinter(order);
-		}
-	}
+    while(true)
+    {
+        m_printer_mutex.lock();
+
+        if(m_printer_queue.empty())
+        {
+            m_printer_mutex.unlock();
+
+            CSystem::my_sleep(1);
+            continue;
+        }
+
+        WaimaiPinterInfo printerInfo = m_printer_queue.back();
+        std::string order_id = printerInfo.order_id;
+        std::string order_no = printerInfo.order_no;
+
+        m_printer_queue.pop();
+
+        m_printer_mutex.unlock();
+
+        CWaimaiOrder order;
+        if(CSetting::GetParam("setting_is_new_waimai_printer") == "1" || CSetting::GetParam("setting_is_new_waimai_chufang_printer") == "1")
+        {
+            order.InitData(order_id, order_no);
+        }
+
+        //判断是否自动打印收银小票
+        if(CSetting::GetParam("setting_is_new_waimai_printer") == "1")
+        {
+            AddShouyinPrinter(order);
+        }
+
+        //判断是否进行自动的厨房打印
+        if(CSetting::GetParam("setting_is_new_waimai_chufang_printer") == "1")
+        {
+            AddChufangPrinter(order);
+        }
+    }
 }
 }
 
 
 void CMessagePush::HandleShouyinPrinter()
 void CMessagePush::HandleShouyinPrinter()
 {
 {
-	while (true)
-	{
-		m_shouyin_printer_mutex.lock();
+    while(true)
+    {
+        m_shouyin_printer_mutex.lock();
 
 
-		if (m_shouyin_printer_queue.empty())
-		{
-			m_shouyin_printer_mutex.unlock();
+        if(m_shouyin_printer_queue.empty())
+        {
+            m_shouyin_printer_mutex.unlock();
 
 
-			CSystem::my_sleep(1);
-			continue;
-		}
+            CSystem::my_sleep(1);
+            continue;
+        }
 
 
-		CWaimaiOrder order = m_shouyin_printer_queue.back();
+        CWaimaiOrder order = m_shouyin_printer_queue.back();
 
 
-		m_shouyin_printer_queue.pop();
+        m_shouyin_printer_queue.pop();
 
 
-		m_shouyin_printer_mutex.unlock();
+        m_shouyin_printer_mutex.unlock();
 
 
-		CPosPrinter printer;
-		printer.PrintWaimaiOrderShouyin(order);
-	}
+        CPosPrinter printer;
+        printer.PrintWaimaiOrderShouyin(order);
+    }
 }
 }
 
 
 void CMessagePush::HandleChufangPrinter()
 void CMessagePush::HandleChufangPrinter()
 {
 {
-	while (true)
-	{
-		m_chufang_printer_mutex.lock();
+    while(true)
+    {
+        m_chufang_printer_mutex.lock();
 
 
-		if (m_chufang_printer_queue.empty())
-		{
-			m_chufang_printer_mutex.unlock();
+        if(m_chufang_printer_queue.empty())
+        {
+            m_chufang_printer_mutex.unlock();
 
 
-			CSystem::my_sleep(1);
-			continue;
-		}
+            CSystem::my_sleep(1);
+            continue;
+        }
 
 
-		CWaimaiOrder order = m_chufang_printer_queue.back();
+        CWaimaiOrder order = m_chufang_printer_queue.back();
 
 
-		m_chufang_printer_queue.pop();
+        m_chufang_printer_queue.pop();
 
 
-		m_chufang_printer_mutex.unlock();
+        m_chufang_printer_mutex.unlock();
 
 
-		CPosPrinter printer;
-		printer.PrintWaimaiOrderChufang(order);
-	}
+        CPosPrinter printer;
+        printer.PrintWaimaiOrderChufang(order);
+    }
 }
 }