コード例 #1
0
        /// <summary>
        /// 发表回复
        /// </summary>
        /// <param name="replyInfo"></param>
        /// <returns></returns>
        public static bool CreateProductReviewReply(Product_ReplyDetail replyInfo, int SoSysNo)
        {
            string   cacheKey     = CommonFacade.GenerateKey("CreateProductReviewReply", replyInfo.Customer.SysNo.ToString(), replyInfo.ReviewSysNo.ToString());
            DateTime now          = DateTime.Now;
            int      nowTimePoint = now.Hour * 3600 + now.Minute * 60 + now.Second;

            if (HttpRuntime.Cache[cacheKey] != null)
            {
                int preTimePoint = (int)HttpRuntime.Cache[cacheKey];
                if (nowTimePoint - preTimePoint < 60)
                {
                    throw new BusinessException("很抱歉,您发表评论的频率过快,请稍后再试。");
                }
            }
            else
            {
                HttpRuntime.Cache.Insert(cacheKey, 0, null, DateTime.Now.AddSeconds(CacheTime.Shortest), Cache.NoSlidingExpiration);
            }

            bool result = ReviewDA.CreateProductReviewReply(replyInfo);

            //确认不需要发邮件
            //if (result)
            //{
            //    SendMailReviewReply(replyInfo, SoSysNo);
            //}
            if (result)
            {
                now          = DateTime.Now;
                nowTimePoint = now.Hour * 3600 + now.Minute * 60 + now.Second;
                HttpRuntime.Cache[cacheKey] = nowTimePoint;
            }
            return(result);
        }
コード例 #2
0
 /// <summary>
 /// 查询用户可以评论的订单商品列表
 /// </summary>
 /// <param name="customerSysNo"></param>
 /// <param name="pageInfo"></param>
 /// <returns></returns>
 public static QueryResult <Product_NoReviewOrderMaster> QueryCustomerNoReviewOrderProducts(int customerSysNo, int pageIndex, int pageSize)
 {
     if (pageIndex < 0)
     {
         pageIndex = 0;
     }
     return(ReviewDA.QueryCustomerNoReviewOrderProducts(customerSysNo, pageIndex, pageSize));
 }
コード例 #3
0
        /// <summary>
        /// 用户对评论投票
        /// </summary>
        /// <param name="customerSysNo"></param>
        /// <param name="reviewSysNo"></param>
        /// <param name="isUsefull"></param>
        /// <returns></returns>
        public static bool UpdateReviewVote(int customerSysNo, int reviewSysNo, int isUsefull)
        {
            bool success = ReviewDA.CheckCustomerCanReviewVote(reviewSysNo, customerSysNo, ConstValue.LanguageCode, ConstValue.CompanyCode, ConstValue.StoreCompanyCode);

            if (success)
            {
                ReviewDA.UpdateProductReviewVote(reviewSysNo, customerSysNo, isUsefull, ConstValue.LanguageCode, ConstValue.CompanyCode, ConstValue.StoreCompanyCode);
                return(true);
            }
            return(false);
        }
コード例 #4
0
        /// <summary>
        /// 15天检查
        /// </summary>
        /// <param name="productSysNo"></param>
        /// <param name="customerSysNo"></param>
        public static void CheckCreateReviewByDays(int productSysNo, int customerSysNo)
        {
            DateTime resutl = ReviewDA.CheckCreateReviewByDays(productSysNo, customerSysNo);
            DateTime now    = DateTime.Now;

            if (resutl != null)
            {
                if (resutl.AddDays(15) > now)
                {
                    throw new BusinessException("15天内购买同一商品仅可发表一次!");
                }
            }
        }
コード例 #5
0
ファイル: ReviewController.cs プロジェクト: Catholiker/IMDB
        // POST api/Review
        public bool Post([FromBody] Review review)
        {
            bool result = false;

            if (review != null)
            {
                Review reviewbo = new ReviewDA().GetByMovieId(review.movieId);
                if (reviewbo.id == 1)
                {
                    result = new ReviewDA().Insert(review);
                }
                else
                {
                    result = new ReviewDA().Update(review);
                }
            }
            return(result);
        }
コード例 #6
0
        /// <summary>
        /// 获取评论详情
        /// </summary>
        /// <param name="queryInfo"></param>
        /// <returns></returns>
        public static Product_ReviewDetail GetProductReviewInfo(Product_ReviewQueryInfo queryInfo)
        {
            Product_ReviewDetail productReviewDetail = ReviewDA.GetProductReviewInfo(queryInfo);

            if (productReviewDetail != null)
            {
                productReviewDetail.Cons    = CommonFacade.SetCannotOnlineWordsMask(productReviewDetail.Cons);
                productReviewDetail.Prons   = CommonFacade.SetCannotOnlineWordsMask(productReviewDetail.Prons);
                productReviewDetail.Service = CommonFacade.SetCannotOnlineWordsMask(productReviewDetail.Service);
                if (productReviewDetail.ReplieList != null)
                {
                    foreach (var reply in productReviewDetail.ReplieList)
                    {
                        reply.Content = CommonFacade.SetCannotOnlineWordsMask(reply.Content);
                    }
                }
            }
            return(productReviewDetail);
        }
コード例 #7
0
ファイル: RecommendFacade.cs プロジェクト: sanlonezhang/ql
        public static List <UICustomerReviewInfo> GetLatestReviewInfos(int pageSize)
        {
            var result = ReviewDA.GetHomePageHotReview(pageSize);

            if (result.Count < pageSize)
            {
                //补位
                var otherGoodReviewList = ReviewDA.GetGoodReview(pageSize);
                foreach (var item in otherGoodReviewList)
                {
                    if (result.Count < pageSize && !result.Exists(review => review.SysNo == item.SysNo))
                    {
                        result.Add(item);
                    }
                }
            }

            return(result.OrderByDescending(item => item.InDate).ToList());
        }
コード例 #8
0
        public static QueryResponseDTO <bool> AlterReviewInfo(ReviewDTO dto)
        {
            if (string.IsNullOrEmpty(dto.ActionType))
            {
                switch (dto.ActionType.ToUpper())
                {
                case VOTE:
                    return(ReviewDA.AlterReviewVote(dto));

                case PASS:
                    return(ReviewDA.PassReviewInfo(dto));

                case REPLAY:
                    return(ReviewDA.AlterReviewReplay(dto));

                default:
                    return(null);
                }
            }
            return(null);
        }
コード例 #9
0
        /// <summary>
        /// 获取评论列表
        /// </summary>
        /// <param name="queryInfo"></param>
        /// <returns></returns>
        public static Product_ReviewList GetProductReviewListByProductGroupSysNoForProduct(Product_ReviewQueryInfo queryInfo)
        {
            Product_ReviewList productReviewList = ReviewDA.GetProductReviewListByProductGroupSysNoForProduct(queryInfo);

            if (productReviewList != null && productReviewList.ProductReviewDetailList != null)
            {
                foreach (var productReviewDetail in productReviewList.ProductReviewDetailList)
                {
                    productReviewDetail.Cons    = CommonFacade.SetCannotOnlineWordsMask(productReviewDetail.Cons);
                    productReviewDetail.Prons   = CommonFacade.SetCannotOnlineWordsMask(productReviewDetail.Prons);
                    productReviewDetail.Service = CommonFacade.SetCannotOnlineWordsMask(productReviewDetail.Service);
                    if (productReviewDetail.ReplieList != null)
                    {
                        foreach (var reply in productReviewDetail.ReplieList)
                        {
                            reply.Content = CommonFacade.SetCannotOnlineWordsMask(reply.Content);
                        }
                    }
                }
            }
            return(productReviewList);
        }
コード例 #10
0
 /// <summary>
 /// 检查是否可以发表评论
 /// </summary>
 /// <param name="productCode"></param>
 /// <param name="customerSysno"></param>
 /// <param name="soSysno"></param>
 /// <param name="reviewType"></param>
 /// <returns></returns>
 public static bool CheckProductRemark(string productCode, int customerSysno, int soSysno, int reviewType)
 {
     return(ReviewDA.CheckProductRemark(productCode, customerSysno, soSysno, reviewType));
 }
コード例 #11
0
 /// <summary>
 /// 得到用户评论评分
 /// </summary>
 /// <param name="productCode"></param>
 /// <returns></returns>
 public static Product_ReviewMaster GetProductReviewMaster(int productSysNo)
 {
     return(ReviewDA.GetProductReviewMaster(productSysNo));
 }
コード例 #12
0
 /// <summary>
 /// 发表回复权限
 /// </summary>
 /// <param name="customerSysNo"></param>
 /// <param name="reviewSysNo"></param>
 /// <returns></returns>
 public static Product_ReplyAuthorityInfo GetReplyAuthorityInfo(int customerSysNo, int reviewSysNo)
 {
     return(ReviewDA.GetReplyAuthorityInfo(customerSysNo, reviewSysNo));
 }
コード例 #13
0
 /// <summary>
 /// 检查订单是否发表过几次评论,若已发表1次以上,则不能再发表
 /// </summary>
 /// <param name="sosysno"></param>
 /// <param name="productSysNo"></param>
 /// <returns>0从来就没有评论过;1评论了一次,还可以评论一次;2不能在进行评论</returns>
 public static int CheckReviewedBySoSysNo(int sosysno, int productSysNo)
 {
     return(ReviewDA.CheckReviewedBySoSysNo(sosysno, productSysNo));
 }
コード例 #14
0
ファイル: ReviewController.cs プロジェクト: Catholiker/IMDB
        // GET api/Reviews/5
        public Review Get(int id)
        {
            Review review = new ReviewDA().GetByMovieId(id);

            return(review);
        }
コード例 #15
0
 public static QueryResponseDTO <bool> DeleteReviewInfo(ReviewDTO dto)
 {
     return(ReviewDA.DeleteReviewInfo(dto));
 }
コード例 #16
0
 public static QueryResponseDTO <bool> AddReviewInfo(ReviewDTO dto)
 {
     return(ReviewDA.AddReviewInfo(dto));
 }
コード例 #17
0
        /// <summary>
        /// 发表评论
        /// </summary>
        /// <param name="reviewInfo"></param>
        /// <returns></returns>
        public static bool CreateProductReview(Product_ReviewDetail reviewInfo)
        {
            string   cacheKey     = CommonFacade.GenerateKey("CreateProductReview", reviewInfo.CustomerInfo.SysNo.ToString(), reviewInfo.ProductSysNo.ToString());
            DateTime now          = DateTime.Now;
            int      nowTimePoint = now.Hour * 3600 + now.Minute * 60 + now.Second;

            if (HttpRuntime.Cache[cacheKey] != null)
            {
                int preTimePoint = (int)HttpRuntime.Cache[cacheKey];
                if (nowTimePoint - preTimePoint < 60)
                {
                    throw new BusinessException("很抱歉,您发表评论的频率过快,请稍后再试。");
                }
            }
            else
            {
                HttpRuntime.Cache.Insert(cacheKey, 0, null, DateTime.Now.AddSeconds(CacheTime.Shortest), Cache.NoSlidingExpiration);
            }

            bool result = false;

            #region 二期修改不用此方法
            ////根据用户customer以及商品编号获取订单编号以及商品code
            //List<Product_TempSOinfo> tempsoinfo = ReviewDA.GetSoSysNoAndProductCode(reviewInfo.CustomerInfo.SysNo, reviewInfo.ProductSysNo);
            //if (tempsoinfo != null && tempsoinfo.Count > 0)
            //{
            //    CreateReviewPreCheck(reviewInfo);
            //    ReviewScoreCalculator(reviewInfo);
            //    //取消15天的检查
            //    //CheckCreateReviewByDays(reviewInfo.ProductSysNo, reviewInfo.CustomerInfo.SysNo);

            //    //检查当前订单号是否已评论
            //    if (reviewInfo.SOSysno != null && reviewInfo.SOSysno > 0)
            //    {
            //        Product_TempSOinfo temp = tempsoinfo.SingleOrDefault(p => p.SOSysNo == reviewInfo.SOSysno);
            //        if (temp != null)
            //        {
            //            bool isReview = ReviewDA.CheckReviewBySoSysNo(reviewInfo.SOSysno);
            //            if (isReview)
            //            {
            //                throw new BusinessException("当前订单已经参与过评论!");
            //            }
            //        }
            //        else
            //        {
            //            throw new BusinessException("须购买过此商品且订单已完成才能发表评论!");
            //        }
            //    }
            //    else
            //    {
            //        reviewInfo.SOSysno = tempsoinfo[0].SOSysNo;
            //    }
            //    //reviewInfo.SOSysno = tempsoinfo.SOSysNo;
            //    result = ReviewDA.CreateProductReview(reviewInfo);
            //}
            //else
            //{
            //    throw new BusinessException("须购买过此商品且订单已完成才能发表评论!");
            //}
            #endregion

            //根据用户customer以及商品编号获取-----该用户所有订单编号以及商品code
            List <Product_TempSOinfo> tempsoinfo = ReviewDA.GetCustomerSoSysNoAndProductCode(reviewInfo.CustomerInfo.SysNo, reviewInfo.ProductSysNo);
            if (tempsoinfo != null && tempsoinfo.Count > 0)
            {
                CreateReviewPreCheck(reviewInfo);
                ReviewScoreCalculator(reviewInfo);
                Product_TempSOinfo temp = tempsoinfo.SingleOrDefault(p => p.SOSysNo == reviewInfo.SOSysno);
                if (temp != null)
                {
                    //检查当前订单号是否已经完成两次评论
                    int num = ReviewDA.CheckReviewedBySoSysNo(temp.SOSysNo, reviewInfo.ProductSysNo);
                    if (num > 1)
                    {
                        throw new BusinessException("当前订单已经参与过两次评论!");
                    }
                    else
                    {
                        result = ReviewDA.CreateProductReview(reviewInfo);
                    }
                }
                else
                {
                    throw new BusinessException("须购买过此商品且订单已完成才能发表评论!");
                }
            }
            else
            {
                throw new BusinessException("须购买过此商品且订单已完成才能发表评论!");
            }
            if (result)
            {
                now          = DateTime.Now;
                nowTimePoint = now.Hour * 3600 + now.Minute * 60 + now.Second;
                HttpRuntime.Cache[cacheKey] = nowTimePoint;
            }

            return(result);
        }
コード例 #18
0
 public static QueryResponseDTO <List <ReviewModel> > GetReviewInfo(ReviewDTO dto)
 {
     return(ReviewDA.GetReviewInfo(dto));
 }