Ejemplo n.º 1
0
        /// <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));
        }
Ejemplo n.º 2
0
        /// <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
            });
        }
Ejemplo n.º 3
0
        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
                }
            }));
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        /// <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);
        }
Ejemplo n.º 6
0
 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));
        }
Ejemplo n.º 8
0
        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));
        }
Ejemplo n.º 9
0
        /// <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
            });
        }
Ejemplo n.º 10
0
        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());
            }
        }
Ejemplo n.º 11
0
        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>");
            }
        }
Ejemplo n.º 12
0
        /// <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);
        }
Ejemplo n.º 13
0
 public static int GetOrderRefundsCount(RefundQuery query)
 {
     return(Service.GetOrderRefundCount(query));
 }
Ejemplo n.º 14
0
        /// <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 }));
        }
Ejemplo n.º 16
0
        /// <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 }));
        }
Ejemplo n.º 17
0
        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);
        }
Ejemplo n.º 18
0
        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));
        }
Ejemplo n.º 19
0
        /// <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));
        }
Ejemplo n.º 20
0
        /// <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());
        }
Ejemplo n.º 21
0
        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));
        }
Ejemplo n.º 22
0
        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()));
        }
Ejemplo n.º 23
0
        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);
        }
Ejemplo n.º 24
0
        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()));
        }
Ejemplo n.º 25
0
        /// <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));
        }
Ejemplo n.º 26
0
        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));
        }
Ejemplo n.º 27
0
        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));
        }
Ejemplo n.º 28
0
        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));
        }
Ejemplo n.º 29
0
        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));
        }
Ejemplo n.º 30
0
        /// <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);
            }
        }