/// <summary>
        /// 商品关联折扣信息数据查询:商品详情页面用
        /// </summary>
        /// <param name="commodityID"></param>
        /// <returns></returns>
        public CommodityDiscountInfoCNb CommodityInfoQueryOnce(string commodityID)
        {
            //Query
            IEnumerable<CommodityDiscountInfoCNa> list = new CommodityDiscountInfoDAL().CommodityInfoQueryOnce(" COMM.ID = @ID", new { ID = commodityID });

            //开始折扣筛选
            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();

            //第一阶段结果集
            CommodityDiscountInfoCNa cItem = new CommodityDiscountInfoCNa();

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

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

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

                if (cItem == null)
                {
                    CommodityDiscountInfoCNa itemInfo = list.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; }
            }

            //第二阶段结果集
            CommodityDiscountInfoCNb result = new CommodityDiscountInfoCNb()
            {
                ID = cItem.ID,
                MID = cItem.MID,
                StoreID = cItem.StoreID,
                Title = cItem.Title,
                Price = cItem.Price,
                Intro = cItem.Intro,
                Remark = cItem.Remark,
                Photo = cItem.Photo,
                Flag = cItem.Flag,
                DiscountFlag = cItem.DiscountFlag,
                PostType = cItem.PostType,
                PostPrice = cItem.PostPrice,
                iOrder = cItem.iOrder,
                OpeDate = cItem.OpeDate == null ? string.Empty : cItem.OpeDate.ToString(),
                State = cItem.State,
                Stock = cItem.Stock,
                DiscountValue = cItem.DiscountValue,
                DiscountPrice = cItem.DiscountPrice,
                DiscountCount = cItem.DiscountCount,
                StartTime = cItem.StartTime == null ? string.Empty : cItem.StartTime.ToString(),
                EndTime = cItem.EndTime == null ? string.Empty : cItem.EndTime.ToString(),
                DiscountPost = cItem.DiscountPost,
                IsEndCommodity = cItem.IsEndCommodity,
                DiscountOpeDate = cItem.DiscountOpeDate == null ? string.Empty : cItem.DiscountOpeDate.ToString(),
                HasDiscount = cItem.HasDiscount
            };

            return result;
        }