Commit bbce0280 by guanghui.cui

订单状态转换(POS<-->ODS)

parent a507f979
......@@ -4,6 +4,9 @@
#define IN
#define OUT
/***********************************
POS相关预定义变量
***********************************/
//订单状态对照表
#define ORDERSTATUS_NEW 1001 //新生成
#define ORDERSTATUS_CONFIRMED 1002 //已确定
......@@ -51,4 +54,26 @@
#define RESPONSE_CODE_SUCCESS 100 //成功
#define RESPONSE_CODE_FAILED 101 //失败
/***********************************
ODS相关预定义变量
***********************************/
//配送类型对照表
#define ODS_DELIVERY_TYPE_SELF 0 //自配送
#define ODS_DELIVERY_TYPE_PLATFORM 1 //平台配送
//订单状态对照表
#define ODS_ORDERSTATUS_NEW 1 //新生成
#define ODS_ORDERSTATUS_CONFIRMED 2 //已确定
#define ODS_ORDERSTATUS_CANCELED 3 //已取消
#define ODS_ORDERSTATUS_SHIPPING 4 //配送中
#define ODS_ORDERSTATUS_WAIT_SHIPPING 5 //等待配送
#define ODS_ORDERSTATUS_COMPLETE 6 //已送达
#define ODS_ORDERSTATUS_DONE 200 //已送达
#define ODS_ORDERSTATUS_REFUND_FULL 20 //申请全额退款
#define ODS_ORDERSTATUS_REFUND_PART 21 //申请部分退款
#define ODS_ORDERSTATUS_REFUND_AGREE 30 //同意退款
#define ODS_ORDERSTATUS_REFUND_DISAGREE 40 //不同意退款
#define ODS_ORDERSTATUS_REFUND_COMPLETE 100 //退款完成
#endif
\ No newline at end of file
......@@ -8,53 +8,53 @@
using namespace rapidjson;
std::string GetTestJson(const int statuscode,const char* msg,const char* orderid)
{
rapidjson::StringBuffer buffer;
rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
writer.StartObject();
writer.Key("statusCode");
writer.Int(statuscode);
writer.Key("msg");
writer.String(msg);
writer.Key("orderid");
writer.String(orderid);
writer.EndObject();
return buffer.GetString();
}
void parseJson(const char* json)
{
rapidjson::Document document; // 定义一个Document对象
document.Parse(json); // 解析,Parse()无返回值,也不会抛异常
if (document.HasParseError()) // 通过HasParseError()来判断解析是否成功
{
// 可通过GetParseError()取得出错代码,
// 注意GetParseError()返回的是一个rapidjson::ParseErrorCode类型的枚举值
// 使用函数rapidjson::GetParseError_En()得到错误码的字符串说明,这里的En为English简写
// 函数GetErrorOffset()返回出错发生的位置
LOG(ERROR)<<"JSON parse error:"<<document.GetParseError()<<":"<<document.GetErrorOffset();
}
else
{
rapidjson::Value& vStatusCode = document["statusCode"];
rapidjson::Value& vMsg = document["msg"];
rapidjson::Value& vOrderid = document["orderid"];
int iStatusCode = vStatusCode.GetInt();
std::string strMsg = vMsg.GetString();
std::string strOrderid = vOrderid.GetString();
LOG(INFO)<<"statusCode:"<<iStatusCode;
LOG(INFO)<<"msg:"<<strMsg.data();
LOG(INFO)<<"orderId:"<<strOrderid.data();
}
}
// std::string GetTestJson(const int statuscode,const char* msg,const char* orderid)
// {
// rapidjson::StringBuffer buffer;
// rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
// writer.StartObject();
// writer.Key("statusCode");
// writer.Int(statuscode);
// writer.Key("msg");
// writer.String(msg);
// writer.Key("orderid");
// writer.String(orderid);
// writer.EndObject();
// return buffer.GetString();
// }
// void parseJson(const char* json)
// {
// rapidjson::Document document; // 定义一个Document对象
// document.Parse(json); // 解析,Parse()无返回值,也不会抛异常
// if (document.HasParseError()) // 通过HasParseError()来判断解析是否成功
// {
// // 可通过GetParseError()取得出错代码,
// // 注意GetParseError()返回的是一个rapidjson::ParseErrorCode类型的枚举值
// // 使用函数rapidjson::GetParseError_En()得到错误码的字符串说明,这里的En为English简写
// // 函数GetErrorOffset()返回出错发生的位置
// LOG(ERROR)<<"JSON parse error:"<<document.GetParseError()<<":"<<document.GetErrorOffset();
// }
// else
// {
// rapidjson::Value& vStatusCode = document["statusCode"];
// rapidjson::Value& vMsg = document["msg"];
// rapidjson::Value& vOrderid = document["orderid"];
// int iStatusCode = vStatusCode.GetInt();
// std::string strMsg = vMsg.GetString();
// std::string strOrderid = vOrderid.GetString();
// LOG(INFO)<<"statusCode:"<<iStatusCode;
// LOG(INFO)<<"msg:"<<strMsg.data();
// LOG(INFO)<<"orderId:"<<strOrderid.data();
// }
// }
JsonModule::JsonModule()
{
......@@ -108,7 +108,7 @@ void JsonModule::getPushOrders(IN const char* json,OUT std::vector<orderObj> &ve
order.delivery_time=delivery_time.GetString();
rapidjson::Value& status = objValue["status"];
order.status=status.GetInt();
order.status=_getPOSOrderStatus(status.GetInt());
rapidjson::Value& status_desc = objValue["status_desc"];
order.status_desc=status_desc.GetString();
......@@ -633,10 +633,10 @@ std::string JsonModule::_getDeliveryTypeString(int type)
std::string rlt;
switch(type)
{
case 0:
case ODS_DELIVERY_TYPE_SELF:
rlt=DELIVERY_TYPE_SELF;
break;
case 1:
case ODS_DELIVERY_TYPE_PLATFORM:
rlt=DELIVERY_TYPE_PLATFORM;
break;
default:
......@@ -644,3 +644,44 @@ std::string JsonModule::_getDeliveryTypeString(int type)
}
return rlt;
}
int JsonModule::_getPOSOrderStatus(int status)
{
int rltStatus=0;
switch(status)
{
case ODS_ORDERSTATUS_NEW:
rltStatus=ORDERSTATUS_NEW;
break;
case ODS_ORDERSTATUS_CONFIRMED:
rltStatus=ORDERSTATUS_CONFIRMED;
break;
case ODS_ORDERSTATUS_CANCELED:
rltStatus=ORDERSTATUS_CANCELED;
break;
case ODS_ORDERSTATUS_SHIPPING:
rltStatus=ORDERSTATUS_SHIPPING;
break;
case ODS_ORDERSTATUS_WAIT_SHIPPING:
rltStatus=ORDERSTATUS_CONFIRMED;
break;
case ODS_ORDERSTATUS_COMPLETE:
rltStatus=ORDERSTATUS_COMPLETE;
break;
case ODS_ORDERSTATUS_DONE:
rltStatus=ORDERSTATUS_COMPLETE;
break;
case ODS_ORDERSTATUS_REFUND_FULL:
rltStatus=ORDERSTATUS_REFUND_FULL;
break;
case ODS_ORDERSTATUS_REFUND_PART:
rltStatus=ORDERSTATUS_REFUND_PART;
break;
case ODS_ORDERSTATUS_REFUND_COMPLETE:
rltStatus=ORDERSTATUS_REFUND_COMPLETE;
break;
default:
break;
}
return rltStatus;
}
\ No newline at end of file
......@@ -21,6 +21,8 @@ public:
private:
std::string _getDeliveryTypeString(int type);
//订单状态转换(转换为POS对应的状态)
int _getPOSOrderStatus(int status);
};
#endif
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