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 }); }