public IList <Wuyiju.View.LineChartJS> GetCount(Wuyiju.View.LineChartJS.Query query) { StringBuilder sql = new StringBuilder(@"select count(*) as count, FROM_UNIXTIME(add_time) as add_time from ec_order where 1=1 "); sql.AndDateBetween("add_time", "startdate", "enddate"); sql.AppendFormat(" group by FROM_UNIXTIME(add_time,'%Y%m%d') "); DynamicParameters param = new DynamicParameters(); if (query != null) { param.AddDynamicParams(query); } return(db.GetList <Wuyiju.View.LineChartJS>(sql, param)); }
public IList <Wuyiju.View.LineChartJS> GetCount(Wuyiju.View.LineChartJS.Query query) { int subday = query.EndDate.Subtract(query.StartDate).Days; if (subday > 1000 || subday < 1) { throw new ApplicationException("统计间隔不能超过1000天或少于1天"); } query.StartDate = new DateTime(query.StartDate.Year, query.StartDate.Month, query.StartDate.Day, 0, 0, 0); query.EndDate = new DateTime(query.EndDate.Year, query.EndDate.Month, query.EndDate.Day, 23, 59, 59); using (var db = new DataContext()) { var _dao = this.GetDao(db); var lst = _dao.GetCount(query); var results = new List <Wuyiju.View.LineChartJS>(); for (int i = 0; i < subday; i++) { var tmp = query.StartDate.AddDays(i).Date; if (lst != null) { var items = lst.Where(d => d.Add_Time.HasValue && d.Add_Time.Value.Date.Equals(tmp)).ToList(); if (items != null && items.Count > 0) { results.Add(items[0]); continue; } } var item = new Wuyiju.View.LineChartJS { Count = 0, Add_Time = tmp }; results.Add(item); } return(results); } }