|
|
@@ -1,6 +1,6 @@
|
|
|
use std::collections::{BTreeMap};
|
|
|
use async_trait::async_trait;
|
|
|
-use chrono::{FixedOffset, NaiveDateTime, TimeZone};
|
|
|
+use chrono::{DateTime, FixedOffset, Utc};
|
|
|
use rust_decimal::prelude::ToPrimitive;
|
|
|
use serde::{Deserialize, Serialize};
|
|
|
use tracing::{warn};
|
|
|
@@ -109,7 +109,13 @@ async fn get_trades(mut request: BybitSwapRest, symbol: String, start_time: i64,
|
|
|
let trades_info: Vec<TradesSwap> = serde_json::from_str(&*data_clone["list"].to_string()).unwrap();
|
|
|
cursor = data_clone["nextPageCursor"].as_str().unwrap_or("").to_string();
|
|
|
for value in trades_info.iter() {
|
|
|
- let time = FixedOffset::east_opt(8 * 3600).unwrap().from_utc_datetime(&NaiveDateTime::from_timestamp_millis(value.exec_time.parse::<i64>().unwrap()).unwrap()).format("%Y-%m-%d %H:%M:%S%.3f").to_string();
|
|
|
+ let exec_time_i64 = value.exec_time.parse::<i64>().unwrap();
|
|
|
+ let utc_datetime = DateTime::<Utc>::from_timestamp_millis(exec_time_i64)
|
|
|
+ .expect("Invalid timestamp");
|
|
|
+ let fixed_offset = FixedOffset::east_opt(8 * 3600).expect("Invalid timezone offset");
|
|
|
+ let converted_datetime = utc_datetime.with_timezone(&fixed_offset);
|
|
|
+ let exec_time = converted_datetime.format("%Y-%m-%d %H:%M:%S%.3f").to_string();
|
|
|
+
|
|
|
let order_type = value.order_type.clone();
|
|
|
|
|
|
data_array.push(vec![
|
|
|
@@ -123,7 +129,7 @@ async fn get_trades(mut request: BybitSwapRest, symbol: String, start_time: i64,
|
|
|
value.exec_value.clone(),
|
|
|
value.exec_fee.clone(),
|
|
|
value.fee_rate.clone(),
|
|
|
- time,
|
|
|
+ exec_time,
|
|
|
]);
|
|
|
}
|
|
|
|
|
|
@@ -173,8 +179,19 @@ async fn get_position_pnl(mut request: BybitSwapRest, symbol: String, start_time
|
|
|
let trades_info: Vec<PositionPnlSwap> = serde_json::from_str(&*data_clone["list"].to_string()).unwrap();
|
|
|
cursor = data_clone["nextPageCursor"].as_str().unwrap_or("").to_string();
|
|
|
for value in trades_info.iter() {
|
|
|
- let create_time = FixedOffset::east_opt(8 * 3600).unwrap().from_utc_datetime(&NaiveDateTime::from_timestamp_millis(value.created_time.parse::<i64>().unwrap()).unwrap()).format("%Y-%m-%d %H:%M:%S%.3f").to_string();
|
|
|
- let update_time = FixedOffset::east_opt(8 * 3600).unwrap().from_utc_datetime(&NaiveDateTime::from_timestamp_millis(value.updated_time.parse::<i64>().unwrap()).unwrap()).format("%Y-%m-%d %H:%M:%S%.3f").to_string();
|
|
|
+ let created_time_i64 = value.created_time.parse::<i64>().unwrap();
|
|
|
+ let utc_datetime = DateTime::<Utc>::from_timestamp_millis(created_time_i64)
|
|
|
+ .expect("Invalid timestamp");
|
|
|
+ let fixed_offset = FixedOffset::east_opt(8 * 3600).expect("Invalid timezone offset");
|
|
|
+ let converted_datetime = utc_datetime.with_timezone(&fixed_offset);
|
|
|
+ let create_time = converted_datetime.format("%Y-%m-%d %H:%M:%S%.3f").to_string();
|
|
|
+
|
|
|
+ let created_time_i64 = value.updated_time.parse::<i64>().unwrap();
|
|
|
+ let utc_datetime = DateTime::<Utc>::from_timestamp_millis(created_time_i64)
|
|
|
+ .expect("Invalid timestamp");
|
|
|
+ let fixed_offset = FixedOffset::east_opt(8 * 3600).expect("Invalid timezone offset");
|
|
|
+ let converted_datetime = utc_datetime.with_timezone(&fixed_offset);
|
|
|
+ let update_time = converted_datetime.format("%Y-%m-%d %H:%M:%S%.3f").to_string();
|
|
|
|
|
|
data_array.push(vec![
|
|
|
value.order_id.clone(),
|