コード例 #1
0
 public ActionResult Edit(Treasure treasure)
 {
     //验证视图模型
     if (ModelState.IsValid)
     {
         //保存物品对象
         repository.SaveTreasure(treasure);
         //重定向到我的物品页面
         return(RedirectToAction("MyList", "Treasure"));
     }
     return(View(treasure));
 }
コード例 #2
0
        public ActionResult MakeDeal(DealLogCreate dealLogCreate)
        {
            //验证不为空
            if (string.IsNullOrEmpty(dealLogCreate.DealInTreasure.TreasureUID.ToString()) || string.IsNullOrEmpty(dealLogCreate.DealOutTreasure.TreasureUID.ToString()))
            {
                return(View("Error"));
            }
            else
            {
                Guid guid = Guid.NewGuid();
                //插入数据库
                using (var db = new LogDealDataContext())
                {
                    LogDeal logDeal = new LogDeal
                    {
                        DealBeginTime = DateTime.Now,
                        DealStatus    = "待确认",
                        DLogUID       = guid,
                        //备注-发起人对接收人
                        RemarkSToR = dealLogCreate.Remark,
                        //交易接收人ID
                        TraderRecipientID = dealLogCreate.DealInTreasure.HolderID,
                        //交易发起人ID
                        TraderSponsorID = dealLogCreate.DealOutTreasure.HolderID,
                        //交易给出物品ID
                        TreasureSponsorID = dealLogCreate.DealOutTreasure.TreasureUID.ToString(),
                        //交易接受物品ID
                        TreasureRecipientID = dealLogCreate.DealInTreasure.TreasureUID.ToString()
                    };
                    try
                    {
                        db.LogDeal.InsertOnSubmit(logDeal);
                        //保存操作
                        db.SubmitChanges();

                        //更新当前物品交易记录
                        var treasure = repository.Treasures.Where(t => t.TreasureUID == dealLogCreate.DealOutTreasure.TreasureUID).FirstOrDefault();
                        treasure.DLogUID = guid.ToString();
                        repository.SaveTreasure(treasure);
                    }
                    catch (Exception ex)
                    {
                        return(View("Error", ex.Message));
                    }
                }
                return(RedirectToAction("InitiateDealLog", "Account"));
            }
        }
コード例 #3
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"));
        }