public ActionResult Satisfied(int pageSize = 15, int pageNo = 1) { var query = new OrderQuery(); query.PageNo = pageNo; query.PageSize = pageSize; query.Status = Entities.OrderInfo.OrderOperateStatus.Finish; query.UserId = CurrentUser.Id; query.Sort = "CommentCount"; query.IsAsc = true; var model = OrderApplication.GetOrders(query); ViewBag.Comments = CommentApplication.GetOrderCommentByOrder(model.Models.Select(p => p.Id)); #region 分页控制 PagingInfo info = new PagingInfo { CurrentPage = pageNo, ItemsPerPage = pageSize, TotalItems = model.Total }; ViewBag.pageInfo = info; #endregion ViewBag.Keyword = string.IsNullOrWhiteSpace(SiteSettings.SearchKeyword) ? SiteSettings.Keyword : SiteSettings.SearchKeyword; ViewBag.Keywords = SiteSettings.HotKeyWords; return(View(model.Models)); }
/// <summary> /// 获取退款/退货列表 /// </summary> /// <param name="refundQuery"></param> /// <returns></returns> public static QueryPageModel <DTO.OrderRefund> GetOrderRefunds(RefundQuery refundQuery) { var data = Service.GetOrderRefunds(refundQuery); var orders = OrderApplication.GetOrders(data.Models.Select(p => p.OrderId)); var resultdata = new List <OrderRefund>(); foreach (var item in data.Models) { var tmp = item.Map <OrderRefund>(); var order = orders.FirstOrDefault(p => p.Id == item.OrderId); tmp.IsShopBranchOrder = order.ShopBranchId > 0; resultdata.Add(tmp); } return(new QueryPageModel <DTO.OrderRefund>() { Models = resultdata, Total = data.Total }); }
public JsonResult List(DateTime?startDate, DateTime?endDate, long?orderId, int?complaintStatus, string userName, int page, int rows) { var queryModel = new ComplaintQuery() { StartDate = startDate, EndDate = endDate, OrderId = orderId, Status = (Himall.Entities.OrderComplaintInfo.ComplaintStatus?)complaintStatus, ShopId = CurrentSellerManager.ShopId, UserName = userName, PageSize = rows, PageNo = page }; var orderComplaints = _iComplaintService.GetOrderComplaints(queryModel); var orders = OrderApplication.GetOrders(orderComplaints.Models.Select(p => p.OrderId)); var orderComplaintMode = orderComplaints.Models.Select(item => { var order = orders.FirstOrDefault(p => p.Id == item.OrderId); return(new { Id = item.Id, OrderId = item.OrderId, OrderTotalAmount = order.OrderTotalAmount.ToString("F2"), PaymentTypeName = (order.OrderTotalAmount == 0 && order.CapitalAmount == 0) ? "积分支付" : order.PaymentTypeName, ComplaintStatus = item.Status.ToDescription(), ShopName = item.ShopName, ShopPhone = item.ShopPhone, UserName = item.UserName, UserPhone = item.UserPhone, ComplaintDate = item.ComplaintDate.ToShortDateString(), ComplaintReason = System.Text.RegularExpressions.Regex.Replace(item.ComplaintReason, @"(<|(<))br[^>]*?(>|(>))", "").Replace("<", "<").Replace(">", ">"), SellerReply = item.SellerReply, PlatRemark = item.PlatRemark }); }); return(Json(new { rows = orderComplaintMode, total = orderComplaints.Total })); }
public ActionResult Satisfied(int pageSize = 15, int pageNo = 1) { var query = new OrderQuery(); query.PageNo = pageNo; query.PageSize = pageSize; query.Status = OrderInfo.OrderOperateStatus.Finish; query.UserId = CurrentUser.Id; // query.Sort = item => item.OrderCommentInfo.Count; var model = OrderApplication.GetOrders(query, item => item.OrderCommentInfo.Count); #region 分页控制 PagingInfo info = new PagingInfo { CurrentPage = pageNo, ItemsPerPage = pageSize, TotalItems = model.Total }; ViewBag.pageInfo = info; #endregion return(View(model.Models)); }
/// <summary> /// 显示售后记录 /// </summary> /// <param name="applyDate"></param> /// <param name="status"></param> /// <param name="pageNo"></param> /// <param name="pageSize"></param> /// <param name="showtype">0 所有 1 订单退款 2 仅退款(包含订单退款) 3 退货 4 仅退款</param> /// <returns></returns> public ActionResult List(string applyDate, int?status, int pageNo = 1, int pageSize = 10, int showtype = 0) { DateTime?startDate = null; DateTime?endDate = null; if (!string.IsNullOrEmpty(applyDate) && applyDate.ToLower() != "all") { switch (applyDate.ToLower()) { case "threemonth": startDate = DateTime.Now.AddMonths(-3); break; case "threemonthago": endDate = DateTime.Now.AddMonths(-3); break; } } if (status.HasValue) { if (status == 0) { status = null; } } var queryModel = new RefundQuery() { StartDate = startDate, EndDate = endDate, UserId = CurrentUser.Id, PageSize = pageSize, PageNo = pageNo, ShowRefundType = showtype, IsOngoing = true//取正在进行中的售后 }; if (showtype > 0) { queryModel.IsOngoing = false; } if (status.HasValue) { if (status > (int)OrderRefundInfo.OrderRefundAuditStatus.Audited) { queryModel.AuditStatus = OrderRefundInfo.OrderRefundAuditStatus.Audited; queryModel.ConfirmStatus = (Entities.OrderRefundInfo.OrderRefundConfirmStatus)status; } else { queryModel.AuditStatus = (Entities.OrderRefundInfo.OrderRefundAuditStatus)status; } } var refunds = _iRefundService.GetOrderRefunds(queryModel); var orders = OrderApplication.GetOrders(refunds.Models.Select(p => p.OrderId)); var orderitems = OrderApplication.GetOrderItems(refunds.Models.Select(p => p.OrderItemId)); PagingInfo info = new PagingInfo { CurrentPage = pageNo, ItemsPerPage = pageSize, TotalItems = refunds.Total }; ViewBag.pageInfo = info; ViewBag.UserId = CurrentUser.Id; ViewBag.ShowType = showtype; ViewBag.ApplyDate = applyDate; ViewBag.Status = status; ViewBag.Orders = orders; ViewBag.Keyword = string.IsNullOrWhiteSpace(SiteSettings.SearchKeyword) ? SiteSettings.Keyword : SiteSettings.SearchKeyword; ViewBag.Keywords = SiteSettings.HotKeyWords; ViewBag.OrderItems = orderitems; return(View(refunds.Models)); }
public ActionResult Index(string orderDate, string keywords, string orderids, DateTime?startDateTime, DateTime?endDateTime, int?orderStatus, int pageNo = 1, int pageSize = 10) { ViewBag.Grant = null; if (!string.IsNullOrEmpty(orderids) && orderids.IndexOf(',') <= 0) { ViewBag.Grant = _iShopBonusService.GetByOrderId(long.Parse(orderids)); } DateTime?startDate = startDateTime; DateTime?endDate = endDateTime; if (!string.IsNullOrEmpty(orderDate) && orderDate.ToLower() != "all") { switch (orderDate.ToLower()) { case "threemonth": startDate = DateTime.Now.AddMonths(-3); break; case "halfyear": startDate = DateTime.Now.AddMonths(-6); break; case "year": startDate = DateTime.Now.AddYears(-1); break; case "yearago": endDate = DateTime.Now.AddYears(-1); break; } } if (orderStatus.HasValue && orderStatus == 0) { orderStatus = null; } var queryModel = new OrderQuery() { StartDate = startDate, EndDate = endDate, Status = (Model.OrderInfo.OrderOperateStatus?)orderStatus, UserId = CurrentUser.Id, SearchKeyWords = keywords, PageSize = pageSize, PageNo = pageNo }; var orders = OrderApplication.GetOrders(queryModel); var orderComments = OrderApplication.GetOrderCommentCount(orders.Models.Select(p => p.Id)); var orderItems = OrderApplication.GetOrderItemsByOrderId(orders.Models.Select(p => p.Id)); var orderRefunds = OrderApplication.GetOrderRefunds(orderItems.Select(p => p.Id)); PagingInfo info = new PagingInfo { CurrentPage = pageNo, ItemsPerPage = pageSize, TotalItems = orders.Total }; ViewBag.pageInfo = info; ViewBag.UserId = CurrentUser.Id; var siteSetting = _iSiteSettingService.GetSiteSettings(); var shopBonus = _iShopBonusService; ViewBag.SalesRefundTimeout = siteSetting.SalesReturnTimeout; var cashDepositsService = _iCashDepositsService; //IEnumerable<OrderListModel> orderList = new IEnumerable<OrderListModel>(); IEnumerable <OrderListModel> orderList = orders.Models.Select(item => new OrderListModel { Id = item.Id, ActiveType = item.ActiveType, OrderType = item.OrderType, Address = item.Address, CellPhone = item.CellPhone, CloseReason = item.CloseReason, CommisTotalAmount = item.CommisAmount, DiscountAmount = item.DiscountAmount, ExpressCompanyName = item.ExpressCompanyName, FinishDate = item.FinishDate, Freight = item.Freight, GatewayOrderId = item.GatewayOrderId, IntegralDiscount = item.IntegralDiscount, UserId = item.UserId, ShopId = item.ShopId, ShopName = item.ShopName, ShipTo = item.ShipTo, OrderTotalAmount = item.OrderTotalAmount, PaymentTypeName = item.PaymentTypeName, //满额减 FullDiscount = item.FullDiscount, OrderStatus = item.OrderStatus, RefundStats = item.RefundStats, CommentCount = orderComments.ContainsKey(item.Id)?orderComments[item.Id]:0, OrderDate = item.OrderDate, PaymentType = item.PaymentType, PickupCode = item.PickupCode, OrderItemList = orderItems.Where(oi => oi.OrderId == item.Id).Select(oItem => { var itemrefund = orderRefunds.Where(or => or.OrderItemId == oItem.Id).FirstOrDefault(); var orderItem = new OrderItemListModel { Id = oItem.Id, ProductId = oItem.ProductId, Color = oItem.Color, Size = oItem.Size, Version = oItem.Version, ProductName = oItem.ProductName, ThumbnailsUrl = oItem.ThumbnailsUrl, SalePrice = oItem.SalePrice, SkuId = oItem.SkuId, Quantity = oItem.Quantity, CashDepositsObligation = cashDepositsService.GetCashDepositsObligation(oItem.ProductId), }; if (itemrefund != null) { orderItem.RefundStats = itemrefund.RefundStatusValue; orderItem.ItemRefundId = itemrefund.Id; string showRefundStats = ""; if (itemrefund.SellerAuditStatus == OrderRefundInfo.OrderRefundAuditStatus.Audited) { showRefundStats = itemrefund.ManagerConfirmStatus.ToDescription(); } else if (item.DeliveryType == CommonModel.Enum.DeliveryType.SelfTake || (item.ShopBranchId.HasValue && item.ShopBranchId.Value > 0))//如果是自提预约单或分配门店预约单则转为门店审核状态 { showRefundStats = ((CommonModel.Enum.OrderRefundShopAuditStatus)itemrefund.SellerAuditStatus).ToDescription(); } else { showRefundStats = itemrefund.SellerAuditStatus.ToDescription(); } orderItem.ShowRefundStats = showRefundStats; } orderItem.EnabledRefundAmount = oItem.EnabledRefundAmount; ProductTypeInfo typeInfo = _iTypeService.GetTypeByProductId(oItem.ProductId); orderItem.ColorAlias = (typeInfo == null || string.IsNullOrEmpty(typeInfo.ColorAlias)) ? SpecificationType.Color.ToDescription() : typeInfo.ColorAlias; orderItem.SizeAlias = (typeInfo == null || string.IsNullOrEmpty(typeInfo.SizeAlias)) ? SpecificationType.Size.ToDescription() : typeInfo.SizeAlias; orderItem.VersionAlias = (typeInfo == null || string.IsNullOrEmpty(typeInfo.VersionAlias)) ? SpecificationType.Version.ToDescription() : typeInfo.VersionAlias; return(orderItem); }).ToList(), ReceiveBonus = shopBonus.GetGrantByUserOrder(item.Id, CurrentUser.Id), }).ToList(); foreach (var o in orderList) { o.HasAppendComment = HasAppendComment(o); } #region 数据补偿 List <long> ordidl = orderList.Select(d => d.Id).ToList(); if (ordidl.Count > 0) { foreach (var item in orderList) { var _ord = orders.Models.FirstOrDefault(o => o.Id == item.Id); item.IsRefundTimeOut = OrderApplication.IsRefundTimeOut(_ord); item.EnabledRefundAmount = _ord.OrderEnabledRefundAmount; //退款状态补偿 var _tmpobj = orderRefunds.FirstOrDefault(d => d.OrderId == item.Id && d.RefundMode == OrderRefundInfo.OrderRefundMode.OrderRefund); if (_tmpobj != null) { item.RefundStats = (int)_tmpobj.SellerAuditStatus; item.OrderRefundId = _tmpobj.Id; } item.OrderCanRefund = false; if (item.OrderStatus == Himall.Model.OrderInfo.OrderOperateStatus.Finish) { if (item.FinishDate.Value.AddDays(siteSetting.SalesReturnTimeout) > DateTime.Now) { item.OrderCanRefund = true; } } if (item.OrderStatus == Himall.Model.OrderInfo.OrderOperateStatus.WaitReceiving) { item.OrderCanRefund = true; } if (item.PaymentType == Himall.Model.OrderInfo.PaymentTypes.CashOnDelivery) { if (item.OrderStatus == Himall.Model.OrderInfo.OrderOperateStatus.Finish) { item.OrderCanRefund = true; } } else { item.OrderCanRefund = true; } item.FightGroupCanRefund = true; //非拼团预约单默认可退 //拼团状态补偿 if (item.OrderType == OrderInfo.OrderTypes.FightGroup) { var fgord = _iFightGroupService.GetFightGroupOrderStatusByOrderId(item.Id); if (fgord != null) { item.FightGroupJoinStatus = fgord.GetJoinStatus; item.FightGroupCanRefund = fgord.CanRefund; } else { item.FightGroupJoinStatus = CommonModel.FightGroupOrderJoinStatus.JoinFailed; item.FightGroupCanRefund = false; } item.OrderCanRefund = item.OrderCanRefund && item.FightGroupCanRefund; } } } #endregion return(View(orderList.ToList())); }
public JsonResult List(DateTime?startDate, DateTime?endDate, long?orderId, int?auditStatus, string shopName, string ProductName, string userName, int page, int rows, int showtype = 0) { var queryModel = new RefundQuery() { StartDate = startDate, EndDate = endDate, OrderId = orderId, ProductName = ProductName, AuditStatus = (Entities.OrderRefundInfo.OrderRefundAuditStatus?)auditStatus, ShopName = shopName, UserName = userName, PageSize = rows, PageNo = page, ShowRefundType = showtype }; if (auditStatus.HasValue && auditStatus.Value == (int)OrderRefundInfo.OrderRefundAuditStatus.Audited) { queryModel.ConfirmStatus = Entities.OrderRefundInfo.OrderRefundConfirmStatus.UnConfirm; } var refunds = _iRefundService.GetOrderRefunds(queryModel); var orders = OrderApplication.GetOrders(refunds.Models.Select(p => p.OrderId)); var orderitems = OrderApplication.GetOrderItems(refunds.Models.Select(p => p.OrderItemId)); var refundModels = refunds.Models.Select(item => { var order = orders.FirstOrDefault(p => p.Id == item.OrderId); var orderitem = orderitems.FirstOrDefault(p => p.Id == item.OrderItemId); string spec = ((string.IsNullOrWhiteSpace(orderitem.Color) ? "" : orderitem.Color + ",") + (string.IsNullOrWhiteSpace(orderitem.Size) ? "" : orderitem.Size + ",") + (string.IsNullOrWhiteSpace(orderitem.Version) ? "" : orderitem.Version + ",")).TrimEnd(','); if (!string.IsNullOrWhiteSpace(spec)) { spec = " 【" + spec + " 】"; } string showAuditStatus = ""; // showAuditStatus = item.SellerAuditStatus == OrderRefundInfo.OrderRefundAuditStatus.Audited ? item.ManagerConfirmStatus.ToDescription() : item.SellerAuditStatus.ToDescription(); showAuditStatus = ((item.SellerAuditStatus == Entities.OrderRefundInfo.OrderRefundAuditStatus.Audited) ? item.ManagerConfirmStatus.ToDescription() : (order.DeliveryType == CommonModel.DeliveryType.SelfTake ? ((CommonModel.Enum.OrderRefundShopAuditStatus)item.SellerAuditStatus).ToDescription() : item.SellerAuditStatus.ToDescription())); if (item.SellerAuditStatus == Entities.OrderRefundInfo.OrderRefundAuditStatus.Audited && item.ManagerConfirmStatus == Entities.OrderRefundInfo.OrderRefundConfirmStatus.UnConfirm && item.RefundPayStatus == Entities.OrderRefundInfo.OrderRefundPayStatus.Payed) { showAuditStatus = "退款中"; } var verificationCodeIds = new List <string>(); if (!string.IsNullOrWhiteSpace(item.VerificationCodeIds)) { verificationCodeIds = item.VerificationCodeIds.Split(',').ToList(); verificationCodeIds = verificationCodeIds.Select(a => a = Regex.Replace(a, @"(\d{4})", "$1 ")).ToList(); } return(new OrderRefundModel() { RefundId = item.Id, OrderId = item.OrderId, AuditStatus = showAuditStatus, ProductId = orderitem.ProductId, ThumbnailsUrl = Core.HimallIO.GetProductSizeImage(orderitem.ThumbnailsUrl, 1, (int)ImageSize.Size_100),//截取图片所在目录,从而获取图片 ConfirmStatus = item.ManagerConfirmStatus.ToDescription(), ApplyDate = item.ApplyDate.ToShortDateString(), ShopId = item.ShopId, ShopName = item.ShopName.Replace("'", "‘").Replace("\"", "”"), UserId = item.UserId, UserName = item.Applicant, Amount = item.Amount.ToString("F2"), SalePrice = item.EnabledRefundAmount.ToString("F2"), ReturnQuantity = item.ShowReturnQuantity == 0 ? orderitem.ReturnQuantity : item.ShowReturnQuantity, ProductName = orderitem.ProductName + spec, Reason = string.IsNullOrEmpty(item.Reason) ? string.Empty : HTMLEncode(item.Reason.Replace("'", "‘").Replace("\"", "”")), ReasonDetail = string.IsNullOrEmpty(item.ReasonDetail) ? string.Empty : item.ReasonDetail.Replace("'", "‘").Replace("\"", "”"), RefundAccount = string.IsNullOrEmpty(item.RefundAccount) ? string.Empty : HTMLEncode(item.RefundAccount.Replace("'", "‘").Replace("\"", "”")), ContactPerson = string.IsNullOrEmpty(item.ContactPerson) ? string.Empty : HTMLEncode(item.ContactPerson.Replace("'", "‘").Replace("\"", "”")), ContactCellPhone = HTMLEncode(item.ContactCellPhone), PayeeAccount = string.IsNullOrEmpty(item.PayeeAccount) ? string.Empty : HTMLEncode(item.PayeeAccount.Replace("'", "‘").Replace("\"", "”")), Payee = string.IsNullOrEmpty(item.Payee) ? string.Empty : HTMLEncode(item.Payee), RefundMode = (int)item.RefundMode, SellerRemark = string.IsNullOrEmpty(item.SellerRemark) ? string.Empty : HTMLEncode(item.SellerRemark.Replace("'", "‘").Replace("\"", "”")), ManagerRemark = string.IsNullOrEmpty(item.ManagerRemark) ? string.Empty : HTMLEncode(item.ManagerRemark.Replace("'", "‘").Replace("\"", "”")), RefundStatus = ((item.SellerAuditStatus == Entities.OrderRefundInfo.OrderRefundAuditStatus.Audited) ? item.ManagerConfirmStatus.ToDescription() : ((order.DeliveryType == CommonModel.DeliveryType.SelfTake || order.ShopBranchId > 0) ? ((CommonModel.Enum.OrderRefundShopAuditStatus)item.SellerAuditStatus).ToDescription() : item.SellerAuditStatus.ToDescription())), RefundPayType = item.RefundPayType.ToDescription(), RefundPayStatus = (int)item.RefundPayStatus, ApplyNumber = item.ApplyNumber, CertPic1 = Core.HimallIO.GetImagePath(item.CertPic1), CertPic2 = Core.HimallIO.GetImagePath(item.CertPic2), CertPic3 = Core.HimallIO.GetImagePath(item.CertPic3), IsVirtual = item.IsVirtual, VerificationCodeIds = string.Join(",", verificationCodeIds), RefundBatchNo = item.RefundBatchNo ?? "" }); }); DataGridModel <OrderRefundModel> dataGrid = new DataGridModel <OrderRefundModel>() { rows = refundModels, total = refunds.Total }; return(Json(dataGrid)); }
public JsonResult GetUserOrders(int?orderStatus, int pageNo, int pageSize = 8) { if (orderStatus.HasValue && orderStatus == 0) { orderStatus = null; } var queryModel = new OrderQuery() { Status = (Model.OrderInfo.OrderOperateStatus?)orderStatus, UserId = CurrentUser.Id, PageSize = pageSize, PageNo = pageNo }; if (queryModel.Status.HasValue && queryModel.Status.Value == OrderInfo.OrderOperateStatus.WaitReceiving) { if (queryModel.MoreStatus == null) { queryModel.MoreStatus = new List <OrderInfo.OrderOperateStatus>() { }; } queryModel.MoreStatus.Add(OrderInfo.OrderOperateStatus.WaitSelfPickUp); } if (orderStatus.GetValueOrDefault() == (int)Model.OrderInfo.OrderOperateStatus.Finish) { queryModel.Commented = false;//只查询未评价的订单 } var orders = OrderApplication.GetOrders(queryModel); var orderItems = OrderApplication.GetOrderItemsByOrderId(orders.Models.Select(p => p.Id)); var orderComments = OrderApplication.GetOrderCommentCount(orders.Models.Select(p => p.Id)); var orderRefunds = OrderApplication.GetOrderRefunds(orderItems.Select(p => p.Id)); var products = ProductManagerApplication.GetProductsByIds(orderItems.Select(p => p.ProductId)); var vshops = VshopApplication.GetVShopsByShopIds(products.Select(p => p.ShopId)); var result = orders.Models.Select(item => { var _ordrefobj = _iRefundService.GetOrderRefundByOrderId(item.Id) ?? new OrderRefundInfo { Id = 0 }; if (item.OrderStatus != OrderInfo.OrderOperateStatus.WaitDelivery && item.OrderStatus != OrderInfo.OrderOperateStatus.WaitSelfPickUp) { _ordrefobj = new OrderRefundInfo { Id = 0 }; } int?ordrefstate = (_ordrefobj == null ? null : (int?)_ordrefobj.SellerAuditStatus); ordrefstate = (ordrefstate > 4 ? (int?)_ordrefobj.ManagerConfirmStatus : ordrefstate); return(new { id = item.Id, status = item.OrderStatus.ToDescription(), orderStatus = item.OrderStatus, shopname = item.ShopName, orderTotalAmount = item.OrderTotalAmount.ToString("F2"), productCount = item.OrderProductQuantity, commentCount = orderComments.ContainsKey(item.Id) ? orderComments[item.Id] : 0, PaymentType = item.PaymentType, RefundStats = ordrefstate, OrderRefundId = _ordrefobj.Id, OrderType = item.OrderType, PickUp = item.PickupCode, ShopBranchId = item.ShopBranchId, DeliveryType = item.DeliveryType, ShipOrderNumber = item.ShipOrderNumber, EnabledRefundAmount = item.OrderEnabledRefundAmount, itemInfo = orderItems.Where(oi => oi.OrderId == item.Id).Select(a => { var prodata = products.FirstOrDefault(p => p.Id == a.ProductId); VShop vshop = null; if (prodata != null) { vshop = vshops.FirstOrDefault(vs => vs.ShopId == prodata.ShopId); } if (vshop == null) { vshop = new VShop { Id = 0 } } ; var itemrefund = orderRefunds.Where(or => or.OrderItemId == a.Id).FirstOrDefault(d => d.RefundMode != OrderRefundInfo.OrderRefundMode.OrderRefund); int?itemrefstate = (itemrefund == null ? null : (int?)itemrefund.SellerAuditStatus); itemrefstate = (itemrefstate > 4 ? (int?)itemrefund.ManagerConfirmStatus : itemrefstate); return new { itemid = a.Id, productId = a.ProductId, productName = a.ProductName, image = HimallIO.GetProductSizeImage(a.ThumbnailsUrl, 1, (int)ImageSize.Size_100), count = a.Quantity, price = a.SalePrice, Unit = prodata == null ? "" : prodata.MeasureUnit, vshopid = vshop.Id, color = a.Color, size = a.Size, version = a.Version, RefundStats = itemrefstate, OrderRefundId = (itemrefund == null ? 0 : itemrefund.Id), EnabledRefundAmount = a.EnabledRefundAmount }; }), HasAppendComment = HasAppendComment(orderItems.Where(oi => oi.OrderId == item.Id).FirstOrDefault()), CanRefund = (item.OrderStatus == Himall.Model.OrderInfo.OrderOperateStatus.WaitDelivery || item.OrderStatus == Himall.Model.OrderInfo.OrderOperateStatus.WaitSelfPickUp) && !item.RefundStats.HasValue && item.PaymentType != Himall.Model.OrderInfo.PaymentTypes.CashOnDelivery && item.PaymentType != Himall.Model.OrderInfo.PaymentTypes.None && (item.FightGroupCanRefund == null || item.FightGroupCanRefund == true) && ordrefstate.GetValueOrDefault().Equals(0) }); });
public JsonResult GetUserOrders(int?orderStatus, int pageNo, int pageSize = 8) { if (orderStatus.HasValue && orderStatus == 0) { orderStatus = null; } var queryModel = new OrderQuery() { Status = (Entities.OrderInfo.OrderOperateStatus?)orderStatus, UserId = CurrentUser.Id, PageSize = pageSize, PageNo = pageNo, IsFront = true }; if (queryModel.Status.HasValue && queryModel.Status.Value == Entities.OrderInfo.OrderOperateStatus.WaitReceiving) { if (queryModel.MoreStatus == null) { queryModel.MoreStatus = new List <Entities.OrderInfo.OrderOperateStatus>() { }; } queryModel.MoreStatus.Add(Entities.OrderInfo.OrderOperateStatus.WaitSelfPickUp); } if (orderStatus.GetValueOrDefault() == (int)OrderInfo.OrderOperateStatus.Finish) { queryModel.Commented = false;//只查询未评价的订单 } var orders = OrderApplication.GetOrders(queryModel); var orderItems = OrderApplication.GetOrderItemsByOrderId(orders.Models.Select(p => p.Id)); var orderComments = OrderApplication.GetOrderCommentCount(orders.Models.Select(p => p.Id)); var orderRefunds = OrderApplication.GetOrderRefunds(orderItems.Select(p => p.Id)); var products = ProductManagerApplication.GetProductsByIds(orderItems.Select(p => p.ProductId)); var vshops = VshopApplication.GetVShopsByShopIds(products.Select(p => p.ShopId)); //查询结果的门店ID var branchIds = orders.Models.Where(e => e.ShopBranchId > 0).Select(p => p.ShopBranchId).ToList(); //根据门店ID获取门店信息 var shopBranchs = ShopBranchApplication.GetShopBranchByIds(branchIds); var orderVerificationCodes = OrderApplication.GetOrderVerificationCodeInfosByOrderIds(orders.Models.Select(p => p.Id).ToList()); var result = orders.Models.Select(item => { var codes = orderVerificationCodes.Where(a => a.OrderId == item.Id); var _ordrefobj = _iRefundService.GetOrderRefundByOrderId(item.Id) ?? new Entities.OrderRefundInfo { Id = 0 }; if (item.OrderStatus != Entities.OrderInfo.OrderOperateStatus.WaitDelivery && item.OrderStatus != Entities.OrderInfo.OrderOperateStatus.WaitSelfPickUp) { _ordrefobj = new Entities.OrderRefundInfo { Id = 0 }; } int?ordrefstate = (_ordrefobj == null ? null : (int?)_ordrefobj.SellerAuditStatus); ordrefstate = (ordrefstate > 4 ? (int?)_ordrefobj.ManagerConfirmStatus : ordrefstate); var branchObj = shopBranchs.FirstOrDefault(e => item.ShopBranchId > 0 && e.Id == item.ShopBranchId); string branchName = branchObj == null ? string.Empty : branchObj.ShopBranchName; return(new { id = item.Id, status = item.OrderStatus.ToDescription(), orderStatus = item.OrderStatus, shopname = item.ShopName, orderTotalAmount = item.OrderTotalAmount, capitalAmount = item.CapitalAmount, productCount = orderItems.Where(oi => oi.OrderId == item.Id).Sum(a => a.Quantity), commentCount = orderComments.ContainsKey(item.Id) ? orderComments[item.Id] : 0, PaymentType = item.PaymentType, RefundStats = ordrefstate, OrderRefundId = _ordrefobj.Id, OrderType = item.OrderType, PickUp = item.PickupCode, ShopBranchId = item.ShopBranchId, ShopBranchName = branchName, DeliveryType = item.DeliveryType, ShipOrderNumber = item.ShipOrderNumber, EnabledRefundAmount = item.OrderEnabledRefundAmount, itemInfo = orderItems.Where(oi => oi.OrderId == item.Id).Select(a => { var prodata = products.FirstOrDefault(p => p.Id == a.ProductId); VShop vshop = null; if (prodata != null) { vshop = vshops.FirstOrDefault(vs => vs.ShopId == prodata.ShopId); } if (vshop == null) { vshop = new VShop { Id = 0 } } ; var itemrefund = orderRefunds.Where(or => or.OrderItemId == a.Id).FirstOrDefault(d => d.RefundMode != OrderRefundInfo.OrderRefundMode.OrderRefund); int?itemrefstate = (itemrefund == null ? null : (int?)itemrefund.SellerAuditStatus); itemrefstate = (itemrefstate > 4 ? (int?)itemrefund.ManagerConfirmStatus : itemrefstate); return new { itemid = a.Id, productId = a.ProductId, productName = a.ProductName, image = HimallIO.GetProductSizeImage(a.ThumbnailsUrl, 1, (int)ImageSize.Size_100), count = a.Quantity, price = a.SalePrice, Unit = prodata == null ? "" : prodata.MeasureUnit, vshopid = vshop.Id, color = a.Color, size = a.Size, version = a.Version, RefundStats = itemrefstate, OrderRefundId = (itemrefund == null ? 0 : itemrefund.Id), EnabledRefundAmount = a.EnabledRefundAmount }; }), HasAppendComment = HasAppendComment(orderItems.Where(oi => oi.OrderId == item.Id).FirstOrDefault()), CanRefund = OrderApplication.CanRefund(item, ordrefstate), IsVirtual = item.OrderType == OrderInfo.OrderTypes.Virtual ? 1 : 0, IsPay = item.PayDate.HasValue ? 1 : 0 }); });