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();
            }
        }
Exemplo n.º 3
0
 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();
 }