Commit 7ce61746 by guanghui.cui

完成退单功能

parent 17176ed5
...@@ -17,6 +17,7 @@ enum ErrorCode ...@@ -17,6 +17,7 @@ enum ErrorCode
EC_UNKNOWN_PLATFORM , //未知的外卖平台 EC_UNKNOWN_PLATFORM , //未知的外卖平台
EC_EXIST_ORDER , //订单已经存在 EC_EXIST_ORDER , //订单已经存在
EC_UNDEFINITION , //未定义错误 EC_UNDEFINITION , //未定义错误
EC_NOTEXIST_ORDER , //订单不存在
}; };
#endif #endif
\ No newline at end of file
...@@ -268,8 +268,8 @@ int COrderInfo::SetTakeawayOrder(TakeawayOrder &order) ...@@ -268,8 +268,8 @@ int COrderInfo::SetTakeawayOrder(TakeawayOrder &order)
//支付信息吸入“支付详情表” //支付信息吸入“支付详情表”
snprintf(mysql->sqlStr,SQL_BUFFER_SIZE, "INSERT INTO tbl_Payment(`Date`,`Check`,Outlet,PayIdx,PayNo,Name3,PayEmp,PayTime,PayStation,PayTot,PayClass,Member,\ snprintf(mysql->sqlStr,SQL_BUFFER_SIZE, "INSERT INTO tbl_Payment(`Date`,`Check`,Outlet,PayIdx,PayNo,Name3,PayEmp,PayTime,PayStation,PayTot,PayClass,Member,\
IsModified,LastModifiedTime)\ IsModified,LastModifiedTime)\
VALUES('%s',%d,%d,1,%d,'%s',4,'%s',99,10.00,1,'',1,'%s')", \ VALUES('%s',%d,%d,1,%d,'%s',4,'%s',99,%.2f,1,'',1,'%s')", \
strDate.data(),orderId,iOutlet,atoi(posTakeway.merchantTypeId.data()),posTakeway.strName.data(),chTime,chTime); strDate.data(),orderId,iOutlet,atoi(posTakeway.merchantTypeId.data()),posTakeway.strName.data(),chTime,order.shop_fee/100.00,chTime);
nErrCode = mysql->insert(); nErrCode = mysql->insert();
pthread_mutex_unlock(&mutex); //解锁 pthread_mutex_unlock(&mutex); //解锁
return 0; return 0;
...@@ -278,7 +278,44 @@ int COrderInfo::SetTakeawayOrder(TakeawayOrder &order) ...@@ -278,7 +278,44 @@ int COrderInfo::SetTakeawayOrder(TakeawayOrder &order)
//外卖退单数据库操作 //外卖退单数据库操作
int COrderInfo::CancleTakeaway(TakeawayOrder &order) int COrderInfo::CancleTakeaway(TakeawayOrder &order)
{ {
return 0; //order_status:订单状态 0:正常 1:已退单
int nErrCode = EC_OK;
std::string strOrderId;
pthread_mutex_lock(&mutex); //上锁
snprintf(mysql->sqlStr,SQL_BUFFER_SIZE,"SELECT orderid FROM fmTakeaway where order_status=0 AND fm_id='%s';",order.fm_id.data());
nErrCode = mysql->query();
if(nErrCode != EC_OK){
pthread_mutex_unlock(&mutex); //解锁
return EC_EX_SQL_FAILED;
}
if (NULL == (mysql->_row = mysql_fetch_row(mysql->_result))){
LOG(INFO)<<"订单不存在或者已退单,fm_id:"<<order.fm_id.data();
mysql_free_result(mysql->_result);
pthread_mutex_unlock(&mutex); //解锁
return EC_NOTEXIST_ORDER;
}
else{
strOrderId=mysql->_row[0];
}
mysql_free_result(mysql->_result);
int iOrderId=atoi(strOrderId.data());
//删除该销售单记录
snprintf(mysql->sqlStr,SQL_BUFFER_SIZE,"DELETE FROM tbl_Check WHERE `Check`=%d;",iOrderId);
nErrCode = mysql->remove();
snprintf(mysql->sqlStr,SQL_BUFFER_SIZE,"DELETE FROM tbl_Item WHERE `Check`=%d;",iOrderId);
nErrCode = mysql->remove();
snprintf(mysql->sqlStr,SQL_BUFFER_SIZE,"DELETE FROM tbl_Payment WHERE `Check`=%d;",iOrderId);
nErrCode = mysql->remove();
//更新外卖订单记录为已退单,同时修改订单orderid ,规则,orderid后加‘_1’
std::string newOrderId = strOrderId+"_1";
snprintf(mysql->sqlStr,SQL_BUFFER_SIZE,"UPDATE fmTakeaway SET orderid='%s', order_status=1 WHERE fm_id='%s';",newOrderId.data(),order.fm_id.data());
nErrCode = mysql->update();
snprintf(mysql->sqlStr,SQL_BUFFER_SIZE,"UPDATE fmTakeaway_products SET orderid='%s' WHERE orderid='%s';",newOrderId.data(),strOrderId.data());
nErrCode = mysql->update();
pthread_mutex_unlock(&mutex); //解锁
return nErrCode;
} }
//向数据库总添加:fmTakeaway表 | fmTakeaway_products表 //向数据库总添加:fmTakeaway表 | fmTakeaway_products表
......
...@@ -245,6 +245,11 @@ void *FunTakeaway(void* lpParamter) ...@@ -245,6 +245,11 @@ void *FunTakeaway(void* lpParamter)
statusCode = 100; statusCode = 100;
msg = ""; msg = "";
} }
else if(nErrCode == EC_NOTEXIST_ORDER){
LOG(INFO)<<"退单:该订单不存在或者已退单";
statusCode = 100;
msg = "refund order:this order not exist or has been refunded";
}
else else
{ {
statusCode = 101; statusCode = 101;
......
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