Example #1
0
        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);
        }
Example #2
0
        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);
        }