Commit 142d8079 by 李定达

1.修复心跳bug,窜单·bug

parent 56e0f4b3
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 3.5.1, 2018-06-11T15:19:33. -->
<!-- Written by QtCreator 3.5.1, 2018-06-15T16:14:14. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
......
......@@ -23,9 +23,15 @@ QString GetOperByStatus(int status, bool bRefuse)
{
return QString::fromLocal8Bit(OPERATION_REFUNDORDER);
}
return QString::fromLocal8Bit(OPERATION_SENDOUT);
return QString::fromLocal8Bit(OPERATION_MAKEOVER);
break;
case 5:
if(bRefuse)
{
return QString::fromLocal8Bit(OPERATION_REFUNDORDER);
}
return QString::fromLocal8Bit(OPERATION_SENDOUT);
break;
case 4:
if(bRefuse)
{
......@@ -66,9 +72,16 @@ QString GetOperNameByStatus(int status, bool bRefuse)
{
return QString::fromLocal8Bit(OPERATIONNAME_REFUNDORDER);
}
return QString::fromLocal8Bit(OPERATIONNAME_SENDOUT);
return QString::fromLocal8Bit(OPERATIONNAME_MAKEOVER);
break;
case 5:
if(bRefuse)
{
return QString::fromLocal8Bit(OPERATIONNAME_REFUNDORDER);
}
return QString::fromLocal8Bit(OPERATIONNAME_SENDOUT);
break;
case 4:
if(bRefuse)
{
......
......@@ -32,6 +32,8 @@
#define FMH_REFUNDORDER 9
#define FMH_GETRORDER 32
//
#define FMH_MAKEOVER 10
//...
......@@ -205,6 +207,8 @@ private:
reqtype = FMH_REFUNDORDER;
if(status.compare(OPERATION_GETDELIVERS, Qt::CaseInsensitive) == 0)
reqtype = FMH_CONFIRM;
if(status.compare(OPERATION_MAKEOVER, Qt::CaseInsensitive) == 0)
reqtype = FMH_MAKEOVER;
}
static bool getAction(int REQ, QString &action)
......@@ -220,6 +224,9 @@ private:
case FMH_GETORDER:
action = QString("saas.order.get");
return true;
case FMH_MAKEOVER:
action = QString("saas.order.doneNotify");
return true;
case FMH_CONFIRM:
action = QString("saas.order.confirmTake");
return true;
......
#include "orderpushwork.h"
#include <QEventLoop>
#include <QStringList>
#include <QSslConfiguration>
#include <QTimer>
#include "preDefine.h"
......@@ -88,11 +89,29 @@ bool OrderPushWork::connectTcpServer()
QLOG_INFO() << "ip:" << ip << "; port:" << port;
_socket = new QTcpSocket();
_socket = new QSslSocket();
_socket->connectToHost(ip, port);
_socket->addCaCertificates(qApp->applicationDirPath() + "/" + "microwstest.sandload.cn.pem");
return _socket->waitForConnected(10*1000);
QLOG_INFO() << _socket->errorString();
_socket->ignoreSslErrors();
QSslConfiguration config = QSslConfiguration::defaultConfiguration();
config.setPeerVerifyMode(QSslSocket::VerifyNone);
_socket->setSslConfiguration(config);
QLOG_INFO() << _socket->errorString();
_socket->connectToHostEncrypted(ip, port);
bool flag = _socket->waitForConnected(10*1000);
QLOG_INFO() << _socket->errorString() << flag;
return flag;
}
bool OrderPushWork::loginTcpServer()
......@@ -113,13 +132,13 @@ bool OrderPushWork::loginTcpServer()
if(!_socket->waitForBytesWritten(10*1000))
{
QLOG_ERROR() << "send msg to service failed";
QLOG_ERROR() << "send msg to service failed" << _socket->errorString();
return false;
}
if(!_socket->waitForReadyRead(30*1000))
{
QLOG_ERROR() << "receive msg from service failed";
QLOG_ERROR() << "receive msg from service failed" << _socket->errorString();
return false;
}
......@@ -189,6 +208,8 @@ void OrderPushWork::heartBeatTcpService()
OrderPushDataProcess::getHeartResponseData(data);
QLOG_INFO() << "heard beat response data : " << data.toHex();
_socket->write(data);
_socket->waitForBytesWritten();
......@@ -305,3 +326,8 @@ void OrderPushWork::workStart()
EVENTWAIT(60000);
}
}
void OrderPushWork::setToken(const QString &token)
{
_token = token;
}
......@@ -7,6 +7,8 @@
#include <QJsonObject>
#include <QVariantMap>
#include <QJsonDocument>
#include <QSslSocket>
#include <QDebug>
#include <WinSock.h>
......@@ -125,7 +127,9 @@ public:
virtual bool event(QEvent *e);
private:
void setToken(const QString &token);
private:
//链接到服务器
bool connectTcpServer();
//身份信息验证
......@@ -154,7 +158,8 @@ private:
//停止标志位置
qint8 _stopflag;
//长连接套接字
QTcpSocket *_socket;
//QTcpSocket *_socket;
QSslSocket *_socket;
//token
QString _token;
//token 锁
......@@ -210,11 +215,11 @@ private:
char *buf = (char *)calloc(1, sizeof(Data_Head_Heart) + 1);
DATAHEADINITHEART(head, 1, COMMAND_AUTH_REQ, 0);
DATAHEADINITHEART(head, 1, COMMAND_HEARDBEAT, 0);
memcpy(buf, (void *)&head, sizeof(Data_Head_Heart));
data = QByteArray(buf);
data = QByteArray(buf, );
free(buf);
}
......
......@@ -17,6 +17,49 @@
#include <QSettings>
#include <Windows.h>
#ifdef FM_MAIN_TEST
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QsLogging::Logger &logger = QsLogging::Logger::instance();
logger.setLoggingLevel(QsLogging::TraceLevel);
QsLogging::DestinationPtr consleDest(QsLogging::DestinationFactory::MakeDebugOutputDestination());
logger.addDestination(consleDest);
OrderPushWork pwork;
QThread thread;
pwork.setToken("fff72b80-e745-4a2e-8ecb-9c184999d01c");
//pwork.setToken("1");
QVariantMap map;
map.insert(JSON_STOREID, "1036");
map.insert(JSON_STATIONID, "saas_bf_pos");
map.insert(JSON_KEY_USERID, "beiguo_saas");
map.insert(JSON_KEY_PWD, "beiguo_saas");
map.insert(JSON_KEY_PARTNERID, "1585");
pwork.setStoreinfo(map);
QStringList list;
list.append("118.89.167.51:9083");
pwork.setServicelist(list);
QObject::connect(&thread, &QThread::started, &pwork, &OrderPushWork::workStart);
pwork.moveToThread(&thread);
thread.start();
return a.exec();
}
#else
using namespace QsLogging;
......@@ -136,7 +179,7 @@ int main(int argc, char *argv[])
work.setUrl(geturl);
work.setAutoconfirm(autoconf);
work.setStoreinfo(map);
work.setTimeout(300000);
work.setTimeout(180000);
QStringList list;
......@@ -162,3 +205,5 @@ int main(int argc, char *argv[])
return a.exec();
}
#endif
......@@ -127,7 +127,17 @@ void PosOrderPool::GetOrderStatusAndLastStatus(Order_Info orderinfo, int &status
{
if(orderinfo.order_last_refund != orderinfo.order_refund)
{
if(orderinfo.order_refund == ApplicationRefundOrder || orderinfo.order_refund == ApplicationPartialRefundOrder)
if((orderinfo.order_status == ServiceOrder || orderinfo.order_status == CompleteOrder || orderinfo.order_status == CancelOrder) &&
orderinfo.order_last_status == DefaultOrder)
{
status = orderinfo.order_status;
laststatus = orderinfo.order_last_status;
return ;
}
if((orderinfo.order_refund == ApplicationRefundOrder || orderinfo.order_refund == ApplicationPartialRefundOrder))
{
status = orderinfo.order_refund;
laststatus = orderinfo.order_status;
......
......@@ -67,6 +67,8 @@ typedef enum
CancelOrder=3,
//配送中
DispatchingOrder = 4,
//制作中
InDevelopment = 5,
//已送达
ServiceOrder = 6,
//申请退款
......
......@@ -163,6 +163,7 @@
#define OPERATION_GETDELIVERS "getDelivers"
#define OPERATION_CONFRIM "confirm"
#define OPERATION_REFUSE "refuse"
#define OPERATION_MAKEOVER "makeover"
#define OPERATION_SENDOUT "sendOut"
#define OPERATION_COMPLETE "complete"
#define OPERATION_REFUND "refund"
......@@ -171,6 +172,7 @@
// 订单操作名
#define OPERATIONNAME_GETDELIVERS "接单"
#define OPERATIONNAME_REFUSE "拒单"
#define OPERATIONNAME_MAKEOVER "制作完成"
#define OPERATIONNAME_SENDOUT "送出"
#define OPERATIONNAME_COMPLETE "完成"
#define OPERATIONNAME_REFUSEREFUND "拒绝"
......
......@@ -27,6 +27,7 @@ CONFIG(release, debug|release) {
}
#DEFINES += FM_TEST
#DEFINES += FM_MAIN_TEST
RC_FILE += takeout.rc
CONFIG += c++11
......
......@@ -4,8 +4,8 @@
#include <winver.h>
#endif
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEVERSION 1,0,0,5
PRODUCTVERSION 1,0,0,5
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS VS_FF_DEBUG
......@@ -22,12 +22,12 @@ VS_VERSION_INFO VERSIONINFO
BEGIN
VALUE "CompanyName", "ShangHai Freemud Co., Ltd."
VALUE "FileDescription", "FREEMUD Manager System"
VALUE "FileVersion", "1.0.0.1"
VALUE "FileVersion", "1.0.0.5"
VALUE "InternalName", "FREEMUD"
VALUE "LegalCopyright", "Copyright (C)2017-2020"
VALUE "OriginalFilename", "fmTakeout.exe"
VALUE "ProductName", "fmTakeout"
VALUE "ProductVersion", "1.0.0.1"
VALUE "ProductVersion", "1.0.0.5"
END
END
BLOCK "VarFileInfo"
......
......@@ -33,15 +33,17 @@ DetailForm::~DetailForm()
void DetailForm::InitData(OrderObject *orderObject)
{
m_orderObject = orderObject;
_orderid = orderObject->order_id;
// 恢复界面
ui->detailTable0->clearContents();
ui->detailTable0->setRowCount(0);
ui->detailBtn2->show();
ui->detailBtn3->show();
ui->detailBtn1->hide();
//ui->detailBtn1->hide();
// 初始化界面
ui->detailLab0->setText(QString::fromLocal8Bit("[%1][%2][%3]").arg(orderObject->channelName,
ui->detailLab0->setText(QString::fromLocal8Bit("[%1][%2][%3]").arg(orderObject->channel_name,
orderObject->status_desc,
orderObject->order_id));
ui->detailLab1->setText(QString::fromLocal8Bit("[%1]%2").arg(orderObject->pay_type,
......@@ -216,7 +218,12 @@ void DetailForm::onOperaBtnClicked()
void DetailForm::on_detailBtn1_clicked()
{
QVariantMap map;
map.insert(EVENT_KEY_ORDERID, _orderid);
map.insert(EVENT_KEY_MSG, DEFAULT_LOCATION_PRINT);
POSTEVENTTYPE(PosEvent::s_order_location, map, QVariantMap);
}
void DetailForm::on_detailBtn0_clicked()
......
......@@ -31,6 +31,7 @@ private:
OrderObject *m_orderObject;
RejectForm* m_rejectForm ;
QString _orderid;
/* 功能:初始化
* 参数:NULL
......
......@@ -407,6 +407,8 @@ QPushButton *MainForm::_GetTabBtnByOrderStatus(int orderStatus)
return ui->mainBtnMake;
break;
case 5:
return ui->mainBtnSend;
break;
case 4:
return ui->mainBtnSend;
break;
......@@ -470,7 +472,46 @@ void MainForm::onChangeOrderStatus(OrderObject *orderObject, int oldStatus)
// 非首次收到的订单需要现在原先表中删除
if(oldStatus != -100)
{
tabBtn = _GetTabBtnByOrderStatus(oldStatus);
tabBtn = _GetTabBtnByOrderStatus(1);
table = findChild<QTableWidget*>(tabBtn->property("tableName").toString());
for(int i=0; i<table->rowCount(); i++)
{
if(!table->item(i, 1)->text().compare(orderObject->order_id))
{
table->removeRow(i);
QString btnText(tabBtn->property("name").toString());
btnText = QString("%1\n%2").arg(table->rowCount()).arg(btnText);
tabBtn->setText(btnText);
}
}
tabBtn = _GetTabBtnByOrderStatus(6);
table = findChild<QTableWidget*>(tabBtn->property("tableName").toString());
for(int i=0; i<table->rowCount(); i++)
{
if(!table->item(i, 1)->text().compare(orderObject->order_id))
{
table->removeRow(i);
QString btnText(tabBtn->property("name").toString());
btnText = QString("%1\n%2").arg(table->rowCount()).arg(btnText);
tabBtn->setText(btnText);
}
}
tabBtn = _GetTabBtnByOrderStatus(2);
table = findChild<QTableWidget*>(tabBtn->property("tableName").toString());
for(int i=0; i<table->rowCount(); i++)
{
if(!table->item(i, 1)->text().compare(orderObject->order_id))
{
table->removeRow(i);
QString btnText(tabBtn->property("name").toString());
btnText = QString("%1\n%2").arg(table->rowCount()).arg(btnText);
tabBtn->setText(btnText);
}
}
tabBtn = _GetTabBtnByOrderStatus(5);
table = findChild<QTableWidget*>(tabBtn->property("tableName").toString());
for(int i=0; i<table->rowCount(); i++)
{
......@@ -482,6 +523,46 @@ void MainForm::onChangeOrderStatus(OrderObject *orderObject, int oldStatus)
tabBtn->setText(btnText);
}
}
tabBtn = _GetTabBtnByOrderStatus(200);
table = findChild<QTableWidget*>(tabBtn->property("tableName").toString());
for(int i=0; i<table->rowCount(); i++)
{
if(!table->item(i, 1)->text().compare(orderObject->order_id))
{
table->removeRow(i);
QString btnText(tabBtn->property("name").toString());
btnText = QString("%1\n%2").arg(table->rowCount()).arg(btnText);
tabBtn->setText(btnText);
}
}
tabBtn = _GetTabBtnByOrderStatus(20);
table = findChild<QTableWidget*>(tabBtn->property("tableName").toString());
for(int i=0; i<table->rowCount(); i++)
{
if(!table->item(i, 1)->text().compare(orderObject->order_id))
{
table->removeRow(i);
QString btnText(tabBtn->property("name").toString());
btnText = QString("%1\n%2").arg(table->rowCount()).arg(btnText);
tabBtn->setText(btnText);
}
}
tabBtn = _GetTabBtnByOrderStatus(3);
table = findChild<QTableWidget*>(tabBtn->property("tableName").toString());
for(int i=0; i<table->rowCount(); i++)
{
if(!table->item(i, 1)->text().compare(orderObject->order_id))
{
table->removeRow(i);
QString btnText(tabBtn->property("name").toString());
btnText = QString("%1\n%2").arg(table->rowCount()).arg(btnText);
tabBtn->setText(btnText);
}
}
}
// 将数据插入到表中
tabBtn = _GetTabBtnByOrderStatus(orderObject->status);
......@@ -493,9 +574,9 @@ void MainForm::onChangeOrderStatus(OrderObject *orderObject, int oldStatus)
QTableWidgetItem *item1 = new QTableWidgetItem(orderObject->order_id);
item1->setTextAlignment(Qt::AlignCenter);
table->setItem(0, 1, item1); // 订单ID
//QTableWidgetItem *item2 = new QTableWidgetItem(Penny2Dollar(orderObject->shop_fee));
//item2->setTextAlignment(Qt::AlignCenter);
//table->setItem(0, 2, item2); // 金额
QTableWidgetItem *item2 = new QTableWidgetItem(QString::number(orderObject->shop_fee/100.0));
item2->setTextAlignment(Qt::AlignCenter);
table->setItem(0, 2, item2); // 金额
QTableWidgetItem *item3 = new QTableWidgetItem(orderObject->customer);
item3->setTextAlignment(Qt::AlignCenter);
table->setItem(0, 3, item3); // 姓名
......
......@@ -683,10 +683,10 @@
<bool>false</bool>
</property>
<property name="operationName" stdset="0">
<string>送出</string>
<string>制作完成</string>
</property>
<property name="operation" stdset="0">
<string>sendOut</string>
<string>makeover</string>
</property>
<attribute name="horizontalHeaderCascadingSectionResizes">
<bool>false</bool>
......@@ -764,10 +764,10 @@
<bool>false</bool>
</property>
<property name="operationName" stdset="0">
<string>完成</string>
<string>送出</string>
</property>
<property name="operation" stdset="0">
<string>complete</string>
<string>sendOut</string>
</property>
<attribute name="horizontalHeaderCascadingSectionResizes">
<bool>false</bool>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment