Esempio n. 1
0
        /// <summary>
        /// 取消收藏
        /// </summary>
        /// <param name="TreaUID"></param>
        /// <returns></returns>
        public JsonResult CancelFavorite(string TreaUID = "")
        {
            string result = "Fail";
            //获取当前用户id
            var curruserid = CurrentUser.Id;

            if (!string.IsNullOrEmpty(TreaUID))
            {
                using (var db = new FavoriteDataContext())
                {
                    //首先检查是不是已经收藏了
                    var fav = db.Favorite.Where(f => (f.UserID == curruserid && f.TreasureID == TreaUID)).FirstOrDefault();
                    //为空,则删除记录
                    if (fav != null)
                    {
                        db.Favorite.DeleteOnSubmit(fav);
                        db.SubmitChanges();
                        result = "OK";
                        //相应的物品收藏量减一
                        var trea = repository.Treasures.Where(t => t.TreasureUID == Guid.Parse(TreaUID)).FirstOrDefault();
                        if (trea != null)
                        {
                            trea.Favorite--;
                            repository.SaveTreasure(trea);
                        }
                    }
                }
            }
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Esempio n. 2
0
        public ActionResult AccountFavorite(string UserID = "")
        {
            if (!string.IsNullOrEmpty(UserID))
            {
                var appuser = UserManager.FindById(UserID);
                if (appuser != null)
                {
                    //获取当前用户的ID
                    var curUserid = CurrentUser.Id;

                    //获取收藏列表
                    List <string> favoriteList = new List <string>();
                    using (var db = new FavoriteDataContext())
                    {
                        var favorites = db.Favorite.Where(f => f.UserID == UserID).OrderBy(f => f.FavoriteTime);
                        foreach (var favo in favorites)
                        {
                            favoriteList.Add(favo.TreasureID);
                        }
                    }

                    //根据收藏列表取出对应的物品列表
                    List <Treasure> favoriteTrea = new List <Treasure>();
                    foreach (var favo in favoriteList)
                    {
                        var favoT = repository.Treasures.Where(t => t.TreasureUID == Guid.Parse(favo)).FirstOrDefault();
                        if (favoT != null)
                        {
                            favoriteTrea.Add(favoT);
                        }
                    }

                    //新建视图模型
                    List <TreasureCard> model = new List <TreasureCard>();

                    //遍历
                    foreach (var trea in favoriteTrea)
                    {
                        //获取对应物品的用户
                        var holder = UserManager.FindById(trea.HolderID);
                        model.Add(new TreasureCard
                        {
                            Treasure       = trea,
                            TreasureHolder = new BasicUserInfo
                            {
                                UserID   = holder.Id,
                                HeadImg  = holder.HeadPortrait,
                                UserName = holder.UserName
                            },
                            userInfo = new BasicUserInfo
                            {
                                UserName = appuser.UserName
                            },
                        });
                    }
                    return(View(model.AsEnumerable()));
                }
            }
            return(View("Error"));
        }
Esempio n. 3
0
        /// <summary>
        /// 拒绝申请-我收到的交易申请
        /// </summary>
        /// <returns></returns>
        public ActionResult DisagreeDeal(string DLogUID = "")
        {
            if (string.IsNullOrEmpty(DLogUID))
            {
                return(View("Error"));
            }
            //获取当前交易信息
            using (var db = new LogDealDataContext())
            {
                var deal = db.LogDeal.Where(d => d.DLogUID == Guid.Parse(DLogUID)).FirstOrDefault();

                //换入物品-对于接收人来说,换入物品是本次申请的发起人物品
                var treaR = repository.Treasures
                            .Where(t => t.TreasureUID == Guid.Parse(deal.TreasureSponsorID))
                            .FirstOrDefault();
                //换出物品-对于接收人来说,换出物品是本次申请的接收人物品
                var treaS = repository.Treasures
                            .Where(t => t.TreasureUID == Guid.Parse(deal.TreasureRecipientID))
                            .FirstOrDefault();

                //相似推荐
                //获取相似物品
                var Moretreas = repository.Treasures
                                .Where(t => t.TreasureType == treaR.TreasureType).OrderBy(t => t.Favorite).Take(3);

                //过滤是当前用户的
                Moretreas.Where(t => t.HolderID != CurrentUser.Id);

                //根据七天的收藏量
                using (var db2 = new FavoriteDataContext())
                {
                    var FavoriteTrea = db2.Favorite.Where(f => (SqlMethods.DateDiffDay(f.FavoriteTime, DateTime.Now) <= 7)).Select(f => f.TreasureID);
                    if (treaR != null && treaS != null)
                    {
                        return(View(new DealLogCreate
                        {
                            DealInTreasure = treaR,
                            DealOutTreasure = treaS,
                            Remark = deal.RemarkSToR,
                            DealLogID = DLogUID,
                            MoreTreasures = Moretreas.AsEnumerable()
                        }));
                    }
                }
            }
            return(View("Error"));
        }
Esempio n. 4
0
        /// <summary>
        /// 搜索
        /// </summary>
        public ActionResult Search(string KeyWord)
        {
            if (!string.IsNullOrEmpty(KeyWord))
            {
                //首先把用户全部过滤出来
                using (var db = new AspNetUserDataContext())
                {
                    var    users    = db.AspNetUsers.Where(u => u.UserName.Contains(KeyWord)).ToList();
                    string usersIDs = string.Empty;
                    foreach (var user in users)
                    {
                        usersIDs += "|" + user.Id;
                    }

                    //获取物品集合
                    var treasures = repository.Treasures.Where(t => (t.DetailContent.Contains(KeyWord) || t.TreasureName.Contains(KeyWord) || t.UploadTime.ToString("yyyy/MM/dd").Contains(KeyWord) || t.TreasureType.Contains(KeyWord) || usersIDs.Contains(t.HolderID))).ToList();
                    List <TreasureAndHolderInfo> model = new List <TreasureAndHolderInfo>();
                    foreach (var trea in treasures)
                    {
                        //是否被收藏
                        bool IsFavorite = false;
                        using (var db2 = new FavoriteDataContext())
                        {
                            var log = db2.Favorite.Where(f => (f.TreasureID == trea.TreasureUID.ToString() && f.UserID == CurrentUser.Id)).FirstOrDefault();
                            if (log != null)
                            {
                                IsFavorite = true;
                            }
                        }
                        var holder = UserManager.FindById(trea.HolderID);
                        if (holder != null)
                        {
                            model.Add(new TreasureAndHolderInfo
                            {
                                Holder     = holder,
                                IsFavorite = IsFavorite,
                                Treasure   = trea
                            });
                        }
                    }
                    return(View(model.AsEnumerable()));
                }
            }
            return(View(new LinkedList <TreasureAndHolderInfo>().AsEnumerable()));
        }
Esempio n. 5
0
        /// <summary>
        /// 添加收藏
        /// </summary>
        /// <param name="TreaUID"></param>
        /// <returns></returns>
        public JsonResult AddFavorite(string TreaUID = "")
        {
            string result = "Fail";
            //获取当前用户id
            var curruserid = CurrentUser.Id;

            if (!string.IsNullOrEmpty(TreaUID))
            {
                using (var db = new FavoriteDataContext())
                {
                    //首先检查是不是已经收藏了
                    var fav = db.Favorite.Where(f => (f.UserID == curruserid && f.TreasureID == TreaUID)).FirstOrDefault();
                    //为空,则添加记录
                    if (fav == null)
                    {
                        db.Favorite.InsertOnSubmit(new Domain.Db.Favorite
                        {
                            FavoriteUID  = Guid.NewGuid().ToString(),
                            FavoriteTime = DateTime.Now,
                            TreasureID   = TreaUID,
                            UserID       = curruserid
                        });
                        db.SubmitChanges();
                        result = "OK";
                        //相应的物品收藏量加一
                        var trea = repository.Treasures.Where(t => t.TreasureUID == Guid.Parse(TreaUID)).FirstOrDefault();
                        if (trea != null)
                        {
                            trea.Favorite++;
                            repository.SaveTreasure(trea);
                        }
                        //通知信息
                        new Identity().AddNotice(trea.HolderID, curruserid, "收藏", "收藏", trea.TreasureUID.ToString());
                    }
                }
            }
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Esempio n. 6
0
        /// <summary>
        /// 用户个人信息
        /// </summary>
        /// <param name="UserID">对象用户UID</param>
        /// <returns></returns>
        public ActionResult AccountInfo(string UserID = "")
        {
            //新建视图模型
            AccountInfoViewModel model = new AccountInfoViewModel
            {
                TotalBrowseNum   = 0,
                TotalFavorite    = 0,
                TotalTreasureNum = 0
            };

            if (string.IsNullOrEmpty(UserID))
            {
                UserID = CurrentUser.Id;
            }

            if (!string.IsNullOrEmpty(UserID))
            {
                //获取查看的用户对象
                var user = UserManager.FindById(UserID);
                if (user != null)
                {
                    //添加用户对象
                    model.TargetUser = user;
                    //获取该用户的物品集合,且没有交易
                    var treasures = repository.Treasures.Where(t => t.HolderID == UserID);
                    if (treasures != null)
                    {
                        //遍历
                        foreach (var trea in treasures)
                        {
                            model.TotalBrowseNum += trea.BrowseNum;
                            model.TotalFavorite  += trea.Favorite;
                            model.TotalTreasureNum++;
                        }
                        //添加物品集合,选择前三个,按时间排序,并且没有正在的交易
                        var TargetTrea = treasures.Where(t => t.DLogUID == null).OrderBy(t => t.UploadTime).Take(3);

                        using (var db = new FavoriteDataContext())
                        {
                            //根据Treasure生成对应的TreasureCard
                            List <TreasureCard> treasureCards_T = new List <TreasureCard>();
                            foreach (var trea in TargetTrea)
                            {
                                treasureCards_T.Add(new TreasureCard
                                {
                                    Treasure = trea,
                                });
                            }
                            model.TargetTreasures = treasureCards_T.AsEnumerable();

                            //收藏
                            string FavoriteTreaID = string.Empty;
                            var    favorites      = db.Favorite.Where(f => f.UserID == UserID).OrderBy(f => f.FavoriteTime).Take(3);
                            foreach (var favo in favorites)
                            {
                                FavoriteTreaID += "|||" + favo.TreasureID;
                            }
                            //获取收藏的物品
                            var favoriteTrea = repository.Treasures.Where(t => FavoriteTreaID.Contains(t.TreasureUID.ToString()));

                            //收藏物品
                            List <TreasureCard> treasureCards_F = new List <TreasureCard>();
                            foreach (var trea in favoriteTrea)
                            {
                                //获取物品所属人
                                var holder = UserManager.FindById(trea.HolderID);

                                treasureCards_F.Add(new TreasureCard
                                {
                                    Treasure       = trea,
                                    TreasureHolder = new BasicUserInfo
                                    {
                                        UserID   = holder.Id,
                                        UserName = holder.UserName,
                                        HeadImg  = holder.HeadPortrait
                                    }
                                });
                            }

                            //添加视图
                            model.TargetFavorite = treasureCards_F.AsEnumerable();
                        }

                        //评价
                        using (var db2 = new LogDealDataContext())
                        {
                            //首先获取有当前用户的所有订单
                            var logs = db2.LogDeal.Where(l => (l.TraderRecipientID == UserID || l.TraderSponsorID == UserID));
                            List <UserEvaluation> userEvaluations = new List <UserEvaluation>();
                            //遍历所有订单,获取获取每个订单中的评价
                            foreach (var log in logs)
                            {
                                using (var db3 = new EvaluationDataContext())
                                {
                                    //获取订单中的评价信息
                                    var evaluation = db3.Evaluation.Where(e => e.DLogUID == log.DLogUID.ToString()).FirstOrDefault();
                                    //如果有评价信息
                                    if (evaluation != null)
                                    {
                                        //用户是接收人,则需要的评论是发起人
                                        if (log.TraderRecipientID == UserID)
                                        {
                                            //获取评论人对象
                                            var evaUser = UserManager.FindById(log.TraderSponsorID);

                                            //添加评价信息
                                            userEvaluations.Add(new UserEvaluation
                                            {
                                                Time           = evaluation.EvaTimeSToR,
                                                EvaluationInfo = evaluation.EvaluationSToR,
                                                Holder         = new BasicUserInfo
                                                {
                                                    HeadImg  = evaUser.HeadPortrait,
                                                    UserName = evaUser.UserName,
                                                    UserID   = evaUser.Id
                                                },
                                                IsReaommend = evaluation.IsRecommendSToR
                                            });
                                        }
                                        else if (log.TraderSponsorID == UserID)
                                        {
                                            //获取评论人对象
                                            var evaUser = UserManager.FindById(log.TraderRecipientID);

                                            //添加评价信息
                                            userEvaluations.Add(new UserEvaluation
                                            {
                                                Time           = evaluation.EvaTimeRToS,
                                                EvaluationInfo = evaluation.EvaluationRToS,
                                                Holder         = new BasicUserInfo
                                                {
                                                    HeadImg  = evaUser.HeadPortrait,
                                                    UserName = evaUser.UserName,
                                                    UserID   = evaUser.Id
                                                },
                                                IsReaommend = evaluation.IsRecommendRToS
                                            });
                                        }
                                    }
                                }
                            }
                            //添加数据
                            model.Evaluations = userEvaluations;
                            return(View(model));
                        }
                    }
                }
            }

            return(View("Error"));
        }
Esempio n. 7
0
        public ActionResult TreasureInfo(string TreasureUID = "")
        {
            //获取当前用户id
            string id = CurrentUser.Id;

            if (!string.IsNullOrEmpty(TreasureUID))
            {
                Guid Treasureguid = Guid.Parse(TreasureUID);

                #region 增加一次浏览量
                //判断当前用户,当前物品的浏览记录是否已经存在
                using (var db = new LogDataContext())
                {
                    var logbrowse = db.LogBrowse.Where(b => (b.TreasureID == TreasureUID && b.BrowserID == id)).FirstOrDefault();

                    //不存在记录,则增加一条
                    if (logbrowse == null)
                    {
                        db.LogBrowse.InsertOnSubmit(new LogBrowse
                        {
                            BLogUID     = Guid.NewGuid(),
                            BrowserID   = id,
                            TreasureID  = TreasureUID,
                            BrowserTime = DateTime.Now
                        });
                        //物品浏览量加一
                        var trea = repository.Treasures.Where(t => t.TreasureUID == Treasureguid).FirstOrDefault();
                        trea.BrowseNum++;
                        repository.SaveTreasure(trea);
                    }
                    //若存在则修改访问时间
                    else
                    {
                        logbrowse.BrowserTime = DateTime.Now;
                    }
                    db.SubmitChanges();
                }
                #endregion

                Treasure treasure = repository.Treasures.Where(t => t.TreasureUID == Treasureguid).FirstOrDefault();
                var      imgs     = treasure.DetailPic.Split('|');
                if (treasure != null)
                {
                    //判断是否已经收藏
                    bool isFavarite = false;
                    using (var db = new FavoriteDataContext())
                    {
                        var fav = db.Favorite.Where(f => (f.UserID == id && f.TreasureID == TreasureUID)).FirstOrDefault();
                        //若不为空,即存在记录,则说明已经收藏
                        if (fav != null)
                        {
                            isFavarite = true;
                        }
                    }

                    //获取浏览记录
                    List <BrowseLog> browses = new List <BrowseLog>();
                    using (var db = new LogDataContext())
                    {
                        var logBrowses = db.LogBrowse.Where(b => b.TreasureID == TreasureUID).OrderByDescending(b => b.BrowserTime).Take(6);
                        foreach (var log in logBrowses)
                        {
                            var user = UserManager.FindById(log.BrowserID);
                            if (user != null)
                            {
                                browses.Add(new BrowseLog
                                {
                                    Browser = new BasicUserInfo
                                    {
                                        HeadImg  = user.HeadPortrait,
                                        UserID   = user.Id,
                                        Gender   = user.Gender,
                                        UserName = user.UserName
                                    },
                                    BrowserTime = log.BrowserTime
                                });
                            }
                        }
                    }


                    //生成推荐信息
                    int DisRecommend = 0;
                    int Recommend    = 0;
                    // 1.首先找出当前用户完成的订单
                    using (var db = new LogDealDataContext())
                    {
                        var logs = db.LogDeal.Where(l => ((l.TraderRecipientID == id || l.TraderSponsorID == id) && (l.DealStatus == "交易成功")));
                        using (var db2 = new EvaluationDataContext())
                        {
                            //遍历所有完成的订单
                            foreach (var log in logs)
                            {
                                var eva = db2.Evaluation.Where(e => e.DLogUID == log.DLogUID.ToString()).FirstOrDefault();
                                //本次交易用户是接收人,则需要发起人的评价
                                if (log.TraderRecipientID == id)
                                {
                                    //推荐
                                    if (eva.IsRecommendSToR == true)
                                    {
                                        Recommend++;
                                    }
                                    else if (eva.IsRecommendSToR == false)
                                    {
                                        DisRecommend++;
                                    }
                                }
                                else
                                {
                                    if (eva.IsRecommendRToS == true)
                                    {
                                        Recommend++;
                                    }
                                    else if (eva.IsRecommendRToS == false)
                                    {
                                        DisRecommend++;
                                    }
                                }
                            }
                        }
                    }


                    //定义一个视图模型
                    TreaInfo treaInfo = new TreaInfo
                    {
                        HolderInfo    = GetLoginUserInfo(treasure.HolderID),
                        LoginUserInfo = CurrentUser,
                        treasureInfo  = treasure,
                        //108是生成图片路径的固定的长度
                        DetailImgs = imgs.Where(t => t.Length == 108),
                        IsFavorite = isFavarite,
                        CurrenUser = new BasicUserInfo
                        {
                            HeadImg = CurrentUser.HeadPortrait
                        },
                        browseLogs   = browses.AsEnumerable(),
                        DisRecommend = DisRecommend,
                        Recommend    = Recommend
                    };
                    return(View(treaInfo));
                }
            }
            return(View("List"));
        }
Esempio n. 8
0
        public ActionResult Index()
        {
            //新建视图
            IndexViewModel model = new IndexViewModel();

            var Alltreasure = repository.Treasures.Where(t => t.DLogUID == null).ToList().AsEnumerable();

            #region 随便看看
            //判断数量,决定要显示的物品数量
            int cnt = Alltreasure.Count() < 50 ? 4 : Alltreasure.Count() / 10;
            cnt = cnt > Alltreasure.Count() ? Alltreasure.Count() : cnt;
            List <Treasure> treasureRandom = new List <Treasure>();
            for (int i = 0; i < cnt; i++)
            {
                var r   = new Random(Guid.NewGuid().GetHashCode());
                int res = r.Next(0, Alltreasure.Count());
                treasureRandom.Add(Alltreasure.ElementAt(res));
            }
            List <TreasureAndHolderInfo> treasuresRandomList = new List <TreasureAndHolderInfo>();
            //去掉重复元素,然后遍历
            foreach (var trea in treasureRandom.Distinct())
            {
                //获取物品所属人对象
                var holder = UserManager.FindById(trea.HolderID);

                //是否被收藏
                bool IsFavorite = false;
                using (var db = new FavoriteDataContext())
                {
                    var log = db.Favorite.Where(f => (f.TreasureID == trea.TreasureUID.ToString() && f.UserID == CurrentUser.Id)).FirstOrDefault();
                    if (log != null)
                    {
                        IsFavorite = true;
                    }
                }
                if (holder != null)
                {
                    var detail = trea.DetailPic.Split('|');
                    trea.DetailPic = detail.Last();
                    treasuresRandomList.Add(new TreasureAndHolderInfo
                    {
                        Holder     = holder,
                        Treasure   = trea,
                        IsFavorite = IsFavorite
                    });
                }
            }
            model.RandomTrea = treasuresRandomList.AsEnumerable();
            #endregion

            #region 每日推荐
            using (var db = new LogDataContext())
            {
                //获取当前用户的浏览记录
                var log = db.LogBrowse.Where(b => b.BrowserID == CurrentUser.Id).Select(b => b.TreasureID).ToList();
                //获取用户浏览过的物品类型集合
                var treas = repository.Treasures.Where(t => log.Contains(t.TreasureUID.ToString())).ToList();
                var types = treas.Select(t => t.TreasureType);
                //获取这些这些类型的浏览量
                List <TreasureTypeCnt> treasuretypecnt = new List <TreasureTypeCnt>();
                int AllCnt = 0;
                foreach (var type in types)
                {
                    int             Typecnt         = treas.Where(t => t.TreasureType == type).Count();
                    TreasureTypeCnt treasureTypeCnt = new TreasureTypeCnt {
                    };
                    treasureTypeCnt.type = type;
                    treasureTypeCnt.cnt  = Typecnt;
                    treasuretypecnt.Add(treasureTypeCnt);
                    AllCnt += Typecnt;
                }
                //排序
                treasuretypecnt.OrderBy(t => t.cnt);

                //根据排序后的类型,进行推荐相同类型的物品
                List <Treasure> trea = new List <Treasure>();
                foreach (var ty in treasuretypecnt)
                {
                    int TreaCnt = ty.cnt * 5 / AllCnt;
                    var tr      = repository.Treasures.Where(t => t.TreasureType == ty.type).Take(TreaCnt);
                    trea.AddRange(tr);
                }

                //去掉重复元素,然后遍历
                List <TreasureAndHolderInfo> RecommandTrea = new List <TreasureAndHolderInfo>();

                foreach (var Rtrea in trea.Distinct())
                {
                    //获取物品所属人对象
                    var holder = UserManager.FindById(Rtrea.HolderID);

                    //是否被收藏
                    bool IsFavorite = false;
                    using (var db2 = new FavoriteDataContext())
                    {
                        var log2 = db2.Favorite.Where(f => (f.TreasureID == Rtrea.TreasureUID.ToString() && f.UserID == CurrentUser.Id)).FirstOrDefault();
                        if (log2 != null)
                        {
                            IsFavorite = true;
                        }
                    }
                    if (holder != null)
                    {
                        var detail = Rtrea.DetailPic.Split('|');
                        Rtrea.DetailPic = detail.Last();
                        RecommandTrea.Add(new TreasureAndHolderInfo
                        {
                            Holder     = holder,
                            Treasure   = Rtrea,
                            IsFavorite = IsFavorite
                        });
                    }
                }
                model.RecommandTrea = RecommandTrea.AsEnumerable();
            }
            #endregion

            #region 最新物品
            int cnt2 = Alltreasure.Count() > 6 ? 6 : Alltreasure.Count();
            Alltreasure.OrderBy(t => t.UploadTime);
            List <Treasure> treasuresNew = Alltreasure.Take(cnt2).ToList();
            List <TreasureAndHolderInfo> treasuresNewList = new List <TreasureAndHolderInfo>();
            foreach (var trea in treasuresNew)
            {
                //获取物品所属人
                var holder = UserManager.FindById(trea.HolderID);

                //是否被收藏
                bool IsFavorite = false;
                using (var db = new FavoriteDataContext())
                {
                    //获取七天内的收藏记录
                    var FavoriteTrea = db.Favorite.Where(f => (SqlMethods.DateDiffDay(f.FavoriteTime, DateTime.Now) <= 7)).Select(f => f.TreasureID);
                    var Treas        = repository.Treasures.Where(t => FavoriteTrea.Contains(t.TreasureUID.ToString()));
                    //生成视图模型
                    List <TreasureFavoriteCnt> treafavos = new List <TreasureFavoriteCnt>();
                    foreach (var favo in FavoriteTrea.Distinct())
                    {
                        var favorecnt = Treas.Where(t => t.TreasureUID == Guid.Parse(favo)).Count();
                        treafavos.Add(new TreasureFavoriteCnt
                        {
                            cnt     = favorecnt,
                            treauid = favo
                        });
                    }
                    //排序
                    treafavos.OrderBy(t => t.cnt);

                    var log = db.Favorite.Where(f => (f.TreasureID == trea.TreasureUID.ToString() && f.UserID == CurrentUser.Id)).FirstOrDefault();
                    if (log != null)
                    {
                        IsFavorite = true;
                    }
                }
                if (holder != null)
                {
                    treasuresNewList.Add(new TreasureAndHolderInfo
                    {
                        Holder     = holder,
                        Treasure   = trea,
                        IsFavorite = IsFavorite
                    });
                }
            }
            model.NewestTrea = treasuresNewList.AsEnumerable();
            #endregion

            #region 最近热门
            var treaHot     = repository.Treasures.Where(t => t.DLogUID == null).OrderBy(t => t.BrowseNum);
            int cnt3        = treaHot.Count() > 6 ? 6 : treaHot.Count();
            var treaHotList = treaHot.Take(cnt3);
            List <TreasureAndHolderInfo> treasuresHotList = new List <TreasureAndHolderInfo>();
            foreach (var trea in treaHotList)
            {
                var  holder     = UserManager.FindById(trea.HolderID);
                bool isFavorite = false;
                using (var db = new FavoriteDataContext())
                {
                    var log = db.Favorite.Where(f => (f.TreasureID == trea.TreasureUID.ToString() && f.UserID == CurrentUser.Id)).FirstOrDefault();
                    if (log != null)
                    {
                        isFavorite = true;
                    }
                }
                if (holder != null)
                {
                    treasuresHotList.Add(new TreasureAndHolderInfo
                    {
                        Holder     = holder,
                        Treasure   = trea,
                        IsFavorite = isFavorite
                    });
                }
            }
            model.HotTrea = treasuresHotList.AsEnumerable();
            #endregion

            #region 数据
            model.TreasureCnt = repository.Treasures.Count();
            using (var db = new LogDealDataContext())
            {
                var deallog = db.LogDeal.Where(l => (l.DealStatus == "交易中" || l.DealStatus == "待确认"));
                model.DealingCnt = deallog.Count();
            }
            using (var db = new EvaluationDataContext())
            {
                var Evaluation = db.Evaluation;
                model.EvaluationCnt = Evaluation.Count();
            }
            using (var db = new AspNetUserDataContext())
            {
                var user = db.AspNetUsers;
                model.UserCnt = user.Count();
            }
            #endregion

            return(View(model));
        }
Esempio n. 9
0
        public ViewResult List(string category, int page = 1, int PageSize = 12)
        {
            //获取当前用户ID
            string id = CurrentUser.Id;

            //1.首先获取当前条件下的所有物品集合
            var Treasures = repository.Treasures
                            //筛选-1.当前类或者类型为空的 2.不能选择图片为空的(图片为空当作未完成项) 3.有正在交易的订单
                            .Where(t => (category == null || t.TreasureType == category) && (t.Cover != null && t.DetailPic != null) && (t.DLogUID == null))
                            .OrderBy(t => t.TreasureName)
                            .Skip((page - 1) * PageSize)
                            .Take(PageSize);

            //新建一个List
            List <TreasureAndHolderInfo> treasureAndHolders = new List <TreasureAndHolderInfo>();

            //遍历物品集合,填充数据
            foreach (var trea in Treasures)
            {
                AppUser holder     = UserManager.FindById(trea.HolderID);
                bool    IsFavorite = false;
                //检查是否已收藏
                using (var db = new FavoriteDataContext())
                {
                    var fav = db.Favorite.Where(f => (f.UserID == id && f.TreasureID == trea.TreasureUID.ToString())).FirstOrDefault();
                    //不等于空,既有收藏记录
                    if (fav != null)
                    {
                        IsFavorite = true;
                    }
                }
                //添加模型
                treasureAndHolders.Add(new TreasureAndHolderInfo
                {
                    Treasure   = trea,
                    Holder     = holder,
                    IsFavorite = IsFavorite
                });
            }


            //生成一个具体的列表视图模型
            TreasureListViewModel model = new TreasureListViewModel
            {
                //物品用户信息
                TreasureAndHolderInfos = treasureAndHolders,
                //分页信息
                PagingInfo = new PagingInfo
                {
                    CurrentPage  = page,
                    ItemsPerPage = PageSize,
                    //总页数,无选择分类这全部,否则按当前的分类
                    TotalItem = category == null
                                          ? repository.Treasures.Count()
                                          : repository.Treasures.Where(e => e.TreasureType == category).Count()
                },
                //当前分类
                CurrentCate = category,
                //当前用户信息
                CurrentUserInfo = CurrentUser,
                AllCnt          = repository.Treasures.Count()
            };

            return(View(model));
        }
 public SqlFavoriteRepo(FavoriteDataContext context)
 {
     _context = context;
 }