/// <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)); }
/// <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")); }
/// <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())); }
/// <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", "错误")); }