Delete unnecessary code
This commit is contained in:
parent
c952119628
commit
abde76e875
|
|
@ -89,17 +89,7 @@ pub async fn insert_pre_suggested_coins(
|
||||||
is_long: bool,
|
is_long: bool,
|
||||||
filtered_coins: &HashMap<String, FilteredDataValue>
|
filtered_coins: &HashMap<String, FilteredDataValue>
|
||||||
) -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
|
) -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
|
||||||
// Check the existance of record that is registered by this strategist
|
|
||||||
let mut dest_table_name = String::from("suggested_coin_list");
|
|
||||||
let mut dest2_table_name = String::from("buy_ordered_coin_list");
|
|
||||||
let mut dest3_table_name = String::from("pre_suggested_coin_list");
|
|
||||||
let mut insert_table_name = String::from("pre_suggested_coin_list");
|
let mut insert_table_name = String::from("pre_suggested_coin_list");
|
||||||
let mut exists_condition_build = String::from("registerer=");
|
|
||||||
exists_condition_build.push_str(registerer.to_string().as_str());
|
|
||||||
let mut exists_condition = Some(exists_condition_build);
|
|
||||||
let exists_result1 = exists_record(&dest_table_name, &exists_condition).await;
|
|
||||||
let exists_result2 = exists_record(&dest2_table_name, &exists_condition).await;
|
|
||||||
let exists_result3 = exists_record(&dest3_table_name, &exists_condition).await;
|
|
||||||
let insert_columns = vec![
|
let insert_columns = vec![
|
||||||
"symbol",
|
"symbol",
|
||||||
"close_time",
|
"close_time",
|
||||||
|
|
@ -115,549 +105,8 @@ pub async fn insert_pre_suggested_coins(
|
||||||
"is_long",
|
"is_long",
|
||||||
];
|
];
|
||||||
|
|
||||||
if exists_result1 == true && exists_result2 == true && exists_result3 == true {
|
for (symbol, filtered_data) in filtered_coins {
|
||||||
// Bring the current list of pre-suggested coins from [pre_suggested_coin_list] and [ordered_coin_list]
|
let mut insert_values = vec![
|
||||||
#[derive(FromRow)]
|
|
||||||
struct SelectData {
|
|
||||||
symbol: String,
|
|
||||||
close_time: i64,
|
|
||||||
}
|
|
||||||
#[derive(FromRow)]
|
|
||||||
struct SelectData2 {
|
|
||||||
symbol: String,
|
|
||||||
close_time: i64,
|
|
||||||
}
|
|
||||||
let mut select_columns = String::from("symbol, close_time");
|
|
||||||
let mut condition_build = String::from("WHERE registerer=");
|
|
||||||
condition_build.push_str(registerer.to_string().as_str());
|
|
||||||
let select_condition = Some(condition_build);
|
|
||||||
let select_data_structure = SelectData {
|
|
||||||
symbol: String::new(),
|
|
||||||
close_time: 0,
|
|
||||||
};
|
|
||||||
let mut select_columns2 = String::from("symbol, close_time");
|
|
||||||
let select_data_structure2 = SelectData2 {
|
|
||||||
symbol: String::new(),
|
|
||||||
close_time: 0,
|
|
||||||
};
|
|
||||||
let suggested_coin_list = try_select_record(
|
|
||||||
&dest_table_name,
|
|
||||||
&select_columns,
|
|
||||||
&select_condition,
|
|
||||||
&select_data_structure,
|
|
||||||
)
|
|
||||||
.await?;
|
|
||||||
let ordered_coin_list = try_select_record(
|
|
||||||
&dest2_table_name,
|
|
||||||
&select_columns2,
|
|
||||||
&select_condition,
|
|
||||||
&select_data_structure2,
|
|
||||||
)
|
|
||||||
.await?;
|
|
||||||
let pre_suggested_coin_list = try_select_record(
|
|
||||||
&dest3_table_name,
|
|
||||||
&select_columns,
|
|
||||||
&select_condition,
|
|
||||||
&select_data_structure,
|
|
||||||
)
|
|
||||||
.await?;
|
|
||||||
|
|
||||||
// insert record without duplicate(registerer, closetime, symbol) into [pre_suggested_coin_list]
|
|
||||||
for (symbol, filtered_data) in filtered_coins {
|
|
||||||
let mut is_dupe = false; // initialize
|
|
||||||
|
|
||||||
for list_element in &suggested_coin_list {
|
|
||||||
if (*symbol == list_element.symbol)
|
|
||||||
&& (filtered_data.closetime == list_element.close_time)
|
|
||||||
{
|
|
||||||
is_dupe = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for list_element in &ordered_coin_list {
|
|
||||||
if (*symbol == list_element.symbol)
|
|
||||||
&& (filtered_data.closetime == list_element.close_time)
|
|
||||||
{
|
|
||||||
is_dupe = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for list_element in &pre_suggested_coin_list {
|
|
||||||
if (*symbol == list_element.symbol)
|
|
||||||
&& (filtered_data.closetime == list_element.close_time)
|
|
||||||
{
|
|
||||||
is_dupe = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if is_dupe == false {
|
|
||||||
let mut insert_values = vec![
|
|
||||||
symbol.clone(), // symbol
|
|
||||||
filtered_data.closetime.to_string(), // close_time
|
|
||||||
filtered_data.current_price.to_string(), // suggested_price
|
|
||||||
filtered_data.current_price.to_string(), // current_price
|
|
||||||
filtered_data.stoploss.to_string(), // stoploss
|
|
||||||
filtered_data.target_price.to_string(), // target_price
|
|
||||||
get_server_epoch().await.to_string(), // registered_server_epoch
|
|
||||||
0.0.to_string(), // profit_percent
|
|
||||||
0.0.to_string(), // minimum_profit_percent
|
|
||||||
0.0.to_string(), // maximum_profit_percent
|
|
||||||
registerer.to_string(), // registerer
|
|
||||||
];
|
|
||||||
|
|
||||||
if is_long == true {
|
|
||||||
insert_values.push(1.to_string()); // is_long
|
|
||||||
} else {
|
|
||||||
insert_values.push(0.to_string()); // is_long
|
|
||||||
}
|
|
||||||
|
|
||||||
insert_one_record(&insert_table_name, &insert_columns, &insert_values).await;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if exists_result1 == true && exists_result2 == true && exists_result3 == false {
|
|
||||||
// Bring the current list of pre-suggested coins from [pre_suggested_coin_list] and [ordered_coin_list]
|
|
||||||
#[derive(FromRow)]
|
|
||||||
struct SelectData {
|
|
||||||
symbol: String,
|
|
||||||
close_time: i64,
|
|
||||||
}
|
|
||||||
#[derive(FromRow)]
|
|
||||||
struct SelectData2 {
|
|
||||||
symbol: String,
|
|
||||||
close_time: i64,
|
|
||||||
}
|
|
||||||
let mut select_columns = String::from("symbol, close_time");
|
|
||||||
let mut condition_build = String::from("WHERE registerer=");
|
|
||||||
condition_build.push_str(registerer.to_string().as_str());
|
|
||||||
let select_condition = Some(condition_build);
|
|
||||||
let select_data_structure = SelectData {
|
|
||||||
symbol: String::new(),
|
|
||||||
close_time: 0,
|
|
||||||
};
|
|
||||||
let mut select_columns2 = String::from("symbol, close_time");
|
|
||||||
let select_data_structure2 = SelectData2 {
|
|
||||||
symbol: String::new(),
|
|
||||||
close_time: 0,
|
|
||||||
};
|
|
||||||
let suggested_coin_list = try_select_record(
|
|
||||||
&dest_table_name,
|
|
||||||
&select_columns,
|
|
||||||
&select_condition,
|
|
||||||
&select_data_structure,
|
|
||||||
)
|
|
||||||
.await?;
|
|
||||||
let ordered_coin_list = try_select_record(
|
|
||||||
&dest2_table_name,
|
|
||||||
&select_columns2,
|
|
||||||
&select_condition,
|
|
||||||
&select_data_structure2,
|
|
||||||
)
|
|
||||||
.await?;
|
|
||||||
|
|
||||||
// insert record without duplicate(registerer, closetime, symbol) into [pre_suggested_coin_list]
|
|
||||||
for (symbol, filtered_data) in filtered_coins {
|
|
||||||
let mut is_dupe = false; // initialize
|
|
||||||
|
|
||||||
for list_element in &suggested_coin_list {
|
|
||||||
if (*symbol == list_element.symbol)
|
|
||||||
&& (filtered_data.closetime == list_element.close_time)
|
|
||||||
{
|
|
||||||
is_dupe = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for list_element in &ordered_coin_list {
|
|
||||||
if (*symbol == list_element.symbol)
|
|
||||||
&& (filtered_data.closetime == list_element.close_time)
|
|
||||||
{
|
|
||||||
is_dupe = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if is_dupe == false {
|
|
||||||
let mut insert_values = vec![
|
|
||||||
symbol.clone(), // symbol
|
|
||||||
filtered_data.closetime.to_string(), // close_time
|
|
||||||
filtered_data.current_price.to_string(), // suggested_price
|
|
||||||
filtered_data.current_price.to_string(), // current_price
|
|
||||||
filtered_data.stoploss.to_string(), // stoploss
|
|
||||||
filtered_data.target_price.to_string(), // target_price
|
|
||||||
get_server_epoch().await.to_string(), // registered_server_epoch
|
|
||||||
0.0.to_string(), // profit_percent
|
|
||||||
0.0.to_string(), // minimum_profit_percent
|
|
||||||
0.0.to_string(), // maximum_profit_percent
|
|
||||||
registerer.to_string(), // registerer
|
|
||||||
];
|
|
||||||
|
|
||||||
if is_long == true {
|
|
||||||
insert_values.push(1.to_string()); // is_long
|
|
||||||
} else {
|
|
||||||
insert_values.push(0.to_string()); // is_long
|
|
||||||
}
|
|
||||||
|
|
||||||
insert_one_record(&insert_table_name, &insert_columns, &insert_values).await;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if exists_result1 == true && exists_result2 == false && exists_result3 == true {
|
|
||||||
// Bring the current list of pre-suggested coins from [pre_suggested_coin_list] and [ordered_coin_list]
|
|
||||||
#[derive(FromRow)]
|
|
||||||
struct SelectData {
|
|
||||||
symbol: String,
|
|
||||||
close_time: i64,
|
|
||||||
}
|
|
||||||
let mut select_columns = String::from("symbol, close_time");
|
|
||||||
let mut condition_build = String::from("WHERE registerer=");
|
|
||||||
condition_build.push_str(registerer.to_string().as_str());
|
|
||||||
let select_condition = Some(condition_build);
|
|
||||||
let select_data_structure = SelectData {
|
|
||||||
symbol: String::new(),
|
|
||||||
close_time: 0,
|
|
||||||
};
|
|
||||||
let suggested_coin_list = try_select_record(
|
|
||||||
&dest_table_name,
|
|
||||||
&select_columns,
|
|
||||||
&select_condition,
|
|
||||||
&select_data_structure,
|
|
||||||
)
|
|
||||||
.await?;
|
|
||||||
let pre_suggested_coin_list = try_select_record(
|
|
||||||
&dest3_table_name,
|
|
||||||
&select_columns,
|
|
||||||
&select_condition,
|
|
||||||
&select_data_structure,
|
|
||||||
)
|
|
||||||
.await?;
|
|
||||||
|
|
||||||
// insert record without duplicate(registerer, closetime, symbol) into [pre_suggested_coin_list]
|
|
||||||
for (symbol, filtered_data) in filtered_coins {
|
|
||||||
let mut is_dupe = false; // initialize
|
|
||||||
|
|
||||||
for list_element in &suggested_coin_list {
|
|
||||||
if (*symbol == list_element.symbol)
|
|
||||||
&& (filtered_data.closetime == list_element.close_time)
|
|
||||||
{
|
|
||||||
is_dupe = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for list_element in &pre_suggested_coin_list {
|
|
||||||
if (*symbol == list_element.symbol)
|
|
||||||
&& (filtered_data.closetime == list_element.close_time)
|
|
||||||
{
|
|
||||||
is_dupe = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if is_dupe == false {
|
|
||||||
let mut insert_values = vec![
|
|
||||||
symbol.clone(), // symbol
|
|
||||||
filtered_data.closetime.to_string(), // close_time
|
|
||||||
filtered_data.current_price.to_string(), // suggested_price
|
|
||||||
filtered_data.current_price.to_string(), // current_price
|
|
||||||
filtered_data.stoploss.to_string(), // stoploss
|
|
||||||
filtered_data.target_price.to_string(), // target_price
|
|
||||||
get_server_epoch().await.to_string(), // registered_server_epoch
|
|
||||||
0.0.to_string(), // profit_percent
|
|
||||||
0.0.to_string(), // minimum_profit_percent
|
|
||||||
0.0.to_string(), // maximum_profit_percent
|
|
||||||
registerer.to_string(), // registerer
|
|
||||||
];
|
|
||||||
|
|
||||||
if is_long == true {
|
|
||||||
insert_values.push(1.to_string()); // is_long
|
|
||||||
} else {
|
|
||||||
insert_values.push(0.to_string()); // is_long
|
|
||||||
}
|
|
||||||
|
|
||||||
insert_one_record(&insert_table_name, &insert_columns, &insert_values).await;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if exists_result1 == true && exists_result2 == false && exists_result3 == false {
|
|
||||||
// Bring the current list of pre-suggested coins from [pre_suggested_coin_list] and [ordered_coin_list]
|
|
||||||
#[derive(FromRow)]
|
|
||||||
struct SelectData {
|
|
||||||
symbol: String,
|
|
||||||
close_time: i64,
|
|
||||||
}
|
|
||||||
let mut select_columns = String::from("symbol, close_time");
|
|
||||||
let mut condition_build = String::from("WHERE registerer=");
|
|
||||||
condition_build.push_str(registerer.to_string().as_str());
|
|
||||||
let select_condition = Some(condition_build);
|
|
||||||
let select_data_structure = SelectData {
|
|
||||||
symbol: String::new(),
|
|
||||||
close_time: 0,
|
|
||||||
};
|
|
||||||
let suggested_coin_list = try_select_record(
|
|
||||||
&dest_table_name,
|
|
||||||
&select_columns,
|
|
||||||
&select_condition,
|
|
||||||
&select_data_structure,
|
|
||||||
)
|
|
||||||
.await?;
|
|
||||||
|
|
||||||
// insert record without duplicate(registerer, closetime, symbol) into [pre_suggested_coin_list]
|
|
||||||
for (symbol, filtered_data) in filtered_coins {
|
|
||||||
let mut is_dupe = false; // initialize
|
|
||||||
|
|
||||||
for list_element in &suggested_coin_list {
|
|
||||||
if (*symbol == list_element.symbol)
|
|
||||||
&& (filtered_data.closetime == list_element.close_time)
|
|
||||||
{
|
|
||||||
is_dupe = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if is_dupe == false {
|
|
||||||
let mut insert_values = vec![
|
|
||||||
symbol.clone(), // symbol
|
|
||||||
filtered_data.closetime.to_string(), // close_time
|
|
||||||
filtered_data.current_price.to_string(), // suggested_price
|
|
||||||
filtered_data.current_price.to_string(), // current_price
|
|
||||||
filtered_data.stoploss.to_string(), // stoploss
|
|
||||||
filtered_data.target_price.to_string(), // target_price
|
|
||||||
get_server_epoch().await.to_string(), // registered_server_epoch
|
|
||||||
0.0.to_string(), // profit_percent
|
|
||||||
0.0.to_string(), // minimum_profit_percent
|
|
||||||
0.0.to_string(), // maximum_profit_percent
|
|
||||||
registerer.to_string(), // registerer
|
|
||||||
];
|
|
||||||
|
|
||||||
if is_long == true {
|
|
||||||
insert_values.push(1.to_string()); // is_long
|
|
||||||
} else {
|
|
||||||
insert_values.push(0.to_string()); // is_long
|
|
||||||
}
|
|
||||||
|
|
||||||
insert_one_record(&insert_table_name, &insert_columns, &insert_values).await;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if exists_result1 == false && exists_result2 == true && exists_result3 == true {
|
|
||||||
// Bring the current list of pre-suggested coins from [pre_suggested_coin_list] and [ordered_coin_list]
|
|
||||||
#[derive(FromRow)]
|
|
||||||
struct SelectData {
|
|
||||||
symbol: String,
|
|
||||||
close_time: i64,
|
|
||||||
}
|
|
||||||
#[derive(FromRow)]
|
|
||||||
struct SelectData2 {
|
|
||||||
symbol: String,
|
|
||||||
close_time: i64,
|
|
||||||
}
|
|
||||||
let mut select_columns = String::from("symbol, close_time");
|
|
||||||
let mut condition_build = String::from("WHERE registerer=");
|
|
||||||
condition_build.push_str(registerer.to_string().as_str());
|
|
||||||
let select_condition = Some(condition_build);
|
|
||||||
let select_data_structure = SelectData {
|
|
||||||
symbol: String::new(),
|
|
||||||
close_time: 0,
|
|
||||||
};
|
|
||||||
let mut select_columns2 = String::from("symbol, close_time");
|
|
||||||
let select_data_structure2 = SelectData2 {
|
|
||||||
symbol: String::new(),
|
|
||||||
close_time: 0,
|
|
||||||
};
|
|
||||||
let ordered_coin_list = try_select_record(
|
|
||||||
&dest2_table_name,
|
|
||||||
&select_columns2,
|
|
||||||
&select_condition,
|
|
||||||
&select_data_structure2,
|
|
||||||
)
|
|
||||||
.await?;
|
|
||||||
let pre_suggested_coin_list = try_select_record(
|
|
||||||
&dest3_table_name,
|
|
||||||
&select_columns,
|
|
||||||
&select_condition,
|
|
||||||
&select_data_structure,
|
|
||||||
)
|
|
||||||
.await?;
|
|
||||||
|
|
||||||
// insert record without duplicate(registerer, close_time, symbol) into [pre_suggested_coin_list]
|
|
||||||
for (symbol, filtered_data) in filtered_coins {
|
|
||||||
let mut is_dupe = false; // initialize
|
|
||||||
|
|
||||||
for list_element in &ordered_coin_list {
|
|
||||||
if (*symbol == list_element.symbol)
|
|
||||||
&& (filtered_data.closetime == list_element.close_time)
|
|
||||||
{
|
|
||||||
is_dupe = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for list_element in &pre_suggested_coin_list {
|
|
||||||
if (*symbol == list_element.symbol)
|
|
||||||
&& (filtered_data.closetime == list_element.close_time)
|
|
||||||
{
|
|
||||||
is_dupe = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if is_dupe == false {
|
|
||||||
let mut insert_values = vec![
|
|
||||||
symbol.clone(), // symbol
|
|
||||||
filtered_data.closetime.to_string(), // close_time
|
|
||||||
filtered_data.current_price.to_string(), // suggested_price
|
|
||||||
filtered_data.current_price.to_string(), // current_price
|
|
||||||
filtered_data.stoploss.to_string(), // stoploss
|
|
||||||
filtered_data.target_price.to_string(), // target_price
|
|
||||||
get_server_epoch().await.to_string(), // registered_server_epoch
|
|
||||||
0.0.to_string(), // profit_percent
|
|
||||||
0.0.to_string(), // minimum_profit_percent
|
|
||||||
0.0.to_string(), // maximum_profit_percent
|
|
||||||
registerer.to_string(), // registerer
|
|
||||||
];
|
|
||||||
|
|
||||||
if is_long == true {
|
|
||||||
insert_values.push(1.to_string()); // is_long
|
|
||||||
} else {
|
|
||||||
insert_values.push(0.to_string()); // is_long
|
|
||||||
}
|
|
||||||
|
|
||||||
insert_one_record(&insert_table_name, &insert_columns, &insert_values).await;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if exists_result1 == false && exists_result2 == true && exists_result3 == false {
|
|
||||||
// Bring the current list of pre-suggested coins from [pre_suggested_coin_list] and [ordered_coin_list]
|
|
||||||
#[derive(FromRow)]
|
|
||||||
struct SelectData {
|
|
||||||
symbol: String,
|
|
||||||
close_time: i64,
|
|
||||||
}
|
|
||||||
#[derive(FromRow)]
|
|
||||||
struct SelectData2 {
|
|
||||||
symbol: String,
|
|
||||||
close_time: i64,
|
|
||||||
}
|
|
||||||
let mut select_columns = String::from("symbol, close_time");
|
|
||||||
let mut condition_build = String::from("WHERE registerer=");
|
|
||||||
condition_build.push_str(registerer.to_string().as_str());
|
|
||||||
let select_condition = Some(condition_build);
|
|
||||||
let select_data_structure = SelectData {
|
|
||||||
symbol: String::new(),
|
|
||||||
close_time: 0,
|
|
||||||
};
|
|
||||||
let mut select_columns2 = String::from("symbol, close_time");
|
|
||||||
let select_data_structure2 = SelectData2 {
|
|
||||||
symbol: String::new(),
|
|
||||||
close_time: 0,
|
|
||||||
};
|
|
||||||
let ordered_coin_list = try_select_record(
|
|
||||||
&dest2_table_name,
|
|
||||||
&select_columns2,
|
|
||||||
&select_condition,
|
|
||||||
&select_data_structure2,
|
|
||||||
)
|
|
||||||
.await?;
|
|
||||||
|
|
||||||
// insert record without duplicate(registerer, closetime, symbol) into [pre_suggested_coin_list]
|
|
||||||
for (symbol, filtered_data) in filtered_coins {
|
|
||||||
let mut is_dupe = false; // initialize
|
|
||||||
|
|
||||||
for list_element in &ordered_coin_list {
|
|
||||||
if (*symbol == list_element.symbol)
|
|
||||||
&& (filtered_data.closetime == list_element.close_time)
|
|
||||||
{
|
|
||||||
is_dupe = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if is_dupe == false {
|
|
||||||
let mut insert_values = vec![
|
|
||||||
symbol.clone(), // symbol
|
|
||||||
filtered_data.closetime.to_string(), // close_time
|
|
||||||
filtered_data.current_price.to_string(), // suggested_price
|
|
||||||
filtered_data.current_price.to_string(), // current_price
|
|
||||||
filtered_data.stoploss.to_string(), // stoploss
|
|
||||||
filtered_data.target_price.to_string(), // target_price
|
|
||||||
get_server_epoch().await.to_string(), // registered_server_epoch
|
|
||||||
0.0.to_string(), // profit_percent
|
|
||||||
0.0.to_string(), // minimum_profit_percent
|
|
||||||
0.0.to_string(), // maximum_profit_percent
|
|
||||||
registerer.to_string(), // registerer
|
|
||||||
];
|
|
||||||
|
|
||||||
if is_long == true {
|
|
||||||
insert_values.push(1.to_string()); // is_long
|
|
||||||
} else {
|
|
||||||
insert_values.push(0.to_string()); // is_long
|
|
||||||
}
|
|
||||||
|
|
||||||
insert_one_record(&insert_table_name, &insert_columns, &insert_values).await;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if exists_result1 == false && exists_result2 == false && exists_result3 == true {
|
|
||||||
// Bring the current list of pre-suggested coins from [pre_suggested_coin_list] and [ordered_coin_list]
|
|
||||||
#[derive(FromRow)]
|
|
||||||
struct SelectData {
|
|
||||||
symbol: String,
|
|
||||||
close_time: i64,
|
|
||||||
}
|
|
||||||
let mut select_columns = String::from("symbol, close_time");
|
|
||||||
let mut condition_build = String::from("WHERE registerer=");
|
|
||||||
condition_build.push_str(registerer.to_string().as_str());
|
|
||||||
let select_condition = Some(condition_build);
|
|
||||||
let select_data_structure = SelectData {
|
|
||||||
symbol: String::new(),
|
|
||||||
close_time: 0,
|
|
||||||
};
|
|
||||||
let pre_suggested_coin_list = try_select_record(
|
|
||||||
&dest3_table_name,
|
|
||||||
&select_columns,
|
|
||||||
&select_condition,
|
|
||||||
&select_data_structure,
|
|
||||||
)
|
|
||||||
.await?;
|
|
||||||
|
|
||||||
// insert record without duplicate(registerer, closetime, symbol) into [pre_suggested_coin_list]
|
|
||||||
for (symbol, filtered_data) in filtered_coins {
|
|
||||||
let mut is_dupe = false; // initialize
|
|
||||||
|
|
||||||
for list_element in &pre_suggested_coin_list {
|
|
||||||
if (*symbol == list_element.symbol)
|
|
||||||
&& (filtered_data.closetime == list_element.close_time)
|
|
||||||
{
|
|
||||||
is_dupe = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if is_dupe == false {
|
|
||||||
let mut insert_values = vec![
|
|
||||||
symbol.clone(), // symbol
|
|
||||||
filtered_data.closetime.to_string(), // close_time
|
|
||||||
filtered_data.current_price.to_string(), // suggested_price
|
|
||||||
filtered_data.current_price.to_string(), // current_price
|
|
||||||
filtered_data.stoploss.to_string(), // stoploss
|
|
||||||
filtered_data.target_price.to_string(), // target_price
|
|
||||||
get_server_epoch().await.to_string(), // registered_server_epoch
|
|
||||||
0.0.to_string(), // profit_percent
|
|
||||||
0.0.to_string(), // minimum_profit_percent
|
|
||||||
0.0.to_string(), // maximum_profit_percent
|
|
||||||
registerer.to_string(), // registerer
|
|
||||||
];
|
|
||||||
|
|
||||||
if is_long == true {
|
|
||||||
insert_values.push(1.to_string()); // is_long
|
|
||||||
} else {
|
|
||||||
insert_values.push(0.to_string()); // is_long
|
|
||||||
}
|
|
||||||
|
|
||||||
insert_one_record(&insert_table_name, &insert_columns, &insert_values).await;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
for (symbol, filtered_data) in filtered_coins {
|
|
||||||
let mut insert_values = vec![
|
|
||||||
symbol.clone(), // symbol
|
symbol.clone(), // symbol
|
||||||
filtered_data.closetime.to_string(), // close_time
|
filtered_data.closetime.to_string(), // close_time
|
||||||
filtered_data.current_price.to_string(), // suggested_price
|
filtered_data.current_price.to_string(), // suggested_price
|
||||||
|
|
@ -671,14 +120,13 @@ pub async fn insert_pre_suggested_coins(
|
||||||
registerer.to_string(), // registerer
|
registerer.to_string(), // registerer
|
||||||
];
|
];
|
||||||
|
|
||||||
if is_long == true {
|
if is_long == true {
|
||||||
insert_values.push(1.to_string()); // is_long
|
insert_values.push(1.to_string()); // is_long
|
||||||
} else {
|
} else {
|
||||||
insert_values.push(0.to_string()); // is_long
|
insert_values.push(0.to_string()); // is_long
|
||||||
}
|
|
||||||
|
|
||||||
insert_one_record(&insert_table_name, &insert_columns, &insert_values).await;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
insert_one_record(&insert_table_name, &insert_columns, &insert_values).await;
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user