/// <summary>
        /// 重写 Main页面 商品类别列表页面 数据
        /// </summary>
        /// <param name="page"></param>
        /// <param name="size"></param>
        /// <param name="moduleID"></param>
        /// <returns></returns>
        public IEnumerable<CommodityDiscountInfoCNb> CommodityInfoQueryByPage(int page, int size, string moduleID, string strSearch)
        {
            //Init
            int iIndex = (page - 1) * size;

            //Result
            List<CommodityDiscountInfoCNa> result = new List<CommodityDiscountInfoCNa>();

            //Query
            IEnumerable<CommodityDiscountInfoCNa> list = new CommodityDiscountInfoDAL().CommodityInfoQueryByPage(page, size, moduleID, strSearch);

            //需要进行筛选
            DateTime now = DateTime.Now;

            //1.需要排除掉折扣 - 时间筛选
            IEnumerable<string> excludeID = list.Where(x => x.RealStartTime != null &&
                                                            ((DateTime.Compare(Convert.ToDateTime(x.RealStartTime), now) < 0 &&
                                                              DateTime.Compare(Convert.ToDateTime(x.RealEndTime), now) < 0) ||
                                                              DateTime.Compare(Convert.ToDateTime(x.RealStartTime), now) > 0)).
                                                 Select(x => x.DiscountID).
                                                 Distinct();

            //2.相同时间段筛选
            foreach (var item in list.GroupBy(x => x.ID))
            {
                CommodityDiscountInfoCNa cItem = new CommodityDiscountInfoCNa();

                if (item.Count().Equals(1) && item.ElementAt(0).RealStartTime == null)
                { //没有折扣

                    //4.没有折扣的也要注意
                    cItem = item.ElementAt(0);
                    cItem.DiscountPrice = cItem.Price;
                    cItem.HasDiscount = false;
                }
                else
                { //有折扣

                    //3.最后保留一个数据
                    cItem = item.Where(x => !excludeID.Contains(x.DiscountID)).OrderByDescending(x => x.RealDiscountOpeDate).FirstOrDefault();

                    if (cItem == null)
                    {
                        CommodityDiscountInfoCNa itemInfo = item.ElementAt(0);
                        itemInfo.DiscountCount = 0;
                        itemInfo.DiscountFlag = 0;
                        itemInfo.DiscountID = string.Empty;
                        itemInfo.DiscountOpeDate = null;
                        itemInfo.DiscountPost = 0;
                        itemInfo.DiscountPrice = 0;
                        itemInfo.DiscountValue = 0;
                        itemInfo.RealDiscountOpeDate = null;
                        itemInfo.RealStartTime = null;
                        itemInfo.RealEndTime = null;
                        itemInfo.StartTime = null;
                        itemInfo.EndTime = null;

                        cItem = itemInfo;
                        cItem.DiscountPrice = cItem.Price;
                        cItem.HasDiscount = false;
                    }
                    else { cItem.HasDiscount = true; }
                }

                result.Add(cItem);
            }

            //Convert
            IEnumerable<CommodityDiscountInfoCNb> resultNa = result.Select(x =>
            {
                return new CommodityDiscountInfoCNb()
                {
                    ID = x.ID,
                    MID = x.MID,
                    StoreID = x.StoreID,
                    Title = x.Title,
                    Price = x.Price,
                    Intro = x.Intro,
                    Remark = x.Remark,
                    Photo = x.Photo,
                    Flag = x.Flag,
                    DiscountFlag = x.DiscountFlag,
                    PostType = x.PostType,
                    PostPrice = x.PostPrice,
                    iOrder = x.iOrder,
                    OpeDate = x.OpeDate == null ? string.Empty : x.OpeDate.ToString(),
                    State = x.State,
                    Stock = x.Stock,
                    DiscountValue = x.DiscountValue,
                    DiscountPrice = x.DiscountPrice,
                    DiscountCount = x.DiscountCount,
                    StartTime = x.StartTime == null ? string.Empty : x.StartTime.ToString(),
                    EndTime = x.EndTime == null ? string.Empty : x.EndTime.ToString(),
                    DiscountPost = x.DiscountPost,
                    IsEndCommodity = x.IsEndCommodity,
                    DiscountOpeDate = x.DiscountOpeDate == null ? string.Empty : x.DiscountOpeDate.ToString(),
                    HasDiscount = x.HasDiscount
                };
            });

            return resultNa.Skip(iIndex).Take(size);
        }