Commit bbce0280 by guanghui.cui

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

parent a507f979
...@@ -4,6 +4,9 @@ ...@@ -4,6 +4,9 @@
#define IN #define IN
#define OUT #define OUT
/***********************************
POS相关预定义变量
***********************************/
//订单状态对照表 //订单状态对照表
#define ORDERSTATUS_NEW 1001 //新生成 #define ORDERSTATUS_NEW 1001 //新生成
#define ORDERSTATUS_CONFIRMED 1002 //已确定 #define ORDERSTATUS_CONFIRMED 1002 //已确定
...@@ -51,4 +54,26 @@ ...@@ -51,4 +54,26 @@
#define RESPONSE_CODE_SUCCESS 100 //成功 #define RESPONSE_CODE_SUCCESS 100 //成功
#define RESPONSE_CODE_FAILED 101 //失败 #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 #endif
\ No newline at end of file
...@@ -8,53 +8,53 @@ ...@@ -8,53 +8,53 @@
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)
{ // {
rapidjson::StringBuffer buffer; // rapidjson::StringBuffer buffer;
rapidjson::Writer<rapidjson::StringBuffer> writer(buffer); // rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
writer.StartObject(); // writer.StartObject();
writer.Key("statusCode"); // writer.Key("statusCode");
writer.Int(statuscode); // writer.Int(statuscode);
writer.Key("msg"); // writer.Key("msg");
writer.String(msg); // writer.String(msg);
writer.Key("orderid"); // writer.Key("orderid");
writer.String(orderid); // writer.String(orderid);
writer.EndObject(); // writer.EndObject();
return buffer.GetString(); // return buffer.GetString();
} // }
void parseJson(const char* json) // void parseJson(const char* json)
{ // {
rapidjson::Document document; // 定义一个Document对象 // rapidjson::Document document; // 定义一个Document对象
document.Parse(json); // 解析,Parse()无返回值,也不会抛异常 // document.Parse(json); // 解析,Parse()无返回值,也不会抛异常
if (document.HasParseError()) // 通过HasParseError()来判断解析是否成功 // if (document.HasParseError()) // 通过HasParseError()来判断解析是否成功
{ // {
// 可通过GetParseError()取得出错代码, // // 可通过GetParseError()取得出错代码,
// 注意GetParseError()返回的是一个rapidjson::ParseErrorCode类型的枚举值 // // 注意GetParseError()返回的是一个rapidjson::ParseErrorCode类型的枚举值
// 使用函数rapidjson::GetParseError_En()得到错误码的字符串说明,这里的En为English简写 // // 使用函数rapidjson::GetParseError_En()得到错误码的字符串说明,这里的En为English简写
// 函数GetErrorOffset()返回出错发生的位置 // // 函数GetErrorOffset()返回出错发生的位置
LOG(ERROR)<<"JSON parse error:"<<document.GetParseError()<<":"<<document.GetErrorOffset(); // LOG(ERROR)<<"JSON parse error:"<<document.GetParseError()<<":"<<document.GetErrorOffset();
} // }
else // else
{ // {
rapidjson::Value& vStatusCode = document["statusCode"]; // rapidjson::Value& vStatusCode = document["statusCode"];
rapidjson::Value& vMsg = document["msg"]; // rapidjson::Value& vMsg = document["msg"];
rapidjson::Value& vOrderid = document["orderid"]; // rapidjson::Value& vOrderid = document["orderid"];
int iStatusCode = vStatusCode.GetInt(); // int iStatusCode = vStatusCode.GetInt();
std::string strMsg = vMsg.GetString(); // std::string strMsg = vMsg.GetString();
std::string strOrderid = vOrderid.GetString(); // std::string strOrderid = vOrderid.GetString();
LOG(INFO)<<"statusCode:"<<iStatusCode; // LOG(INFO)<<"statusCode:"<<iStatusCode;
LOG(INFO)<<"msg:"<<strMsg.data(); // LOG(INFO)<<"msg:"<<strMsg.data();
LOG(INFO)<<"orderId:"<<strOrderid.data(); // LOG(INFO)<<"orderId:"<<strOrderid.data();
} // }
} // }
JsonModule::JsonModule() JsonModule::JsonModule()
{ {
...@@ -108,7 +108,7 @@ void JsonModule::getPushOrders(IN const char* json,OUT std::vector<orderObj> &ve ...@@ -108,7 +108,7 @@ void JsonModule::getPushOrders(IN const char* json,OUT std::vector<orderObj> &ve
order.delivery_time=delivery_time.GetString(); order.delivery_time=delivery_time.GetString();
rapidjson::Value& status = objValue["status"]; rapidjson::Value& status = objValue["status"];
order.status=status.GetInt(); order.status=_getPOSOrderStatus(status.GetInt());
rapidjson::Value& status_desc = objValue["status_desc"]; rapidjson::Value& status_desc = objValue["status_desc"];
order.status_desc=status_desc.GetString(); order.status_desc=status_desc.GetString();
...@@ -633,14 +633,55 @@ std::string JsonModule::_getDeliveryTypeString(int type) ...@@ -633,14 +633,55 @@ std::string JsonModule::_getDeliveryTypeString(int type)
std::string rlt; std::string rlt;
switch(type) switch(type)
{ {
case 0: case ODS_DELIVERY_TYPE_SELF:
rlt=DELIVERY_TYPE_SELF; rlt=DELIVERY_TYPE_SELF;
break; break;
case 1: case ODS_DELIVERY_TYPE_PLATFORM:
rlt=DELIVERY_TYPE_PLATFORM; rlt=DELIVERY_TYPE_PLATFORM;
break; break;
default: default:
break; break;
} }
return rlt; 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: ...@@ -21,6 +21,8 @@ public:
private: private:
std::string _getDeliveryTypeString(int type); std::string _getDeliveryTypeString(int type);
//订单状态转换(转换为POS对应的状态)
int _getPOSOrderStatus(int status);
}; };
#endif #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