public async Task ResetDogStatCurrency(string userName, string symbolName)
        {
            var dateList = new List <string>();

            for (int i = 0; i <= 15 * 1; i = i + 1)
            {
                var date = DateTime.Now.AddDays(0 - i).ToString("yyyy-MM-dd");
                dateList.Add(date);
            }

            var allStatSymbolList = new DogStatSymbolDao().ListDogStatSymbol(userName, dateList);
            var allSymbolList     = allStatSymbolList.Select(it => it.SymbolName).Distinct().ToList();

            foreach (var sysbolNameItem in allSymbolList)
            {
                var result = allStatSymbolList.FindAll(it => it.SymbolName == sysbolNameItem);

                result.Sort((a, b) =>
                {
                    return(string.Compare(b.StatDate, a.StatDate));
                });

                for (var i = result.Count - 1; i > 1; i--)
                {
                    Console.WriteLine($"{result[i].EarnAmount}, {result[i - 1].EarnAmount}");
                    if (result[i].EarnAmount > result[i - 1].EarnAmount)
                    {
                        result[i - 1].EarnAmount = result[i].EarnAmount;
                        new DogStatSymbolDao().UpdateDogStatSymbol(result[i - 1]);
                    }
                }
            }
        }
        public async Task <object> ListDogStatCurrency(string userName, int intervalDay = 1)
        {
            aaa++;

            var dateList = new List <string>();

            if (intervalDay < 1)
            {
                intervalDay = 1;
            }

            for (int i = 0; i <= 15 * intervalDay; i = i + intervalDay)
            {
                var date = DateTime.Now.AddDays(0 - i).ToString("yyyy-MM-dd");
                dateList.Add(date);
            }

            var result     = new DogStatSymbolDao().ListDogStatSymbol(userName, dateList);
            var symbolList = result.Select(it => it.SymbolName).Distinct().ToList();

            symbolList.Sort((a, b) =>
            {
                if (a == "usdt" || a == "btc" || a == "eth" || a == "ht" || a == "hpt")
                {
                    return(-1);
                }
                if (b == "usdt" || b == "btc" || b == "eth" || b == "ht" || b == "hpt")
                {
                    return(1);
                }

                return(string.Compare(a, b));
            });

            List <Dictionary <string, string> > data = new List <Dictionary <string, string> >();

            foreach (var symbol in symbolList)
            {
                Dictionary <string, string> item = new Dictionary <string, string>();
                item.Add("symbolName", symbol);
                for (int i = 0; i <= 30; i++)
                {
                    var date = DateTime.Now.AddDays(0 - i).ToString("yyyy-MM-dd");
                    item.Add(date, result.Find(it => it.SymbolName == symbol && it.StatDate == date)?.EarnAmount.ToString() ?? "");
                }
                data.Add(item);
            }

            var closeDic = await GetUsdtPrice();

            if (aaa % 2 == 0)
            {
                try
                {
                    var date = DateTime.Now.ToString("yyyy-MM-dd");
                    data.Sort((a, b) =>
                    {
                        if (a["symbolName"] == "usdt" || a["symbolName"] == "btc" || a["symbolName"] == "eth" || a["symbolName"] == "ht" || a["symbolName"] == "hpt")
                        {
                            return(-1);
                        }
                        if (b["symbolName"] == "usdt" || b["symbolName"] == "btc" || b["symbolName"] == "eth" || b["symbolName"] == "ht" || a["symbolName"] == "hpt")
                        {
                            return(1);
                        }

                        if (!closeDic.ContainsKey(a["symbolName"]) || !closeDic.ContainsKey(a["symbolName"]))
                        {
                            return(0);
                        }

                        try
                        {
                            if (decimal.Parse(a[date]) * closeDic[a["symbolName"]] > decimal.Parse(b[date]) * closeDic[b["symbolName"]])
                            {
                                return(1);
                            }
                            return(-1);
                        }
                        catch (Exception ex)
                        {
                            logger.Error("-----> " + ex.Message, ex);
                            Console.WriteLine(closeDic[a["symbolName"]]);
                            Console.WriteLine(closeDic[b["symbolName"]]);
                            Console.WriteLine(a[date]);
                            Console.WriteLine(b[date]);
                            return(0);
                        }
                    });
                }
                catch (Exception ex)
                {
                    logger.Error(ex.Message, ex);
                }
            }

            return(new { data, dateList, closeDic });
        }