public override void HandleCore(PrivateMessageReceivedContext context) { MahuaApi.SendPrivateMessage(context.FromQq) .Text("Begin Get User Asset") .Done(); var userAssets = _userAssetService.GetUserAssets(); if (userAssets.Any()) { var assets = userAssets.Where(x => x.Value.AsUsdt > 1).OrderByDescending(x => x.Value.AsUsdt).ToArray(); foreach (var kv in assets) { MahuaApi.SendPrivateMessage(context.FromQq) .Text(kv.Key.ToUpperInvariant()) .Newline() .Text((kv.Value.Balance + kv.Value.Locked).ToString("e2")) .Newline() .Text(kv.Value.AsUsdt.ToString("'$' 0000000.000")) .Done(); } var totalusd = assets.Sum(x => x.Value.AsUsdt); var totalyuan = totalusd * 6.5M; MahuaApi.SendPrivateMessage(context.FromQq) .Text("Total:") .Text(totalusd.ToString("'$' 0000000.00")) .Text(totalyuan.ToString("'¥' 0000000.00")) .Done(); } else { MahuaApi.SendPrivateMessage(context.FromQq, "获取失败或没有任何资产"); } }
public override void HandleCore(PrivateMessageReceivedContext context) { MahuaApi.SendPrivateMessage(context.FromQq) .Text("Begin Get User Orders") .Done(); var userAssets = _assetService.GetUserAssets(); if (userAssets.Any()) { var orderApi = _okexApiFactory.Create <IOrderApi>(); var orders = new List <Order>(); var assets = userAssets.OrderByDescending(x => x.Value.AsUsdt).ToArray(); foreach (var kv in assets) { if (kv.Key == "usdt") { continue; } var market = $"{kv.Key}_usdt"; var getOrdersInput = new GetOrdersInput { Order_Id = "-1", Symbol = market, }.WithSign(); var output = orderApi.GetOrders(getOrdersInput).GetAwaiter().GetResult(); if (output.Result) { orders.AddRange(output.Orders); } else { MahuaApi.SendPrivateMessage(context.FromQq) .Text($"{market} No Orders") .Done(); } } foreach (var order in orders.Where(x => x.Status == Order.OrderStatus.Doing || x.Status == Order.OrderStatus.Some)) { var dealPercetion = order.DealAmount / order.Amount * 100M; var ticker = _tickerProvider.GetTikcer(order.Symbol); MahuaApi.SendPrivateMessage(context.FromQq) .Text($"{order.Symbol} {order.Type:G}") .Newline() .Text($"Price:{order.Price:E6}") .Newline() .Text($"Amount:({dealPercetion:###.00}){order.DealAmount:e2}/{order.Amount:e2} ") .Newline() .Text($"USD:{order.DealAmount * ticker.Last:0000000.00}/{order.Amount * ticker.Last:0000000.00}") .Done(); } } else { MahuaApi.SendPrivateMessage(context.FromQq) .Text("No Orders") .Done(); } }
public override void HandleCore(PrivateMessageReceivedContext context) { MahuaApi.SendPrivateMessage(context.FromQq) .Text("0:Get Menu").Newline() .Text("1:Get Asset").Newline() .Text("2:Get Orders") .Done(); }