#include "../pch/pch.h" #include "CWaimaiOrder.h" CWaimaiOrder::CWaimaiOrder() { } CWaimaiOrder::~CWaimaiOrder() { } //通过订单ID,获取订单详情 void CWaimaiOrder::InitData(std::string order_id, std::string order_no) { std::map params; params["id"] = order_id; params["order_no"] = order_no; std::string response; bool ret = CZhipuziHttpClient::RequestOld("/waimaiorder/getorderdetail", params, response); if (!ret) { LOG_INFO("网络请求出错"); } rapidjson::Document document; document.Parse(response.c_str()); if (document.HasParseError()) { LOG_INFO("parse response error!"); } else { if (!document.HasMember("errcode") || !document.HasMember("errmsg") || !document.HasMember("data")) { LOG_INFO("json error!"); } rapidjson::Value& v_errcode = document["errcode"]; int errcode = v_errcode.GetInt(); if (errcode != 0) { LOG_INFO("response failed! message:" << document["errmsg"].GetString()); } { //获得数据成功 rapidjson::Value& data = document["data"]; m_order_id = data["id"].GetString(); m_shop_id = data["shop_id"].GetString(); m_restaurant_number = data["restaurant_number"].GetString(); m_customer_id = data["customer_id"].GetString(); m_customer_name = data["customer_name"].GetString(); m_phone = data["phone"].GetString(); m_address = data["address"].GetString(); m_memo = data["memo"].GetString(); m_pay_type = data["pay_type"].GetString(); m_promotion = data["promotion"].GetString(); m_is_member_discount = data["is_member_discount"].GetString(); m_member_discount = data["member_discount"].GetString(); m_discount = data["discount"].GetFloat(); m_coupon = data["coupon"].GetFloat(); m_delivery = data["delivery"].GetFloat(); m_price = data["price"].GetFloat(); m_order_date = data["order_date"].GetString(); m_order_fields = data["order_fields"].GetString(); m_order_status = data["order_status"].GetString(); m_courier_id = data["courier_id"].GetString(); m_is_selftake = data["is_selftake"].GetString(); //m_addservice_text = data["addservice_text"].GetString(); m_is_dabao = data["is_dabao"].GetString(); m_dabao_money = data["dabao_money"].GetString(); m_phone_customer_id = data["phone_customer_id"].GetString(); m_order_num = data["order_num"].GetString(); m_from_type = data["from_type"].GetString(); m_is_refund = data["is_refund"].GetString(); m_refund_status = data["refund_status"].GetString(); m_is_pickup = data["is_pickup"].GetString(); m_pickup_time = data["pickup_time"].GetString(); m_verify_time = data["verify_time"].GetString(); m_verify_user = data["verify_user"].GetString(); m_refund_failed_reason = data["refund_failed_reason"].GetString(); m_refund_time = data["refund_time"].GetString(); m_failed_reason = data["failed_reason"].GetString(); m_configmemo = data["configmemo"].GetString(); m_courier_type = data["courier_type"].GetString(); m_courier_name = data["courier_name"].GetString(); m_courier_phone = data["courier_phone"].GetString(); m_receiver_lng = data["receiver_lng"].GetString(); m_receiver_lat = data["receiver_lat"].GetString(); m_reduction_value = data["reduction_value"].GetString(); m_price_moling = data["price_moling"].GetString(); m_price_plus = data["price_plus"].GetString(); m_discount_price = data["discount_price"].GetString(); m_order_no = data["order_no"].GetString(); m_is_firstcut = data["is_firstcut"].GetString(); m_firstcut_value = data["firstcut_value"].GetString(); m_goods_coupon_value = data["goods_coupon_value"].GetString(); m_take_food_code = data["take_food_code"].GetString(); m_need_to_refund = data["need_to_refund"].GetString(); m_is_nowprinter = data["is_nowprinter"].GetInt(); m_shop_name = data["shop_name"].GetString(); m_longitude = data["longitude"].GetString(); m_latitude = data["latitude"].GetString(); m_open_selftake = data["open_selftake"].GetString(); m_invitetimetimerange = data["invitetimetimerange"].GetString(); m_machine_qrcode_open = data["machine_qrcode_open"].GetString(); m_machine_qrcode_url = data["machine_qrcode_url"].GetString(); m_machine_qrcode_title = data["machine_qrcode_title"].GetString(); m_delivery_date = data["delivery_date"].GetString(); m_head_picture = data["head_picture"].GetString(); m_courier = data["courier"].GetString(); m_delivertime = data["delivertime"].GetString(); m_customer_order_total = data["customer_order_total"].GetString(); m_invoice = data["invoice"].GetInt(); m_invoice_type = data["invoice_type"].GetString(); m_tax_payer_id = data["tax_payer_id"].GetString(); //开始保存订单详情 rapidjson::Value& v_rows = data["order_item"]; for (rapidjson::SizeType i = 0; i < v_rows.Size(); ++i) { rapidjson::Value& v_row_i = v_rows[i]; CWaimaiOrderItem newItem; newItem.m_id = v_row_i["id"].GetString(); newItem.m_food_name = v_row_i["food_name"].GetString(); newItem.m_item_price = v_row_i["item_price"].GetString(); newItem.m_quantity = v_row_i["quantity"].GetString(); newItem.m_type_id = v_row_i["type_id"].GetString(); newItem.m_foodpackage_id = v_row_i["foodpackage_id"].GetString(); newItem.m_is_foodpackage = v_row_i["is_foodpackage"].GetString(); newItem.m_food_unit = v_row_i["food_unit"].GetString(); newItem.m_order_item_id = v_row_i["order_item_id"].GetString(); newItem.m_food_id = v_row_i["food_id"].GetString(); newItem.m_barcode = v_row_i["barcode"].GetString(); m_order_items.push_back(newItem); } //开始保存预设选项 v_rows = data["order_field"]; for (rapidjson::SizeType i = 0; i < v_rows.Size(); ++i) { rapidjson::Value& v_row_i = v_rows[i]; CWaimaiOrderField newItem; newItem.name = v_row_i["name"].GetString(); newItem.value = v_row_i["value"].GetString(); m_order_field.push_back(newItem); } //开始保存增值服务费 v_rows = data["addservice"]; for (rapidjson::SizeType i = 0; i < v_rows.Size(); ++i) { rapidjson::Value& v_row_i = v_rows[i]; CWaimaiOrderField newItem; newItem.name = v_row_i["name"].GetString(); newItem.value = v_row_i["value"].GetString(); m_addservie.push_back(newItem); } } } } bool CWaimaiOrder::ConfirmeOrder(std::string order_id) { std::string url = "/waimaiorder/orderconfirm"; //请求外卖的未处理订单 std::map params; params["id"] = order_id; std::string response; CZhipuziHttpClient::RequestOld(url.c_str(), params, response); rapidjson::Document document; document.Parse(response.c_str()); if (document.HasParseError()) { LOG_INFO("parse response error!"); return false; } if (!document.HasMember("errcode") || !document.HasMember("errmsg") || !document.HasMember("data")) { LOG_INFO("json error!"); return false; } rapidjson::Value& v_errcode = document["errcode"]; int errcode = v_errcode.GetInt(); if (errcode != 0) { LOG_INFO("response failed! message:" << document["errmsg"].GetString()); return false; } //获得数据成功 rapidjson::Value& data = document["data"]; rapidjson::Value& v_count = data["count"]; string count = v_count.GetString(); return true; } bool CWaimaiOrder::SuccessOrder(std::string order_id) { std::string url = "/waimaiorder/ordersucceeded"; //请求外卖的未处理订单 std::map params; params["id"] = order_id; std::string response; CZhipuziHttpClient::RequestOld(url.c_str(), params, response); rapidjson::Document document; document.Parse(response.c_str()); if (document.HasParseError()) { LOG_INFO("parse response error!"); return false; } if (!document.HasMember("errcode") || !document.HasMember("errmsg") || !document.HasMember("data")) { LOG_INFO("json error!"); return false; } rapidjson::Value& v_errcode = document["errcode"]; int errcode = v_errcode.GetInt(); if (errcode != 0) { LOG_INFO("response failed! message:" << document["errmsg"].GetString()); return false; } //获得数据成功 rapidjson::Value& data = document["data"]; rapidjson::Value& v_count = data["count"]; string count = v_count.GetString(); return true; } bool CWaimaiOrder::FailOrder(std::string order_id, std::string reason) { std::string url = "/waimaiorder/orderfail"; //请求外卖的未处理订单 std::map params; params["id"] = order_id; params["failed_reason"] = reason; std::string response; CZhipuziHttpClient::RequestOld(url.c_str(), params, response); rapidjson::Document document; document.Parse(response.c_str()); if (document.HasParseError()) { LOG_INFO("parse response error!"); return false; } if (!document.HasMember("errcode") || !document.HasMember("errmsg") || !document.HasMember("data")) { LOG_INFO("json error!"); return false; } rapidjson::Value& v_errcode = document["errcode"]; int errcode = v_errcode.GetInt(); if (errcode != 0) { LOG_INFO("response failed! message:" << document["errmsg"].GetString()); return false; } //获得数据成功 rapidjson::Value& data = document["data"]; rapidjson::Value& v_count = data["count"]; string count = v_count.GetString(); return true; } bool CWaimaiOrder::AgreeRefund(std::string order_id) { std::string url = "/waimaiorder/agreerefund"; //请求外卖的未处理订单 std::map params; params["order_id"] = order_id; std::string response; CZhipuziHttpClient::RequestOld(url.c_str(), params, response); rapidjson::Document document; document.Parse(response.c_str()); if (document.HasParseError()) { LOG_INFO("parse response error!"); return false; } if (!document.HasMember("errcode") || !document.HasMember("errmsg") || !document.HasMember("data")) { LOG_INFO("json error!"); return false; } rapidjson::Value& v_errcode = document["errcode"]; int errcode = v_errcode.GetInt(); if (errcode != 0) { LOG_INFO("response failed! message:" << document["errmsg"].GetString()); return false; } //获得数据成功 rapidjson::Value& data = document["data"]; rapidjson::Value& v_count = data["count"]; string count = v_count.GetString(); return true; } bool CWaimaiOrder::DisagreeRefund(std::string order_id) { std::string url = "/waimaiorder/disagreerefund"; //请求外卖的未处理订单 std::map params; params["order_id"] = order_id; std::string response; CZhipuziHttpClient::RequestOld(url.c_str(), params, response); rapidjson::Document document; document.Parse(response.c_str()); if (document.HasParseError()) { LOG_INFO("parse response error!"); return false; } if (!document.HasMember("errcode") || !document.HasMember("errmsg") || !document.HasMember("data")) { LOG_INFO("json error!"); return false; } rapidjson::Value& v_errcode = document["errcode"]; int errcode = v_errcode.GetInt(); if (errcode != 0) { LOG_INFO("response failed! message:" << document["errmsg"].GetString()); return false; } //获得数据成功 rapidjson::Value& data = document["data"]; rapidjson::Value& v_count = data["count"]; string count = v_count.GetString(); return true; }