/// <summary> /// 导出退款记录 /// </summary> /// <param name="query"></param> /// <returns></returns> public ActionResult ExportToExcel(RefundQuery query) { var orderResults = RefundApplication.GetAllFullOrderReFunds(query); string strTitle = "退款记录"; #region 导出时标题名称 if (query.ShowRefundType.HasValue) { switch (query.ShowRefundType) { case 1: strTitle = "订单退款"; break; case 2: strTitle = "退款记录"; break; case 3: strTitle = "退货记录"; break; case 4: strTitle = "货品退款"; break; } } #endregion return(ExcelView("ExportOrderRefundinfo", "平台" + strTitle, orderResults)); }
/// <summary> /// 获取退款/退货列表 /// </summary> /// <param name="refundQuery"></param> /// <returns></returns> public static QueryPageModel <DTO.OrderRefund> GetOrderRefunds(RefundQuery refundQuery) { var data = _iRefundService.GetOrderRefunds(refundQuery); return(new QueryPageModel <DTO.OrderRefund>() { Models = data.Models.Map <List <DTO.OrderRefund> >(), Total = data.Total }); }
public object GetShopHome() { CheckUserLogin(); DateTime nowDt = DateTime.Now; //三个月内预约单 OrderQuery query = new OrderQuery() { ShopId = this.CurrentUser.ShopId, StartDate = nowDt.Date.AddDays(-nowDt.Day).AddMonths(-2), EndDate = nowDt }; var orders = OrderApplication.GetOrdersNoPage(query); var threeMonthAmounht = orders.Sum(e => e.ActualPayAmount); //从三个月的数据中统计本周的 DateTime weekStartDt = nowDt.Date.AddDays(-(int)nowDt.DayOfWeek); var weekAmount = orders.Where(e => e.OrderDate >= weekStartDt).Sum(e => e.ActualPayAmount); //从三个月的数据中统计当天的 var todayAmount = orders.Where(e => e.OrderDate.Date == nowDt.Date).Sum(e => e.ActualPayAmount); //近三天发布诊疗项目数 ProductQuery productQuery = new ProductQuery(); productQuery.AuditStatus = new[] { ProductInfo.ProductAuditStatus.Audited }; productQuery.StartDate = nowDt.Date.AddDays(-2); productQuery.EndDate = nowDt; productQuery.PageNo = 1; productQuery.PageSize = int.MaxValue; var products = ProductManagerApplication.GetProducts(productQuery).Models; var productCount = products.Select(e => e.Id).Count(); RefundQuery refundQuery = new RefundQuery() { AuditStatus = OrderRefundInfo.OrderRefundAuditStatus.WaitAudit, PageNo = 1, PageSize = int.MaxValue }; var refunds = RefundApplication.GetOrderRefunds(refundQuery); var refundCount = refunds.Total; return(Json(new { success = true, data = new { shopName = CurrentShopBranch.ShopBranchName, todayAmount = todayAmount, weekAmount = weekAmount, threeMonthAmounht = threeMonthAmounht, createProductCount = productCount, refundCount = refundCount } })); }
public ActionResult List(string applyDate, int?auditStatus, int pageNo = 1, int pageSize = 10, int showtype = 0) { DateTime?nullable = null; DateTime?nullable1 = null; if (!string.IsNullOrEmpty(applyDate) && applyDate.ToLower() != "all") { string lower = applyDate.ToLower(); string str = lower; if (lower != null) { if (str == "threemonth") { nullable = new DateTime?(DateTime.Now.AddMonths(-3)); } else if (str == "threemonthago") { nullable1 = new DateTime?(DateTime.Now.AddMonths(-3)); } } } if (auditStatus.HasValue) { int?nullable2 = auditStatus; if ((nullable2.GetValueOrDefault() != 0 ? false : nullable2.HasValue)) { auditStatus = null; } } RefundQuery refundQuery = new RefundQuery() { StartDate = nullable, EndDate = nullable1, Status = auditStatus, UserId = new long?(base.CurrentUser.Id), PageSize = pageSize, PageNo = pageNo, ShowRefundType = new int?(showtype) }; PageModel <OrderRefundInfo> orderRefunds = ServiceHelper.Create <IRefundService>().GetOrderRefunds(refundQuery); PagingInfo pagingInfo = new PagingInfo() { CurrentPage = pageNo, ItemsPerPage = pageSize, TotalItems = orderRefunds.Total }; ViewBag.pageInfo = pagingInfo; ViewBag.UserId = base.CurrentUser.Id; ViewBag.ShowType = showtype; return(View(orderRefunds.Models)); }
/// <summary> /// 查询退单 /// </summary> /// <param name="str"></param> /// <returns></returns> static RefundQueryBack QueryRefundBack(string str) { var apps = File.ReadAllLines(@"D:\cert.txt"); var payHandle = new PayHandle(); var refundQuery = new RefundQuery() { AppID = apps[0], MchID = apps[1], Key = apps[3], OutTradeNo = str }; var refundQueryBack = payHandle.Send(refundQuery) as RefundQueryBack; return(refundQueryBack); }
public JsonResult RefundQuery([FromBody] RefundQuery refundQuery) { try { _log.Info("退款查询"); RefundQueryBack refundQueryBack; string message; var result = wxHandle.RefundQuery(refundQuery, out refundQueryBack, out message); return(BuildJsonResult(refundQueryBack, result, message)); } catch (Exception exc) { _log.Fatal(exc, $"退款查询:{exc.Message}"); return(BuildJsonResult <RefundQueryBack>(null, false, exc.Message)); } }
public List <OrderRefundApiModel> GetRefund(int?refundMode, long?shopBranchId = null, long?orderId = null, int pageNo = 1, /*页码*/ int pageSize = 10 /*每页显示数据量*/) { CheckUserLogin(); var queryModel = new RefundQuery() { ShopId = CurrentShop.Id, PageSize = pageSize, PageNo = pageNo, ShowRefundType = refundMode, OrderId = orderId, ShopBranchId = shopBranchId }; var refunds = Application.RefundApplication.GetOrderRefunds(queryModel); return(FullModel(refunds.Models)); }
public JsonResult GetPlatfromMessage() { ProductQuery productQuery = new ProductQuery() { PageSize = 10000, PageNo = 1, AuditStatus = new ProductInfo.ProductAuditStatus[] { ProductInfo.ProductAuditStatus.WaitForAuditing }, SaleStatus = new ProductInfo.ProductSaleStatus?(ProductInfo.ProductSaleStatus.OnSale) }; ProductQuery productQuery1 = productQuery; int num = ServiceHelper.Create <IProductService>().GetProducts(productQuery1).Models.Count(); ShopQuery shopQuery = new ShopQuery() { Status = new ShopInfo.ShopAuditStatus?(0), PageSize = 10000, PageNo = 1 }; int num1 = ( from s in ServiceHelper.Create <IShopService>().GetShops(shopQuery).Models where (int)s.ShopStatus == 2 || (int)s.ShopStatus == 5 || (int)s.ShopStatus == 3 select s).Count(); long? nullable = null; int num2 = ServiceHelper.Create <IBrandService>().GetShopBrandApplys(nullable, new int?(0), 1, 10000, "").Models.Count(); ComplaintQuery complaintQuery = new ComplaintQuery() { Status = new OrderComplaintInfo.ComplaintStatus?(OrderComplaintInfo.ComplaintStatus.Dispute), PageSize = 10000, PageNo = 1 }; ComplaintQuery complaintQuery1 = complaintQuery; int num3 = ServiceHelper.Create <IComplaintService>().GetOrderComplaints(complaintQuery1).Models.Count(); RefundQuery refundQuery = new RefundQuery() { ConfirmStatus = new OrderRefundInfo.OrderRefundConfirmStatus?(OrderRefundInfo.OrderRefundConfirmStatus.UnConfirm), AuditStatus = new OrderRefundInfo.OrderRefundAuditStatus?(OrderRefundInfo.OrderRefundAuditStatus.Audited), PageSize = 10000, PageNo = 1 }; RefundQuery refundQuery1 = refundQuery; int num4 = ServiceHelper.Create <IRefundService>().GetOrderRefunds(refundQuery1).Models.Count(); int num5 = num + num1 + num2 + num3 + num4; return(Json(new { ProductWaitForAuditing = num, ShopWaitAudit = num1, BrandAudit = num2, ComplaintDispute = num3, RefundWaitAudit = num4, AllMessageCount = num5 }, JsonRequestBehavior.AllowGet)); }
/// <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 ActionResult <string> GetRefundQuery(string refund_id, string out_refund_no, string transaction_id, string out_trade_no) { if (string.IsNullOrEmpty(refund_id) && string.IsNullOrEmpty(out_refund_no) && string.IsNullOrEmpty(transaction_id) && string.IsNullOrEmpty(out_trade_no)) { return("微信订单号、商户订单号、商户退款单号、微信退款单号选填至少一个,微信退款单号优先!"); } //调用退款查询接口,如果内部出现异常则在页面上显示异常原因 try { string result = RefundQuery.Run(refund_id, out_refund_no, transaction_id, out_trade_no); return(result); } catch (WxPayException ex) { return(ex.ToString()); } catch (Exception ex) { return(ex.ToString()); } }
protected void submit_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(refund_id.Text) && string.IsNullOrEmpty(out_refund_no.Text) && string.IsNullOrEmpty(transaction_id.Text) && string.IsNullOrEmpty(out_trade_no.Text)) { Response.Write("<script LANGUAGE='javascript'>alert('微信订单号、商户订单号、商户退款单号、微信退款单号选填至少一个,微信退款单号优先!');</script>"); return; } //调用退款查询接口,如果内部出现异常则在页面上显示异常原因 try { string result = RefundQuery.Run(refund_id.Text, out_refund_no.Text, transaction_id.Text, out_trade_no.Text); Response.Write("<span style='color:#00CD00;font-size:20px'>" + result + "</span>"); } catch (WxPayException ex) { Response.Write("<span style='color:#FF0000;font-size:20px'>" + ex.ToString() + "</span>"); } catch (Exception ex) { Response.Write("<span style='color:#FF0000;font-size:20px'>" + ex.ToString() + "</span>"); } }
/// <summary> /// 获取退款记录列表(忽略分页) /// </summary> /// <param name="refundQuery"></param> /// <returns></returns> public static List <OrderRefundExportModel> GetAllFullOrderReFunds(RefundQuery refundQuery) { var data = Service.GetAllOrderRefunds(refundQuery); if (data == null || data.Count() <= 0) { return(new List <OrderRefundExportModel>()); } var orderResults = new List <OrderRefundExportModel>(); #region 购置OrderRefundExportModel实体 var orders = Application.OrderApplication.GetOrders(data.Select(p => p.OrderId)); var orderItems = Application.OrderApplication.GetOrderItems(data.Select(p => p.OrderItemId)); foreach (var item in data) { string strProductName = "订单所有商品";//退款时商品名称 #region 店名称 var order = orders.Where(p => p.Id == item.OrderId).First(); string strShopBranchName = order.ShopName;//门店名称 if (order != null && order.ShopBranchId > 0) { var shopBranchInfo = ShopBranchApplication.GetShopBranchById(order.ShopBranchId); if (shopBranchInfo != null) { strShopBranchName = shopBranchInfo.ShopBranchName; } } #endregion #region 商品名称 if (item.RefundMode != OrderRefundInfo.OrderRefundMode.OrderRefund) { 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 + " 】"; } strProductName = orderItem.ProductName + spec; } #endregion var refundModel = new OrderRefundExportModel() { RefundId = item.Id, OrderId = item.OrderId, ShopName = item.ShopName, ProductName = strProductName, //商品名称 ShopBranchName = strShopBranchName, //门店名称 UserName = item.Applicant, //用户名 ContactPerson = item.ContactPerson, ContactCellPhone = item.ContactCellPhone, ApplyDate = item.ApplyDate.ToString(), SellerRemark = item.SellerRemark, Amount = item.Amount.ToString("f2"), RefundStatus = item.RefundStatus, RefundPayType = item.RefundPayType.ToDescription(),//退款支付方式 Reason = item.Reason, CertPic1 = Core.HimallIO.GetImagePath(item.CertPic1), CertPic2 = Core.HimallIO.GetImagePath(item.CertPic2), CertPic3 = Core.HimallIO.GetImagePath(item.CertPic3), ReasonDetail = item.ReasonDetail, ManagerRemark = item.ManagerRemark, RefundMode = item.RefundMode.GetHashCode(), //退款方式 ReturnQuantity = item.ReturnQuantity, //退货数量 }; orderResults.Add(refundModel); } #endregion return(orderResults); }
public static int GetOrderRefundsCount(RefundQuery query) { return(Service.GetOrderRefundCount(query)); }
/// <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)); }
/// <summary> /// 获取退款/售后列表 /// </summary> /// <param name="pageNo">页码</param> /// <param name="pageSize">每页数量</param> /// <returns></returns> public object GetRefundList(int pageNo, int pageSize) { CheckUserLogin(); var orderser = ServiceProvider.Instance <IOrderService> .Create; var refundser = ServiceProvider.Instance <IRefundService> .Create; var vshopser = ServiceProvider.Instance <IVShopService> .Create; DateTime?startDate = null; DateTime?endDate = null; var queryModel = new RefundQuery() { StartDate = startDate, EndDate = endDate, UserId = CurrentUser.Id, PageSize = pageSize, PageNo = pageNo, ShowRefundType = 0 }; var refunds = refundser.GetOrderRefunds(queryModel); var list = refunds.Models.Select(item => { var vshop = vshopser.GetVShopByShopId(item.ShopId) ?? new VShopInfo() { Id = 0 }; var order = orderser.GetOrder(item.OrderId, CurrentUser.Id); var status = item.RefundStatus; if (order != null && (order.ShopBranchId.HasValue && order.ShopBranchId.Value > 0)) { status = status.Replace("商家", "门店"); } IEnumerable <OrderItemInfo> orderItems = null; if (item.RefundMode == OrderRefundInfo.OrderRefundMode.OrderRefund) { orderItems = orderser.GetOrder(item.OrderId, CurrentUser.Id).OrderItemInfo.ToList(); } return(new { ShopName = item.ShopName, Vshopid = vshop.Id, RefundStatus = status, Id = item.Id, ProductName = item.OrderItemInfo.ProductName, EnabledRefundAmount = item.EnabledRefundAmount, Amount = item.Amount, Img = Core.HimallIO.GetRomoteProductSizeImage(item.OrderItemInfo.ThumbnailsUrl, 1, (int)Himall.CommonModel.ImageSize.Size_350), ShopId = item.ShopId, RefundMode = item.RefundMode.ToDescription(), RefundModeValue = (int)item.RefundMode, OrderId = item.OrderId, OrderItems = orderItems != null ? orderItems.Select(e => new { ThumbnailsUrl = Core.HimallIO.GetRomoteProductSizeImage(e.ThumbnailsUrl, 1, (int)Himall.CommonModel.ImageSize.Size_350), ProductName = e.ProductName }) : null, SellerAuditStatus = item.SellerAuditStatus.ToDescription(), SellerAuditStatusValue = (int)item.SellerAuditStatus, }); }); return(Json(new { Total = refunds.Total, Data = list, Success = true })); }
/// <summary> /// 显示售后记录 /// </summary> /// <param name="applyDate"></param> /// <param name="auditStatus"></param> /// <param name="pageNo"></param> /// <param name="pageSize"></param> /// <param name="showtype">0 所有 1 预约单退款 2 仅退款(包含预约单退款) 3 退货 4 仅退款</param> /// <returns></returns> public JsonResult List(int pageNo = 1, int pageSize = 10) { DateTime?startDate = null; DateTime?endDate = null; var queryModel = new RefundQuery() { StartDate = startDate, EndDate = endDate, UserId = CurrentUser.Id, PageSize = pageSize, PageNo = pageNo, ShowRefundType = 0 }; var refunds = _iRefundService.GetOrderRefunds(queryModel); var list = refunds.Models.Select(item => { var vshop = _iVShopService.GetVShopByShopId(item.ShopId) ?? new VShopInfo() { Id = 0 }; IEnumerable <OrderItemInfo> orderItems = null; bool IsSelfTake = false; var order = _iOrderService.GetOrder(item.OrderId, CurrentUser.Id); if (order.DeliveryType == CommonModel.Enum.DeliveryType.SelfTake) { IsSelfTake = true; } if (item.RefundMode == OrderRefundInfo.OrderRefundMode.OrderRefund) { orderItems = order.OrderItemInfo.ToList(); } var status = string.Empty; if (IsSelfTake || (order.ShopBranchId.HasValue && order.ShopBranchId.Value > 0))//分配门店预约单与自提预约单一致 { status = item.RefundStatus.Replace("诊所", "门店"); } return(new { ShopName = item.ShopName, Vshopid = vshop.Id, RefundStatus = string.IsNullOrEmpty(status) ? item.RefundStatus : status, Id = item.Id, ProductName = item.OrderItemInfo.ProductName, EnabledRefundAmount = item.EnabledRefundAmount, Amount = item.Amount, Img = HimallIO.GetProductSizeImage(item.OrderItemInfo.ThumbnailsUrl, 1, (int)ImageSize.Size_100), ShopId = item.ShopId, RefundMode = item.RefundMode, OrderId = item.OrderId, OrderItems = orderItems != null ? orderItems.Select(e => new { ThumbnailsUrl = HimallIO.GetProductSizeImage(e.ThumbnailsUrl, 1, (int)ImageSize.Size_100), ProductName = e.ProductName }) : null, SellerAuditStatus = item.SellerAuditStatus }); }); return(Json(new { Data = list, Success = true })); }
public PageModel <OrderRefundInfo> GetOrderRefunds(RefundQuery refundQuery) { int num; int value = 0; if (refundQuery.Status.HasValue) { value = refundQuery.Status.Value; } IQueryable <OrderRefundInfo> startDate = context.OrderRefundInfo.Include("OrderItemInfo").AsQueryable <OrderRefundInfo>(); if (refundQuery.StartDate.HasValue) { startDate = from item in startDate where refundQuery.StartDate <= item.ApplyDate select item; } if (refundQuery.EndDate.HasValue) { startDate = from item in startDate where refundQuery.EndDate >= item.ApplyDate select item; } if (refundQuery.ConfirmStatus.HasValue) { startDate = from item in startDate where (int?)refundQuery.ConfirmStatus == (int?)item.ManagerConfirmStatus select item; } if (refundQuery.ShopId.HasValue) { startDate = from item in startDate where refundQuery.ShopId == item.ShopId select item; } if (refundQuery.UserId.HasValue) { startDate = from item in startDate where item.UserId == refundQuery.UserId select item; } if (!string.IsNullOrWhiteSpace(refundQuery.ProductName)) { startDate = from item in startDate where item.OrderItemInfo.ProductName.Contains(refundQuery.ProductName) select item; } if (!string.IsNullOrWhiteSpace(refundQuery.ShopName)) { startDate = from item in startDate where item.ShopName.Contains(refundQuery.ShopName) select item; } if (!string.IsNullOrWhiteSpace(refundQuery.UserName)) { startDate = from item in startDate where item.Applicant.Contains(refundQuery.UserName) select item; } if (refundQuery.MoreOrderId == null) { refundQuery.MoreOrderId = new List <long>(); } if (refundQuery.OrderId.HasValue) { refundQuery.MoreOrderId.Add(refundQuery.OrderId.Value); refundQuery.MoreOrderId = refundQuery.MoreOrderId.Distinct <long>().ToList(); startDate = startDate.FindBy((OrderRefundInfo d) => refundQuery.MoreOrderId.Contains(d.OrderId)); } if (refundQuery.ShowRefundType.HasValue) { int?showRefundType = refundQuery.ShowRefundType; int valueOrDefault = showRefundType.GetValueOrDefault(); if (showRefundType.HasValue) { switch (valueOrDefault) { case 1: { startDate = startDate.FindBy((OrderRefundInfo d) => (int)d.RefundMode == 1); break; } case 2: { startDate = startDate.FindBy((OrderRefundInfo d) => (int)d.RefundMode == 2 || (int)d.RefundMode == 1); break; } case 3: { startDate = startDate.FindBy((OrderRefundInfo d) => (int)d.RefundMode == 3); break; } case 4: { startDate = startDate.FindBy((OrderRefundInfo d) => (int)d.RefundMode == 2); break; } } } } if (value > 0 && value <= 5) { startDate = from item in startDate where (int)item.SellerAuditStatus == (int)value select item; } if (value >= 6) { startDate = from item in startDate where (int)item.ManagerConfirmStatus == (int)value && (int)item.SellerAuditStatus == 5 select item; } if (refundQuery.AuditStatus.HasValue) { OrderRefundInfo.OrderRefundAuditStatus?auditStatus = refundQuery.AuditStatus; startDate = ((auditStatus.GetValueOrDefault() != OrderRefundInfo.OrderRefundAuditStatus.WaitAudit ? true : !auditStatus.HasValue) ? from item in startDate where (int?)item.SellerAuditStatus == (int?)refundQuery.AuditStatus select item : from item in startDate where (int)item.SellerAuditStatus == 1 || (int)item.SellerAuditStatus == 3 select item); } startDate = startDate.GetPage(out num, refundQuery.PageNo, refundQuery.PageSize, null); List <OrderRefundInfo> list = startDate.ToList(); List <long> nums = ( from r in list select r.OrderId).ToList(); List <OrderInfo> orderInfos = ( from d in context.OrderInfo where nums.Contains(d.Id) select d).ToList(); foreach (OrderRefundInfo productTotalAmount in list) { if (productTotalAmount.RefundMode != OrderRefundInfo.OrderRefundMode.OrderRefund) { productTotalAmount.EnabledRefundAmount = (!productTotalAmount.OrderItemInfo.EnabledRefundAmount.HasValue ? new decimal(0) : productTotalAmount.OrderItemInfo.EnabledRefundAmount.Value); } else { OrderInfo orderInfo = orderInfos.FirstOrDefault((OrderInfo d) => d.Id == productTotalAmount.OrderId); if (orderInfo == null) { continue; } productTotalAmount.EnabledRefundAmount = (orderInfo.ProductTotalAmount + orderInfo.Freight) - orderInfo.DiscountAmount; } ShopInfo shopInfo = context.ShopInfo.FirstOrDefault((ShopInfo m) => m.Id.Equals(productTotalAmount.ShopId)); productTotalAmount.CompanyName = (shopInfo == null ? "" : shopInfo.CompanyName); } PageModel <OrderRefundInfo> pageModel = new PageModel <OrderRefundInfo>() { Models = list.AsQueryable <OrderRefundInfo>(), Total = num }; return(pageModel); }
public ActionResult Center() { MemberCenterModel model = new MemberCenterModel(); var orders = _iOrderService.GetTopOrders(int.MaxValue, CurrentUser.Id); var setting = _iDistributionService.GetDistributionSetting(); model.CanDistribution = false; if (setting != null && setting.Enable) { model.CanDistribution = true; } //待评价 //var queryModel = new OrderQuery() //{ // Status = Model.OrderInfo.OrderOperateStatus.Finish, // UserId = CurrentUser.Id, // PageSize = int.MaxValue, // PageNo = 1, // Commented = false //}; //ViewBag.WaitingForComments = _iOrderService.GetOrders<OrderInfo>(queryModel).Total; var member = _iMemberService.GetMember(CurrentUser.Id); model.Member = member; model.AllOrders = orders.Count(); model.WaitingForRecieve = orders.Count(item => item.UserId == CurrentUser.Id && (item.OrderStatus == Model.OrderInfo.OrderOperateStatus.WaitReceiving || item.OrderStatus == OrderInfo.OrderOperateStatus.WaitSelfPickUp)); //获取待收货订单数 model.WaitingForPay = orders.Count(item => item.OrderStatus == Model.OrderInfo.OrderOperateStatus.WaitPay); //获取待支付订单数 var waitdelordnum = orders.Count(item => item.OrderStatus == Model.OrderInfo.OrderOperateStatus.WaitDelivery); //获取待发货订单数 var fgwaitdelordnum = _iOrderService.GetFightGroupOrderByUser(CurrentUser.Id); model.WaitingForDelivery = waitdelordnum - fgwaitdelordnum; model.WaitingForComments = orders.Count(item => item.OrderStatus == Model.OrderInfo.OrderOperateStatus.Finish && item.OrderCommentInfo.Count == 0); //拼团 model.CanFightGroup = FightGroupApplication.IsOpenMarketService(); model.BulidFightGroupNumber = FightGroupApplication.CountJoiningOrder(CurrentUser.Id); RefundQuery query = new RefundQuery() { UserId = CurrentUser.Id, PageNo = 1, PageSize = int.MaxValue }; var refundPage = _iRefundService.GetOrderRefunds(query); DateTime endsrtime = DateTime.Now.Date; if (CurrentSiteSetting.SalesReturnTimeout > 0) { endsrtime = endsrtime.AddDays(-CurrentSiteSetting.SalesReturnTimeout).Date; } model.RefundOrders = refundPage.Models.Where(e => e.ManagerConfirmStatus == OrderRefundInfo.OrderRefundConfirmStatus.UnConfirm || (e.SellerAuditStatus == OrderRefundInfo.OrderRefundAuditStatus.UnAudit && e.OrderItemInfo.OrderInfo.FinishDate >= endsrtime)).Count(); var capital = _iMemberCapitalService.GetCapitalInfo(CurrentUser.Id); decimal cap; if (capital != null) { cap = capital.Balance.HasValue ? capital.Balance.Value : 0; } else { cap = 0; } model.Capital = cap; var CouponsCount = _iCouponService.GetAllUserCoupon(CurrentUser.Id).Count(); CouponsCount += _iShopBonusService.GetCanUseDetailByUserId(CurrentUser.Id).Count(); model.CouponsCount = CouponsCount; var userInte = MemberIntegralApplication.GetMemberIntegral(UserId); var userGrade = MemberGradeApplication.GetMemberGradeByUserIntegral(userInte.HistoryIntegrals); model.GradeName = userGrade.GradeName; model.MemberAvailableIntegrals = userInte.AvailableIntegrals; model.CollectionShop = _iVShopService.GetUserConcernVShops(CurrentUser.Id, 1, int.MaxValue).Count(); model.CanSignIn = _iMemberSignInService.CanSignInByToday(CurrentUser.Id); model.SignInIsEnable = _iMemberSignInService.GetConfig().IsEnable; model.userMemberInfo = CurrentUser; return(View(model)); }
/// <summary> /// 显示售后记录 /// </summary> /// <param name="applyDate"></param> /// <param name="auditStatus"></param> /// <param name="pageNo"></param> /// <param name="pageSize"></param> /// <param name="showtype">0 所有 1 订单退款 2 仅退款(包含订单退款) 3 退货 4 仅退款</param> /// <returns></returns> public JsonResult List(int pageNo = 1, int pageSize = 10) { DateTime?startDate = null; DateTime?endDate = null; var queryModel = new RefundQuery() { StartDate = startDate, EndDate = endDate, UserId = CurrentUser.Id, PageSize = pageSize, PageNo = pageNo, ShowRefundType = 0 }; var refunds = _iRefundService.GetOrderRefunds(queryModel); var list = refunds.Models.Select(item => { var vshop = _iVShopService.GetVShopByShopId(item.ShopId) ?? new Entities.VShopInfo() { Id = 0 }; bool IsSelfTake = false; var order = _iOrderService.GetOrder(item.OrderId, CurrentUser.Id); if (order.DeliveryType == CommonModel.DeliveryType.SelfTake) { IsSelfTake = true; } var status = string.Empty; if (IsSelfTake || order.ShopBranchId > 0)//分配门店订单与自提订单一致 { status = item.RefundStatus.Replace("商家", "门店"); } var shopBranch = ShopBranchApplication.GetShopBranchById(order.ShopBranchId); var branchName = shopBranch == null ? "" : shopBranch.ShopBranchName; var orderItem = OrderApplication.GetOrderItem(item.OrderItemId); var orderItems = new List <Entities.OrderItemInfo>(); if (item.RefundMode == OrderRefundInfo.OrderRefundMode.OrderRefund) { orderItems = _iOrderService.GetOrderItemsByOrderId(item.OrderId); } else { orderItems.Add(orderItem); } return(new { ShopName = item.ShopName, Vshopid = vshop.Id, ShopBranchId = order.ShopBranchId, ShopBranchName = branchName, RefundStatus = string.IsNullOrEmpty(status) ? item.RefundStatus : status, Id = item.Id, ProductName = orderItem.ProductName, EnabledRefundAmount = item.EnabledRefundAmount, Amount = item.Amount, Img = MallIO.GetProductSizeImage(orderItem.ThumbnailsUrl, 1, (int)ImageSize.Size_100), ShopId = item.ShopId, RefundMode = item.RefundMode, OrderId = item.OrderId, OrderTotal = order.OrderTotalAmount.ToString("f2"), OrderItems = orderItems != null ? orderItems.Select(e => new { ThumbnailsUrl = MallIO.GetProductSizeImage(e.ThumbnailsUrl, 1, (int)ImageSize.Size_100), ProductName = e.ProductName, SkuText = e.Color + " " + e.Size + " " + e.Version, }) : null, SellerAuditStatus = item.SellerAuditStatus }); }); return(SuccessResult <dynamic>(data: list)); }
/// <summary> /// 查询退款状态 /// </summary> /// <param name="context"></param> /// <returns></returns> public string CheckRefundStatus(HttpContext context) { string bizcontent = context.Request["bizcontent"]; JObject jo = (JObject)JsonConvert.DeserializeObject(bizcontent); long orderid = GetJObjectValue <long>(jo, "PlatOrderNo"); if (orderid == 0) { throw new HimallApiException("错误的参数"); } RefundQuery query = new RefundQuery(); query.OrderId = orderid; query.PageNo = 1; query.PageSize = int.MaxValue; var data = RefundApplication.GetOrderRefunds(query); StringBuilder sb = new StringBuilder(); sb.Append("{"); if (data.Models.Count() > 0) { var ordRefund = data.Models.FirstOrDefault(d => d.RefundMode == OrderRefundInfo.OrderRefundMode.OrderRefund); string refundStatus = ""; string refundStatusName = ""; if (ordRefund.RefundMode == OrderRefundInfo.OrderRefundMode.OrderRefund && ordRefund.SellerAuditStatus != OrderRefundInfo.OrderRefundAuditStatus.UnAudit) { switch (ordRefund.SellerAuditStatus) { case OrderRefundInfo.OrderRefundAuditStatus.WaitAudit: refundStatus = "JH_01"; refundStatusName = "已申请"; break; case OrderRefundInfo.OrderRefundAuditStatus.UnAudit: refundStatus = "JH_04"; refundStatusName = "拒绝申请"; break; case OrderRefundInfo.OrderRefundAuditStatus.Audited: if (ordRefund.ManagerConfirmStatus == OrderRefundInfo.OrderRefundConfirmStatus.Confirmed) { refundStatus = "JH_06"; refundStatusName = "已退款"; } else { refundStatus = "JH_99"; refundStatusName = "其他"; } break; } //订单退款 sb.Append("\"refundStatus\":" + "\"" + refundStatus + "\""); sb.Append(",\"refundStatusdescription\":" + "\"" + refundStatusName + "\""); sb.Append(",\"childrenrefundStatus\":" + "\"" + "" + "\""); sb.Append(",\"code\":" + "\"" + "10000" + "\""); sb.Append(",\"message\":" + "\"" + "SUCCESS" + "\""); sb.Append(",\"submessage\":" + "\"" + "退款成功" + "\""); } else { var itemRefund = data.Models.Where(d => d.RefundMode != OrderRefundInfo.OrderRefundMode.OrderRefund).ToList(); if (itemRefund.Count > 0) { sb.Append("\"refundStatus\":" + "\"JH_99\""); sb.Append(",\"refundStatusdescription\":" + "\"其他\""); sb.Append(",\"code\":" + "\"" + "10000" + "\""); sb.Append(",\"message\":" + "\"" + "SUCCESS" + "\""); sb.Append(",\"submessage\":" + "\"" + "退款成功" + "\""); sb.Append(",\"childrenrefundStatus\":["); int curitemno = 0; foreach (var item in itemRefund) { if (curitemno > 0) { sb.Append(","); } sb.Append("{"); switch (item.SellerAuditStatus) { case OrderRefundInfo.OrderRefundAuditStatus.WaitAudit: refundStatus = "JH_01"; refundStatusName = "已申请"; break; case OrderRefundInfo.OrderRefundAuditStatus.UnAudit: refundStatus = "JH_04"; refundStatusName = "拒绝申请"; break; case OrderRefundInfo.OrderRefundAuditStatus.Audited: if (item.ManagerConfirmStatus == OrderRefundInfo.OrderRefundConfirmStatus.Confirmed) { refundStatus = "JH_06"; refundStatusName = "已退款"; } else { refundStatus = "JH_99"; refundStatusName = "其他"; } break; } var orditem = OrderApplication.GetOrderItem(item.OrderItemId); if (orditem != null) { sb.Append("\"refundno\":\"" + item.Id + "\""); sb.Append("\"productname\":\"" + orditem.ProductName + "\""); sb.Append("\"refundstatus\":\"" + refundStatus + "\""); sb.Append("\"refundstatusdescription\":\"" + refundStatusName + "\""); sb.Append("}"); curitemno++; } } sb.Append("]"); } } } else { sb.Append("\"code\":" + "\"" + "10000" + "\""); sb.Append(",\"message\":" + "\"" + "Succes" + "\""); sb.Append(",\"submessage\":" + "\"" + "没有退款" + "\""); sb.Append(",\"refundStatus\":" + "\"JH_07\""); sb.Append(",\"refundStatusdescription\":" + "\"没有退款\""); sb.Append(",\"childrenrefundStatus\":" + "\"" + "" + "\""); } sb.Append("}"); return(sb.ToString()); }
public JsonResult List(DateTime?startDate, DateTime?endDate, long?orderId, int?auditStatus, long?shopBranchId, string userName, string ProductName, int page, int rows, int showtype = 0) { var queryModel = new RefundQuery() { StartDate = startDate, EndDate = endDate, OrderId = orderId, ProductName = ProductName, AuditStatus = (Model.OrderRefundInfo.OrderRefundAuditStatus?)auditStatus, ShopId = CurrentSellerManager.ShopId, UserName = userName, PageSize = rows, PageNo = page, ShowRefundType = showtype }; if (shopBranchId.HasValue && shopBranchId.Value > 0) { queryModel.ShopBranchId = shopBranchId.Value; } var refunds = Application.RefundApplication.GetOrderRefunds(queryModel); var orders = Application.OrderApplication.GetOrders(refunds.Models.Select(p => p.OrderId)); var orderItems = Application.OrderApplication.GetOrderItemsByOrderItemId(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 shopBranchName = "总店"; if (order.ShopBranchId.HasValue && order.ShopBranchId.Value > 0) { var shopBranchInfo = ShopBranchApplication.GetShopBranchById(order.ShopBranchId.Value); if (shopBranchInfo != null) { shopBranchName = shopBranchInfo.ShopBranchName; } } return(new OrderRefundModel() { RefundId = item.Id, OrderId = item.OrderId, AuditStatus = (order.DeliveryType == CommonModel.Enum.DeliveryType.SelfTake || (order.ShopBranchId.HasValue && order.ShopBranchId.Value > 0)) ? ((CommonModel.Enum.OrderRefundShopAuditStatus)(int) item.SellerAuditStatus).ToDescription() : item.SellerAuditStatus.ToDescription(), ConfirmStatus = item.ManagerConfirmStatus.ToDescription(), ApplyDate = item.ApplyDate.ToShortDateString(), ShopId = item.ShopId, ShopName = item.ShopName.Replace("'", "‘").Replace("\"", "”"), UserId = item.UserId, UserName = item.Applicant, ContactPerson = HTMLEncode(item.ContactPerson), ContactCellPhone = HTMLEncode(item.ContactCellPhone), RefundAccount = string.IsNullOrEmpty(item.RefundAccount) ? string.Empty : HTMLEncode(item.RefundAccount.Replace("'", "‘").Replace("\"", "”")), Amount = item.Amount.ToString("F2"), ReturnQuantity = ((item.RefundMode == OrderRefundInfo.OrderRefundMode.OrderRefund) ? 0 : (item.ShowReturnQuantity == 0 ? orderItem.ReturnQuantity : item.ShowReturnQuantity)), Quantity = orderItem.Quantity, SalePrice = item.EnabledRefundAmount.ToString("F2"), ProductName = ((item.RefundMode == OrderRefundInfo.OrderRefundMode.OrderRefund) ? "预约单所有诊疗项目" : (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("\"", "”"), ExpressCompanyName = HTMLEncode(item.ExpressCompanyName), ShipOrderNumber = item.ShipOrderNumber, Payee = string.IsNullOrEmpty(item.Payee) ? string.Empty : HTMLEncode(item.Payee), PayeeAccount = string.IsNullOrEmpty(item.PayeeAccount) ? string.Empty : HTMLEncode(item.PayeeAccount.Replace("'", "‘").Replace("\"", "”")), 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 == OrderRefundInfo.OrderRefundAuditStatus.Audited) ? item.ManagerConfirmStatus.ToDescription() : ((order.DeliveryType == CommonModel.Enum.DeliveryType.SelfTake || (order.ShopBranchId.HasValue && order.ShopBranchId.Value > 0)) ? ((CommonModel.Enum.OrderRefundShopAuditStatus)item.SellerAuditStatus).ToDescription() : item.SellerAuditStatus.ToDescription())), RefundPayType = item.RefundPayType == null ? "线下处理" : item.RefundPayType.ToDescription(), ApplyNumber = (item.ApplyNumber.HasValue ? item.ApplyNumber.Value : 1), nextSecond = GetNextSecond(item), CertPic1 = Core.HimallIO.GetImagePath(item.CertPic1), CertPic2 = Core.HimallIO.GetImagePath(item.CertPic2), CertPic3 = Core.HimallIO.GetImagePath(item.CertPic3), ShopBranchId = order.ShopBranchId.HasValue ? order.ShopBranchId.Value : 0, ShopBranchName = shopBranchName }); }); var dataGrid = new DataGridModel <OrderRefundModel>() { rows = refundModels, total = refunds.Total }; return(Json(dataGrid)); }
public ActionResult Index(string orderDate, string keywords, string orderids, DateTime?startDateTime, DateTime?endDateTime, int?orderStatus, int pageNo = 1, int pageSize = 10) { OrderInfo.OrderOperateStatus?nullable; ViewBag.Grant = (object)null; if (!string.IsNullOrEmpty(orderids) && orderids.IndexOf(',') <= 0) { ViewBag.Grant = ServiceHelper.Create <IShopBonusService>().GetByOrderId(long.Parse(orderids)); } DateTime?nullable1 = startDateTime; DateTime?nullable2 = endDateTime; if (!string.IsNullOrEmpty(orderDate) && orderDate.ToLower() != "all") { string lower = orderDate.ToLower(); string str = lower; if (lower != null) { if (str == "threemonth") { nullable1 = new DateTime?(DateTime.Now.AddMonths(-3)); } else if (str == "halfyear") { nullable1 = new DateTime?(DateTime.Now.AddMonths(-6)); } else if (str == "year") { nullable1 = new DateTime?(DateTime.Now.AddYears(-1)); } else if (str == "yearago") { nullable2 = new DateTime?(DateTime.Now.AddYears(-1)); } } } if (orderStatus.HasValue) { int?nullable3 = orderStatus; if ((nullable3.GetValueOrDefault() != 0 ? false : nullable3.HasValue)) { orderStatus = null; } } OrderQuery orderQuery = new OrderQuery() { StartDate = nullable1, EndDate = nullable2 }; OrderQuery orderQuery1 = orderQuery; int? nullable4 = orderStatus; if (nullable4.HasValue) { nullable = new OrderInfo.OrderOperateStatus?((OrderInfo.OrderOperateStatus)nullable4.GetValueOrDefault()); } else { nullable = null; } orderQuery1.Status = nullable; orderQuery.UserId = new long?(base.CurrentUser.Id); orderQuery.SearchKeyWords = keywords; orderQuery.PageSize = pageSize; orderQuery.PageNo = pageNo; PageModel <OrderInfo> orders = ServiceHelper.Create <IOrderService>().GetOrders <OrderInfo>(orderQuery, null); PagingInfo pagingInfo = new PagingInfo() { CurrentPage = pageNo, ItemsPerPage = pageSize, TotalItems = orders.Total }; ViewBag.pageInfo = pagingInfo; ViewBag.UserId = base.CurrentUser.Id; SiteSettingsInfo siteSettings = ServiceHelper.Create <ISiteSettingService>().GetSiteSettings(); IShopBonusService shopBonusService = ServiceHelper.Create <IShopBonusService>(); ViewBag.SalesRefundTimeout = siteSettings.SalesReturnTimeout; List <OrderInfo> list = orders.Models.ToList(); ICashDepositsService create = Instance <ICashDepositsService> .Create; IEnumerable <OrderListModel> orderListModel = from item in list select 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, OrderStatus = item.OrderStatus, RefundStats = item.RefundStats, OrderCommentInfo = item.OrderCommentInfo, OrderDate = item.OrderDate, OrderItemList = from oItem in item.OrderItemInfo select new OrderItemListModel() { 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 = create.GetCashDepositsObligation(oItem.ProductId) }, ReceiveBonus = shopBonusService.GetGrantByUserOrder(item.Id, CurrentUser.Id) }; List <long> nums = ( from d in list select d.Id).ToList(); if (nums.Count > 0) { RefundQuery refundQuery = new RefundQuery() { OrderId = new long?(nums[0]), MoreOrderId = nums, PageNo = 1, PageSize = list.Count }; List <OrderRefundInfo> orderRefundInfos = ( from d in ServiceHelper.Create <IRefundService>().GetOrderRefunds(refundQuery).Models where (int)d.RefundMode == 1 select d).ToList(); if (orderRefundInfos.Count > 0) { foreach (OrderRefundInfo orderRefundInfo in orderRefundInfos) { OrderInfo orderInfo = list.FirstOrDefault((OrderInfo d) => d.Id == orderRefundInfo.OrderId); if (orderInfo == null) { continue; } orderInfo.RefundStats = (int)(orderRefundInfo.SellerAuditStatus); } } } return(View(orderListModel.ToList())); }
public object GetUser(string UserKey) { CheckUserLogin(); dynamic d = new System.Dynamic.ExpandoObject(); long id = CurrentUser.Id; var member = ServiceProvider.Instance <IMemberService> .Create.GetMember(id); var orders = ServiceProvider.Instance <IOrderService> .Create.GetTopOrders(int.MaxValue, id); var fightGroupOrderCount = ServiceProvider.Instance <IOrderService> .Create.GetFightGroupOrderByUser(id); //待评价 var queryModel = new OrderQuery() { Status = OrderInfo.OrderOperateStatus.Finish, UserId = id, PageSize = int.MaxValue, PageNo = 1, Commented = false }; d.Success = "true"; d.UserName = member.UserName; d.UserId = member.Id.ToString(); //d.Photo = String.IsNullOrEmpty(member.Photo)? "" : "http://" + Url.Request.RequestUri.Host + member.Photo; d.Photo = String.IsNullOrEmpty(member.Photo) ? "" : Core.HimallIO.GetRomoteImagePath(member.Photo); d.AllOrders = orders.Count().ToString(); d.WaitingForPay = orders.Count(item => item.OrderStatus == OrderInfo.OrderOperateStatus.WaitPay).ToString(); d.WaitingForRecieve = orders.Count(item => item.UserId == id && item.OrderStatus == OrderInfo.OrderOperateStatus.WaitReceiving || item.OrderStatus == OrderInfo.OrderOperateStatus.WaitSelfPickUp).ToString(); d.WaitingForDelivery = orders.Count(item => item.OrderStatus == OrderInfo.OrderOperateStatus.WaitDelivery) - fightGroupOrderCount;//获取待发货订单数 d.WaitingForComments = ServiceProvider.Instance <IOrderService> .Create.GetOrders <OrderInfo>(queryModel).Total.ToString(); RefundQuery query = new RefundQuery() { UserId = CurrentUser.Id, PageNo = 1, PageSize = int.MaxValue }; var refundPage = ServiceProvider.Instance <IRefundService> .Create.GetOrderRefunds(query); d.RefundOrders = refundPage.Models.Where(e => e.ManagerConfirmStatus == OrderRefundInfo.OrderRefundConfirmStatus.UnConfirm).Count(); d.CellPhone = member.CellPhone; d.FavoriteShop = ServiceProvider.Instance <IVShopService> .Create.GetUserConcernVShops(CurrentUser.Id, 1, int.MaxValue).Count(); d.FavoriteProduct = member.FavoriteInfo.Count().ToString(); d.Counpon = ServiceProvider.Instance <ICouponService> .Create.GetUserCouponList(member.Id).Where(item => item.UseStatus == CouponRecordInfo.CounponStatuses.Unuse && item.EndTime > DateTime.Now).Count().ToString(); var memberIntegral = ServiceProvider.Instance <IMemberIntegralService> .Create.GetMemberIntegral(member.Id); d.Integral = memberIntegral == null ? "0" : memberIntegral.AvailableIntegrals.ToString(); //用户参与的团数量 List <FightGroupOrderJoinStatus> seastatus = new List <FightGroupOrderJoinStatus>(); seastatus.Add(FightGroupOrderJoinStatus.Ongoing); seastatus.Add(FightGroupOrderJoinStatus.JoinSuccess); seastatus.Add(FightGroupOrderJoinStatus.BuildFailed); seastatus.Add(FightGroupOrderJoinStatus.BuildSuccess); d.GroupTotal = ServiceProvider.Instance <IFightGroupService> .Create.GetJoinGroups(CurrentUser.Id, seastatus, 1, 10).Total; d.MyGroup = ServiceProvider.Instance <IFightGroupService> .Create.CountJoiningOrder(CurrentUser.Id); return(d); }
public ActionResult Index(string orderDate, string keywords, string orderids, DateTime?startDateTime, DateTime?endDateTime, int?orderStatus, int pageNo = 1, int pageSize = 10, string casno = "") { OrderInfo.OrderOperateStatus?nullable; DateTime?nullable1 = startDateTime; DateTime?nullable2 = endDateTime; if (!string.IsNullOrEmpty(orderDate) && orderDate.ToLower() != "all") { string lower = orderDate.ToLower(); string str = lower; if (lower != null) { if (str == "threemonth") { nullable1 = new DateTime?(DateTime.Now.AddMonths(-3)); } else if (str == "halfyear") { nullable1 = new DateTime?(DateTime.Now.AddMonths(-6)); } else if (str == "year") { nullable1 = new DateTime?(DateTime.Now.AddYears(-1)); } else if (str == "yearago") { nullable2 = new DateTime?(DateTime.Now.AddYears(-1)); } } } if (orderStatus.HasValue) { int?nullable3 = orderStatus; if ((nullable3.GetValueOrDefault() != 0 ? false : nullable3.HasValue)) { orderStatus = null; } } OrderQuery orderQuery = new OrderQuery() { StartDate = nullable1, EndDate = nullable2 }; OrderQuery orderQuery1 = orderQuery; int? nullable4 = orderStatus; if (nullable4.HasValue) { nullable = new OrderInfo.OrderOperateStatus?((OrderInfo.OrderOperateStatus)nullable4.GetValueOrDefault()); } else { nullable = null; } orderQuery1.Status = nullable; orderQuery.UserId = new long?(base.CurrentUser.Id); orderQuery.SearchKeyWords = keywords; orderQuery.PageSize = pageSize; orderQuery.PageNo = pageNo; orderQuery.CASNo = casno; PageModel <OrderInfo> orders = ServiceHelper.Create <IOrderService>().GetOrders <OrderInfo>(orderQuery, null); PagingInfo pagingInfo = new PagingInfo() { CurrentPage = pageNo, ItemsPerPage = pageSize, TotalItems = orders.Total }; ViewBag.pageInfo = pagingInfo; ViewBag.UserId = base.CurrentUser.Id; List <OrderInfo> list = orders.Models.ToList(); ICashDepositsService create = Instance <ICashDepositsService> .Create; IEnumerable <OrderListModel> orderListModel = from item in list select new OrderListModel() { IsBehalfShip = item.IsBehalfShip, BehalfShipNumber = item.BehalfShipNumber, BehalfShipType = item.BehalfShipType, 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, UserName = item.UserName, ShopId = item.ShopId, ShopName = item.ShopName, ShipTo = item.ShipTo, CoinType = item.CoinType, CoinTypeName = item.CoinTypeName, OrderTotalAmount = item.OrderTotalAmount, PaymentTypeName = item.PaymentTypeName, OrderStatus = item.OrderStatus, RefundStats = item.RefundStats, OrderCommentInfo = item.OrderCommentInfo, OrderDate = item.OrderDate, OrderItemList = from oItem in item.OrderItemInfo select new OrderItemListModel() { ProductId = oItem.ProductId, ProductName = oItem.ProductName, CASNo = ServiceHelper.Create <IProductService>().GetProduct(oItem.ProductId) == null ? "" : ServiceHelper.Create <IProductService>().GetProduct(oItem.ProductId).CASNo, SalePrice = oItem.SalePrice, Quantity = oItem.Quantity, Pub_CID = ServiceHelper.Create <IProductService>().GetProduct(oItem.ProductId) == null ? 0 : ServiceHelper.Create <IProductService>().GetProduct(oItem.ProductId).Pub_CID, PackingUnit = oItem.PackingUnit, Purity = oItem.Purity } }; List <long> nums = ( from d in list select d.Id).ToList(); if (nums.Count > 0) { RefundQuery refundQuery = new RefundQuery() { OrderId = new long?(nums[0]), MoreOrderId = nums, PageNo = 1, PageSize = list.Count }; List <OrderRefundInfo> orderRefundInfos = ( from d in ServiceHelper.Create <IRefundService>().GetOrderRefunds(refundQuery).Models where (int)d.RefundMode == 1 select d).ToList(); if (orderRefundInfos.Count > 0) { foreach (OrderRefundInfo orderRefundInfo in orderRefundInfos) { OrderInfo orderInfo = list.FirstOrDefault((OrderInfo d) => d.Id == orderRefundInfo.OrderId); if (orderInfo == null) { continue; } orderInfo.RefundStats = (int)(orderRefundInfo.SellerAuditStatus); } } } decimal totalamount = 0; if (orderListModel != null) { foreach (var item in orderListModel) { totalamount += item.OrderTotalAmount; } } ViewBag.totalamount = totalamount.ToString("F2"); return(View(orderListModel.ToList())); }
/// <summary> /// 获取售后列表 /// </summary> /// <param name="openId"></param> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> /// <returns></returns> public object GetList(string openId, int pageIndex = 1, int pageSize = 10) { CheckUserLogin(); var orderser = ServiceProvider.Instance <IOrderService> .Create; var refundser = ServiceProvider.Instance <IRefundService> .Create; var vshopser = ServiceProvider.Instance <IVShopService> .Create; DateTime?startDate = null; DateTime?endDate = null; var queryModel = new RefundQuery() { StartDate = startDate, EndDate = endDate, UserId = CurrentUser.Id, PageSize = pageSize, PageNo = pageIndex, ShowRefundType = 0 }; var refunds = refundser.GetOrderRefunds(queryModel); var result = new OrderRefundGetListModel(true); result.RecordCount = refunds.Total; result.Data = refunds.Models.Select(item => { var vshop = vshopser.GetVShopByShopId(item.ShopId) ?? new VShopInfo() { Id = 0 }; var order = orderser.GetOrder(item.OrderId, CurrentUser.Id); var status = item.RefundStatus; if (order != null && (order.ShopBranchId.HasValue && order.ShopBranchId.Value > 0)) { status = status.Replace("商家", "门店"); } List <OrderItemInfo> orderItems = new List <OrderItemInfo>(); if (item.RefundMode == OrderRefundInfo.OrderRefundMode.OrderRefund) { orderItems = orderser.GetOrder(item.OrderId, CurrentUser.Id).OrderItemInfo.ToList(); } else { orderItems.Add(item.OrderItemInfo); } return(new OrderRefundItem { OrderId = item.OrderId.ToString(), OrderTotal = order.RefundTotalAmount.ToString("f2"), Status = item.RefundStatusValue.Value, StatusText = status, AdminRemark = (item.ManagerConfirmStatus == OrderRefundInfo.OrderRefundConfirmStatus.Confirmed ? item.ManagerRemark : item.SellerRemark), AfterSaleId = item.Id, AfterSaleType = item.RefundMode.GetHashCode(), ApplyForTime = item.ApplyDate.ToString("yyyy-MM-dd HH:mm:ss"), RefundAmount = item.Amount.ToString("f2"), RefundType = item.RefundPayType.GetHashCode(), RefundTypeText = item.RefundPayType.ToDescription(), SkuId = item.OrderItemInfo.SkuId, UserExpressCompanyName = item.ExpressCompanyName, UserRemark = "", UserShipOrderNumber = item.ShipOrderNumber, IsRefund = item.RefundMode != OrderRefundInfo.OrderRefundMode.ReturnGoodsRefund, IsReturn = item.RefundMode == OrderRefundInfo.OrderRefundMode.ReturnGoodsRefund, ShopName = item.ShopName, Vshopid = vshop.Id, LineItems = orderItems.Select(d => new OrderRefundSku { Status = item.SellerAuditStatus.GetHashCode(), StatusText = item.SellerAuditStatus.ToDescription(), SkuId = d.SkuId, Name = d.ProductName, Price = d.SalePrice, Amount = d.SalePrice * d.Quantity, Quantity = d.Quantity, Image = Core.HimallIO.GetRomoteProductSizeImage(d.ThumbnailsUrl, 1, (int)Himall.CommonModel.ImageSize.Size_150), SkuText = d.Color + " " + d.Size + " " + d.Version, ProductId = d.ProductId }).ToList(), }); }).ToList(); return(Json(result)); }
public JsonResult ListAccountType(DateTime?startDate, DateTime?endDate, long?orderId, int?accountType, string userName, int page, int rows, int?orderType) { Boolean IsNowTime = true; if (accountType == 5) { accountType = 1; IsNowTime = false; } OrderInfo.AccountTypes?nullable; List <OrderInfo.OrderOperateStatus> a = new List <OrderInfo.OrderOperateStatus> { OrderInfo.OrderOperateStatus.WaitReceiving, OrderInfo.OrderOperateStatus.WaitDelivery }; OrderQuery orderQuery = new OrderQuery() { StartDate = startDate, EndDate = endDate, OrderId = orderId }; OrderQuery orderQuery1 = orderQuery; int? nullable1 = accountType; if (nullable1.HasValue) { nullable = new OrderInfo.AccountTypes?((OrderInfo.AccountTypes)nullable1.GetValueOrDefault()); } else { nullable = null; } orderQuery1.AccountTypeStatus = nullable; orderQuery.MoreStatus = a; orderQuery.Status = OrderInfo.OrderOperateStatus.Finish; orderQuery.ShopId = new long?(base.CurrentSellerManager.ShopId); orderQuery.UserName = userName; orderQuery.OrderType = orderType; orderQuery.PageSize = rows; orderQuery.PageNo = page; IEnumerable <OrderModel> array; PageModel <OrderInfo> orders; SiteSettingsInfo siteSettings = (new SiteSettingService()).GetSiteSettings(); // int s = siteSettings.WeekSettlement; if (!IsNowTime) { DateTime time1 = DateTime.Now.Date; orders = ServiceHelper.Create <IOrderService>().GetOrders <OrderInfo>(orderQuery, null); array = from item in orders.Models.ToArray() where (item.OrderDate.AddDays(siteSettings.WeekSettlement) < time1) && (int)item.OrderStatus == 5 select new OrderModel() { OrderId = item.Id, OrderStatus = item.OrderStatus.ToDescription(), OrderDate = item.OrderDate.ToString("yyyy-MM-dd HH:mm:ss"), ShopId = item.ShopId, ShopName = item.ShopName, UserId = item.UserId, UserName = item.UserName, TotalPrice = item.OrderTotalAmount, PaymentTypeName = item.PaymentTypeName, IconSrc = GetIconSrc(item.Platform), PlatForm = (int)item.Platform, PlatformText = item.Platform.ToDescription(), AccountType = item.AccountType.ToDescription() }; array = array.ToList(); } else { orders = ServiceHelper.Create <IOrderService>().GetOrders <OrderInfo>(orderQuery, null); array = from item in orders.Models.ToArray() // where (item.OrderDate.AddDays(9) < time1 || IsNowTime) select new OrderModel() { OrderId = item.Id, OrderStatus = item.OrderStatus.ToDescription(), OrderDate = item.OrderDate.ToString("yyyy-MM-dd HH:mm:ss"), ShopId = item.ShopId, ShopName = item.ShopName, UserId = item.UserId, UserName = item.UserName, TotalPrice = item.OrderTotalAmount, PaymentTypeName = item.PaymentTypeName, IconSrc = GetIconSrc(item.Platform), PlatForm = (int)item.Platform, PlatformText = item.Platform.ToDescription(), AccountType = item.AccountType.ToDescription() }; array = array.ToList(); } List <long> list = ( from d in array select d.OrderId).ToList(); if (list.Count > 0) { RefundQuery refundQuery = new RefundQuery() { OrderId = new long?(list[0]), MoreOrderId = list, PageNo = 1, PageSize = array.Count() }; List <OrderRefundInfo> orderRefundInfos = ( from d in ServiceHelper.Create <IRefundService>().GetOrderRefunds(refundQuery).Models where (int)d.RefundMode == 1 && (int)d.SellerAuditStatus != 4 select d).ToList(); if (orderRefundInfos.Count > 0) { foreach (OrderRefundInfo orderRefundInfo in orderRefundInfos) { OrderModel orderModel = array.FirstOrDefault((OrderModel d) => d.OrderId == orderRefundInfo.OrderId); if (orderModel == null || !(orderModel.OrderStatus != OrderInfo.OrderOperateStatus.Close.ToDescription()) || orderRefundInfo.SellerAuditStatus == OrderRefundInfo.OrderRefundAuditStatus.UnAudit) { continue; } orderModel.RefundStats = (int)orderRefundInfo.SellerAuditStatus; } } } DataGridModel <OrderModel> dataGridModel = new DataGridModel <OrderModel>() { rows = array, total = orders.Total //total=array.Count() }; return(Json(dataGridModel)); }
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 List(DateTime?startDate, DateTime?endDate, long?orderId, int?orderStatus, string userName, int page, int rows, int?orderType, string casno) { OrderInfo.OrderOperateStatus?nullable; OrderQuery orderQuery = new OrderQuery() { StartDate = startDate, EndDate = endDate, OrderId = orderId }; OrderQuery orderQuery1 = orderQuery; int? nullable1 = orderStatus; if (nullable1.HasValue) { nullable = new OrderInfo.OrderOperateStatus?((OrderInfo.OrderOperateStatus)nullable1.GetValueOrDefault()); } else { nullable = null; } orderQuery1.Status = nullable; orderQuery.ShopId = new long?(base.CurrentSellerManager.ShopId); orderQuery.UserName = userName; orderQuery.CASNo = casno; orderQuery.OrderType = orderType; orderQuery.PageSize = rows; orderQuery.PageNo = page; PageModel <OrderInfo> orders = ServiceHelper.Create <IOrderService>().GetOrders <OrderInfo>(orderQuery, null); IEnumerable <OrderModel> array = from item in orders.Models.ToArray() select new OrderModel() { OrderId = item.Id, OrderStatus = item.OrderStatus.ToDescription(), OrderDate = item.OrderDate.ToString("yyyy-MM-dd HH:mm:ss"), ShopId = item.ShopId, ShopName = item.ShopName, UserId = item.UserId, UserName = item.UserName, TotalPrice = item.OrderTotalAmount, PaymentTypeName = item.PaymentTypeName, IconSrc = GetIconSrc(item.Platform), PlatForm = (int)item.Platform, PlatformText = item.Platform.ToDescription(), CoinType = item.CoinType, CoinTypeName = item.CoinTypeName, FinishDate = item.FinishDate == null ? "" : DateTime.Parse(item.FinishDate.ToString()).ToString("yyyy-MM-dd HH:mm:ss"), ProductName = item.OrderItemInfo.FirstOrDefault() == null ? "" : item.OrderItemInfo.FirstOrDefault().ProductName, CASNo = item.OrderItemInfo.FirstOrDefault() == null ? "" : item.OrderItemInfo.FirstOrDefault().CASNo, Quantity = item.OrderItemInfo.FirstOrDefault() == null ? 0 : item.OrderItemInfo.FirstOrDefault().Quantity, PackingUnit = item.OrderItemInfo.FirstOrDefault() == null ? "" : item.OrderItemInfo.FirstOrDefault().PackingUnit, ShipOrderNumber = item.ShipOrderNumber, ExpressCompanyName = item.ExpressCompanyName, IsBehalfShip = item.IsBehalfShip, BehalfShipType = item.BehalfShipType, BehalfShipNumber = item.BehalfShipNumber }; array = array.ToList(); List <long> list = ( from d in array select d.OrderId).ToList(); if (list.Count > 0) { RefundQuery refundQuery = new RefundQuery() { OrderId = new long?(list[0]), MoreOrderId = list, PageNo = 1, PageSize = array.Count() }; List <OrderRefundInfo> orderRefundInfos = ( from d in ServiceHelper.Create <IRefundService>().GetOrderRefunds(refundQuery).Models where (int)d.RefundMode == 1 && (int)d.SellerAuditStatus != 4 select d).ToList(); if (orderRefundInfos.Count > 0) { foreach (OrderRefundInfo orderRefundInfo in orderRefundInfos) { OrderModel orderModel = array.FirstOrDefault((OrderModel d) => d.OrderId == orderRefundInfo.OrderId); if (orderModel == null || !(orderModel.OrderStatus != OrderInfo.OrderOperateStatus.Close.ToDescription()) || orderRefundInfo.SellerAuditStatus == OrderRefundInfo.OrderRefundAuditStatus.UnAudit) { continue; } orderModel.RefundStats = (int)orderRefundInfo.SellerAuditStatus; } } } DataGridModel <OrderModel> dataGridModel = new DataGridModel <OrderModel>() { rows = array, total = orders.Total }; return(Json(dataGridModel)); }
public JsonResult List(DateTime?startDate, DateTime?endDate, long?orderId, int?auditStatus, string shopName, string ProductName, string userName, int page, int rows, int showtype = 0) { OrderRefundInfo.OrderRefundAuditStatus?nullable; RefundQuery refundQuery = new RefundQuery() { StartDate = startDate, EndDate = endDate, OrderId = orderId, ProductName = ProductName }; RefundQuery refundQuery1 = refundQuery; int? nullable1 = auditStatus; if (nullable1.HasValue) { nullable = new OrderRefundInfo.OrderRefundAuditStatus?((OrderRefundInfo.OrderRefundAuditStatus)nullable1.GetValueOrDefault()); } else { nullable = null; } refundQuery1.AuditStatus = nullable; refundQuery.ShopName = shopName; refundQuery.UserName = userName; refundQuery.PageSize = rows; refundQuery.PageNo = page; refundQuery.ShowRefundType = new int?(showtype); RefundQuery nullable2 = refundQuery; if (auditStatus.HasValue && auditStatus.Value == 5) { nullable2.ConfirmStatus = new OrderRefundInfo.OrderRefundConfirmStatus?(OrderRefundInfo.OrderRefundConfirmStatus.UnConfirm); } PageModel <OrderRefundInfo> orderRefunds = ServiceHelper.Create <IRefundService>().GetOrderRefunds(nullable2); IEnumerable <OrderRefundModel> orderRefundModels = ((IEnumerable <OrderRefundInfo>)orderRefunds.Models.ToArray()).Select <OrderRefundInfo, OrderRefundModel>((OrderRefundInfo item) => { string str = string.Concat((string.IsNullOrWhiteSpace(item.OrderItemInfo.Color) ? "" : string.Concat(item.OrderItemInfo.Color, ",")), (string.IsNullOrWhiteSpace(item.OrderItemInfo.Size) ? "" : string.Concat(item.OrderItemInfo.Size, ",")), (string.IsNullOrWhiteSpace(item.OrderItemInfo.Version) ? "" : string.Concat(item.OrderItemInfo.Version, ","))).TrimEnd(new char[] { ',' }); if (!string.IsNullOrWhiteSpace(str)) { str = string.Concat(" 【", str, " 】"); } return(new OrderRefundModel() { RefundId = item.Id, OrderId = item.OrderId, AuditStatus = (item.SellerAuditStatus == OrderRefundInfo.OrderRefundAuditStatus.Audited ? item.ManagerConfirmStatus.ToDescription() : item.SellerAuditStatus.ToDescription()), ProductId = item.OrderItemInfo.ProductId, ThumbnailsUrl = item.OrderItemInfo.ThumbnailsUrl, 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"), ReturnQuantity = item.OrderItemInfo.ReturnQuantity, ProductName = string.Concat(item.OrderItemInfo.ProductName, str), Reason = (string.IsNullOrEmpty(item.Reason) ? string.Empty : OrderRefundController.HTMLEncode(item.Reason.Replace("'", "‘").Replace("\"", "”"))), RefundAccount = (string.IsNullOrEmpty(item.RefundAccount) ? string.Empty : OrderRefundController.HTMLEncode(item.RefundAccount.Replace("'", "‘").Replace("\"", "”"))), ContactPerson = (string.IsNullOrEmpty(item.ContactPerson) ? string.Empty : OrderRefundController.HTMLEncode(item.ContactPerson.Replace("'", "‘").Replace("\"", "”"))), ContactCellPhone = OrderRefundController.HTMLEncode(item.ContactCellPhone), PayeeAccount = (string.IsNullOrEmpty(item.PayeeAccount) ? string.Empty : OrderRefundController.HTMLEncode(item.PayeeAccount.Replace("'", "‘").Replace("\"", "”"))), Payee = (string.IsNullOrEmpty(item.Payee) ? string.Empty : OrderRefundController.HTMLEncode(item.Payee)), RefundMode = (int)item.RefundMode, SellerRemark = (string.IsNullOrEmpty(item.SellerRemark) ? string.Empty : OrderRefundController.HTMLEncode(item.SellerRemark.Replace("'", "‘").Replace("\"", "”"))), ManagerRemark = (string.IsNullOrEmpty(item.ManagerRemark) ? string.Empty : OrderRefundController.HTMLEncode(item.ManagerRemark.Replace("'", "‘").Replace("\"", "”"))), RefundStatus = (item.SellerAuditStatus == OrderRefundInfo.OrderRefundAuditStatus.Audited ? item.ManagerConfirmStatus.ToDescription() : item.SellerAuditStatus.ToDescription()), RefundPayType = (!item.RefundPayType.HasValue ? "线下处理" : ((Enum)(object)item.RefundPayType).ToDescription()) }); }); DataGridModel <OrderRefundModel> dataGridModel = new DataGridModel <OrderRefundModel>() { rows = orderRefundModels, total = orderRefunds.Total }; return(Json(dataGridModel)); }
/// <summary> /// 退款查询 /// </summary> /// <param name="refundQuery">退款查询实体</param> /// <param name="refundQueryBack">退款查询返回实体</param> /// <param name="message">错误信息</param> /// <returns>交易是否成功</returns> internal bool RefundQuery(RefundQuery refundQuery, out RefundQueryBack refundQueryBack, out string message) { _log.Info("退款查询 RefundQuery 开始"); var data = new WxPayData(); if (string.IsNullOrEmpty(refundQuery.Out_Trade_No)) { message = "商户订单号 不能为空"; _log.Error(message); refundQueryBack = null; return(false); } data.SetValue("out_trade_no", refundQuery.Out_Trade_No); //退款查询 _log.Info("WxPayApi.RefundQuery"); var result = WxPayApi.RefundQuery(data); _log.Info("RefundQuery", "RefundQuery process complete, result : " + result.ToXml()); var return_code = result.GetValue("return_code")?.ToString().ToUpper(); var result_code = result.GetValue("result_code")?.ToString().ToUpper(); if (return_code == "SUCCESS" && result_code == "SUCCESS") { _log.Info("退款查询成功!"); refundQueryBack = new RefundQueryBack() { Err_Code = result.GetValue("err_code")?.ToString(), Err_Code_Des = result.GetValue("err_code_des")?.ToString(), Result_Code = result.GetValue("return_code")?.ToString(), Return_Code = result.GetValue("result_code")?.ToString(), Return_Msg = result.GetValue("result_msg")?.ToString(), Cash_Fee = Convert.ToInt32(result.GetValue("cash_fee")), Settlement_Refund_Fee_Sn = result.GetValue("settlement_refund_fee_$n") == null ? 0 : Convert.ToInt32(result.GetValue("settlement_refund_fee_$n")), Coupon_Refund_Count_Sn = result.GetValue("coupon_refund_count_$n") == null ? 0 : Convert.ToInt32(result.GetValue("coupon_refund_count_$n")), Coupon_Refund_Fee_Sn = result.GetValue("coupon_refund_fee_$n") == null ? 0 : Convert.ToInt32(result.GetValue("coupon_refund_fee_$n")), Coupon_Refund_Fee_Sn_Sm = result.GetValue("coupon_refund_fee_$n_$m") == null ? 0 : Convert.ToInt32(result.GetValue("coupon_refund_fee_$n_$m")), Coupon_Refund_Id_Sn_Sm = result.GetValue("coupon_refund_id_$n_$m")?.ToString(), Coupon_Type_Sn = result.GetValue("coupon_type_$n") == null ? 0 : Convert.ToInt32(result.GetValue("coupon_type_$n")), Fee_Type = result.GetValue("fee_type")?.ToString(), Out_Refund_No_Sn = result.GetValue("out_refund_no_$n")?.ToString(), Out_Trade_No = result.GetValue("out_trade_no")?.ToString(), Refund_Account_Sn = result.GetValue("refund_account_$n")?.ToString(), Refund_Channel_Sn = result.GetValue("refund_channel_$n")?.ToString(), Refund_Count = Convert.ToInt32(result.GetValue("refund_count")), Refund_Fee_Sn = Convert.ToInt32(result.GetValue("refund_fee_$n")), Refund_Id_Sn = result.GetValue("refund_id_$n")?.ToString(), Refund_Recv_Accout_Sn = result.GetValue("refund_recv_accout_$n")?.ToString(), Refund_Status_Sn = result.GetValue("refund_status_$n")?.ToString(), Settlement_Total_Fee = result.GetValue("settlement_total_fee ") == null ? 0 : Convert.ToInt32(result.GetValue("settlement_total_fee ")), Total_Fee = Convert.ToInt32(result.GetValue("total_fee")), Transaction_Id = result.GetValue("transaction_id")?.ToString() }; message = ""; return(true); } else { var return_msg = result.GetValue("return_msg"); var err_code_des = result.GetValue("err_code_des"); message = $"{return_msg},{err_code_des}"; _log.Error($"退款查询失败:{message}"); refundQueryBack = null; return(false); } }