public object GetRefundLogs(int refundId)
        {
            CheckUserLogin();
            var curshopid = CurrentShop.Id;
            var refund    = RefundApplication.GetOrderRefund(refundId);

            if (refund == null || refund.ShopId != CurrentShop.Id)
            {
                return(ErrorResult("无效的售后申请编号"));
            }

            var order = Application.OrderApplication.GetOrder(refund.OrderId);

            if (order == null || order.ShopId != curshopid)
            {
                return(ErrorResult("无效的售后申请编号"));
            }

            var refundLogs = RefundApplication.GetRefundLogs(refundId);

            var logs = new List <object>();

            var roleMap = new Dictionary <OrderRefundStep, int>();//操作步骤 由谁完成的

            roleMap.Add(OrderRefundStep.Confirmed, 2);
            roleMap.Add(OrderRefundStep.UnAudit, 1);
            roleMap.Add(OrderRefundStep.UnConfirm, 1);
            roleMap.Add(OrderRefundStep.WaitAudit, 0);
            roleMap.Add(OrderRefundStep.WaitDelivery, 1);
            roleMap.Add(OrderRefundStep.WaitReceiving, 1);

            foreach (var log in refundLogs)
            {
                logs.Add(new
                {
                    Role = roleMap[log.Step],//操作者角色,0:买家,1:门店,2:平台
                    Step = log.Step,
                    log.OperateDate,
                    log.Remark
                });
            }

            var model = new OrderRefundApiModel();

            refund.Map(model);
            model.CertPics    = new string[3];
            model.CertPics[0] = HimallIO.GetRomoteImagePath(model.CertPic1);
            model.CertPics[1] = HimallIO.GetRomoteImagePath(model.CertPic2);
            model.CertPics[2] = HimallIO.GetRomoteImagePath(model.CertPic3);

            return(new
            {
                success = true,
                Refund = model,
                Logs = logs
            });
        }
        private List <OrderRefundApiModel> FullModel(List <OrderRefund> refunds)
        {
            var orders     = Application.OrderApplication.GetOrders(refunds.Select(p => p.OrderId));
            var orderItems = Application.OrderApplication.GetOrderItemsByOrderItemId(refunds.Select(p => p.OrderItemId));
            var members    = Application.MemberApplication.GetMembers(orders.Select(p => p.UserId));

            var result = refunds.Select(item =>
            {
                var orderItem            = orderItems.FirstOrDefault(oi => oi.Id == item.OrderItemId);
                var order                = orders.FirstOrDefault(o => o.Id == item.OrderId);
                var member               = members.FirstOrDefault(m => m.Id == order.UserId);
                orderItem.ThumbnailsUrl  = HimallIO.GetRomoteProductSizeImage(orderItem.ThumbnailsUrl, 1, (int)Himall.CommonModel.ImageSize.Size_100);
                ProductTypeInfo typeInfo = ServiceProvider.Instance <ITypeService> .Create.GetTypeByProductId(orderItem.ProductId);
                orderItem.ColorAlias     = (typeInfo == null || string.IsNullOrEmpty(typeInfo.ColorAlias)) ? SpecificationType.Color.ToDescription() : typeInfo.ColorAlias;
                orderItem.SizeAlias      = (typeInfo == null || string.IsNullOrEmpty(typeInfo.SizeAlias)) ? SpecificationType.Size.ToDescription() : typeInfo.SizeAlias;
                orderItem.VersionAlias   = (typeInfo == null || string.IsNullOrEmpty(typeInfo.VersionAlias)) ? SpecificationType.Version.ToDescription() : typeInfo.VersionAlias;
                var model                = new OrderRefundApiModel();
                item.Map(model);
                model.Status = item.SellerAuditStatus == OrderRefundInfo.OrderRefundAuditStatus.Audited ? (int)item.ManagerConfirmStatus : (int)item.SellerAuditStatus;
                //model.StatusDescription = item.SellerAuditStatus == OrderRefundInfo.OrderRefundAuditStatus.Audited ? item.ManagerConfirmStatus.ToDescription() : ((CommonModel.Enum.OrderRefundShopAuditStatus)item.SellerAuditStatus).ToDescription();
                model.StatusDescription = item.SellerAuditStatus == OrderRefundInfo.OrderRefundAuditStatus.Audited ? item.ManagerConfirmStatus.ToDescription() : (order.ShopBranchId.HasValue && order.ShopBranchId.Value > 0 ?
                                                                                                                                                                  ((CommonModel.Enum.OrderRefundShopAuditStatus)item.SellerAuditStatus).ToDescription() : item.SellerAuditStatus.ToDescription());
                model.UserName        = member.RealName;
                model.UserCellPhone   = member.CellPhone;
                model.OrderItem       = orderItem;
                model.CertPics        = new string[3];
                model.CertPics[0]     = HimallIO.GetRomoteImagePath(model.CertPic1);
                model.CertPics[1]     = HimallIO.GetRomoteImagePath(model.CertPic2);
                model.CertPics[2]     = HimallIO.GetRomoteImagePath(model.CertPic3);
                string shopBranchName = "总店";
                if (order.ShopBranchId.HasValue && order.ShopBranchId.Value > 0)
                {
                    var shopBranchInfo = ShopBranchApplication.GetShopBranchById(order.ShopBranchId.Value);
                    if (shopBranchInfo != null)
                    {
                        shopBranchName = shopBranchInfo.ShopBranchName;
                    }
                }
                model.ShopName = shopBranchName;

                return(model);
            });

            return(result.ToList());
        }
Пример #3
0
        private List <OrderRefundApiModel> FullModel(List <OrderRefund> refunds)
        {
            var orders     = Application.OrderApplication.GetOrders(refunds.Select(p => p.OrderId));
            var orderItems = Application.OrderApplication.GetOrderItemsByOrderId(refunds.Select(p => p.OrderId));

            var result = refunds.Select(item =>
            {
                var orditems = new List <DTO.OrderItem>();
                var order    = orders.FirstOrDefault(o => o.Id == item.OrderId);
                if (item.RefundMode == OrderRefundInfo.OrderRefundMode.OrderRefund)
                {
                    orditems = orderItems.Where(d => d.OrderId == item.OrderId).ToList();
                }
                else
                {
                    orditems.Add(orderItems.FirstOrDefault(oi => oi.Id == item.OrderItemId));
                }
                foreach (var orderItem in orditems)
                {
                    orderItem.ThumbnailsUrl    = MallIO.GetRomoteProductSizeImage(orderItem.ThumbnailsUrl, 1, (int)Mall.CommonModel.ImageSize.Size_100);
                    Entities.TypeInfo typeInfo = ServiceProvider.Instance <ITypeService> .Create.GetTypeByProductId(orderItem.ProductId);
                    orderItem.ColorAlias       = (typeInfo == null || string.IsNullOrEmpty(typeInfo.ColorAlias)) ? SpecificationType.Color.ToDescription() : typeInfo.ColorAlias;
                    orderItem.SizeAlias        = (typeInfo == null || string.IsNullOrEmpty(typeInfo.SizeAlias)) ? SpecificationType.Size.ToDescription() : typeInfo.SizeAlias;
                    orderItem.VersionAlias     = (typeInfo == null || string.IsNullOrEmpty(typeInfo.VersionAlias)) ? SpecificationType.Version.ToDescription() : typeInfo.VersionAlias;
                    var productInfo            = ProductManagerApplication.GetProduct(orderItem.ProductId);
                    if (productInfo != null)
                    {
                        orderItem.ColorAlias   = !string.IsNullOrWhiteSpace(productInfo.ColorAlias) ? productInfo.ColorAlias : orderItem.ColorAlias;
                        orderItem.SizeAlias    = !string.IsNullOrWhiteSpace(productInfo.SizeAlias) ? productInfo.SizeAlias : orderItem.SizeAlias;
                        orderItem.VersionAlias = !string.IsNullOrWhiteSpace(productInfo.VersionAlias) ? productInfo.VersionAlias : orderItem.VersionAlias;
                    }
                }

                var member = MemberApplication.GetMember(order.UserId);
                var model  = new OrderRefundApiModel();
                item.Map(model);
                model.Status            = item.SellerAuditStatus == OrderRefundInfo.OrderRefundAuditStatus.Audited ? (int)item.ManagerConfirmStatus : (int)item.SellerAuditStatus;
                model.StatusDescription = item.SellerAuditStatus == OrderRefundInfo.OrderRefundAuditStatus.Audited ? item.ManagerConfirmStatus.ToDescription() : (order.ShopBranchId > 0 ?
                                                                                                                                                                  ((CommonModel.Enum.OrderRefundShopAuditStatus)item.SellerAuditStatus).ToDescription() : item.SellerAuditStatus.ToDescription());
                model.StatusDescription = model.StatusDescription.Replace("商家", "门店");
                model.RefundStatus      = model.RefundStatus.Replace("商家", "门店");
                //model.UserName = member.RealName;
                //model.UserCellPhone = member.CellPhone;
                model.UserName        = item.ContactPerson;
                model.UserCellPhone   = item.ContactCellPhone;
                model.OrderItem       = orditems;
                model.CertPics        = new string[3];
                model.CertPics[0]     = MallIO.GetRomoteImagePath(model.CertPic1);
                model.CertPics[1]     = MallIO.GetRomoteImagePath(model.CertPic2);
                model.CertPics[2]     = MallIO.GetRomoteImagePath(model.CertPic3);
                string shopBranchName = order.ShopName;
                if (order.ShopBranchId > 0)
                {
                    var shopBranchInfo = ShopBranchApplication.GetShopBranchById(order.ShopBranchId);
                    if (shopBranchInfo != null)
                    {
                        shopBranchName = shopBranchInfo.ShopBranchName;
                    }
                }
                model.ShopName     = shopBranchName;
                model.ReasonDetail = item.ReasonDetail;

                return(model);
            });

            return(result.ToList());
        }