Commit 7273005e by unknown

Add 1:配置文件增加字段

Add 2:新增json请求返回的数据包装函数
parent 32f68acc
[SYS] [SYS]
ip=127.0.0.1 port = 24446
[ODS]
ip = "115.234.23.176"
pushPort = 8996
recvPort = 8997
[POS]
ip = "127.0.0.1"
port = 24445
...@@ -176,6 +176,182 @@ void JsonModule::getPushOrders(IN const char* json,OUT std::vector<orderObj> &ve ...@@ -176,6 +176,182 @@ void JsonModule::getPushOrders(IN const char* json,OUT std::vector<orderObj> &ve
} }
} }
bool JsonModule::isInitData(const std::string &data)
{
rapidjson::Document document; // 定义一个Document对象
document.Parse(json); // 解析,Parse()无返回值,也不会抛异常
if (document.HasParseError()) // 通过HasParseError()来判断解析是否成功
{
LOG(ERROR) << "JSON parse error:" << document.GetParseError() << ":" << document.GetErrorOffset();
return false;
}
return document["fm_cmd"].GetInt() == 1000;
}
bool JsonModule::checkInitData(const std::string &data, int &posListenPort)
{
rapidjson::Document document; // 定义一个Document对象
document.Parse(data); // 解析,Parse()无返回值,也不会抛异常
if (document.HasParseError()) // 通过HasParseError()来判断解析是否成功
{
LOG(ERROR) << "JSON parse error:" << document.GetParseError() << ":" << document.GetErrorOffset();
return false;
}
if( document["store_id"].GetString().empty()
|| document["store_id"].GetString().empty()
|| document["pos_id"].GetString().empty()
|| document["operator_id"].GetString().empty()
|| !document.HasMember("is_master")
|| document["listen_port"].GetInt()< 0 )
{
return false;
}
posListenPort = document["listen_port"].GetInt();
return true;
}
bool JsonModule::getPosResponseData(int status, const std::string &msg, std::string &result)
{
rapidjson::StringBuffer buffer;
rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
writer.StartObject();
writer.Key("status_code");
writer.Int(status);
writer.Key("msg");
writer.String(msg.c_str());
writer.EndObject();
result = buffer.GetString();
return true;
}
bool JsonModule::getPosResponseData(const std::string &odsResponse, std::string &result)
{
result = "{\"status_code\":100, \"msg\":\"\"}";
return true;
}
bool JsonModule::getOdsResponseData(int status_code, const std::string &msg, std::string &result)
{
/*
{
"type" : 2,
"order_id" : "xxxxx",
"status" : 1,
"status_code" : 100,
"msg" : "接收订单成功"
}
*/
rapidjson::StringBuffer buffer;
rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
writer.StartObject();
writer.Key("type");
writer.Int(2);
writer.Key("order_id");
writer.String("");
writer.Key("status");
writer.Int(0);
writer.Key("status_code");
writer.Int(status_code);
writer.Key("msg");
writer.String(msg.c_str());
writer.EndObject();
result = buffer.GetString();
return true;
}
bool JsonModule::getOdsResponseData(const std::string &posResponse, const std::string &orderData, std::string &result)
{
int status_code;
std::string msg;
std::string order_id;
int status;
if( posResponse.empty() || orderData.empty() )
return false;
rapidjson::Document document, document1;
document.Parse(posResponse);
document1.Parse(orderData);
if (document.HasParseError() || document1.HasParseError())
{
return false;
}
if( !document.HasMember("status_code")
|| !document1.HasMember("order_id")
|| !document1.HasMember("status") )
{
return false;
}
status_code = document["status_code"].GetInt();
msg = document["msg"].GetString();
order_id = document1["order_id"].GetString();
status = document1["status"].GetInt();
rapidjson::StringBuffer buffer;
rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
writer.StartObject();
writer.Key("type");
writer.Int(2);
writer.Key("order_id");
writer.String(order_id.c_str());
writer.Key("status");
writer.Int(status);
writer.Key("status_code");
writer.Int(status_code);
writer.Key("msg");
writer.String(msg.c_str());
writer.EndObject();
result = buffer.GetString();
return true;
}
bool JsonModule::convertDataPos2Ods(const std::string &data, std::string &result)
{
}
bool JsonModule::convertDataOds2Pos(const std::string &data, std::string &result)
{
rapidjson::Document data;
document.Parse(posResponse);
document1.Parse(orderData);
if (document.HasParseError() || document1.HasParseError())
{
return false;
}
if( !document.HasMember("status_code")
|| !document1.HasMember("order_id")
|| !document1.HasMember("status") )
{
return false;
}
}
std::string JsonModule::convertToNewOrderJson(orderObj &obj) std::string JsonModule::convertToNewOrderJson(orderObj &obj)
{ {
rapidjson::StringBuffer buffer; rapidjson::StringBuffer buffer;
......
...@@ -14,6 +14,45 @@ public: ...@@ -14,6 +14,45 @@ public:
void getPushOrders(IN const char* json,OUT std::vector<orderObj> &vecOrders); void getPushOrders(IN const char* json,OUT std::vector<orderObj> &vecOrders);
/* 功能:判断是否是初始化数据
* 参数:[1]待判断数据
* 返回:...
* */
bool isInitData(IN const std::string& data);
/* 功能:检查初始化数据是否可用
* 参数:[1]待检查数据[2]POS监听端口
* 返回:是否正确格式
* */
bool checkInitData(IN const std::string& data, OUT int& posListenPort);
/* 功能:获取POS请求的返回数据
* 参数:[1]状态码[2]消息[3]转换后数据
* 重载:[1]ODS返回数据[2]转换后数据
* 返回:是否转换成功
* */
bool getPosResponseData(IN int status, IN const std::string& msg, OUT std::string& result);
bool getPosResponseData(IN const std::string& odsResponse, OUT std::string& result);
/* 功能:获取ODS推送的返回数据
* 参数:[1]状态码[2]消息[3]转换后数据
* 重载:[1]POS返回数据[2]订单数据[3]转换后数据
* 返回:是否转换成功
* */
bool getOdsResponseData(IN int status_code, IN const std::string& msg, OUT std::string& result);
bool getOdsResponseData(IN const std::string& posResponse, IN const std::string& orderData, OUT std::string& result);
/* 功能:转换POS数据格式到中台数据格式
* 参数:[1]POS数据格式[2]转换后数据
* 返回:是否转换成功
* */
bool convertDataPos2Ods(IN const std::string& data, OUT std::string& result);
/* 功能:转换中台数据格式到POS数据格式
* 参数:[1]中台数据格式[2]转换后数据
* 返回:是否转换成功
* */
bool convertDataOds2Pos(IN const std::string& data, OUT std::string& result);
std::string convertToNewOrderJson(orderObj &obj); std::string convertToNewOrderJson(orderObj &obj);
std::string convertToOrderStatusJson(orderStatusObj &obj); std::string convertToOrderStatusJson(orderStatusObj &obj);
std::string convertToRefundJson(refundObj &obj); std::string convertToRefundJson(refundObj &obj);
......
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