Commit 5615efd4 by guanghui.cui
parents 2483b050 2b65e27a
...@@ -6,6 +6,8 @@ ...@@ -6,6 +6,8 @@
#include "../3rdParty/rapidjson/stringbuffer.h" #include "../3rdParty/rapidjson/stringbuffer.h"
#include "../3rdParty/easylogging/easylogging++.h" #include "../3rdParty/easylogging/easylogging++.h"
#include <iostream>
using namespace rapidjson; using namespace rapidjson;
// std::string GetTestJson(const int statuscode,const char* msg,const char* orderid) // std::string GetTestJson(const int statuscode,const char* msg,const char* orderid)
...@@ -94,37 +96,79 @@ bool JsonModule::getPushOrders(IN const char* json,OUT orderObj &order) ...@@ -94,37 +96,79 @@ bool JsonModule::getPushOrders(IN const char* json,OUT orderObj &order)
{ {
rapidjson::Value& delivery_obj = document["delivery"]; rapidjson::Value& delivery_obj = document["delivery"];
if(delivery_obj.IsObject())
{
if(delivery_obj.HasMember("customerAddress"))
{
rapidjson::Value& customerAddress = delivery_obj["customerAddress"]; rapidjson::Value& customerAddress = delivery_obj["customerAddress"];
order.customerInfo.address=customerAddress.GetString(); order.customerInfo.address=customerAddress.GetString();
}
if(delivery_obj.HasMember("customerName"))
{
rapidjson::Value& customerName = delivery_obj["customerName"]; rapidjson::Value& customerName = delivery_obj["customerName"];
order.customerInfo.name = customerName.GetString(); order.customerInfo.name = customerName.GetString();
}
if(delivery_obj.HasMember("customerPhone"))
{
rapidjson::Value& customerPhone = delivery_obj["customerPhone"]; rapidjson::Value& customerPhone = delivery_obj["customerPhone"];
order.customerInfo.phone = customerPhone.GetString(); order.customerInfo.phone = customerPhone.GetString();
}
if(delivery_obj.HasMember("deliveryTime"))
{
rapidjson::Value& deliveryTime = delivery_obj["deliveryTime"]; rapidjson::Value& deliveryTime = delivery_obj["deliveryTime"];
order.delivery_time = deliveryTime.GetString(); order.delivery_time = deliveryTime.GetString();
}
if(delivery_obj.HasMember("name"))
{
rapidjson::Value& name = delivery_obj["name"]; rapidjson::Value& name = delivery_obj["name"];
order.deliveryInfo.driver_name = name.GetString(); order.deliveryInfo.driver_name = name.GetString();
}
if(delivery_obj.HasMember("phone"))
{
rapidjson::Value& phone = delivery_obj["phone"]; rapidjson::Value& phone = delivery_obj["phone"];
order.deliveryInfo.driver_phone = phone.GetString(); order.deliveryInfo.driver_phone = phone.GetString();
}
if(delivery_obj.HasMember("type"))
{
rapidjson::Value& type = delivery_obj["type"]; rapidjson::Value& type = delivery_obj["type"];
order.deliveryInfo.type = type.GetString(); order.deliveryInfo.type = type.GetString();
} }
}
}
//发票信息 //发票信息
{ {
rapidjson::Value& invoice_obj = document["invoice"]; rapidjson::Value& invoice_obj = document["invoice"];
if(invoice_obj.IsObject())
{
if(invoice_obj.HasMember("companyName"))
{
rapidjson::Value& companyName = invoice_obj["companyName"]; rapidjson::Value& companyName = invoice_obj["companyName"];
companyName.GetString(); companyName.GetString();
}
if(invoice_obj.HasMember("invoiceType"))
{
rapidjson::Value& invoiceType = invoice_obj["invoiceType"]; rapidjson::Value& invoiceType = invoice_obj["invoiceType"];
invoiceType.GetInt(); invoiceType.GetInt();
}
if(invoice_obj.HasMember("taxNum"))
{
rapidjson::Value& taxNum = invoice_obj["taxNum"]; rapidjson::Value& taxNum = invoice_obj["taxNum"];
taxNum.GetString(); taxNum.GetString();
}
if(invoice_obj.HasMember("title"))
{
rapidjson::Value& title = invoice_obj["title"]; rapidjson::Value& title = invoice_obj["title"];
title.GetString(); title.GetString();
}
if(invoice_obj.HasMember("transNum"))
{
rapidjson::Value& transNum = invoice_obj["transNum"]; rapidjson::Value& transNum = invoice_obj["transNum"];
transNum.GetString(); transNum.GetString();
} }
}
}
//订单内容 //订单内容
{ {
rapidjson::Value& orderContent_obj = document["orderContent"]; rapidjson::Value& orderContent_obj = document["orderContent"];
...@@ -245,7 +289,6 @@ bool JsonModule::getPushOrders(IN const char* json,OUT orderObj &order) ...@@ -245,7 +289,6 @@ bool JsonModule::getPushOrders(IN const char* json,OUT orderObj &order)
} }
} }
} }
//支付信息 //支付信息
{ {
//TODO //TODO
...@@ -271,7 +314,6 @@ bool JsonModule::getPushOrders(IN const char* json,OUT orderObj &order) ...@@ -271,7 +314,6 @@ bool JsonModule::getPushOrders(IN const char* json,OUT orderObj &order)
} }
rapidjson::Value& payType = orderContent_obj["payType"]; rapidjson::Value& payType = orderContent_obj["payType"];
payType.GetString(); payType.GetString();
//积分信息 //积分信息
{ {
rapidjson::Value& points_obj = orderContent_obj["points"]; rapidjson::Value& points_obj = orderContent_obj["points"];
...@@ -313,7 +355,6 @@ bool JsonModule::getPushOrders(IN const char* json,OUT orderObj &order) ...@@ -313,7 +355,6 @@ bool JsonModule::getPushOrders(IN const char* json,OUT orderObj &order)
} }
} }
} }
//优惠信息 //优惠信息
{ {
rapidjson::Value& promotions_obj = orderContent_obj["promotions"]; rapidjson::Value& promotions_obj = orderContent_obj["promotions"];
...@@ -375,18 +416,24 @@ bool JsonModule::getPushOrders(IN const char* json,OUT orderObj &order) ...@@ -375,18 +416,24 @@ bool JsonModule::getPushOrders(IN const char* json,OUT orderObj &order)
order.reduced_price = totalDiscount.GetInt(); order.reduced_price = totalDiscount.GetInt();
} }
//第三方商户信息 //第三方商户信息
{ {
rapidjson::Value& sellerInfo_obj = document["sellerInfo"]; rapidjson::Value& sellerInfo_obj = document["sellerInfo"];
if(sellerInfo_obj.IsObject())
{
if(sellerInfo_obj.HasMember("sellerId"))
{
rapidjson::Value& sellerId = sellerInfo_obj["sellerId"]; rapidjson::Value& sellerId = sellerInfo_obj["sellerId"];
sellerId.GetString(); sellerId.GetString();
}
if(sellerInfo_obj.HasMember("sellerName"))
{
rapidjson::Value& sellerName = sellerInfo_obj["sellerName"]; rapidjson::Value& sellerName = sellerInfo_obj["sellerName"];
sellerName.GetString(); sellerName.GetString();
} }
}
}
//门店信息 //门店信息
{ {
rapidjson::Value& shopInfo_obj = document["shopInfo"]; rapidjson::Value& shopInfo_obj = document["shopInfo"];
...@@ -578,20 +625,13 @@ bool JsonModule::convertDataOds2Pos(const std::string &data, std::string &result ...@@ -578,20 +625,13 @@ bool JsonModule::convertDataOds2Pos(const std::string &data, std::string &result
{ {
bool rlt=true; bool rlt=true;
orderObj order; orderObj order;
rlt=getPushOrders(data.c_str(),order); rlt = getPushOrders(data.c_str(),order);
if(ORDERSTATUS_NEW==order.status){
if(rlt)
{
result = _convertToNewOrderJson(order); result = _convertToNewOrderJson(order);
} }
else if(ORDERSTATUS_CONFIRMED==order.status||ORDERSTATUS_CANCELED==order.status||ORDERSTATUS_SHIPPING==order.status||ORDERSTATUS_COMPLETE==order.status){
orderStatusObj statusObj;
_getStatusObj(order,statusObj);
result = _convertToOrderStatusJson(statusObj);
}
else if(ORDERSTATUS_REFUND_FULL==order.status||ORDERSTATUS_REFUND_PART==order.status){
refundObj refund;
_getRefundObj(order,refund);
result = _convertToRefundJson(refund);
}
return rlt; return rlt;
} }
...@@ -620,7 +660,7 @@ std::string JsonModule::_convertToNewOrderJson(orderObj &obj) ...@@ -620,7 +660,7 @@ std::string JsonModule::_convertToNewOrderJson(orderObj &obj)
writer.String(obj.delivery_time.c_str()); writer.String(obj.delivery_time.c_str());
writer.Key("status"); writer.Key("status");
writer.Int(obj.status); writer.Int(_getPOSOrderStatus(obj.status));
writer.Key("status_desc"); writer.Key("status_desc");
writer.String(obj.status_desc.c_str()); writer.String(obj.status_desc.c_str());
...@@ -796,6 +836,9 @@ std::string JsonModule::_convertToNewOrderJson(orderObj &obj) ...@@ -796,6 +836,9 @@ std::string JsonModule::_convertToNewOrderJson(orderObj &obj)
writer.Key("trans_id"); writer.Key("trans_id");
writer.String(obj.payInfo.vecDetail[i].trans_id.c_str()); writer.String(obj.payInfo.vecDetail[i].trans_id.c_str());
writer.Key("account_id");
writer.String(obj.payInfo.vecDetail[i].account_id.c_str());
writer.EndObject(); writer.EndObject();
} }
writer.EndArray(); writer.EndArray();
...@@ -890,7 +933,7 @@ std::string JsonModule::_convertToOrderStatusJson(orderStatusObj &obj) ...@@ -890,7 +933,7 @@ std::string JsonModule::_convertToOrderStatusJson(orderStatusObj &obj)
writer.String(obj.order_id.c_str()); writer.String(obj.order_id.c_str());
writer.Key("order_status"); writer.Key("order_status");
writer.Int(obj.order_status); writer.Int(_getPOSOrderStatus(obj.order_status));
writer.Key("delivery_status"); writer.Key("delivery_status");
writer.Int(obj.delivery_status); writer.Int(obj.delivery_status);
......
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