Commit 3bd036b1 by wuyang.zou

fix bug: 修复众多BUG

parent b3cb2ebb
......@@ -52,17 +52,16 @@ FlowControl::FlowControl()
connect(this,&FlowControl::doPullOrder,this,&FlowControl::_GetReadyForPullOrder);
connect(this,&FlowControl::doConfirmOrder,this,&FlowControl::_ConfirmOrder,Qt::BlockingQueuedConnection);
connect(this,&FlowControl::doRefundOrder,this,&FlowControl::_RefundOrder,Qt::BlockingQueuedConnection);
connect(this, &FlowControl::doLogin, this, &FlowControl::onGetNewStoreInfo,Qt::BlockingQueuedConnection);
/***打开Sqlite数据库并登陆外卖插件***/
SimProcOrderDB::getInstance();
SimProcOrderDB::getInstance().initSimProcOrderDB();
/***打开SqlServer POS打印汇总信息本地数据库***/
PrintSumBillPosDB::getInstance();
if( !PrintSumBillPosDB::getInstance().initPrintSumBillPosDB() ){
emit showAlert(AlertForm::MSGERROR, QString::fromLocal8Bit("尝试打开POS本地数据库失败"));
}
/*** 启动Http服务:用来响应Simphony_Script获取订单的请求***/
loaclHttpServer = new LoaclHttpServer();
loaclHttpServer->run();
......@@ -215,9 +214,10 @@ void FlowControl::_ClickToNotifySimPullOrder()
{
m_notifySimPullTimer->start(1000*10);
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FM外卖插件通知 Simphony 获取订单数据--->>>>]");
emit doHideMainShowFloatFrom();
_ClickOMSAssignArea();
}else{
m_notifySimPullTimer->start(1000*50);
m_notifySimPullTimer->start(1000*20);
}
}
......@@ -304,6 +304,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:NewOrder m_simValidOrdersList.num:%1 --->>>>]")<< m_simValidOrdersList.count();
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:NewOrder m_simValidOrdersList:%1 --->>>>]")<< m_simValidOrdersList;
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:NewOrder _ClickOMSAssignArea --->>>>]");
emit doHideMainShowFloatFrom();
_ClickOMSAssignArea();
}
break;
......@@ -322,6 +323,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:OrderConfirmed m_simValidOrdersList.num:%1 --->>>>]")<< m_simValidOrdersList.count();
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:OrderConfirmed m_simValidOrdersList:%1 --->>>>]")<< m_simValidOrdersList;
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:OrderConfirmed _ClickOMSAssignArea --->>>>]");
emit doHideMainShowFloatFrom();
_ClickOMSAssignArea();
}
break;
......@@ -336,7 +338,6 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
break;
case OrderObject::Refunded:{ /*退单目前本佳那边不区分 OrderObject::Refunded=6 && OrderObject::Cancled =6*/
/***case:同意退单、退单、取消订单: 此退单还没push到POS[POS没有确认退单或没有返回确认退单的小票号]***/
//m_OrderEntryMutex.lock(); // 扩大锁的范围;
//内存会出现BUG:现在改用数据库中标记来判断;
//if(!orderObject->isCancle)
bool bIsRefundOrder = SimProcOrderDB::getInstance().isRefundOrder(orderObject->id);
......@@ -367,13 +368,13 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:Cancled m_simValidOrdersList.num:%1 --->>>>]")<< m_simValidOrdersList.count();
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:Cancled m_simValidOrdersList:%1 --->>>>]")<< m_simValidOrdersList;
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:Cancled _ClickOMSAssignArea --->>>>]");
//emit doHideMainShowFloatFrom();
//_ClickOMSAssignArea();
}
/***case:校验此订单push到POS后的小票号是否空:[POS已模拟点单但未返回小票号]***/
//else{未处理}
}
}
//m_OrderEntryMutex.unlock(); //扩大解锁范围; //退单的先不处理;
break;
}
default:
......@@ -443,8 +444,8 @@ bool FlowControl::_Login()
emit showAlert(AlertForm::MSGERROR, QString::fromLocal8Bit("登录失败![网络错误]"));
}else
{
if(JSON_STATUSCODE_OK != recvJson[JSON_STATUSCODE].toInt())
//if(JSON_STATUSCODE_OK != recvJson[JSON_LOGINCODE].toInt())
//if(JSON_STATUSCODE_OK != recvJson[JSON_STATUSCODE].toInt())
if(JSON_STATUSCODE_OK != recvJson[JSON_LOGINCODE].toInt())
{
result = false;
emit showAlert(AlertForm::MSGERROR, QString::fromLocal8Bit("登录失败![%1]").arg(recvJson[JSON_MESSAGE].toString()));
......@@ -492,7 +493,7 @@ void FlowControl::_PullOrderData()
m_orderPullList.removeOne(info);
delete info;
}else {
QLOG_INFO()<<"[<<<<----FlowControl::_PullOrderData _PullOrderList successful failed---->>>>>]";
QLOG_INFO()<<"[<<<<----FlowControl::_PullOrderData _PullOrderList failed---->>>>>]";
m_orderPullList.removeOne(info);
m_orderPullList.append(info);
}
......@@ -667,7 +668,6 @@ bool FlowControl::_SendHeart()
emit setNetStatus(QString::fromLocal8Bit("<font color='#ff0000'>网络不稳定,正在重试</font>"));
}else
{
/*
QLOG_INFO() << QString("[<<<<---Send Heart Finish: code:%1--->>>>]").arg(recvJson[JSON_LOGINCODE].toInt());
if(JSON_STATUSCODE_OK != recvJson[JSON_LOGINCODE].toInt())
{
......@@ -675,8 +675,7 @@ bool FlowControl::_SendHeart()
//emit showAlert(AlertForm::MSGERROR, QString::fromLocal8Bit("发送心跳失败![%1]").arg(recvJson[JSON_MESSAGE].toString()));
emit setNetStatus(QString::fromLocal8Bit("<font color='#ff0000'>网络不稳定,正在重试</font>"));
}
*/
emit setNetStatus(QString::fromLocal8Bit("<font color='#f5f5f5'>正常</font>"));
//emit setNetStatus(QString::fromLocal8Bit("<font color='#f5f5f5'>正常</font>"));
}
return result;
}
......@@ -739,6 +738,7 @@ bool FlowControl::_ConfirmOrder(const QString &orderId)
QLOG_INFO() << QString("[<<<<---FmTakeout _ConfirmOrder: m_simValidOrdersList.num:%1 --->>>>]")<< m_simValidOrdersList.count();
QLOG_INFO() << QString("[<<<<---FmTakeout _ConfirmOrder: m_simValidOrdersList:%1 --->>>>]")<< m_simValidOrdersList;
QLOG_INFO() << QString("[<<<<---FmTakeout _ConfirmOrder: _ClickOMSAssignArea --->>>>]");
emit doHideMainShowFloatFrom();
_ClickOMSAssignArea();
}
}
......@@ -805,6 +805,7 @@ bool FlowControl::_RefuseOrder(const QString &orderId, int refuseCode,const QStr
QLOG_INFO() << QString("[<<<<---FmTakeout _RefuseOrder: m_simValidOrdersList.num:%1 --->>>>]")<< m_simValidOrdersList.count();
QLOG_INFO() << QString("[<<<<---FmTakeout _RefuseOrder: m_simValidOrdersList:%1 --->>>>]")<< m_simValidOrdersList;
QLOG_INFO() << QString("[<<<<---FmTakeout _RefuseOrder: _ClickOMSAssignArea --->>>>]");
emit doHideMainShowFloatFrom();
_ClickOMSAssignArea();
}
}
......@@ -962,9 +963,8 @@ bool FlowControl::_RefundOrder(const QString &orderId,int reasonCode,const QStri
m_procOrderSocket->SetUrl(QUrl(ConfigManger::GetInstance().GetOrderServerUrl()+
ConfigManger::GetInstance().GetInterfaceName(INI_INTERFACE_REFUND)));
} // 如果退款原因:其他,使用下面接口
else{
m_procOrderSocket->SetUrl(QUrl(ConfigManger::GetInstance().GetOrderServerUrl()+
ConfigManger::GetInstance().GetInterfaceName(INI_INTERFACE_CANCLE)));
else {
m_procOrderSocket->SetUrl(QUrl(ConfigManger::GetInstance().GetOrderServerUrl() + ConfigManger::GetInstance().GetInterfaceName(INI_INTERFACE_CANCLE)));
}
result = m_procOrderSocket->PostRequest(sendJson, recvJson, error);
QLOG_INFO() << QString("[<<<<---Refund Order Finish--->>>>][result:%1][msg:%2][recvData:%3]")
......@@ -993,28 +993,7 @@ bool FlowControl::_RefundOrder(const QString &orderId,int reasonCode,const QStri
//退货订单,将此订单添加到simphony 模拟点单列表中;
QLOG_INFO() << QString("[<<<<---FmTakeout _RefundOrder: orderObject->id:%1 , orderObject->orderStatus:%2 --->>>>]").arg(orderObject->id).arg(orderObject->orderStatus);
QLOG_INFO() << QString("[<<<<---FmTakeout _RefundOrder: orderObject->id:%1 , orderObject->isCancle:%2 --->>>>]").arg(orderObject->id).arg(orderObject->isCancle);
if (OrderObject::Refunded == orderObject->orderStatus){
/*
if( !SimProcOrderDB::getInstance().isRefundOrder(orderObject->id) ) //发现BUG:存在两种case:①订单还没有录退单到POS;就已经将内存中订单的退单标识置True了,所以必须根据数据库中的数据来判断;
{
// 判断Simphony 队列中的订单是否已经存在:不存在(Simphony已经点单完成后会移除)则添加; 如果存在(说明此订单还没有模拟点单),则需要直接向现存在Sim有效队列中的记录移除;
m_OrderEntryMutex.lock();
if(!m_simValidOrdersList.contains(orderObject->id))
{
m_simValidOrdersList.insert(0,orderObject->id);
}else{
if(!PrintSumBillPosDB::getInstance().isOrderSumBillExist(orderObject->id)){
m_simValidOrdersList.removeOne(orderObject->id);
}
}
orderObject->isCancle=true;
orderObject->pushOrderType==0;
m_OrderEntryMutex.unlock();
QLOG_INFO() << QString("[<<<<---FmTakeout _RefundOrder: m_simValidOrdersList.num:%1 --->>>>]")<< m_simValidOrdersList.count();
QLOG_INFO() << QString("[<<<<---FmTakeout _RefundOrder: m_simValidOrdersList:%1 --->>>>]")<< m_simValidOrdersList;
QLOG_INFO() << QString("[<<<<---FmTakeout _RefundOrder: _ClickOMSAssignArea --->>>>]");
_ClickOMSAssignArea();
}*/
if (OrderObject::Refunded == orderObject->orderStatus) {
//能退单成功就肯定能断言,此订单是没有录过退货的
// 判断Simphony 队列中的订单是否已经存在:不存在(Simphony已经点单完成后会移除)则添加; 如果存在(说明此订单还拟点单),则需要直接向现存在Sim有效队列中的记录移除;没有模
m_OrderEntryMutex.lock();
......@@ -1026,14 +1005,13 @@ bool FlowControl::_RefundOrder(const QString &orderId,int reasonCode,const QStri
orderObject->pushOrderType = 0;
orderObject->pushOrderTimes = 0;
}else{ //如果已经存在队列中,就是POS还没有录入销售订单成功;
//if(!PrintSumBillPosDB::getInstance().isOrderSumBillExist(orderObject->id)){
m_simValidOrdersList.removeOne(orderObject->id);
//}
}
QLOG_INFO() << QString("[<<<<---FmTakeout _RefundOrder: m_simValidOrdersList.num:%1 --->>>>]")<< m_simValidOrdersList.count();
QLOG_INFO() << QString("[<<<<---FmTakeout _RefundOrder: m_simValidOrdersList:%1 --->>>>]")<< m_simValidOrdersList;
QLOG_INFO() << QString("[<<<<---FmTakeout _RefundOrder: _ClickOMSAssignArea --->>>>]");
m_OrderEntryMutex.unlock();
emit doHideMainShowFloatFrom();
_ClickOMSAssignArea(); //必须执行,否则退货,点击取消后,就不会再提醒了;
}
......@@ -1516,9 +1494,6 @@ bool FlowControl::_ResponseSimphony05Request(const QJsonObject &content, QJsonOb
/***** 解析 同步更新POS本地数据库是否成功:retSyncOrderPrintInfo:1->成功********/
if(retSyncOrderPrintInfo){
// 还没汇报完小票号,因此还不能从 m_simValidOrdersList 列表中移除;
//m_OrderEntryMutex.lock();
//m_simValidOrdersList.removeOne(orderId);
//m_OrderEntryMutex.unlock();
QJsonObject rObj, cObj;
rObj.insert("fm_cmd", "");
rObj.insert("fm_ver", "1.0");
......@@ -1616,6 +1591,7 @@ bool FlowControl::_ResponseSimReqFristOrderData(QJsonObject &data, QString &erro
} else {
error.clear();
QString orderId=m_simValidOrdersList.first();
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---Simphony_Script请求[ACTION:01:]FMOMS已登录,且有订单待拉取:orderId:%1--->>>>>]").arg(orderId);
/*
int pullNum=MAXPUTTIMES;
foreach (auto value, m_simValidOrdersList) {
......@@ -1635,11 +1611,14 @@ bool FlowControl::_ResponseSimReqFristOrderData(QJsonObject &data, QString &erro
}
//防止POS出现多次录单:退货单(销售单应该不会);
if(SimProcOrderDB::getInstance().isPushedOrder(orderObject->id) && SimProcOrderDB::getInstance().isRefundOrder(orderObject->id)){
bool bIsPushOrder = SimProcOrderDB::getInstance().isPushedOrder(orderObject->id);
bool bIsRefundOrder = SimProcOrderDB::getInstance().isRefundOrder(orderObject->id);
if(bIsPushOrder && bIsRefundOrder) {
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---Simphony_Script请求[ACTION:01:] bIsPushOrder: ;bIsRefundOrder: ;--->>>>>]")<<bIsPushOrder<<bIsRefundOrder;
error = QString::fromLocal8Bit("该订单已经被POS系统录入完成");
m_OrderEntryMutex.lock();
m_simValidOrdersList.removeOne(orderObject->id);
m_OrderEntryMutex.lock();
m_OrderEntryMutex.unlock();
return true;
}
......@@ -1672,10 +1651,10 @@ bool FlowControl::_ResponseSimReqFristOrderData(QJsonObject &data, QString &erro
tempSbkAppPayValue = orderObject->payfmId;
}else if(1 == orderObject->payWay){
tempSbkAppPayType = 78;
tempSbkAppPayValue = orderObject->thirdPartyBatch;
tempSbkAppPayValue = (orderObject->thirdPartyBatch).length()?orderObject->thirdPartyBatch :QString('0');
}else if(2 == orderObject->payWay){
tempSbkAppPayType = 77;
tempSbkAppPayValue = orderObject->thirdPartyBatch;
tempSbkAppPayValue = (orderObject->thirdPartyBatch).length()?orderObject->thirdPartyBatch :QString('0');
}else{
tempSbkAppPayType = -1;
tempSbkAppPayValue = "-1";
......@@ -1701,9 +1680,10 @@ bool FlowControl::_ResponseSimReqFristOrderData(QJsonObject &data, QString &erro
cObj.insert("orderPayType", tempOrderPayType);
cObj.insert("sbkAppPayType", tempSbkAppPayType);
cObj.insert("sbkAppPayValue", tempSbkAppPayValue);
cObj.insert("orderTransFlowNo", orderObject->thirdPartyBatch); //第三方交易流水号
cObj.insert("orderTransFlowNo", (orderObject->thirdPartyBatch).length()?orderObject->thirdPartyBatch :QString('0') ); //第三方交易流水号
cObj.insert("packFree", orderObject->packageFee);
cObj.insert("deliveryFree", orderObject->deliveryPrice);
cObj.insert("waybillId", (orderObject->waybillId).length()?orderObject->waybillId:QString('0') );
cObj.insert("pos_sale_id", orderObject->posCheckNo);
cObj.insert("order_status",orderObject->orderStatus);//订单的状态
cObj.insert("pay_ebcode", orderObject->channel);
......
......@@ -120,6 +120,13 @@ signals:
* 返回:NULL
* */
void showAlert(AlertForm::Type type, const QString& msg);
/* 功能:隐藏主界面显示悬浮窗口
* 参数:[1]窗口类型[2]显示信息
* 返回:NULL
* */
void doHideMainShowFloatFrom();
/* 功能:设置主界面门店信息
* 参数:[1]门店号
* 返回:NULL
......
......@@ -157,7 +157,7 @@ QJsonObject DataManger::GetRefundOrderData(int reasonCode,const QString &reason,
// 其他退单原因;
else{
rObj.insert(JSON_ORDERID, orderId);
rObj.insert("canceledCause", reason);
rObj.insert("canceledCause", reasonCode);
rObj.insert(JSON_POSIPADDRESS,QString("http://") + m_posIpAddress);
//rObj.insert(JSON_CODE, reasonCode);
//rObj.insert(JSON_CHANNEL,channel);
......
......@@ -7,31 +7,28 @@
PrintSumBillPosDB::PrintSumBillPosDB()
{
QLOG_INFO()<<"[<<<<---Try Open Pos SqlServer DataBase--->>>>]";
QLOG_INFO()<<"[<<<<---PrintSumBillPosDB:: Structure POS Print CheckNo INFO DataBase--->>>>]";
}
bool PrintSumBillPosDB::initPrintSumBillPosDB(){
//QString dbPath = QString(ConfigManage::Instance().databasePath());
m_sqlDb = QSqlDatabase::addDatabase("QODBC"); //数据库驱动类型为SQL Server
m_sqlDb = QSqlDatabase::addDatabase("QODBC","PrintSumBillPosDB"); //数据库驱动类型为SQL Server
if(m_sqlDb.isValid()){
QLOG_INFO()<<"[<<<<---SqlServer ODBC driver is valid--->>>>]";
QString dsn="DRIVER={SQL SERVER};SERVER=127.0.0.1\\sqlexpress;DATABASE=MMXBenefits"; //数据源名称 QT_FmConnectPosDb
QString dsn="DRIVER={SQL SERVER};SERVER=127.0.0.1\\sqlexpress;DATABASE=MMXBenefits";
m_sqlDb.setDatabaseName(dsn); //设置数据源名称
m_sqlDb.setUserName("sa"); //登录用户
m_sqlDb.setPassword("SIM29@123");
if(!m_sqlDb.open()) //打开数据库
{
if(!m_sqlDb.open()) { //打开数据库
QLOG_ERROR()<<"[<<<<---SqlServer Open Database error:--->>>>]"<<m_sqlDb.lastError().text();
}
else {
} else {
QLOG_INFO()<<"[<<<<---SqlServer Test Open database success!:--->>>>]";
m_sqlDb.close();
return true;
}
}
else {
} else {
QLOG_ERROR()<<"[<<<<---SqlServer ODBC driver no valid--->>>>]";
}
return false;
......@@ -44,9 +41,8 @@ PrintSumBillPosDB &PrintSumBillPosDB::getInstance()
}
bool PrintSumBillPosDB::insertOrderSumBill(OrderObject* orderObj,const QString& posCheckNo){
m_mutex.lock();
if(!m_sqlDb.open())
{
QMutexLocker mutex(&m_mutex);
if(!m_sqlDb.open()) {
QLOG_ERROR()<<"[<<<<---SqlServer Database:Open Failed--->>>>]"<<m_sqlDb.lastError().text();
return false;
}
......@@ -58,7 +54,7 @@ bool PrintSumBillPosDB::insertOrderSumBill(OrderObject* orderObj,const QString&
"VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
query.addBindValue(posCheckNo.toInt()); // --小票号
query.addBindValue(orderObj->lastName); // --顾客-姓
query.addBindValue(orderObj->customerName); // --顾客-全名
query.addBindValue(orderObj->consigneeName); // --顾客-全名
QString temp_customerSex;
if( !orderObj->customerSex.compare(QString::fromLocal8Bit(FM_MALE)) || !orderObj->customerSex.compare(QString("Male")) ){
temp_customerSex = "Male";
......@@ -95,20 +91,17 @@ bool PrintSumBillPosDB::insertOrderSumBill(OrderObject* orderObj,const QString&
.arg(orderObj->consigneeName).arg(orderObj->addressDetail).arg(orderObj->consigneePhone).arg(orderObj->id)
.arg(orderObj->waybillId).arg(orderObj->pickupCode.length()==0?0:orderObj->pickupCode.toInt()).arg(orderObj->riderPhone).arg(orderObj->riderName);
result = false;
}
else{
} else {
QLOG_INFO()<<QString("[<<<<---SqlServer Database:Insert OrderId %1 Into customer_info Success--->>>>]").arg(orderObj->id);
result = true;
}
m_sqlDb.close();
m_mutex.unlock();
return result;
}
bool PrintSumBillPosDB::updateOrderSumBillStatus(OrderObject* orderObj, const int &OrderStatus){
m_mutex.lock();
if(!m_sqlDb.open())
{
QMutexLocker mutex(&m_mutex);
if(!m_sqlDb.open()) {
QLOG_ERROR()<<"[<<<<---SqlServer Database:Open Failed--->>>>]"<<m_sqlDb.lastError().text();
return false;
}
......@@ -116,92 +109,75 @@ bool PrintSumBillPosDB::updateOrderSumBillStatus(OrderObject* orderObj, const in
QSqlQuery query(m_sqlDb);
query.prepare(QString("update tb_msr_customer_info set OrderStatus=%1 where order_id='%2'")
.arg(QString::number(OrderStatus)).arg(orderObj->id));
if(!query.exec())
{
if(!query.exec()) {
QLOG_ERROR()<<query.lastError().text()<<"[<<<<---SqlServer Database:update Order Status Failed--->>>>]";
result= false;
}
else{
} else {
QLOG_INFO()<<QString("[<<<<---SqlServer Database:Update OrderId %1 OrderStatus success--->>>>]").arg(orderObj->id);
result = true;
}
m_sqlDb.close();
m_mutex.unlock();
return result;
}
bool PrintSumBillPosDB::isOrderAndCknoSumBillExist(const QString& orderId,const QString& posCheckNo){
m_mutex.lock();
if(!m_sqlDb.open())
{
QMutexLocker mutex(&m_mutex);
if(!m_sqlDb.open()) {
QLOG_ERROR()<<"[<<<<---SqlServer Database:Open Failed--->>>>]"<<m_sqlDb.lastError().text();
return false;
}
bool result;
QSqlQuery query(m_sqlDb);
query.prepare(QString("select order_id from tb_msr_customer_info where order_id='%1' and chk_num='%2'").arg(orderId).arg(posCheckNo));
if(!query.exec())
{
if(!query.exec()) {
QLOG_ERROR()<<"[<<<<---SqlServer Database:isOrderAndCknoSumBillExit--->>>>]"<<orderId<<query.lastError().text();
result= false;
}
if(query.first())
{
if(query.first()) {
result= true;
}
else{
} else {
result = false;
}
m_sqlDb.close();
m_mutex.unlock();
return result;
}
bool PrintSumBillPosDB::isOrderSumBillExist(const QString& orderId){
m_mutex.lock();
if(!m_sqlDb.open())
{
QMutexLocker mutex(&m_mutex);
if(!m_sqlDb.open()) {
QLOG_ERROR()<<"[<<<<---SqlServer Database:Open Failed--->>>>]"<<m_sqlDb.lastError().text();
return false;
}
bool result;
QSqlQuery query(m_sqlDb);
query.prepare(QString("select order_id from tb_msr_customer_info where order_id='%1'").arg(orderId));
if(!query.exec())
{
if(!query.exec()) {
QLOG_ERROR()<<"[<<<<---SqlServer Database:isOrderSumBillExit--->>>>]"<<orderId<<query.lastError().text();
result= false;
}
if(query.first())
{
if(query.first()) {
result= true;
}
else{
} else {
result = false;
}
m_sqlDb.close();
m_mutex.unlock();
return result;
}
bool PrintSumBillPosDB::queryValue(const QString& orderId, const QString& key, QString& error, QVariant &value){
QMutexLocker mutex(&m_mutex);
if(!m_sqlDb.open())
{
if(!m_sqlDb.open()) {
error.append(QString("SqlServer Database:Open Failed").append(m_sqlDb.lastError().text()));
return false;
}
QSqlQuery query(m_sqlDb);
query.prepare(QString("select %1 from tb_msr_customer_info where order_id='%1'").arg(key).arg(orderId));
if(!query.exec())
{
if(!query.exec()) {
error.append(query.lastError().text());
m_sqlDb.close();
return false;
}
else{
while(query.next())
{
} else {
while(query.next()) {
value= query.value(0);
}
}
......@@ -211,25 +187,20 @@ bool PrintSumBillPosDB::queryValue(const QString& orderId, const QString& key, Q
bool PrintSumBillPosDB::queryIsNull(const QString &orderId, const QString& key,QString &error, bool &result){
QMutexLocker mutex(&m_mutex);
if(!m_sqlDb.open())
{
if(!m_sqlDb.open()) {
error.append(QString("SqlServer Database:Open Failed").append(m_sqlDb.lastError().text()));
return false;
}
QSqlQuery query(m_sqlDb);
query.prepare(QString("select %1 from tb_msr_customer_info where order_id=%2 and %3 is null").arg(orderId,orderId,key));
if(!query.exec())
{
if(!query.exec()) {
error.append(query.lastError().text());
m_sqlDb.close();
return false;
}
else{
if(query.first())
{
} else {
if(query.first()) {
result= true;
}
else{
} else{
result = false;
}
}
......
......@@ -4,39 +4,46 @@
SimProcOrderDB::SimProcOrderDB()
{
m_mutex.lock();
QString dbpath=QCoreApplication::applicationDirPath()+QString("/SimProcOrderDB.db");
db=QSqlDatabase::addDatabase("QSQLITE","SimProcOrderDB_connection");
db.setDatabaseName(dbpath);
if(!db.open())
{
QString error=db.lastError().text();
QLOG_ERROR()<<QString("[<<<<---Sqlite Database:Open Filed--->>>>][%1]").arg(error);
}
else{
QLOG_INFO()<<QString("[<<<<---Sqlite Database:Open Successed--->>>>]");
QLOG_INFO()<<"[<<<<---SimProcOrderDB:: Structure Order Push and Refund DataBase--->>>>]";
}
bool SimProcOrderDB::initSimProcOrderDB(){
m_sqlDb=QSqlDatabase::addDatabase("QODBC","SimProcOrderDB"); //数据库驱动类型为SQL server;
if(m_sqlDb.isValid()){
QLOG_INFO()<<"[<<<<---SimProcOrderDB::SqlServer ODBC driver is valid--->>>>]";
QString dsn="DRIVER={SQL SERVER};SERVER=127.0.0.1\\sqlexpress;DATABASE=MMXBenefits;Trusted_Connection=yes";
m_sqlDb.setDatabaseName(dsn); //设置数据源名称
m_sqlDb.setUserName("sa"); //登录用户
m_sqlDb.setPassword("SIM29@123");
if(!m_sqlDb.open()) { //打开数据库
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::SqlServer Open Database error:--->>>>]"<<m_sqlDb.lastError().text();
} else {
QLOG_INFO()<<"[<<<<---SimProcOrderDB::SqlServer Test Open database success!:--->>>>]";
QSqlQuery query(m_sqlDb);
QString selectsql ="select * from sys.tables where name='SimProcOrderTable'" ;
if(!query.exec(selectsql)) {
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::SqlServer Database check table SimProcOrderTable command failed--->>>>]"<<query.lastError().text();
}
if(query.next()) {
QLOG_INFO() << "[<<<<---SimProcOrderDB::Table SimProcOrderTable Has Exist--->>>>]";
} else {
QLOG_INFO() << "[<<<<---SimProcOrderDB::Table SimProcOrderTable Does Not Exist--->>>>]";
query.prepare(QString("create table SimProcOrderTable ( orderId varchar(20) primary key,isPushed int,isRefund int,isReport int,isBackReport int,posCheckNo varchar(20),creatTime varchar(20) )"));
if(!query.exec()){
QLOG_ERROR()<< "[<<<<---Create Table SimProcOrderTable Faild--->>>>]" <<query.lastError().text()<<QString::number(query.lastError().type());
return false;
}
QSqlQuery query(db);
int isTableExist=0;
query.exec(QString("select count(*) from sqlite_master where type='table' and name='%1'").arg("SimProcOrderTable"));
while(query.next())
{
isTableExist = query.value(0).toInt();
}
if(!isTableExist){
QLOG_INFO() << "[<<<<---Sqlite Database:Table SimProcOrderTable Does Not Exist--->>>>]";
query.prepare(QString("create table SimProcOrderTable (orderId varchar(20) primary key,isPushed int(1),isRefund int(1),isReport int(1),isBackReport int(1),posCheckNo varchar(20),creatTime varchar(20))"));
if(!query.exec())
{
QLOG_ERROR()<<query.lastError().text()<<QString::number(query.lastError().type())<<"[<<<<---Sqlite Database:Create Table SimProcOrderTable Faild--->>>>]";
m_sqlDb.close();
return true;
}
} else{
QLOG_INFO() << "[<<<<---Sqlite Database:Table SimProcOrderTable Has Exist--->>>>]";
} else {
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::SqlServer ODBC driver no valid";
}
db.close();
m_mutex.unlock();
return false;
}
SimProcOrderDB &SimProcOrderDB::getInstance()
{
static SimProcOrderDB simProcOrderDB;
......@@ -45,333 +52,281 @@ SimProcOrderDB &SimProcOrderDB::getInstance()
bool SimProcOrderDB::insertSimProcOrder(const QString &orderId,const QString& creatTime)
{
m_mutex.lock();
if(!db.open())
{
QLOG_ERROR()<<"[<<<<---Sqlite Database:Open Failed--->>>>]"<<db.lastError().text();
QMutexLocker mutex(&m_mutex);
if(!m_sqlDb.open()) {
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::insertSimProcOrder Open Failed--->>>>]"<<m_sqlDb.lastError().text();
return false;
}
bool result;
QSqlQuery query(db);
QSqlQuery query(m_sqlDb);
query.prepare(QString("insert into SimProcOrderTable values('%1',0,0,0,0,NUll,'%6')").arg(orderId).arg(creatTime));
qDebug()<<creatTime;
if(!query.exec())
{
QLOG_ERROR()<<query.lastError().text()<<QString::number(query.lastError().type())<<"[<<<<---Sqlite Database:insertSimProcOrder Error--->>>>]";
if(!query.exec()) {
QLOG_ERROR()<<"[<<<<---SimProcOrderDB:insertSimProcOrder Error--->>>>]"<<query.lastError().text()<<QString::number(query.lastError().type());
result = false;
}
else{
QLOG_INFO()<<QString("[<<<<---Sqlite Database:Insert OrderId %1 Into SimProcOrderTable Success--->>>>]").arg(orderId);
} else {
QLOG_INFO()<<QString("[<<<<---SimProcOrderDB:: Insert OrderId %1 Into SimProcOrderTable Success--->>>>]").arg(orderId);
result = true;
}
db.close();
m_mutex.unlock();
m_sqlDb.close();
return result;
}
bool SimProcOrderDB::updatePushOrderStatus(const QString &orderId, const int &pushOrderStatus)
{
m_mutex.lock();
if(!db.open())
{
QLOG_ERROR()<<"[<<<<---Sqlite Database:Open Failed--->>>>]"<<db.lastError().text();
QMutexLocker mutex(&m_mutex);
if(!m_sqlDb.open()) {
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::updatePushOrderStatus Open Failed--->>>>]"<<m_sqlDb.lastError().text();
return false;
}
bool result;
QSqlQuery query(db);
QSqlQuery query(m_sqlDb);
query.prepare(QString("update SimProcOrderTable set isPushed=%1 where orderId='%2'")
.arg(QString::number(pushOrderStatus)).arg(orderId));
if(!query.exec())
{
QLOG_ERROR()<<query.lastError().text()<<"[<<<<---Sqlite Database:updatePushOrderStatus Failed--->>>>]";
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::updatePushOrderStatus Failed--->>>>]"<<query.lastError().text();
result= false;
}
else{
QLOG_INFO()<<QString("[<<<<---Sqlite Database:Update OrderId %1 pushOrderStatus success;pushOrderStatus:%2--->>>>]").arg(orderId).arg(pushOrderStatus);
} else {
QLOG_INFO()<<QString("[<<<<---SimProcOrderDB::Update OrderId %1 pushOrderStatus success;pushOrderStatus:%2--->>>>]").arg(orderId).arg(pushOrderStatus);
result = true;
}
db.close();
m_mutex.unlock();
m_sqlDb.close();
return result;
}
bool SimProcOrderDB::isPushedOrder(const QString &orderId)
{
m_mutex.lock();
if(!db.open())
{
QLOG_ERROR()<<"[<<<<---Sqlite Database:Open Failed--->>>>]"<<db.lastError().text();
QMutexLocker mutex(&m_mutex);
if(!m_sqlDb.open()) {
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::isPushedOrder Open Failed--->>>>]"<<m_sqlDb.lastError().text();
return false;
}
bool result;
QSqlQuery query(db);
QSqlQuery query(m_sqlDb);
query.prepare(QString("select isPushed from SimProcOrderTable where orderId='%1'").arg(orderId));
if(!query.exec())
{
QLOG_ERROR()<<query.lastError().text()<<orderId<<"[<<<<---Sqlite Database:isPushedOrder Failed--->>>>]";
if(!query.exec()){
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::isPushedOrder Failed--->>>>]"<<query.lastError().text()<<orderId;
result= false;
}
while(query.next())
{
while(query.next()) {
result= query.value(0).toBool();
QLOG_INFO()<<QString("[<<<<---Sqlite Database:isPushedOrder orderId:%1 isPushedOrder:%2 --->>>>]").arg(orderId).arg(result);
QLOG_INFO()<<QString("[<<<<---SimProcOrderDB::isPushedOrder orderId:%1 isPushedOrder:%2 --->>>>]").arg(orderId).arg(result);
}
db.close();
m_mutex.unlock();
m_sqlDb.close();
return result;
}
bool SimProcOrderDB::updateRefundOrderStatus(const QString &orderId, const int &refundOrderStatus)
{
m_mutex.lock();
if(!db.open())
{
QLOG_ERROR()<<"[<<<<---Sqlite Database:Open Failed--->>>>]"<<db.lastError().text();
QMutexLocker mutex(&m_mutex);
if(!m_sqlDb.open()) {
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::updateRefundOrderStatus Open Failed--->>>>]"<<m_sqlDb.lastError().text();
return false;
}
bool result;
QSqlQuery query(db);
QSqlQuery query(m_sqlDb);
query.prepare(QString("update SimProcOrderTable set isRefund=%1 where orderId='%2'")
.arg(QString::number(refundOrderStatus)).arg(orderId));
if(!query.exec())
{
QLOG_ERROR()<<query.lastError().text()<<"[<<<<---Sqlite Database:updateRefundOrderStatus Failed--->>>>]";
if(!query.exec()) {
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::updateRefundOrderStatus Failed--->>>>]"<<query.lastError().text();
result= false;
}
else{
QLOG_INFO()<<QString("[<<<<---Sqlite Database:Update OrderId %1 refundOrderStatus Successd; refundOrderStatus:%2 --->>>>]").arg(orderId).arg(refundOrderStatus);
} else {
QLOG_INFO()<<QString("[<<<<---SimProcOrderDB::Update OrderId %1 refundOrderStatus Successd; refundOrderStatus:%2 --->>>>]").arg(orderId).arg(refundOrderStatus);
result = true;
}
db.close();
m_mutex.unlock();
m_sqlDb.close();
return result;
}
bool SimProcOrderDB::isRefundOrder(const QString &orderId)
{
m_mutex.lock();
if(!db.open())
{
QLOG_ERROR()<<"[<<<<---Sqlite Database:Open Failed--->>>>]"<<db.lastError().text();
QMutexLocker mutex(&m_mutex);
if(!m_sqlDb.open()){
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::isRefundOrder Open Failed--->>>>]"<<m_sqlDb.lastError().text();
return false;
}
bool result;
QSqlQuery query(db);
QSqlQuery query(m_sqlDb);
query.prepare(QString("select isRefund from SimProcOrderTable where orderId='%1'").arg(orderId));
if(!query.exec())
{
QLOG_ERROR()<<query.lastError().text()<<orderId<<"[<<<<---Sqlite Database:isRefundOrder Failed--->>>>]";
if(!query.exec()) {
QLOG_ERROR()<<orderId<<"[<<<<---SimProcOrderDB::isRefundOrder Failed--->>>>]"<<query.lastError().text();
result= false;
}
while(query.next())
{
while(query.next()) {
result= query.value(0).toBool();
QLOG_INFO()<<QString("[<<<<---SimProcOrderDB::isRefundOrder: orderId:%1, isRefundOrder:%2--->>>>]").arg(orderId).arg(result);
}
db.close();
m_mutex.unlock();
m_sqlDb.close();
return result;
}
bool SimProcOrderDB::updateReportOrderStatus(const QString &orderId, const int &reportOrderStatus)
{
m_mutex.lock();
if(!db.open())
{
QLOG_ERROR()<<"[<<<<---Sqlite Database:Open Failed--->>>>]"<<db.lastError().text();
QMutexLocker mutex(&m_mutex);
if(!m_sqlDb.open()) {
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::updateReportOrderStatus Open Failed--->>>>]"<<m_sqlDb.lastError().text();
return false;
}
bool result;
QSqlQuery query(db);
QSqlQuery query(m_sqlDb);
query.prepare(QString("update SimProcOrderTable set isReport=%1 where orderId='%2'")
.arg(QString::number(reportOrderStatus)).arg(orderId));
if(!query.exec())
{
QLOG_ERROR()<<query.lastError().text()<<"[<<<<---Sqlite Database:updateReportOrderStatus Failed--->>>>]";
if(!query.exec()) {
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::updateReportOrderStatus Failed--->>>>]"<<query.lastError().text();
result= false;
}
else{
QLOG_INFO()<<QString("[<<<<---Sqlite Database:Update OrderId %1 reportOrderStatus Success--->>>>]").arg(orderId);
} else {
QLOG_INFO()<<QString("[<<<<---SimProcOrderDB::Update OrderId %1 reportOrderStatus Success--->>>>]").arg(orderId);
result = true;
}
db.close();
m_mutex.unlock();
m_sqlDb.close();
return result;
}
bool SimProcOrderDB::isReportOrder(const QString &orderId)
{
m_mutex.lock();
if(!db.open())
{
QLOG_ERROR()<<"[<<<<---Sqlite Database:Open Failed--->>>>]"<<db.lastError().text();
QMutexLocker mutex(&m_mutex);
if(!m_sqlDb.open()){
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::isReportOrder Open Failed--->>>>]"<<m_sqlDb.lastError().text();
return false;
}
bool result;
QSqlQuery query(db);
QSqlQuery query(m_sqlDb);
query.prepare(QString("select isReport from SimProcOrderTable where orderId='%1'").arg(orderId));
if(!query.exec())
{
QLOG_ERROR()<<query.lastError().text()<<orderId<<"[<<<<---Sqlite Database:isReportOrder Failed--->>>>]";
if(!query.exec()) {
QLOG_ERROR()<<query.lastError().text()<<orderId<<"[<<<<---SimProcOrderDB::isReportOrder Failed--->>>>]";
result= false;
}
while(query.next())
{
while(query.next()) {
result= query.value(0).toBool();
}
db.close();
m_mutex.unlock();
m_sqlDb.close();
return result;
}
bool SimProcOrderDB::updateBackReportOrderStatus(const QString &orderId, const int &backReportOrderStatus)
{
m_mutex.lock();
if(!db.open())
{
QLOG_ERROR()<<"[<<<<---Sqlite Database:Open Failed--->>>>]"<<db.lastError().text();
QMutexLocker mutex(&m_mutex);
if(!m_sqlDb.open()) {
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::updateBackReportOrderStatus Open Failed--->>>>]"<<m_sqlDb.lastError().text();
return false;
}
bool result;
QSqlQuery query(db);
QSqlQuery query(m_sqlDb);
query.prepare(QString("update SimProcOrderTable set isBackReport=%1 where orderId='%2'")
.arg(QString::number(backReportOrderStatus)).arg(orderId));
if(!query.exec())
{
QLOG_ERROR()<<query.lastError().text()<<"[<<<<---Sqlite Database:updateBackReportOrderStatus Failed--->>>>]";
if(!query.exec()) {
QLOG_ERROR()<<query.lastError().text()<<"[<<<<---SimProcOrderDB::updateBackReportOrderStatus Failed--->>>>]";
result= false;
}
else{
QLOG_INFO()<<QString("[<<<<---Sqlite Database:Update OrderId %1 backReportOrderStatus Success--->>>>]").arg(orderId);
} else {
QLOG_INFO()<<QString("[<<<<---SimProcOrderDB::Update OrderId %1 backReportOrderStatus Success--->>>>]").arg(orderId);
result = true;
}
db.close();
m_mutex.unlock();
m_sqlDb.close();
return result;
}
bool SimProcOrderDB::isBackReportOrder(const QString &orderId)
{
m_mutex.lock();
if(!db.open())
{
QLOG_ERROR()<<"[<<<<---Sqlite Database:Open Failed--->>>>]"<<db.lastError().text();
QMutexLocker mutex(&m_mutex);
if(!m_sqlDb.open()) {
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::isBackReportOrder Open Failed--->>>>]"<<m_sqlDb.lastError().text();
return false;
}
bool result;
QSqlQuery query(db);
QSqlQuery query(m_sqlDb);
query.prepare(QString("select isBackReport from SimProcOrderTable where orderId='%1'").arg(orderId));
if(!query.exec())
{
QLOG_ERROR()<<query.lastError().text()<<orderId<<"[<<<<---Sqlite Database:isBackReportOrder Failed--->>>>]";
if(!query.exec()) {
QLOG_ERROR()<<query.lastError().text()<<orderId<<"[<<<<---SimProcOrderDB::isBackReportOrder Failed--->>>>]";
result= false;
}
while(query.next())
{
while(query.next()) {
result= query.value(0).toBool();
}
db.close();
m_mutex.unlock();
m_sqlDb.close();
return result;
}
bool SimProcOrderDB::isOrderExist(const QString &orderId)
{
m_mutex.lock();
if(!db.open())
{
QLOG_ERROR()<<"[<<<<---Sqlite Database:Open Failed--->>>>]"<<db.lastError().text();
QMutexLocker mutex(&m_mutex);
if(!m_sqlDb.open()) {
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::isOrderExist Open Failed--->>>>]"<<m_sqlDb.lastError().text();
return false;
}
bool result;
QSqlQuery query(db);
QSqlQuery query(m_sqlDb);
query.prepare(QString("select orderId from SimProcOrderTable where orderId='%1'").arg(orderId));
if(!query.exec())
{
QLOG_ERROR()<<query.lastError().text()<<orderId<<"[<<<<---Sqlite Database:isOrderExit Failed--->>>>]";
if(!query.exec()) {
QLOG_ERROR()<<query.lastError().text()<<orderId<<"[<<<<---SimProcOrderDB::isOrderExit Failed--->>>>]";
result= false;
}
if(query.first())
{
if(query.first()) {
result= true;
}
else{
} else {
result = false;
}
db.close();
m_mutex.unlock();
m_sqlDb.close();
return result;
}
bool SimProcOrderDB::updatePosOrderCheckNo(const QString &orderId, const QString &posOrderCheckNo)
{
m_mutex.lock();
if(!db.open())
{
QLOG_ERROR()<<"[<<<<---Sqlite Database:Open Failed--->>>>]"<<db.lastError().text();
QMutexLocker mutex(&m_mutex);
if(!m_sqlDb.open()) {
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::updatePosOrderCheckNo Open Failed--->>>>]"<<m_sqlDb.lastError().text();
return false;
}
bool result;
QSqlQuery query(db);
QSqlQuery query(m_sqlDb);
query.prepare(QString("update SimProcOrderTable set posCheckNo='%1' where orderId='%2'")
.arg(posOrderCheckNo).arg(orderId));
if(!query.exec())
{
if(!query.exec()) {
QLOG_ERROR()<<query.lastError().text()<<__FUNCTION__;
result= false;
}
else{
QLOG_INFO()<<QString("[<<<<---Sqlite Database:Action4: Report CheckNo : Update OrderId:%1 posCheckNo:%2 Success--->>>>]").arg(orderId,posOrderCheckNo);
} else {
QLOG_INFO()<<QString("[<<<<---SimProcOrderDB::Action4: Report CheckNo : Update OrderId:%1 posCheckNo:%2 Success--->>>>]").arg(orderId,posOrderCheckNo);
result = true;
}
db.close();
m_mutex.unlock();
m_sqlDb.close();
return result;
}
bool SimProcOrderDB::getPosOrderCheckNo(const QString &orderId,QString& posOrderCheckNo)
{
m_mutex.lock();
QMutexLocker mutex(&m_mutex);
bool result=false;
if(!db.open())
{
QLOG_ERROR()<<"[<<<<---Sqlite Database:Open Failed--->>>>]"<<db.lastError().text();
if(!m_sqlDb.open()) {
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::getPosOrderCheckNo Open Failed--->>>>]"<<m_sqlDb.lastError().text();
return result;
}
QSqlQuery query(db);
QSqlQuery query(m_sqlDb);
query.prepare(QString("select posCheckNo from SimProcOrderTable where orderId='%1'").arg(orderId));
if(!query.exec())
{
if(!query.exec()) {
QLOG_ERROR()<<query.lastError().text()<<orderId<<__FUNCTION__;
return result;
}
while(query.next())
{
while(query.next()) {
posOrderCheckNo= query.value(0).toString();
result=true;
}
db.close();
m_mutex.unlock();
m_sqlDb.close();
return result;
}
bool SimProcOrderDB::deleteOrderRecord(QString creatTime)
{
m_mutex.lock();
if(!db.open())
{
QLOG_ERROR()<<"[<<<<---Sqlite Database:Open Failed--->>>>]"<<db.lastError().text();
QMutexLocker mutex(&m_mutex);
if(!m_sqlDb.open()) {
QLOG_ERROR()<<"[<<<<---SimProcOrderDB::deleteOrderRecord Open Failed--->>>>]"<<m_sqlDb.lastError().text();
return false;
}
bool result=true;
QSqlQuery query(db);
QSqlQuery query(m_sqlDb);
query.prepare(QString("delete from SimProcOrderTable where creatTime<'%1'").arg(creatTime));
if(!query.exec())
{
if(!query.exec()) {
QLOG_ERROR()<<query.lastError().text()<<__FUNCTION__;
result= false;
}
db.close();
m_mutex.unlock();
m_sqlDb.close();
return result;
}
......@@ -379,79 +334,68 @@ bool SimProcOrderDB::deleteOrderRecord(QString creatTime)
bool SimProcOrderDB::queryValue(const QString &orderId, const QString& key, QString &error, QVariant & value)
{
QMutexLocker mutex(&m_mutex);
if(!db.open())
{
error.append(QString("Sqlite Database:Open Failed").append(db.lastError().text()));
if(!m_sqlDb.open()) {
error.append(QString("SimProcOrderDB::queryValue :Open Failed").append(m_sqlDb.lastError().text()));
return false;
}
QSqlQuery query(db);
QSqlQuery query(m_sqlDb);
query.prepare(QString("select %1 from SimProcOrderTable where orderId='%1'").arg(key).arg(orderId));
if(!query.exec())
{
if(!query.exec()) {
error.append(query.lastError().text());
db.close();
m_sqlDb.close();
return false;
}
else{
} else {
while(query.next())
{
value= query.value(0);
}
}
db.close();
m_sqlDb.close();
return true;
}
bool SimProcOrderDB::updatekey(const QString &orderId, const QString &key, const int value, QString &error, bool &result)
{
QMutexLocker mutex(&m_mutex);
if(!db.open())
{
error.append(QString("Sqlite Database:Open Failed").append(db.lastError().text()));
if(!m_sqlDb.open()) {
error.append(QString("SimProcOrderDB::updatekey :Open Failed").append(m_sqlDb.lastError().text()));
return false;
}
QSqlQuery query(db);
QSqlQuery query(m_sqlDb);
query.prepare(QString("update SimProcOrderTable set %1=%2 where orderId='%3'").arg(key)
.arg(QString::number(value)).arg(orderId));
if(!query.exec())
{
if(!query.exec()) {
error.append(query.lastError().text());
db.close();
m_sqlDb.close();
return false;
}
else{
} else {
result = true;
}
db.close();
m_sqlDb.close();
return true;
}
bool SimProcOrderDB::queryIsNull(const QString &orderId, const QString &key, QString &error, bool &result)
{
QMutexLocker mutex(&m_mutex);
if(!db.open())
{
error.append(QString("Sqlite Database:Open Failed").append(db.lastError().text()));
if(!m_sqlDb.open()) {
error.append(QString("SimProcOrderDB::queryIsNull Open Failed").append(m_sqlDb.lastError().text()));
return false;
}
QSqlQuery query(db);
QSqlQuery query(m_sqlDb);
query.prepare(QString("select %1 from SimProcOrderTable where orderId=%2 and %3 is null").arg(orderId,orderId,key));
if(!query.exec())
{
if(!query.exec()) {
error.append(query.lastError().text());
db.close();
m_sqlDb.close();
return false;
}
else{
if(query.first())
{
} else {
if(query.first()) {
result= true;
}
else{
} else {
result = false;
}
}
db.close();
m_sqlDb.close();
return true;
}
......@@ -16,6 +16,13 @@ public:
// explicit SimProcOrderDB(QObject *parent = 0);
static SimProcOrderDB& getInstance();
/**
*功能:初始化数据库
*参数:[1]订单号 [2]创建时间
*/
bool initSimProcOrderDB();
/**
*功能:插入一条Simphony返回小票号的订单新数据
*参数:[1]订单号 [2]创建时间
......@@ -108,7 +115,7 @@ private:
SimProcOrderDB();
SimProcOrderDB(SimProcOrderDB const&);
SimProcOrderDB& operator=(SimProcOrderDB const&);
QSqlDatabase db;
QSqlDatabase m_sqlDb;
signals:
......
......@@ -88,6 +88,7 @@ int main(int argc, char *argv[])
MainForm w;
QObject::connect(&w, &MainForm::showFloatForm, &f, &FloatForm::onShow);
QObject::connect(&FlowControl::GetInstance(), &FlowControl::startRemind, &f, &FloatForm::onStartRemind);
QObject::connect(&FlowControl::GetInstance(), &FlowControl::doHideMainShowFloatFrom, &w, &MainForm::on_mainBtnHide_clicked);
QObject::connect(&w, &MainForm::startRemind, &f, &FloatForm::onStartRemind);
QObject::connect(&w, &MainForm::stopRemind, &f, &FloatForm::onStopRemind);
QObject::connect(&f, &FloatForm::showMainForm, &w, &MainForm::show);
......
......@@ -165,11 +165,13 @@ private slots:
* 返回:NULL
* */
void on_mainBtnSet_clicked();
/* 功能:隐藏按钮对应动作
* 参数:NULL
* 返回:NULL
* */
void on_mainBtnHide_clicked();
//void on_mainBtnHide_clicked();
/* 功能:上翻按钮对应动作
* 参数:NULL
* 返回:NULL
......@@ -214,6 +216,12 @@ private slots:
void on_mainBtnDayReport_clicked();
public slots:
/* 功能:隐藏按钮对应动作
* 参数:NULL
* 返回:NULL
* */
void on_mainBtnHide_clicked();
/* 功能:隐藏通知窗口
* 参数:NULL
* 返回:NULL
......
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