/// <summary> /// 获取某时间段每天的销售额。 /// </summary> /// <param name="timeType">1:自然周,2:自然月,3:季度</param> /// <returns></returns> public async Task <SaleroomResult> GetSaleroomAsync(string timeType) { SaleroomList data = null; SaleroomResult result = new SaleroomResult(); string startTime = string.Empty; string endTime = string.Empty; string[] times = null; string[] limits = null; switch (timeType) { case "1": { //DateTimeExtensions.GetMondayDate().ToString("yyyy-MM-dd"); // DateTimeExtensions.GetSundayDate().AddDays(+1).ToString("yyyy-MM-dd"); // DateTimeExtensions.GetMondayDate().AddDays(+i).ToString("yyyy-MM-dd"); startTime = DateTime.Now.AddDays(-6).ToString("yyyy-MM-dd"); endTime = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd"); times = new string[7]; limits = new string[7]; for (int i = 0; i < 7; i++) { times[i] = DateTime.Now.AddDays(+(i - 6)).ToString("yyyy-MM-dd"); limits[i] = "0.00"; } } break; case "2": { //DateTimeExtensions.FirstDayOfMonth().ToString("yyyy-MM-dd"); //DateTimeExtensions.LastDayOfMonth().AddDays(+1).ToString("yyyy-MM-dd"); //DateTimeExtensions.FirstDayOfMonth().AddDays(+i).ToString("yyyy-MM-dd"); startTime = DateTime.Now.AddDays(-29).ToString("yyyy-MM-dd"); endTime = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd"); times = new string[30]; limits = new string[30]; for (int i = 0; i < 30; i++) { times[i] = DateTime.Now.AddDays(+(i - 29)).ToString("yyyy-MM-dd"); limits[i] = "0.00"; } } break; case "3": { //startTime = DateTimeExtensions.ToFirstDayOfSeason().ToString("yyyy-MM-dd"); //endTime = DateTimeExtensions.ToLastDayOfSeason().AddDays(+1).ToString("yyyy-MM-dd"); // times[i] = DateTimeExtensions.ToFirstDayOfSeason().AddDays(+i).ToString("yyyy-MM-dd"); startTime = DateTime.Now.AddDays(-89).ToString("yyyy-MM-dd"); endTime = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd"); int days = DateTimeExtensions.DateDiff() + 1; times = new string[90]; limits = new string[90]; for (int i = 0; i < 90; i++) { times[i] = DateTime.Now.AddDays(+(i - 89)).ToString("yyyy-MM-dd"); limits[i] = "0.00"; } } break; default: break; } data = await LeadDataDataAccess.Instance.GetSaleroomAsync(startTime, endTime); foreach (var item in data.Lists) { if (((IList)times).Contains(item.Date)) //判断那天有数据。 { //data中数据插入到数组中。 limits[times.ToList().IndexOf(item.Date)] = item.Limit; } } for (int i = 0; i < times.Length; i++) { try { times[i] = Convert.ToDateTime(times[i]).ToString("MM-dd"); } catch { } } result.date = times; result.limit = limits; return(result); }
/// <summary> /// 获取截止到统计日期的累计销售额。rjy 2018年10月10日14:45:07 /// </summary> /// <param name="timeType">1:自然周,2:自然月,3:季度</param> /// <returns></returns> public async Task <SaleroomResult> GetNewSaleroomAsync(string timeType) { SaleroomListTwo data = await LeadDataDataAccess.Instance.GetNewSaleroomAsync(DateTime.Now.AddDays(+1).ToString("yyyy-MM-dd"));; SaleroomResult result = new SaleroomResult(); string startTime = string.Empty; string endTime = string.Empty; string[] times = null; string[] limits = null; switch (timeType) { case "1": { times = new string[7]; limits = new string[7]; for (int i = 0; i < 7; i++) { times[i] = DateTime.Now.AddDays(+(i - 6)).ToString("MM-dd"); endTime = DateTime.Now.AddDays(+(i - 5)).ToString("yyyy-MM-dd"); limits[i] = data.Lists.Where(p => p.Date < Convert.ToDateTime(endTime)).Sum(p => Convert.ToDecimal(p.Limit)).ToString(); } } break; case "2": { times = new string[30]; limits = new string[30]; for (int i = 0; i < 30; i++) { times[i] = DateTime.Now.AddDays(+(i - 29)).ToString("MM-dd"); endTime = DateTime.Now.AddDays(+(i - 28)).ToString("yyyy-MM-dd"); limits[i] = data.Lists.Where(p => p.Date < Convert.ToDateTime(endTime)).Sum(p => Convert.ToDecimal(p.Limit)).ToString(); } } break; case "3": { times = new string[90]; limits = new string[90]; for (int i = 0; i < 90; i++) { times[i] = DateTime.Now.AddDays(+(i - 89)).ToString("MM-dd"); endTime = DateTime.Now.AddDays(+(i - 88)).ToString("yyyy-MM-dd"); limits[i] = data.Lists.Where(p => p.Date < Convert.ToDateTime(endTime)).Sum(p => Convert.ToDecimal(p.Limit)).ToString(); } } break; default: break; } result.date = times; result.limit = limits; return(result); }