public List <MarketGroupVM> GetMarkets(string mobile, int flag, string fla1) { var list = new List <MarketGroupVM>(); using (var ctx = new ShtxSms2008Entities()) { //change:// //var groups = ctx.XHMarketGroups.Where(o => o.Flag == flag && o.IsForApp); var groups = CacheService.GetMarketGroupForApp(flag); foreach (var group in groups) { var groupId = group.GroupID; var vm = new MarketGroupVM() { Id = groupId, Name = group.GroupName }; //change:// //vm.Market = ctx.Markets.Where(o => o.GroupID == groupId).Select(o => new MarketVM { Id = o.MarketId, Name = o.MarketName, Order = (int)o.DisplayOrder }).OrderBy(o => o.Order).ToList(); vm.Market = CacheService.GetMarketByGroupId(groupId).Select(o => new MarketVM { Id = o.MarketId, Name = o.MarketName, Order = (int)o.DisplayOrder }).OrderBy(o => o.Order).ToList(); list.Add(vm); } } return(list); }
public List <MarketGroupVM> GetMarkets(string mobile, int flag) { var list = new List <MarketGroupVM>(); var listOrder = new List <int>(); var defaultOrder = new List <int>(); //var threePl = TakeNPLEachGroup(3); var threePl = new Dictionary <int, IEnumerable <Weixin_Pinglun> >(); //判断是否是评论或价格 if (flag == (int)EnumMarketFlag.WXMarket) { threePl = TakeNPLEachGroup(3); } using (var ctx = new ShtxSms2008Entities()) { if (!string.IsNullOrWhiteSpace(mobile)) { listOrder.AddRange(ctx.MyAppGroups.Where(o => o.tel == mobile && o.Flag == flag).OrderByDescending(o => o.DisplayOrder).Select(o => o.GroupID)); if (listOrder.Count == 0) { //change:// //defaultOrder.AddRange(ctx.XHMarketGroups.Where(o => o.Flag == flag && o.IsForApp && (o.IsDefault ?? false)).Select(o => o.GroupID)); defaultOrder.AddRange(CacheService.GetGroupsForApp(flag)); } } //change:// //var groups = ctx.XHMarketGroups.Where(o => o.Flag == flag && o.IsForApp); var groups = CacheService.GetMarketGroupForApp(flag); foreach (var group in groups) { var groupId = group.GroupID; var vm = new MarketGroupVM() { Id = groupId, Name = group.GroupName }; //change:// //var markets = ctx.Markets.Where(o => o.GroupID == groupId).Select(o => new MarketVM { Id = o.MarketId, Name = o.MarketName, Order = (int)o.DisplayOrder }).OrderBy(o => o.Order).ToList(); var markets = CacheService.GetMarketByGroupId(groupId).Select(o => new MarketVM { Id = o.MarketId, Name = o.MarketName, Order = (int)o.DisplayOrder }).OrderBy(o => o.Order).ToList(); //评论显示,显示三条最新的。 if (flag == (int)EnumMarketFlag.WXMarket) { foreach (var market in markets) { //change:// //var hasProducts = ctx.SmsProducts.Where(o => o.MarketId == market.Id).Select(o => o.ProductId).ToList(); //var pls = ctx.Weixin_Pinglun.OrderByDescending(o => o.create).Where(o => hasProducts.Contains(o.productId)).Take(3).ToList(); var hasProducts = CacheService.GetProductByMarketId(market.Id).Select(o => o.ProductId).ToList(); var pls = threePl.Where(o => hasProducts.Contains(o.Key)).SelectMany(o => o.Value).OrderByDescending(o => o.create).Take(3).ToList(); List <OrderPLVM> orderPls = new List <OrderPLVM>(); foreach (var pl in pls) { OrderPLVM orderPlVM = new OrderPLVM(); orderPlVM.Id = pl.id; orderPlVM.Title = pl.title; orderPlVM.Date = pl.date.ToString("yyyy-MM-dd"); orderPlVM.Url = "http://app.shtx.com.cn/StaticHtml/WeixinPingLun.html?mobile=" + mobile + "&id=" + pl.id; orderPls.Add(orderPlVM); } market.OrderPL = orderPls; } } vm.Market = markets; vm.inBucket = "false"; if (string.IsNullOrWhiteSpace(mobile)) { vm.inBucket = "true"; } else { if (listOrder.Count == 0 && defaultOrder.Count == 0) { vm.inBucket = "true"; list.Add(vm); continue; } if (listOrder.Count != 0) { if (listOrder.Contains(groupId)) { vm.inBucket = "true"; list.Add(vm); continue; } } else { if (defaultOrder.Count != 0) { if (defaultOrder.Contains(groupId)) { vm.inBucket = "true"; } } } } list.Add(vm); } if (listOrder.Count != 0) { //排序订阅的 for (int i = 0; i < listOrder.Count; i++) { var group = list.FirstOrDefault(o => o.Id == listOrder[i]); if (group != null) { list.Remove(group); list.Insert(0, group); } } } } if (!string.IsNullOrWhiteSpace(mobile)) { //插入我的关注 MarketGroupVM root = new MarketGroupVM(); root.Id = 0; root.Name = "我的关注"; root.inBucket = "true"; var myOrder = GetMyOrderMarkets(mobile, flag, threePl); root.Market = myOrder; list.Insert(0, root); } return(list); }