예제 #1
0
파일: ReviewDA.cs 프로젝트: sanlonezhang/ql
        /// <summary>
        /// 得到位用户评论评分
        /// </summary>
        /// <param name="reviewQueryInfo"></param>
        /// <returns></returns>
        public static Product_ReviewMaster GetProductReviewMaster(int productSysNo)
        {
            Product_ReviewMaster reviewMasterInfo = new Product_ReviewMaster();
            DataCommand          dataCommand      = DataCommandManager.GetDataCommand("ProductReview_GetProductReviewMaster");

            dataCommand.SetParameterValue("@ProductSysNo", productSysNo);
            SetCommandDefaultParameters(dataCommand);
            DataSet result = dataCommand.ExecuteDataSet();

            if (result != null && result.Tables.Count > 0)
            {
                DataTable reviewMasterInfoTable = result.Tables[0];
                if (reviewMasterInfoTable.Rows != null && reviewMasterInfoTable.Rows.Count > 0)
                {
                    reviewMasterInfo = DataMapper.GetEntity <Product_ReviewMaster>(reviewMasterInfoTable.Rows[0]);
                }

                if (result.Tables.Count > 1)
                {
                    DataTable scoreNameTable = result.Tables[1];
                    if (scoreNameTable.Rows != null && scoreNameTable.Rows.Count > 0 && reviewMasterInfo != null)
                    {
                        reviewMasterInfo.ScoreNameList = new List <string>();
                        foreach (DataRow row in scoreNameTable.Rows)
                        {
                            reviewMasterInfo.ScoreNameList.Add(row["Name"].ToString());
                        }
                    }
                }

                if (result.Tables.Count > 2)
                {
                    DataTable customerListTable = result.Tables[2];
                    if (customerListTable.Rows != null && customerListTable.Rows.Count > 0 && reviewMasterInfo != null)
                    {
                        reviewMasterInfo.CustomerList = DataMapper.GetEntityList <CustomerInfo, List <CustomerInfo> >(customerListTable.Rows);
                    }
                }
            }

            return(reviewMasterInfo);
        }
예제 #2
0
파일: ReviewDA.cs 프로젝트: sanlonezhang/ql
        /// <summary>
        /// 获取品论详情
        /// </summary>
        /// <param name="queryInfo"></param>
        /// <returns></returns>
        public static Product_ReviewDetail GetProductReviewInfo(Product_ReviewQueryInfo queryInfo)
        {
            DataCommand dataCommand = DataCommandManager.GetDataCommand("ProductReview_GetProductReviewInfoBySysNo");

            dataCommand.SetParameterValue("@SysNo", queryInfo.ReviewSysNo);
            dataCommand.SetParameterValue("@PageSize", queryInfo.PagingInfo.PageSize);
            dataCommand.SetParameterValue("@PageIndex", queryInfo.PagingInfo.PageIndex);
            SetCommandDefaultParameters(dataCommand);
            DataSet              result      = dataCommand.ExecuteDataSet();
            DataTable            masterTable = result.Tables[0];
            Product_ReviewDetail reviewInfo  = new Product_ReviewDetail();

            if (masterTable.Rows != null && masterTable.Rows.Count > 0)
            {
                reviewInfo = DataMapper.GetEntity <Product_ReviewDetail>(masterTable.Rows[0]);
                Product_ReviewMaster masterscore = GetProductReviewMaster(reviewInfo.ProductSysNo);
                if (masterscore != null && reviewInfo != null)
                {
                    reviewInfo.AvgScore = masterscore.AvgScore;

                    reviewInfo.ReviewCount = masterscore.ReviewCount;
                }
                DataTable itemTable = result.Tables[1];
                if (itemTable.Rows != null && itemTable.Rows.Count > 0)
                {
                    DataRow[] itemRows = itemTable.Select("ReviewSysNo=" + reviewInfo.SysNo);
                    DataTable newdt    = new DataTable();
                    newdt = itemTable.Clone();
                    foreach (DataRow row in itemRows)
                    {
                        newdt.ImportRow(row);
                    }
                    if (newdt != null && newdt.Rows.Count > 0)
                    {
                        List <Product_ReplyDetail> replyList = DataMapper.GetEntityList <Product_ReplyDetail, List <Product_ReplyDetail> >(newdt.Rows);
                        int totalCount    = Convert.ToInt32(dataCommand.GetParameterValue("@TotalCount"));
                        int webTotalCount = Convert.ToInt32(dataCommand.GetParameterValue("@WebTotalCount"));
                        int pageIndex     = queryInfo.PagingInfo.PageIndex;
                        if ((pageIndex * queryInfo.PagingInfo.PageSize) > totalCount)
                        {
                            if (totalCount != 0 && (totalCount % queryInfo.PagingInfo.PageSize) == 0)
                            {
                                pageIndex = (int)(totalCount / queryInfo.PagingInfo.PageSize);
                            }
                            else
                            {
                                pageIndex = (int)(totalCount / queryInfo.PagingInfo.PageSize) + 1;
                            }
                        }
                        //网友回复
                        reviewInfo.Replies = new PagedResult <Product_ReplyDetail>(webTotalCount, queryInfo.PagingInfo.PageSize, pageIndex, replyList.FindAll(f => f.ReplyType == FeedbackReplyType.Web));

                        //厂商和买家回复
                        reviewInfo.ReplieList =
                            replyList.FindAll(f => f.ReplyType == FeedbackReplyType.Manufacturer || f.ReplyType == FeedbackReplyType.Newegg);
                        //reviewInfo.ReplieList.Sort((a, b) => b.ReplyType.CompareTo(a.ReplyType));
                    }
                }

                if (result.Tables.Count > 2)
                {
                    DataTable scoreNameTable = result.Tables[2];
                    if (scoreNameTable.Rows != null && scoreNameTable.Rows.Count > 0 && reviewInfo != null)
                    {
                        reviewInfo.ScoreNameList = new List <string>();
                        foreach (DataRow row in scoreNameTable.Rows)
                        {
                            reviewInfo.ScoreNameList.Add(row["Name"].ToString());
                        }
                    }
                }
            }
            return(reviewInfo);
        }