/// <summary> /// 获取截止到统计日期的累计销售额 rjy 2018年10月10日11:51:13 /// </summary> /// <param name="endTime">结束时间</param> /// <returns>有记录当天的销售总额,没有过滤掉未付款的</returns> public async Task <SaleroomListTwo> GetNewSaleroomAsync(string endTime) { string sql = string.Format(@"SELECT SUM( CASE WHEN order_status = 0 THEN price_total ELSE - price_total END ) AS 'limit',convert(char(8),create_time,112) as 'date' FROM order_main_spnc WHERE create_time < '{0}' group by convert(char(8),create_time,112)" , endTime); SaleroomTwo temp = null; SaleroomListTwo result = new SaleroomListTwo { Lists = new List <SaleroomTwo>() }; var list = await DapperHelper.GetListAsync <Saleroom>(sql, this._conn); foreach (var item in list) { temp = new SaleroomTwo { Date = Convert.ToDateTime(item.Date.Insert(4, "-").Insert(7, "-")), //处理字符串,20180902(2018-09-02) Limit = item.Limit }; result.Lists.Add(temp); } return(result ?? null); }
/// <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); }