#include "MyConfigUtil.h" #include "../common_nopch/JsonUtil.h" #include #include JueJinParams MyConfigUtil::getJueJinParams() { try { string params = readStringConfig("juejin_params"); auto doc = JsonUtil::parseUTF8(params); string token = doc[0].GetString(); string strategyId = doc[1].GetString(); JueJinParams param; param.token = token; param.strategy_id = strategyId; return param; } catch (...) { return JueJinParams({"",""}); } } void MyConfigUtil::setJueJinParams(JueJinParams params) { rapidjson::StringBuffer buf; rapidjson::PrettyWriter writer(buf); writer.StartArray(); writer.String(params.token.c_str()); writer.String(params.strategy_id.c_str()); writer.EndArray(); const char* json_content = buf.GetString(); setStringConfig("juejin_params", json_content); } int MyConfigUtil::getBuyMoney() { try { int params = readIntConfig("buy_money"); return params; } catch (...) { // ĬÈÏ return 2000; } } void MyConfigUtil::setBuyMoney(int money) { setIntConfig("buy_money", money); } int MyConfigUtil::getSellMoney() { try { int params = readIntConfig("sell_money"); return params; } catch (...) { // ĬÈÏ return 2000; } } int MyConfigUtil::getSellMoney(string code) { try { string value = readStringConfig("sell_codes_money"); std::map codeMoneyMap; if (!value.empty()) { auto doc = JsonUtil::parseUTF8(value); for (auto itr = doc.MemberBegin(); itr != doc.MemberEnd(); ++itr) { // itr->name is the key, itr->value is the value corresponding to the key codeMoneyMap[itr->name.GetString()] = itr->value.GetInt(); } } if (codeMoneyMap.find(code) != codeMoneyMap.end()) { return codeMoneyMap[code]; } } catch (...) { } return getSellMoney(); } void MyConfigUtil::setSellMoney(int money) { setIntConfig("sell_money", money); } void MyConfigUtil::setSellMoney(string code, int money) { string value = ""; try { value = readStringConfig("sell_codes_money"); } catch (...) { } std::map codeMoneyMap; if (!value.empty()) { auto doc = JsonUtil::parseUTF8(value); for (auto itr = doc.MemberBegin(); itr != doc.MemberEnd(); ++itr) { // itr->name is the key, itr->value is the value corresponding to the key codeMoneyMap[itr->name.GetString()] = itr->value.GetInt(); } } codeMoneyMap[code] = money; rapidjson::StringBuffer buf; rapidjson::PrettyWriter writer(buf); writer.StartObject(); for (std::map::iterator e = codeMoneyMap.begin(); e != codeMoneyMap.end(); ++e) { writer.Key((*e).first.c_str()); writer.Int((*e).second); } writer.EndObject(); const char* json_content = buf.GetString(); setStringConfig("sell_codes_money", json_content); } void MyConfigUtil::clearCodesSellMoney() { setStringConfig("sell_codes_money", ""); } void MyConfigUtil::setMainWindowPos(wxPoint point, wxSize size) { rapidjson::StringBuffer buf; rapidjson::PrettyWriter writer(buf); writer.StartArray(); writer.Int(point.x); writer.Int(point.y); writer.Int(size.GetWidth()); writer.Int(size.GetHeight()); writer.EndArray(); const char* json_content = buf.GetString(); setStringConfig("main_window_info", json_content); } WindowPosSize MyConfigUtil::getMainWindowPos() { try { string result = readStringConfig("main_window_info"); auto doc = JsonUtil::parseUTF8(result); return WindowPosSize({ doc[0].GetInt(), doc[1].GetInt(),doc[2].GetInt(), doc[3].GetInt() }); } catch (...) { } return DEFAULT_WINOW_POS_AND_SIZE; } void MyConfigUtil::setTickWindowPos(wxPoint point, wxSize size) { rapidjson::StringBuffer buf; rapidjson::PrettyWriter writer(buf); writer.StartArray(); writer.Int(point.x); writer.Int(point.y); writer.Int(size.GetWidth()); writer.Int(size.GetHeight()); writer.EndArray(); const char* json_content = buf.GetString(); setStringConfig("tick_window_info", json_content); } WindowPosSize MyConfigUtil::getTickWindowPos() { try { string result = readStringConfig("tick_window_info"); auto doc = JsonUtil::parseUTF8(result); WindowPosSize info = { doc[0].GetInt(), doc[1].GetInt(),doc[2].GetInt(), doc[3].GetInt() }; return info; } catch (...) { } return DEFAULT_WINOW_POS_AND_SIZE; } void MyConfigUtil::setPositionColumnWidth(std::list widthList) { string st; for (std::list::iterator e = widthList.begin(); e != widthList.end(); ++e) { st.append(to_string(*e)).append(","); } st = st.substr(0, st.size() - 1); setStringConfig("position_view_column_width", st); } list MyConfigUtil::getPositionColumnWidth() { list fwidths; try { string st = readStringConfig("position_view_column_width"); if (st.size() > 0) { std::vector widths = StringUtil::split(st, ","); for (std::vector::iterator e = widths.begin(); e != widths.end(); ++e) { int width = stoi((*e).c_str()); fwidths.push_back(width); } } } catch (...) { } return fwidths; }