Beispiel #1
0
        /// <summary>
        /// 查询物流单号
        /// </summary>
        /// <returns></returns>
        public JsonResult InquireDeliveryNum()
        {
            string DeliveryNum = Request["DeliveryNum"];
            string DLogUID     = Request["DLogUID"];
            string CurrentRole = Request["CurrentRole"];

            Delivery delivery = new Identity().GetDeliveryInfo(DeliveryNum);

            //查询成功
            if (delivery.msg == "查询成功")
            {
                //保存物流信息
                using (var db = new trackingDataContext())
                {
                    var log = db.Tracking.Where(l => l.DLogUID == DLogUID).FirstOrDefault();
                    if (log != null)
                    {
                        //角色身份
                        if (CurrentRole == "Recipient")
                        {
                            log.RecipientTrackingNum  = delivery.No;
                            log.RecipientTrackingDate = DateTime.Now;
                        }
                        else if (CurrentRole == "Sponsor")
                        {
                            log.SponsorTrackingNum  = delivery.No;
                            log.SponsorTrackingDate = DateTime.Now;
                        }
                    }
                    db.SubmitChanges();
                }
            }

            return(Json(delivery.msg, JsonRequestBehavior.AllowGet));
        }
Beispiel #2
0
        /// <summary>
        /// 接受申请
        /// </summary>
        /// <returns></returns>
        public ActionResult AgreeDeal(string DLogUID = "")
        {
            //首先改变订单状态
            using (var db = new LogDealDataContext())
            {
                var log = db.LogDeal.Where(d => d.DLogUID == Guid.Parse(DLogUID)).FirstOrDefault();
                if (log != null)
                {
                    log.DealStatus = "交易中";
                    db.SubmitChanges();

                    //接受申请后,两个物品需要加入订单号
                    var treasureR = repository.Treasures.Where(t => t.TreasureUID == Guid.Parse(log.TreasureRecipientID)).FirstOrDefault();
                    var treasureS = repository.Treasures.Where(t => t.TreasureUID == Guid.Parse(log.TreasureSponsorID)).FirstOrDefault();
                    if (treasureR != null)
                    {
                        treasureR.DLogUID = log.DLogUID.ToString();
                        repository.SaveTreasure(treasureR);
                    }
                    if (treasureS != null)
                    {
                        treasureS.DLogUID = log.DLogUID.ToString();
                        repository.SaveTreasure(treasureS);
                    }
                }
            }
            //使其他包含这两样物品的交易申请失效


            //在物流信息中添加一项
            using (var db = new trackingDataContext())
            {
                //当前订单号不存在时
                if (db.Tracking.Where(t => t.DLogUID == DLogUID).FirstOrDefault() == null)
                {
                    db.Tracking.InsertOnSubmit(new Tracking
                    {
                        DLogUID = DLogUID
                    });
                    db.SubmitChanges();
                }
            }

            return(RedirectToAction("DealingLog", "Account"));
        }
Beispiel #3
0
        /// <summary>
        /// 正在进行的交易
        /// </summary>
        /// <returns></returns>
        public ActionResult DealingLog()
        {
            //获取当前登录人ID
            string Id = CurrentUser.Id;

            //新建List视图模型
            List <DealingLog> dealingLogs = new List <DealingLog>();

            //获取状态是“交易中”的交易集合
            using (var db = new LogDealDataContext())
            {
                var logs = db.LogDeal.Where(d => (d.DealStatus == "交易中") && ((d.TraderRecipientID == Id) || (d.TraderSponsorID == Id)));

                foreach (var log in logs)
                {
                    //获取对方个人ID
                    string TaID = log.TraderRecipientID == Id ? log.TraderSponsorID : log.TraderRecipientID;

                    //获取对方信息
                    AppUser TaInfo = UserManager.FindById(TaID);

                    //获取物品信息
                    //接受人的物品
                    var TreaR = repository.Treasures.Where(t => t.TreasureUID == Guid.Parse(log.TreasureRecipientID)).FirstOrDefault();
                    //发起人的物品
                    var TreaS = repository.Treasures.Where(t => t.TreasureUID == Guid.Parse(log.TreasureSponsorID)).FirstOrDefault();

                    //检查当前用户是否已经评价
                    bool IsEvaluation = false;
                    using (var db3 = new EvaluationDataContext())
                    {
                        var eva = db3.Evaluation.Where(e => e.DLogUID == log.DLogUID.ToString()).FirstOrDefault();
                        //如果当前订单的评价信息存在
                        if (eva != null)
                        {
                            //判断当前用户是否已经评价
                            if (Id == log.TraderSponsorID)
                            {
                                //当前用户时发起人
                                if (eva.IsRecommendSToR != null)
                                {
                                    IsEvaluation = true;
                                }
                            }
                            else if (Id == log.TraderRecipientID)
                            {
                                if (eva.IsRecommendRToS != null)
                                {
                                    IsEvaluation = true;
                                }
                            }
                            else
                            {
                                return(View("Error"));
                            }
                        }
                    }

                    //查看对方收货地址
                    DeliveryAddress deliveryAddress = new DeliveryAddress();
                    using (var db4 = new DeliveryAddressDataContext())
                    {
                        if (log.TraderRecipientID == TaID)
                        {
                            deliveryAddress = db4.DeliveryAddress.Where(a => a.DeliveryAddressUID == log.DeliveryAddressRecipientID).FirstOrDefault();
                        }
                        else
                        {
                            deliveryAddress = db4.DeliveryAddress.Where(a => a.DeliveryAddressUID == log.DeliveryAddressSponsorID).FirstOrDefault();
                        }
                    }

                    //添加视图模型
                    if (TreaR != null && TreaS != null)
                    {
                        using (var db2 = new trackingDataContext())
                        {
                            var tracking = db2.Tracking.Where(t => t.DLogUID == log.DLogUID.ToString()).FirstOrDefault();
                            dealingLogs.Add(new DealingLog
                            {
                                LogDeal = log,
                                My      = CurrentUser,
                                //我的物品-如果这个接受物品所属人的ID不是当前登录人ID,则当前登录人即我是发起人
                                MyTreasure = TreaR.HolderID == Id ? TreaR : TreaS,
                                Ta         = TaInfo,
                                TaTreasure = TreaR.HolderID == TaID ? TreaR : TreaS,
                                Tracking   = tracking,
                                //当前用户在本次交易中是什么角色
                                CurrentUserRole = TreaR.HolderID == Id ? "Recipient" : "Sponsor",
                                IsEvaluation    = IsEvaluation,
                                DeliveryAddress = deliveryAddress
                            });
                        }
                    }
                    else
                    {
                        break;
                    }
                }
            }

            //返回视图
            return(View(dealingLogs.AsEnumerable()));
        }
Beispiel #4
0
        /// <summary>
        /// 查看物流信息
        /// </summary>
        /// <param name="DLogUID">订单号</param>
        /// <param name="Role">查看物流的角色</param>
        /// <returns></returns>
        public ActionResult DeliveryInfo(string DLogUID = "", string Role = "")
        {
            //获取当前登录人的ID
            string userId = CurrentUser.Id;

            //当前物流单号
            string DeliveryNum = string.Empty;

            //获取订单信息
            using (var db = new LogDealDataContext())
            {
                var log = db.LogDeal.Where(l => l.DLogUID == Guid.Parse(DLogUID)).FirstOrDefault();
                if (log != null)
                {
                    using (var db2 = new trackingDataContext())
                    {
                        //获取物流对象
                        var tracking = db2.Tracking.Where(t => t.DLogUID == DLogUID).FirstOrDefault();

                        //从订单信息中获取当前用户在本次交易中的角色
                        //是接收人
                        if (log.TraderRecipientID == userId)
                        {
                            //从Role中判断,用户要查询自己的还是对方的物流信息
                            if (Role == "Ta")
                            {
                                DeliveryNum = tracking.SponsorTrackingNum ?? "";
                            }
                            else if (Role == "My")
                            {
                                DeliveryNum = tracking.RecipientTrackingNum ?? "";
                            }
                        }
                        //发起人
                        else if (log.TraderSponsorID == userId)
                        {
                            //从Role中判断,用户要查询自己的还是对方的物流信息
                            if (Role == "Ta")
                            {
                                DeliveryNum = tracking.RecipientTrackingNum ?? "";
                            }
                            else if (Role == "My")
                            {
                                DeliveryNum = tracking.SponsorTrackingNum ?? "";
                            }
                        }
                    }
                }
                else
                {
                    return(View("Error", "错误"));
                }
            }

            //查询物流信息
            if (!string.IsNullOrEmpty(DeliveryNum))
            {
                Delivery delivery = new Identity().GetDeliveryInfo(DeliveryNum);
                return(View(delivery));
            }

            return(View("Error", "错误"));
        }