Browse Source

推送完成了

张洋 4 years ago
parent
commit
814cbc5c6e

BIN
bin/Win32/Debug/zhipuzi_pos_windows/music/diannei_new.wav


BIN
bin/x64/Release/zhipuzi_pos_windows_server_linux/zhipuzi_pos_windows_server_linux


BIN
res/music/diannei_new.wav


+ 1 - 7
zhipuzi_pos_windows/CAppEnv.cpp

@@ -33,9 +33,6 @@ void CAppEnv::Start()
 
 	//启动通用任务
 	CCommonWorker::GetInstance()->Start();
-
-	//启动消息推送
-	CMessagePushWorker::GetInstance()->Start();
 }
 
 void CAppEnv::Stop()
@@ -51,7 +48,4 @@ void CAppEnv::Stop()
 
 	//停止通用任务
 	CCommonWorker::GetInstance()->Stop();
-
-	//停止消息推送
-	CMessagePushWorker::GetInstance()->Stop();
-}
+}

+ 1 - 1
zhipuzi_pos_windows/CAppEnv.h

@@ -1,6 +1,6 @@
 #pragma once
 
-//处理所有环境初始化
+//处理所有环境初始化,在应用一起动就进行初始化(登录前就初始化)
 class CAppEnv
 {
 public:

+ 6 - 0
zhipuzi_pos_windows/wnd/CMainWnd.cpp

@@ -23,6 +23,9 @@ void CMainWnd::Init()
 	//设置推送的消息窗口
 	CMessagePushWorker::GetInstance()->SetHWND(GetHWND());
 
+	//启动消息推送
+	CMessagePushWorker::GetInstance()->Start();
+
 	//默认选择点单页面
 	m_curOptionName = L"main_diandan";
 	m_curOption = static_cast<CControlUI*>(m_pm.FindControl(_T("main_diandan")));
@@ -577,6 +580,9 @@ LRESULT CMainWnd::OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandle
  **/
 LRESULT CMainWnd::OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
 {
+	//停止消息推送
+	CMessagePushWorker::GetInstance()->Stop();
+
     bHandled = FALSE;
     return 0;
 }

+ 18 - 5
zhipuzi_pos_windows/worker/CMessagePushWorker.cpp

@@ -70,7 +70,7 @@ void CMessagePushWorker::KeepAlive()
 			try
 			{
 				//发送失败,重新建立连接
-				char host[] = "pushserver.lewaimai.com";
+				char host[] = "pushserver.zhipuzi.com";
 				char port[] = "9001";
 
 				tcp::resolver resolver(m_io_context);
@@ -192,7 +192,12 @@ void CMessagePushWorker::HandelMessage(std::string msg)
 		type = atoi(document["msg_type"].GetString());
 	}
 
-	if (type == MESSAGE_TYPE::NEW_WAIMAI_ORDER)
+	if (type == MESSAGE_TYPE::LOGIN_OFFLINE)
+	{
+		//这个表示被人挤下线了
+		PostMessage(m_hwnd, WM_LOGIN_AGAIN_OUT, 0, 0);
+	}
+	else if (type == MESSAGE_TYPE::NEW_WAIMAI_ORDER)
 	{
 		std::string order_id = document["waimai_order_id"].GetString();
 		std::string order_no = document["waimai_order_no"].GetString();
@@ -227,9 +232,17 @@ void CMessagePushWorker::HandelMessage(std::string msg)
 	{
 		CVoiceWorker::GetInstance()->AddVoice(4);
 	}
-	else if (type == MESSAGE_TYPE::LOGIN_OFFLINE)
+	else if (type == MESSAGE_TYPE::NEW_KAUICANTANGSHI_ORDER)
 	{
-		//这个表示被人挤下线了
-		PostMessage(m_hwnd, WM_LOGIN_AGAIN_OUT, 0, 0);
+		std::string order_id = document["waimai_order_id"].GetString();
+
+		//新订单来了,首先判断是否要语音提醒
+		if (CSetting::GetParam("setting_is_new_diannei_voice") == "1")
+		{
+			CVoiceWorker::GetInstance()->AddVoice(5);
+		}
+
+		//CPosPrinter printer;
+		//printer.PrintDiandanOrder(order_id);
 	}
 }

+ 3 - 0
zhipuzi_pos_windows/worker/CMessagePushWorker.h

@@ -17,9 +17,12 @@ public:
 enum MESSAGE_TYPE
 {
 	LOGIN_OFFLINE = 0,
+
 	NEW_WAIMAI_ORDER = 1,
 	QUXIAO_WAIMAI_ORDER = 2,
 	REFUND_WAIMAI_ORDER = 3,
+
+	NEW_KAUICANTANGSHI_ORDER = 4,
 };
 
 //这个类专门用于接收服务器端的消息推送

+ 5 - 3
zhipuzi_pos_windows/worker/CVoiceWorker.cpp

@@ -25,9 +25,6 @@ void CVoiceWorker::Stop()
 	m_voice_mutex.unlock();
 }
 
-/*
- *类型 1:新外卖订单 2:新外卖订单自动接单 3:外卖订单取消 4:外卖订单退款
- **/
 void CVoiceWorker::AddVoice(int voice_type)
 {
 	m_voice_mutex.lock();
@@ -76,6 +73,11 @@ void CVoiceWorker::HandleVoice()
 			wstring path = CSystem::GetProgramDir() + L"\\music\\waimai_tuikuan.wav";
 			PlaySound(path.c_str(), NULL, SND_FILENAME | SND_ASYNC);
 		}
+		else if (voice_type == 5)
+		{
+			wstring path = CSystem::GetProgramDir() + L"\\music\\diannei_new.wav";
+			PlaySound(path.c_str(), NULL, SND_FILENAME | SND_ASYNC);
+		}
 
 		//8秒内最多播放一次
 		CSystem::my_sleep(8);

+ 3 - 0
zhipuzi_pos_windows/worker/CVoiceWorker.h

@@ -24,6 +24,9 @@ public:
 	//队列处理
 	void HandleVoice();
 
+	/*
+	 *类型 1:新外卖订单 2:新外卖订单自动接单 3:外卖订单取消 4:外卖订单退款 5:新的快餐扫码下单订单
+	 **/
 	void AddVoice(int voice_type);
 
 private:

+ 4 - 4
zhipuzi_pos_windows_server/network/CClientSession.cpp

@@ -47,12 +47,12 @@ void CClientSession::stop()
 	if (ret)
 	{
 		//然后关闭socket
-		LOG_INFO("in stop, send_message success!");
+		//LOG_INFO("in stop, send_message success!");
 		socket_.close();
 	}
 	else
 	{
-		LOG_ERROR("in stop, send_message failed!");
+		//LOG_ERROR("in stop, send_message failed!");
 		//如果同步写数据失败,说明socket已经失效了,这里不要调用关闭操作,等待异步读返回错误就好
 	}
 
@@ -77,7 +77,7 @@ bool CClientSession::send_message(std::string msg)
 	{
 		std::string err = e.what();
 
-		LOG_ERROR("send_message error, message:" << err.c_str());
+		//LOG_ERROR("send_message error, message:" << err.c_str());
 
 		//注意这里是同步发送消息,这里不要处理socket的关闭和delete操作,让后面的异步读错误处理
 		return false;
@@ -173,7 +173,7 @@ void CClientSession::handle_read(const boost::system::error_code& error,
 		else
 		{
 			//这个是服务端断开了链接,已经调用过close了
-			LOG_INFO("handle_read error,服务端断开了链接");
+			//LOG_INFO("handle_read error,服务端断开了链接");
 			delete this;
 		}
     }

+ 10 - 1
zhipuzi_pos_windows_server/zhipuzi_pos_windows_server_linux.vcxproj.user

@@ -4,9 +4,18 @@
     <ShowAllFiles>true</ShowAllFiles>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <RemoteTarget>906671837;172.16.81.50 (username=, port=22, authentication=Password)</RemoteTarget>
+    <RemoteTarget>-647472749;101.37.14.57 (username=, port=22, authentication=Password)</RemoteTarget>
     <RemoteDebuggerCommand>/usr/local/zhipuzi_pos_windows_server/bin/zhipuzi_pos_windows_server_linux</RemoteDebuggerCommand>
     <DebuggerFlavor>LinuxDebugger</DebuggerFlavor>
     <RemoteDebuggerWorkingDirectory>/usr/local/zhipuzi_pos_windows_server/bin</RemoteDebuggerWorkingDirectory>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x86'">
+    <RemoteTarget>-647472749;101.37.14.57 (username=, port=22, authentication=Password)</RemoteTarget>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x86'">
+    <RemoteTarget>-647472749;101.37.14.57 (username=, port=22, authentication=Password)</RemoteTarget>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <RemoteTarget>-647472749;101.37.14.57 (username=, port=22, authentication=Password)</RemoteTarget>
+  </PropertyGroup>
 </Project>