/// <summary> /// 获取活动列表 /// </summary> /// <param name="query"></param> /// <returns></returns> public static QueryPageModel <FullDiscountActiveList> GetActives(FullDiscountActiveQuery query) { QueryPageModel <FullDiscountActiveList> result = new QueryPageModel <FullDiscountActiveList>(); var datalist = _iFullDiscountService.GetActives(query); result.Total = datalist.Total; var actids = datalist.Models.Select(d => d.Id).ToList(); var fdparg = _iFullDiscountService.GetActivesProductCountAggregate(actids); result.Models = new List <FullDiscountActiveList>(); foreach (var item in datalist.Models) { FullDiscountActiveList _data = Mapper.Map <ActiveInfo, FullDiscountActiveList>(item); if (_data.IsAllProduct) { _data.ProductCount = -1; } else { var _parg = fdparg.FirstOrDefault(d => d.ActiveId == _data.Id); if (_parg != null) { _data.ProductCount = _parg.ProductCount; } } result.Models.Add(_data); } return(result); }
/// <summary> /// 根据诊所查询活动 /// </summary> /// <param name="shopId"></param> /// <returns></returns> public static List <ActiveInfo> GetOngoingActiveByShopId(long shopId) { FullDiscountActiveQuery discountActiveQuery = new FullDiscountActiveQuery(); discountActiveQuery.ShopId = new long?(shopId); discountActiveQuery.PageSize = int.MaxValue; discountActiveQuery.Status = new FullDiscountStatus?(FullDiscountStatus.Ongoing); FullDiscountActiveQuery query = discountActiveQuery; QueryPageModel <FullDiscountActiveList> queryPageModel = new QueryPageModel <FullDiscountActiveList>(); return(FullDiscountApplication._iFullDiscountService.GetActives(query).Models); }
/// <summary> /// 获取商家正在参加的满额减 /// </summary> /// <param name="proId"></param> /// <param name="shopId"></param> /// <returns></returns> public static List <Entities.ActiveInfo> GetOngoingActiveByShopId(long shopId) { FullDiscountActiveQuery query = new FullDiscountActiveQuery() { ShopId = shopId, PageNo = 1, PageSize = int.MaxValue, Status = FullDiscountStatus.Ongoing }; QueryPageModel <FullDiscountActiveList> result = new QueryPageModel <FullDiscountActiveList>(); var datalist = Service.GetActives(query); return(datalist.Models); }
public JsonResult PostActiveList(string activeName, FullDiscountStatus?status, DateTime?startTime, DateTime?endTime, int page, int rows) { if (startTime.HasValue) { startTime = startTime.Value.Date; } if (endTime.HasValue) { endTime = endTime.Value.AddDays(1).Date; } var query = new FullDiscountActiveQuery(); query.ShopId = CurShopId; query.ActiveName = activeName; query.Status = status; query.StartTime = startTime; query.EndTime = endTime; query.PageNo = page; query.PageSize = rows; var data = FullDiscountApplication.GetActives(query); var datalist = data.Models.ToList(); return(Json(new { rows = datalist, total = data.Total })); }
/// <summary> /// 获取活动列表 /// </summary> /// <param name="query"></param> /// <returns></returns> public QueryPageModel <ActiveInfo> GetActives(FullDiscountActiveQuery query) { QueryPageModel <ActiveInfo> result = new QueryPageModel <ActiveInfo>(); var curtime = DateTime.Now; int total = 0; if (query.Status != null) //有状态不过UNION all { #region 普通排序走ef var _where = Context.ActiveInfo.GetDefaultPredicate(true); _where = _where.And(d => d.ActiveType == CurrentActiveType); if (query.StartTime.HasValue) { var startTime = query.StartTime.Value.Date; _where = _where.And(d => d.StartTime >= startTime); } if (query.EndTime.HasValue) { DateTime EndTime = query.EndTime.Value.AddDays(1).Date; _where = _where.And(d => d.StartTime <= EndTime); } if (query.ShopId.HasValue) { _where = _where.And(d => d.ShopId == query.ShopId.Value); } if (!string.IsNullOrWhiteSpace(query.ActiveName)) { _where = _where.And(d => d.ActiveName.Contains(query.ActiveName)); } switch (query.Status) { case FullDiscountStatus.Ending: _where = _where.And(d => d.EndTime < curtime); break; case FullDiscountStatus.Ongoing: _where = _where.And(d => d.StartTime <= curtime && d.EndTime >= curtime); break; case FullDiscountStatus.WillStart: _where = _where.And(d => d.StartTime > curtime && d.EndTime > d.StartTime); break; } var sql = Context.ActiveInfo.Where(_where); var order = sql.GetOrderBy(d => d.OrderByDescending(o => o.StartTime)); List <ActiveInfo> datalist = sql.GetPage(out total, query.PageNo, query.PageSize, order).ToList(); result.Models = datalist; result.Total = total; #endregion } else { string sqlbasestring = @"select * from ( SELECT *,1 as ordernum from Himall_Active where EndTime<NOW() {where} UNION ALL SELECT *,2 as ordernum from Himall_Active where StartTime>NOW() {where} UNION ALL SELECT *,3 as ordernum from Himall_Active where StartTime<=NOW() and EndTime>=now() {where} ) as t"; string wherestring = " and ActiveType=" + CurrentActiveType.GetHashCode().ToString() + " "; if (query.ShopId.HasValue) { wherestring += " and ShopId=" + query.ShopId.ToString() + " "; } if (!string.IsNullOrWhiteSpace(query.ActiveName)) { wherestring += " and ActiveName like '%" + query.ActiveName + "%' "; } if (query.StartTime.HasValue) { wherestring += " and StartTime >= '" + query.StartTime.Value.ToString("yyyy-MM-dd HH:mm:ss") + "' "; } if (query.EndTime.HasValue) { DateTime EndTime = query.EndTime.Value.AddDays(1).Date; wherestring += " and StartTime <= '" + EndTime.ToString("yyyy-MM-dd HH:mm:ss") + "' "; } sqlbasestring = sqlbasestring.Replace("{where}", wherestring); string countsqlstring = @"select count(1) from (" + sqlbasestring + ") as t"; int pstart = (query.PageNo - 1) * query.PageSize; string sqlstring = sqlbasestring + " ORDER BY ordernum DESC, StartTime desc limit " + pstart + "," + query.PageSize; total = Context.Database.SqlQuery <int>(countsqlstring).FirstOrDefault(); result.Total = total; List <ActiveInfo> datas = Context.Database.SqlQuery <ActiveInfo>(sqlstring).ToList(); result.Models = datas; } return(result); }