Commit 28e695f7 by wuyang.zou

new feature: 分页拉取订单列表

             订单详情页面展示 Pos Key
             展示 微信-MOD + 口碑-MOP
             转换成ServiceTypeID 并入库;
	     Version: 4.2020.318.1
parent 4daf93a9
...@@ -742,14 +742,15 @@ bool FlowControl::_PullOrderList(const int &pageSize, const int &pageNo) ...@@ -742,14 +742,15 @@ bool FlowControl::_PullOrderList(const int &pageSize, const int &pageNo)
QLOG_ERROR() << QString("[<<<<---FlowControl::_PullOrderList:Pull Order List Error--->>>>][msg->%1]").arg(error); QLOG_ERROR() << QString("[<<<<---FlowControl::_PullOrderList:Pull Order List Error--->>>>][msg->%1]").arg(error);
emit showAlert(AlertForm::MSGERROR, QString::fromLocal8Bit("获取订单失败![%1]").arg(error)); emit showAlert(AlertForm::MSGERROR, QString::fromLocal8Bit("获取订单失败![%1]").arg(error));
result=false; result=false;
m_orderCount = 0;
} else { } else {
QJsonArray orders = recvJson[JSON_DATA].toObject()[JSON_ORDERS].toArray(); QJsonArray orders = recvJson[JSON_DATA].toObject()[JSON_ORDERS].toArray();
foreach(QJsonValue order, orders) { foreach(QJsonValue order, orders) {
_OrderAnalysis(order.toObject()); _OrderAnalysis(order.toObject());
} }
ordertotalSum=recvJson[JSON_DATA].toObject()[JSON_COUNT].toInt(); ordertotalSum=recvJson[JSON_DATA].toObject()[JSON_COUNT].toInt();
m_orderCount+=1000; m_orderCount += orders.size();
if(m_orderCount<ordertotalSum) { if ( m_orderCount < ordertotalSum ) {
//避免出现存在多页数据,导致出现死锁: 先调用定时器的timeout 触发槽函数:_PullOrderData, //避免出现存在多页数据,导致出现死锁: 先调用定时器的timeout 触发槽函数:_PullOrderData,
//_PullOrderData:内部会有加锁并且会调用分页获取订单函数_AddOrderPull(QString(),QString(),pageNo+1,pageSize): 内部也有加锁,所以导致死锁; //_PullOrderData:内部会有加锁并且会调用分页获取订单函数_AddOrderPull(QString(),QString(),pageNo+1,pageSize): 内部也有加锁,所以导致死锁;
//_AddOrderPull(QString(),QString(),pageNo+1,pageSize); //_AddOrderPull(QString(),QString(),pageNo+1,pageSize);
...@@ -759,9 +760,13 @@ bool FlowControl::_PullOrderList(const int &pageSize, const int &pageNo) ...@@ -759,9 +760,13 @@ bool FlowControl::_PullOrderList(const int &pageSize, const int &pageNo)
orderPull->channel=QString(); orderPull->channel=QString();
orderPull->pageNumber=pageNo+1; orderPull->pageNumber=pageNo+1;
orderPull->pageSize=pageSize; orderPull->pageSize=pageSize;
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::_PullOrderList: Next Page Order List :pageNo:%1--->>>>]").arg(pageNo+1); QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::_PullOrderList: Next Page Order List :pageNo:%1 pageSize:%2--->>>>]").arg(pageNo+1).arg(pageSize);
m_orderPullList.append(orderPull); m_orderPullList.append(orderPull);
//避免出现存在多页数据,导致出现死锁; //避免出现存在多页数据,导致出现死锁;
} else {
//分页拉取订单列表最后一页成功后,需要重置本地拉单计数缓存, 防止影响下一次获取订单列表判断;
m_orderCount = 0;
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::_PullOrderList Had Finished: The Last Request PageNo:%1--->>>>]").arg(pageNo);
} }
} }
} }
...@@ -3148,8 +3153,7 @@ void FlowControl::onProcessReTryInputOrder(const QString &orderId) ...@@ -3148,8 +3153,7 @@ void FlowControl::onProcessReTryInputOrder(const QString &orderId)
orderPull->orderId=orderId; orderPull->orderId=orderId;
orderPull->channel=TempOrderObject->channel; orderPull->channel=TempOrderObject->channel;
orderPull->pageNumber=1; orderPull->pageNumber=1;
orderPull->pageSize=1000; orderPull->pageSize=30;
m_orderCount = 0; //重置插件本地缓存数据页;
m_orderPullList.append(orderPull); m_orderPullList.append(orderPull);
m_PullOrderDataMutex.unlock(); m_PullOrderDataMutex.unlock();
} }
......
...@@ -380,9 +380,9 @@ public slots: ...@@ -380,9 +380,9 @@ public slots:
QString _Penny2Dollar(int penny); QString _Penny2Dollar(int penny);
void _GetIpAddress(); void _GetIpAddress();
void _AddOrderPull(const QString& orderId=0,const QString& channel=0,const int& pageNumber=1,const int& pageSize=1000); void _AddOrderPull(const QString& orderId=0,const QString& channel=0,const int& pageNumber=1,const int& pageSize=30);
// 避免获取较多历史订单的同时,OMS又有推单过来,导致死锁; // 避免获取较多历史订单的同时,OMS又有推单过来,导致死锁;
bool _TryAddOrderPull(const QString &orderId=0, const QString &channel=0, const int &pageNumber=1, const int &pageSize=1000); bool _TryAddOrderPull(const QString &orderId=0, const QString &channel=0, const int &pageNumber=1, const int &pageSize=30);
//点击屏幕指定区域 //点击屏幕指定区域
void _ClickOMSAssignArea(); void _ClickOMSAssignArea();
......
...@@ -45,6 +45,120 @@ PmsOrdersData &PmsOrdersData::getInstance() { ...@@ -45,6 +45,120 @@ PmsOrdersData &PmsOrdersData::getInstance() {
return pmsOrdersData; return pmsOrdersData;
} }
//* App-MOP[18-销售,19-退货] KouBei-MOP[29-销售,30-退货] App-MOD[9-销售,17-退货] 客诉单[12 (无退单)] Wechat-MOD[27-销售, 28-退货 ]
//* ELEME[11-销售, 16-退货] ORS[21-实物-销售(实物无退货), 23-配送费-销售, 24-配送费-退货] MOP自测[20-销售(无退单) ] STC[25-未使用] HM[14-已停用]】
int PmsOrdersData::convertPosServiceTypeId( const OrderObject* orderObj, const int &OrderStatus ) {
int tempOrderTypeId = 0;
if ( !orderObj) {
QLOG_ERROR()<<"[<<<<---PmsOrdersData::convertPosServiceTypeId orderObj Point is Null --->>>>]";
return tempOrderTypeId;
}
switch ( OrderStatus )
{
// sale-mode
case OrderObject::NewOrder :
case OrderObject::Confirmed :
case OrderObject::Sendout :
case OrderObject::SimExceptSale :
case OrderObject::Finished :{
// 转换成星巴克规定的订单类型; 星巴克的订单类型:1:新订单; 2:预订单; 3:客诉单; 4:MOP自测订单; 5:预约订单
if(3 == orderObj->getOrderType()) {
tempOrderTypeId = 12;
}
// MOD渠道对应的业务逻辑 ; 星巴克-MOD,百度外卖,饿了么APP,美团外卖,星巴克-MOP;
else if("MOD" == orderObj->channel) {
// platformSource:平台来源:1 app;2 ele;3 ors;4 WeChat;5 口碑;
if ( "4" == orderObj->platformSource ) {
tempOrderTypeId = 27;
} else {
tempOrderTypeId = 9;
}
} // MOP渠道对应的业务逻辑;
else if("MOP" == orderObj->channel){
// 区别:口碑-MOP / App-MOP;
if ( "5" == orderObj->platformSource ){
tempOrderTypeId = 29;
} else {
tempOrderTypeId = 18;
}
//MOP最后判断 是否是 MOP自测订单;
if(4== orderObj->getOrderType()) {
tempOrderTypeId = 20;
}
}else if("BAIDU" == orderObj->channel){
tempOrderTypeId = 11;
}else if("ELE" == orderObj->channel){
tempOrderTypeId = 11;
//星巴克-预约订单: 预约实物入机: 销售单订单类型:21; 退货单订单类型: 22;
//为了配合服务端调整:兼容 预约退货 不区分 预约配送费 与 预约实物;必须重点注意退货时支付方式赋值;
}else if("ORS" == orderObj->channel && orderObj->appointmentDayFlag ){
tempOrderTypeId = 21;
//星巴克-预约订单: 配送费入机: 销售单订单类型:23; 退货单订单类型: 24;
}else if("ORS" == orderObj->channel && !orderObj->appointmentDayFlag ){
tempOrderTypeId = 23;
//预约系统 支付方式: 1:支付宝; 2:微信; 3:银联; 4:SVC卡; 5/7:MOP使用券或星星抵扣 0元支付; 8:IStore订单; 9:银联支付(=3);
}else if("HM" == orderObj->channel){
tempOrderTypeId = 14;
}else{
tempOrderTypeId = 11;
}
};
break;
//refund-mode
case OrderObject::SimExceptRefund :
case OrderObject::Refunded :{
// 转换成星巴克规定的订单类型; 星巴克的订单类型:1:新订单; 2:预订单; 3:客诉单; 4:MOP自测订单; 5:预约订单
if(3 == orderObj->getOrderType()) {
tempOrderTypeId = 12;
}
// MOD渠道对应的业务逻辑 ; 星巴克-MOD,百度外卖,饿了么APP,美团外卖,星巴克-MOP;
else if("MOD" == orderObj->channel) {
// platformSource:平台来源:1 app;2 ele;3 ors;4 WeChat;5 口碑;
if ( "4" == orderObj->platformSource ) {
tempOrderTypeId = 28;
} else {
tempOrderTypeId = 17;
}
} // MOP渠道对应的业务逻辑;
else if("MOP" == orderObj->channel){
// 区别:口碑-MOP / App-MOP;
if ( "5" == orderObj->platformSource ){
tempOrderTypeId = 30;
} else {
tempOrderTypeId = 19;
}
//MOP最后判断 是否是 MOP自测订单;
if(4== orderObj->getOrderType()) {
tempOrderTypeId = 20;
}
}else if("BAIDU" == orderObj->channel){
tempOrderTypeId = 13;
}else if("ELE" == orderObj->channel){
tempOrderTypeId = 16;
//星巴克-预约订单: 预约实物入机: 销售单订单类型:21; 退货单订单类型: 22;
//为了配合服务端调整:兼容 预约退货 不区分 预约配送费 与 预约实物;必须重点注意退货时支付方式赋值;
}else if("ORS" == orderObj->channel && orderObj->appointmentDayFlag ){
tempOrderTypeId = 24;
//预约系统 支付方式: 1:支付宝; 2:微信; 3:银联; 4:SVC卡; 5/7:MOP使用券或星星抵扣 0元支付; 8:IStore订单; 9:银联支付(=3);
}else{
tempOrderTypeId = 13;
}
};
break;
default: return tempOrderTypeId;
}
QLOG_INFO()<<"[<<<<---PmsOrdersData::convertPosServiceTypeId : --->>>>]" <<tempOrderTypeId;
return tempOrderTypeId;
}
bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef) { bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef) {
bool btryLock = m_mutex.tryLock(VALUE_TRYLOCKMEMTIMEOUT); bool btryLock = m_mutex.tryLock(VALUE_TRYLOCKMEMTIMEOUT);
bool result = false; bool result = false;
...@@ -57,14 +171,14 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef) ...@@ -57,14 +171,14 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
} }
QSqlQuery query(m_sqlDb); QSqlQuery query(m_sqlDb);
query.prepare("INSERT INTO orders(guid, order_id, order_status, update_time, " query.prepare("INSERT INTO orders(guid, order_id, order_status, update_time, "
"order_channel, order_type,take_no, order_total, products_total, discount_total, payment_method, " "order_channel, order_type,order_type_id,take_no, order_total, products_total, discount_total, payment_method, "
"invoice_url, invoice_status, third_party_id, third_party_index, package_fee, package_discount, " "invoice_url, invoice_status, third_party_id, third_party_index, package_fee, package_discount, "
"accept_date, secret_signal, address_detail, consignee_name ,first_name,last_name,consignee_phone, " "accept_date, secret_signal, address_detail, consignee_name ,first_name,last_name,consignee_phone, "
"delivery_price,delivery_discount,delivery_time, order_estimation,make_finish_time,is_package, " "delivery_price,delivery_discount,delivery_time, order_estimation,make_finish_time,is_package, "
"last_pay_time, address_latitude, address_longitude, oms_msrno, consumer_birthday, cancel_reason, " "last_pay_time, address_latitude, address_longitude, oms_msrno, consumer_birthday, cancel_reason, "
"confirm_time,customer_id,customer_gender,way_bill_id,store_id,store_name,store_address,store_street, " "confirm_time,customer_id,customer_gender,way_bill_id,store_id,store_name,store_address,store_street, "
"pos_id, lang, ext_info, rider_phone, rider_name, displateform_fee) " "pos_id, lang, ext_info, rider_phone, rider_name, displateform_fee) "
"VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?," "VALUES(?, ?, ?, ?, ?,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,"
" ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); " ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
query.addBindValue(orderObj->id); // --非码OMS订单号 query.addBindValue(orderObj->id); // --非码OMS订单号
query.addBindValue(orderObj->id); // --非码OMS订单号 query.addBindValue(orderObj->id); // --非码OMS订单号
...@@ -73,6 +187,9 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef) ...@@ -73,6 +187,9 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
query.addBindValue(updateTimeString); // --订单更新时间 query.addBindValue(updateTimeString); // --订单更新时间
query.addBindValue(orderObj->channel); // --订单渠道 query.addBindValue(orderObj->channel); // --订单渠道
query.addBindValue(orderObj->orderType); // --订单类型 query.addBindValue(orderObj->orderType); // --订单类型
int tempOrderTypeId = convertPosServiceTypeId( orderObj, orderObj->orderStatus);
query.addBindValue(tempOrderTypeId); // --订单类型ID
query.addBindValue(orderObj->pickupCode); // --取餐码 query.addBindValue(orderObj->pickupCode); // --取餐码
query.addBindValue(orderObj->totalPrice * 0.01); // --订单总额 (单位:分) query.addBindValue(orderObj->totalPrice * 0.01); // --订单总额 (单位:分)
query.addBindValue(orderObj->productPrice * 0.01); // --商品总额 (单位:分) query.addBindValue(orderObj->productPrice * 0.01); // --商品总额 (单位:分)
...@@ -129,7 +246,7 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef) ...@@ -129,7 +246,7 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
<<QString::number(query.lastError().type()); <<QString::number(query.lastError().type());
result = false; result = false;
QLOG_INFO()<<QString("INSERT INTO orders(guid, order_id, order_status, update_time, " QLOG_INFO()<<QString("INSERT INTO orders(guid, order_id, order_status, update_time, "
"order_channel, order_type,take_no, order_total, products_total, discount_total, payment_method, " "order_channel, order_type,order_type_id,take_no, order_total, products_total, discount_total, payment_method, "
"invoice_url, invoice_status, third_party_id, third_party_index, package_fee, package_discount, " "invoice_url, invoice_status, third_party_id, third_party_index, package_fee, package_discount, "
"accept_date, secret_signal, address_detail, consignee_name ,first_name,last_name,consignee_phone, " "accept_date, secret_signal, address_detail, consignee_name ,first_name,last_name,consignee_phone, "
"delivery_price,delivery_discount,delivery_time, order_estimation,make_finish_time,is_package, " "delivery_price,delivery_discount,delivery_time, order_estimation,make_finish_time,is_package, "
...@@ -138,9 +255,9 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef) ...@@ -138,9 +255,9 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
"pos_id, lang, ext_info, rider_phone, rider_name, displateform_fee) " "pos_id, lang, ext_info, rider_phone, rider_name, displateform_fee) "
"VALUES(%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14, %15, %16, %17, %18, %19, %20, " "VALUES(%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14, %15, %16, %17, %18, %19, %20, "
"%21, %22, %23, %24, %25, %26, %27, %28, %29, %30, %31, %32, %33, %34, %35, %36, %37, %38, %39, %40," "%21, %22, %23, %24, %25, %26, %27, %28, %29, %30, %31, %32, %33, %34, %35, %36, %37, %38, %39, %40,"
"%41, %42, %43, %44, %45, %46, %47, %48, %49, %50)") "%41, %42, %43, %44, %45, %46, %47, %48, %49, %50, %51)")
.arg(orderObj->id).arg(orderObj->id).arg(orderObj->orderStatus).arg(updateTimeString).arg(orderObj->channel) .arg(orderObj->id).arg(orderObj->id).arg(orderObj->orderStatus).arg(updateTimeString).arg(orderObj->channel)
.arg(orderObj->orderType) .arg(orderObj->orderType).arg(tempOrderTypeId)
.arg(orderObj->pickupCode).arg(orderObj->totalPrice * 0.01).arg(orderObj->productPrice * 0.01).arg(orderObj->orderDiscount * 0.01) .arg(orderObj->pickupCode).arg(orderObj->totalPrice * 0.01).arg(orderObj->productPrice * 0.01).arg(orderObj->orderDiscount * 0.01)
.arg("").arg(orderObj->invoiceUrl).arg("").arg(orderObj->thirdPartyOrderId).arg(orderObj->orderIndex) .arg("").arg(orderObj->invoiceUrl).arg("").arg(orderObj->thirdPartyOrderId).arg(orderObj->orderIndex)
.arg(orderObj->packageFee * 0.01).arg(orderObj->packDiscount * 0.01).arg(orderObj->acceptedDate).arg(orderObj->secretSignal) .arg(orderObj->packageFee * 0.01).arg(orderObj->packDiscount * 0.01).arg(orderObj->acceptedDate).arg(orderObj->secretSignal)
...@@ -414,25 +531,40 @@ bool PmsOrdersData::insertSubProductData(const QList<dishesObject*> sub_products ...@@ -414,25 +531,40 @@ bool PmsOrdersData::insertSubProductData(const QList<dishesObject*> sub_products
//更新订单状态:需加锁; //更新订单状态:需加锁;
bool PmsOrdersData::updateOrderStatus(OrderObject* orderObj, const int &OrderStatus) { bool PmsOrdersData::updateOrderStatus(OrderObject* orderObj, const int &OrderStatus) {
if ( !orderObj) {
QLOG_ERROR()<<"[<<<<---PmsOrdersData::updateOrderStatus orderObj Point is Null --->>>>]";
return false;
}
bool btryLock = m_mutex.tryLock(VALUE_TRYLOCKMEMTIMEOUT); bool btryLock = m_mutex.tryLock(VALUE_TRYLOCKMEMTIMEOUT);
bool result = false; bool result = false;
//数据库原子操作:加锁成功; //数据库原子操作:加锁成功;
if(btryLock){ if(btryLock){
if(!m_sqlDb.open()) { if(!m_sqlDb.open()) {
QLOG_ERROR()<<"[<<<<---PmsOrdersData::updateOrderStatus:Open Failed--->>>>]"<<m_sqlDb.lastError().text(); QLOG_ERROR()<<"[<<<<---PmsOrdersData::updateOrderStatus:Open Failed--->>>>]"<<m_sqlDb.lastError().text();
m_mutex.unlock(); m_mutex.unlock();
return false; return false;
} }
QSqlQuery query(m_sqlDb); QSqlQuery query(m_sqlDb);
query.prepare(QString("update orders set order_status=%1 where order_id='%2'") // 需要对应转换并更新: order_type_id;
.arg(QString::number(OrderStatus)).arg(orderObj->id)); int tempOrderTypeId = convertPosServiceTypeId( orderObj, orderObj->orderStatus);
query.prepare(QString("update orders set order_status=%1,order_type_id=%2 where order_id='%3'")
.arg(QString::number(OrderStatus)).arg(QString::number(tempOrderTypeId)).arg(orderObj->id));
if(!query.exec()) { if(!query.exec()) {
QLOG_ERROR()<<query.lastError().text()<<"[<<<<---PmsOrdersData::update Order Status Failed--->>>>]"; QLOG_ERROR()<<query.lastError().text()<<"[<<<<---PmsOrdersData::update Order Status Failed--->>>>]";
result= false; result= false;
} else { } else {
QLOG_INFO()<<QString("[<<<<---PmsOrdersData::Update OrderId %1 OrderStatus success--->>>>]").arg(orderObj->id); QLOG_INFO()<<QString("[<<<<---PmsOrdersData::Update OrderId %1 OrderStatus success--->>>>]").arg(orderObj->id);
result = true; result = true;
} }
m_sqlDb.close(); m_sqlDb.close();
m_mutex.unlock(); m_mutex.unlock();
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
#include <QtSql/QSqlError> #include <QtSql/QSqlError>
#include <QObject> #include <QObject>
#include <QMutex> #include <QMutex>
#include <Model/orderObject.h> #include "Model/orderObject.h"
#include "preDefine.h" #include "preDefine.h"
class PmsOrdersData : public QObject class PmsOrdersData : public QObject
...@@ -25,6 +25,17 @@ public: ...@@ -25,6 +25,17 @@ public:
bool initPmsOrdersData(); bool initPmsOrdersData();
/** /**
*功能:根据OMS数据 转换成 POS上申请的 ServiceType ID 保存到 PMS 数据库中;
*参数:[1]订单对象指针 [2]订单状态;
*返回:int ServiceType ID
* 【index id:
* App-MOP[18-销售,19-退货] KouBei-MOP[29-销售,30-退货] App-MOD[9-销售,17-退货] 客诉单[12 (无退单)] Wechat-MOD[27-销售, 28-退货 ]
* ELEME[11-销售, 16-退货] ORS[21-实物-销售(实物无退货), 23-配送费-销售, 24-配送费-退货] MOP自测[20-销售(无退单) ] STC[25-未使用] HM[14-已停用]
* 】
**/
int convertPosServiceTypeId(const OrderObject* orderObj, const int &OrderStatus);
/**
*功能:插入一条汇总单信息到PMS数据库中; *功能:插入一条汇总单信息到PMS数据库中;
*参数:[1]订单对象指针 [2]返回插入成功后的自增序号; *参数:[1]订单对象指针 [2]返回插入成功后的自增序号;
*返回:true操作成功,false失败 *返回:true操作成功,false失败
......
...@@ -130,25 +130,41 @@ QString OrderObject::getChannelName() ...@@ -130,25 +130,41 @@ QString OrderObject::getChannelName()
{ {
QLOG_INFO() << QString("[<<<<---OrderObject:getChannelName [%1]--->>>>]").arg(channel); QLOG_INFO() << QString("[<<<<---OrderObject:getChannelName [%1]--->>>>]").arg(channel);
if ("MOD" == channel && 3 != orderType){ if ("MOD" == channel && 3 != orderType){
if ( "4" == platformSource ) {
return QString::fromLocal8Bit("微信-MOD");
} else {
return QString::fromLocal8Bit("星-MOD"); return QString::fromLocal8Bit("星-MOD");
}
}else if("MOD" == channel && 3 == orderType){ }else if("MOD" == channel && 3 == orderType){
return QString::fromLocal8Bit("星-客诉"); return QString::fromLocal8Bit("星-客诉");
}else if("ELE" == channel){ }else if("ELE" == channel){
return QString::fromLocal8Bit("饿了么"); return QString::fromLocal8Bit("饿了么");
}else if("BAIDU" == channel){ }else if("BAIDU" == channel){
return QString::fromLocal8Bit("百度外卖"); return QString::fromLocal8Bit("百度外卖");
}else if("MOP" == channel && 4 != orderType){ }else if("MOP" == channel && 4 != orderType){
if ( "5" == platformSource ) {
return QString::fromLocal8Bit("口碑-MOP");
} else {
return QString::fromLocal8Bit("星-MOP"); return QString::fromLocal8Bit("星-MOP");
}
}else if("MOP" == channel && 4 == orderType){ }else if("MOP" == channel && 4 == orderType){
return QString::fromLocal8Bit("星-自测"); return QString::fromLocal8Bit("星-自测");
}else if("ORS" == channel){ }else if("ORS" == channel){
return QString::fromLocal8Bit("星-预约"); return QString::fromLocal8Bit("星-预约");
}else if("STC" == channel){ }else if("STC" == channel){
return QString::fromLocal8Bit("SmartCase"); return QString::fromLocal8Bit("SmartCase");
}else{ }else{
if("HM" == channel) { if("HM" == channel) {
return QString::fromLocal8Bit("盒马"); return QString::fromLocal8Bit("盒马");
} }
return QString::fromLocal8Bit("未知"); return QString::fromLocal8Bit("未知");
} }
} }
......
...@@ -45,6 +45,7 @@ class OrderObject : public QObject ...@@ -45,6 +45,7 @@ class OrderObject : public QObject
Q_PROPERTY (QString lang READ getLang WRITE setLang) Q_PROPERTY (QString lang READ getLang WRITE setLang)
Q_PROPERTY (QString memo READ getMemo WRITE setMemo) Q_PROPERTY (QString memo READ getMemo WRITE setMemo)
Q_PROPERTY (QString consumerRemark READ getConsumerRemark WRITE setConsumerRemark)
Q_PROPERTY (QString invoiceType READ getInvoiceType WRITE setInvoiceType) Q_PROPERTY (QString invoiceType READ getInvoiceType WRITE setInvoiceType)
Q_PROPERTY (QString invoiceUrl READ getInvoiceUrl WRITE setInvoiceUrl) Q_PROPERTY (QString invoiceUrl READ getInvoiceUrl WRITE setInvoiceUrl)
Q_PROPERTY (QString invoiceTitle READ getInvoiceTitle WRITE setInvoiceTitle) Q_PROPERTY (QString invoiceTitle READ getInvoiceTitle WRITE setInvoiceTitle)
...@@ -81,6 +82,7 @@ class OrderObject : public QObject ...@@ -81,6 +82,7 @@ class OrderObject : public QObject
Q_PROPERTY (int refundStatus READ getRefundStatus WRITE setRefundStatus) Q_PROPERTY (int refundStatus READ getRefundStatus WRITE setRefundStatus)
Q_PROPERTY (int deliveryChannel READ getDeliveryChannel WRITE setDeliveryChannel) Q_PROPERTY (int deliveryChannel READ getDeliveryChannel WRITE setDeliveryChannel)
Q_PROPERTY (QString customerSex READ getCustomerSex WRITE setCustomerSex) Q_PROPERTY (QString customerSex READ getCustomerSex WRITE setCustomerSex)
Q_PROPERTY (QString platformSource READ getPlatformSource WRITE setPlatformSource)
Q_PROPERTY (int orderIndex READ getOrderIndex WRITE setOrderIndex) Q_PROPERTY (int orderIndex READ getOrderIndex WRITE setOrderIndex)
public: public:
OrderObject(QObject *parent=0) OrderObject(QObject *parent=0)
...@@ -140,6 +142,7 @@ public: ...@@ -140,6 +142,7 @@ public:
QString cancelReason = ""; QString cancelReason = "";
QString lang = ""; //语言(中文/英文) QString lang = ""; //语言(中文/英文)
QString memo = ""; QString memo = "";
QString consumerRemark; // 客户备注;
QString invoiceUrl = ""; QString invoiceUrl = "";
QString invoiceType = ""; QString invoiceType = "";
QString invoiceTitle = ""; QString invoiceTitle = "";
...@@ -155,6 +158,7 @@ public: ...@@ -155,6 +158,7 @@ public:
int orderIndex = 0; int orderIndex = 0;
int updateTime = 0; int updateTime = 0;
QString customerSex = ""; //用户性别 1-男; 2-女 QString customerSex = ""; //用户性别 1-男; 2-女
QString platformSource; //订单平台来源:1 app; 2 ele; 3 ors; 4 WeChat; 5 口碑;
int needInvoice = 0; int needInvoice = 0;
int deliveryPrice = 0; // 配送费 int deliveryPrice = 0; // 配送费
int deliveryDiscount = 0; // 配送费折扣 int deliveryDiscount = 0; // 配送费折扣
...@@ -289,6 +293,9 @@ public: ...@@ -289,6 +293,9 @@ public:
inline QString getMemo()const{return memo;} inline QString getMemo()const{return memo;}
inline void setMemo(const QString& v){memo = v;} inline void setMemo(const QString& v){memo = v;}
inline QString getConsumerRemark() const { return consumerRemark; }
inline void setConsumerRemark(const QString& v) { consumerRemark = v; }
inline QString getInvoiceType()const{return invoiceType;} inline QString getInvoiceType()const{return invoiceType;}
inline void setInvoiceType(const QString& v){invoiceType = v;} inline void setInvoiceType(const QString& v){invoiceType = v;}
...@@ -388,6 +395,9 @@ public: ...@@ -388,6 +395,9 @@ public:
inline QString getCustomerSex()const{return customerSex;} inline QString getCustomerSex()const{return customerSex;}
inline void setCustomerSex(const QString& v){customerSex = v;} inline void setCustomerSex(const QString& v){customerSex = v;}
inline QString getPlatformSource()const{return platformSource;}
inline void setPlatformSource(const QString& v){platformSource = v;}
inline QString getPackageSku()const{return packageSku;} inline QString getPackageSku()const{return packageSku;}
inline void setPackageSku(const QString& v){packageSku = v;} inline void setPackageSku(const QString& v){packageSku = v;}
......
...@@ -66,7 +66,7 @@ void DetailForm::InitData(OrderObject *orderObject) ...@@ -66,7 +66,7 @@ void DetailForm::InitData(OrderObject *orderObject)
QLOG_INFO() << QString("[<<<<---DetailForm::InitData ui->detailSlab6 --->>>>]"); QLOG_INFO() << QString("[<<<<---DetailForm::InitData ui->detailSlab6 --->>>>]");
ui->detailLab7->setText(orderObject->msr_no.length()? orderObject->msr_no : orderObject->customerId); // MSR_NO ui->detailLab7->setText(orderObject->msr_no.length()? orderObject->msr_no : orderObject->customerId); // MSR_NO
ui->detailLab5->setText(QString("[%1]").arg(orderObject->memo)); ui->detailLab5->setText( QString("[%1 | %2 ]").arg( orderObject->memo).arg(orderObject->consumerRemark) );
int i = 0, pNum = 0, coupNum = 0; int i = 0, pNum = 0, coupNum = 0;
/*********************************** 遍历 商品列表:商品信息展示 begin ***************************************************/ /*********************************** 遍历 商品列表:商品信息展示 begin ***************************************************/
for(; i<orderObject->proList.count(); i++,pNum++) for(; i<orderObject->proList.count(); i++,pNum++)
...@@ -111,7 +111,7 @@ void DetailForm::InitData(OrderObject *orderObject) ...@@ -111,7 +111,7 @@ void DetailForm::InitData(OrderObject *orderObject)
if(tempDishObj->promotionSku.length()){ if(tempDishObj->promotionSku.length()){
pNum++; pNum++;
ui->detailTable0->insertRow(pNum); ui->detailTable0->insertRow(pNum);
ui->detailTable0->setItem(pNum, 0, new QTableWidgetItem(QString("( ") + tempDishObj->promotionName )); // 商品名 ui->detailTable0->setItem(pNum, 0, new QTableWidgetItem(QString("( ") + tempDishObj->promotionName + QString(":") + tempDishObj->promotionSku)); // 商品名
ui->detailTable0->item(pNum, 0)->setTextAlignment(Qt::AlignRight); ui->detailTable0->item(pNum, 0)->setTextAlignment(Qt::AlignRight);
ui->detailTable0->setItem(pNum, 1, new QTableWidgetItem( QString("-") + Penny2Dollar(tempDishObj->promotionPrice))); // 价格 ui->detailTable0->setItem(pNum, 1, new QTableWidgetItem( QString("-") + Penny2Dollar(tempDishObj->promotionPrice))); // 价格
ui->detailTable0->item(pNum, 1)->setTextAlignment(Qt::AlignCenter); ui->detailTable0->item(pNum, 1)->setTextAlignment(Qt::AlignCenter);
...@@ -123,7 +123,7 @@ void DetailForm::InitData(OrderObject *orderObject) ...@@ -123,7 +123,7 @@ void DetailForm::InitData(OrderObject *orderObject)
if(tempDishObj->starPromotionSku.length()){ if(tempDishObj->starPromotionSku.length()){
pNum++; pNum++;
ui->detailTable0->insertRow(pNum); ui->detailTable0->insertRow(pNum);
ui->detailTable0->setItem(pNum, 0, new QTableWidgetItem(QString("( ") + tempDishObj->starPromotionName )); // 商品名 ui->detailTable0->setItem(pNum, 0, new QTableWidgetItem(QString("( ") + tempDishObj->starPromotionName + QString(":") +tempDishObj->starPromotionSku )); // 商品名
ui->detailTable0->item(pNum, 0)->setTextAlignment(Qt::AlignRight); ui->detailTable0->item(pNum, 0)->setTextAlignment(Qt::AlignRight);
ui->detailTable0->setItem(pNum, 1, new QTableWidgetItem( QString("-") + Penny2Dollar(tempDishObj->starPromotionPrice))); // 价格 ui->detailTable0->setItem(pNum, 1, new QTableWidgetItem( QString("-") + Penny2Dollar(tempDishObj->starPromotionPrice))); // 价格
ui->detailTable0->item(pNum, 1)->setTextAlignment(Qt::AlignCenter); ui->detailTable0->item(pNum, 1)->setTextAlignment(Qt::AlignCenter);
...@@ -172,7 +172,7 @@ void DetailForm::InitData(OrderObject *orderObject) ...@@ -172,7 +172,7 @@ void DetailForm::InitData(OrderObject *orderObject)
// 新增配送费 + 打包费 // 新增配送费 + 打包费
ui->detailTable0->insertRow(pNum); ui->detailTable0->insertRow(pNum);
ui->detailTable0->setItem(pNum, 0, new QTableWidgetItem(QString::fromLocal8Bit("配送费"))); // 配送费 ui->detailTable0->setItem(pNum, 0, new QTableWidgetItem(QString::fromLocal8Bit("配送费:") + QString("6000101") )); // 配送费
ui->detailTable0->item(pNum, 0)->setTextAlignment(Qt::AlignCenter); ui->detailTable0->item(pNum, 0)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->setItem(pNum, 1, new QTableWidgetItem(Penny2Dollar(orderObject->deliveryPrice))); // 价格 ui->detailTable0->setItem(pNum, 1, new QTableWidgetItem(Penny2Dollar(orderObject->deliveryPrice))); // 价格
ui->detailTable0->item(pNum, 1)->setTextAlignment(Qt::AlignCenter); ui->detailTable0->item(pNum, 1)->setTextAlignment(Qt::AlignCenter);
...@@ -192,7 +192,7 @@ void DetailForm::InitData(OrderObject *orderObject) ...@@ -192,7 +192,7 @@ void DetailForm::InitData(OrderObject *orderObject)
} }
ui->detailTable0->insertRow(pNum); ui->detailTable0->insertRow(pNum);
ui->detailTable0->setItem(pNum, 0, new QTableWidgetItem(QString::fromLocal8Bit("包装费"))); // 包装费 ui->detailTable0->setItem(pNum, 0, new QTableWidgetItem(QString::fromLocal8Bit("包装费:") + QString("6000201") )); // 包装费
ui->detailTable0->item(pNum, 0)->setTextAlignment(Qt::AlignCenter); ui->detailTable0->item(pNum, 0)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->setItem(pNum, 1, new QTableWidgetItem(Penny2Dollar(orderObject->packageFee))); // 价格 ui->detailTable0->setItem(pNum, 1, new QTableWidgetItem(Penny2Dollar(orderObject->packageFee))); // 价格
ui->detailTable0->item(pNum, 1)->setTextAlignment(Qt::AlignCenter); ui->detailTable0->item(pNum, 1)->setTextAlignment(Qt::AlignCenter);
...@@ -291,7 +291,7 @@ QString DetailForm::GetProductName(dishesObject *dish) ...@@ -291,7 +291,7 @@ QString DetailForm::GetProductName(dishesObject *dish)
QString name; QString name;
QString propertyTags; QString propertyTags;
name.append(dish->name).append("\r\n"); name.append(dish->name).append("\r\n");
propertyTags=dish->specId; propertyTags=dish->code;
if(!propertyTags.isEmpty()) if(!propertyTags.isEmpty())
{ {
name.append(QString("(%1)").arg(propertyTags)); name.append(QString("(%1)").arg(propertyTags));
...@@ -303,7 +303,12 @@ QString DetailForm::GetProductName(dishesObject *dish) ...@@ -303,7 +303,12 @@ QString DetailForm::GetProductName(dishesObject *dish)
foreach(auto value,dish->sub_products) foreach(auto value,dish->sub_products)
{ {
name.append("| "); name.append("| ");
name.append(value->name).append(" |").append("\r\n"); name.append(value->name);
if ( !( value->code.contains("Default",Qt::CaseInsensitive) ) ) {
name.append(':').append(value->code);
}
name.append(" |").append("\r\n");
} }
} }
name.remove((name.length()-1),1); name.remove((name.length()-1),1);
......
...@@ -7,8 +7,8 @@ IDI_ICON ICON DISCARDABLE "logo.ico" ...@@ -7,8 +7,8 @@ IDI_ICON ICON DISCARDABLE "logo.ico"
#endif #endif
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***// //***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
FILEVERSION 4,2019,1225,1 FILEVERSION 4,2020,318,1
PRODUCTVERSION 4,2019,1225,1 PRODUCTVERSION 4,2020,318,1
//*************************************************************************// //*************************************************************************//
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
...@@ -31,8 +31,8 @@ VS_VERSION_INFO VERSIONINFO ...@@ -31,8 +31,8 @@ VS_VERSION_INFO VERSIONINFO
VALUE "OriginalFilename", "PmsPlugin.exe" VALUE "OriginalFilename", "PmsPlugin.exe"
VALUE "ProductName", "PMS Plugin" VALUE "ProductName", "PMS Plugin"
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***// //***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
VALUE "ProductVersion", "4.2019.1225.1" VALUE "ProductVersion", "4.2020.318.1"
VALUE "FileVersion", "4.2019.1225.1" VALUE "FileVersion", "4.2020.318.1"
//*************************************************************************// //*************************************************************************//
END END
END END
......
...@@ -92,7 +92,7 @@ int main(int argc, char *argv[]) ...@@ -92,7 +92,7 @@ int main(int argc, char *argv[])
LoadTheme(APP_THEME); LoadTheme(APP_THEME);
QLOG_INFO() << QString("[<<<<<<<<<<<<<<<<<<<<---->>>>>>>>>>>>>>>>>>>>>>>>>>]"); QLOG_INFO() << QString("[<<<<<<<<<<<<<<<<<<<<---->>>>>>>>>>>>>>>>>>>>>>>>>>]");
QLOG_INFO() << QString("[<<<<<<<<<<<-- fmPmsPlugin Start -->>>>>>>>>>>>>>>>]"); QLOG_INFO() << QString("[<<<<<<<<<<<<<<<<<<-- fmPmsPlugin Start Version:%1 -->>>>>>>>>>>>>>>>>>>>>>]").arg(APP_VERSION);
QLOG_INFO() << QString("[<<<<<<<<<<<<<<<<<<<<---->>>>>>>>>>>>>>>>>>>>>>>>>>]"); QLOG_INFO() << QString("[<<<<<<<<<<<<<<<<<<<<---->>>>>>>>>>>>>>>>>>>>>>>>>>]");
// 将控制器移到工作线程 // 将控制器移到工作线程
......
...@@ -383,17 +383,9 @@ void MainForm::onChangeOrderStatus(OrderObject *orderObject, int oldStatus) ...@@ -383,17 +383,9 @@ void MainForm::onChangeOrderStatus(OrderObject *orderObject, int oldStatus)
// 非首次收到的订单需要现在原先表中删除 // 非首次收到的订单需要现在原先表中删除
if(oldStatus != -100) if(oldStatus != -100)
{ {
//TODO
// if(/*2==orderObject->order_type&&*/(1==oldStatus||2==oldStatus))
// {
// table=ui->mainTableReserve;
// tabBtn = ui->mainBtnReserve;
// }
//else{
tabBtn = _GetTabBtnByOrderStatus(oldStatus); tabBtn = _GetTabBtnByOrderStatus(oldStatus);
table = findChild<QTableWidget*>(tabBtn->property("tableName").toString()); table = findChild<QTableWidget*>(tabBtn->property("tableName").toString());
//}
for(int i=0; i<table->rowCount(); i++) for(int i=0; i<table->rowCount(); i++)
{ {
if(!table->item(i, 1)->text().compare(orderObject->id)) if(!table->item(i, 1)->text().compare(orderObject->id))
...@@ -405,17 +397,9 @@ void MainForm::onChangeOrderStatus(OrderObject *orderObject, int oldStatus) ...@@ -405,17 +397,9 @@ void MainForm::onChangeOrderStatus(OrderObject *orderObject, int oldStatus)
} }
} }
} }
// 将数据插入到表中
//TODO
// if(/*2==orderObject->order_type&&*/(1==orderObject->orderStatus||2==orderObject->orderStatus))
// {
// table = ui->mainTableReserve;
// tabBtn = ui->mainBtnReserve;
// }
//else{
tabBtn = _GetTabBtnByOrderStatus(orderObject->orderStatus); tabBtn = _GetTabBtnByOrderStatus(orderObject->orderStatus);
table = findChild<QTableWidget*>(tabBtn->property("tableName").toString()); table = findChild<QTableWidget*>(tabBtn->property("tableName").toString());
//}
table->insertRow(0); table->insertRow(0);
QTableWidgetItem *item0 = new QTableWidgetItem(orderObject->getChannelName()); QTableWidgetItem *item0 = new QTableWidgetItem(orderObject->getChannelName());
......
...@@ -6,7 +6,8 @@ ...@@ -6,7 +6,8 @@
#define APP_THEME "deaufult" #define APP_THEME "deaufult"
//#define APP_VERSION "4.2019.1031.1" //#define APP_VERSION "4.2019.1031.1"
#define APP_VERSION "4.2019.1225.1" //#define APP_VERSION "4.2019.1225.1"
#define APP_VERSION "4.2020.318.1"
//修正版本号时,切记修正 FmTakeout.rc 中的版本号 //修正版本号时,切记修正 FmTakeout.rc 中的版本号
#define SERVER_PASSWORD "posoperator@freemud.cn" #define SERVER_PASSWORD "posoperator@freemud.cn"
......
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