Пример #1
0
        public ActionResult Detail(long id)
        {
            var order      = _iOrderService.GetOrder(id, CurrentUser.Id);//限制到用户
            var orderItems = _iOrderService.GetOrderItemsByOrderId(order.Id);
            //补充商品货号
            var proids      = orderItems.Select(d => d.ProductId);
            var procodelist = ProductManagerApplication.GetProductByIds(proids).Select(d => new { d.Id, d.ProductCode, d.FreightTemplateId }).ToList();

            foreach (var item in orderItems)
            {
                var _tmp = procodelist.Find(d => d.Id == item.ProductId);
                if (_tmp != null)
                {
                    item.ProductCode = _tmp.ProductCode;
                    item.FreightId   = _tmp.FreightTemplateId;
                }
            }
            var service = ServiceApplication.Create <Mall.IServices.IProductService>();
            //  string RegionIdPath = regionService.GetRegionPath(order.RegionId);
            var freightProductGroup = orderItems.GroupBy(a => a.FreightId);

            if (order.DeliveryType != CommonModel.DeliveryType.SelfTake)
            {
                var regionService = ServiceApplication.Create <Mall.IServices.IRegionService>();
                var region        = regionService.GetRegion(order.RegionId);
                int cityId        = 0;
                if (region != null)
                {
                    cityId = region.Id;
                }
                //foreach (var f in freightProductGroup)
                //{
                //    var productIds = f.Select(a => a.ProductId);
                //    var counts = f.Select(a => Convert.ToInt32(a.Quantity));
                //    decimal freight = service.GetFreight(productIds, counts, cityId);

                //    foreach (var item in f)
                //    {
                //        item.Freight = freight;
                //    }
                //}
            }

            ViewBag.freightProductGroup = freightProductGroup;

            ViewBag.Coupon = 0;
            var coupon = _iCouponService.GetCouponRecordInfo(order.UserId, order.Id);
            var bonus  = _iShopBonusService.GetUsedPrice(order.Id, order.UserId);

            if (coupon != null)
            {
                ViewBag.Coupon = CouponApplication.GetCouponInfo(coupon.CouponId).Price;
            }
            else if (bonus > 0)
            {
                ViewBag.Coupon = bonus;
            }

            if (order.OrderType == Entities.OrderInfo.OrderTypes.FightGroup)
            {
                var fgord = _iFightGroupService.GetFightGroupOrderStatusByOrderId(order.Id);
                order.FightGroupOrderJoinStatus = fgord.GetJoinStatus;
                order.FightGroupCanRefund       = fgord.CanRefund;
            }
            //使用OrderListModel
            //   AutoMapper.Mapper.CreateMap<OrderInfo, OrderListModel>();
            // AutoMapper.Mapper.CreateMap<OrderItemInfo, OrderItemListModel>();
            var orderModel = order.Map <OrderListModel>();

            orderModel.OrderItemList = orderItems.Map <IEnumerable <OrderItemListModel> >();
            if (order.ShopBranchId > 0)
            {//补充数据
                var branch = ShopBranchApplication.GetShopBranchById(order.ShopBranchId);
                if (branch != null)
                {
                    orderModel.ShopBranchName         = branch.ShopBranchName;
                    orderModel.ShopBranchAddress      = branch.AddressFullName;
                    orderModel.ShopBranchContactPhone = branch.ContactPhone;
                }
            }
            if (order.FightGroupOrderJoinStatus.HasValue)
            {
                orderModel.FightGroupJoinStatus = order.FightGroupOrderJoinStatus.Value;
            }
            orderModel.UserRemark = order.OrderRemarks;
            ViewBag.Keyword       = SiteSettings.Keyword;
            string shipperAddress = string.Empty, shipperTelPhone = string.Empty;

            #region 虚拟订单
            if (order.OrderType == OrderInfo.OrderTypes.Virtual)
            {
                orderModel.OrderVerificationCodes = OrderApplication.GetOrderVerificationCodeInfosByOrderIds(new List <long>()
                {
                    order.Id
                });
                orderModel.OrderVerificationCodes.ForEach(a =>
                {
                    a.QRCode = GetQRCode(a.VerificationCode);
                });
                orderModel.VirtualOrderItems = OrderApplication.GetVirtualOrderItemInfosByOrderId(order.Id);
                if (order.ShopBranchId > 0)//门店订单取门店地址
                {
                    var shopBranch = ShopBranchApplication.GetShopBranchById(order.ShopBranchId);
                    if (shopBranch != null)
                    {
                        shipperAddress  = RegionApplication.GetFullName(shopBranch.AddressId) + " " + shopBranch.AddressDetail;
                        shipperTelPhone = shopBranch.ContactPhone;
                    }
                }
                else
                {
                    var verificationShipper = ShopShippersApplication.GetDefaultVerificationShipper(order.ShopId);
                    if (verificationShipper != null)
                    {
                        shipperAddress  = RegionApplication.GetFullName(verificationShipper.RegionId) + " " + verificationShipper.Address;
                        shipperTelPhone = verificationShipper.TelPhone;
                    }
                }
            }
            ViewBag.ShipperAddress  = shipperAddress;
            ViewBag.ShipperTelPhone = shipperTelPhone;
            #endregion
            orderModel.PaymentTypeName = PaymentApplication.GetPaymentTypeDescById(order.PaymentTypeGateway) ?? order.PaymentTypeName;
            //发票信息
            orderModel.OrderInvoice = OrderApplication.GetOrderInvoiceInfo(order.Id);
            return(View(orderModel));
        }
Пример #2
0
        public ActionResult Detail(long id)
        {
            OrderInfo order = _iOrderService.GetOrder(id, CurrentUser.Id);//限制到用户
            //补充诊疗项目货号
            IEnumerable <long> proids = order.OrderItemInfo.Select(d => d.ProductId).AsEnumerable();
            var procodelist           = _iProductService.GetProductByIds(proids).Select(d => new { d.Id, d.ProductCode, d.FreightTemplateId }).ToList();
            var orderiItems           = order.OrderItemInfo.ToList();

            foreach (var item in orderiItems)
            {
                var _tmp = procodelist.Find(d => d.Id == item.ProductId);
                if (_tmp != null)
                {
                    item.ProductCode = _tmp.ProductCode;
                    item.FreightId   = _tmp.FreightTemplateId;
                }
            }
            var service       = Himall.Web.Framework.ServiceHelper.Create <Himall.IServices.IProductService>();
            var regionService = Himall.Web.Framework.ServiceHelper.Create <Himall.IServices.IRegionService>();
            //  string RegionIdPath = regionService.GetRegionPath(order.RegionId);
            int cityId = regionService.GetRegion(order.RegionId).Id;
            var freightProductGroup = orderiItems.GroupBy(a => a.FreightId);

            if (order.DeliveryType != CommonModel.Enum.DeliveryType.SelfTake)
            {
                foreach (var f in freightProductGroup)
                {
                    var     productIds = f.Select(a => a.ProductId);
                    var     counts     = f.Select(a => Convert.ToInt32(a.Quantity));
                    decimal freight    = service.GetFreight(productIds, counts, cityId);

                    foreach (var item in f)
                    {
                        item.Freight = freight;
                    }
                }
            }

            ViewBag.freightProductGroup = freightProductGroup;

            ViewBag.Coupon = 0;
            var coupon = _iCouponService.GetCouponRecordInfo(order.UserId, order.Id);
            var bonus  = _iShopBonusService.GetUsedPrice(order.Id, order.UserId);

            if (coupon != null)
            {
                ViewBag.Coupon = coupon.Himall_Coupon.Price;
            }
            else if (bonus != null)
            {
                ViewBag.Coupon = bonus;
            }

            if (order.OrderType == OrderInfo.OrderTypes.FightGroup)
            {
                var fgord = _iFightGroupService.GetFightGroupOrderStatusByOrderId(order.Id);
                order.FightGroupOrderJoinStatus = fgord.GetJoinStatus;
                order.FightGroupCanRefund       = fgord.CanRefund;
            }
            //使用OrderListModel
            AutoMapper.Mapper.CreateMap <OrderInfo, OrderListModel>();
            AutoMapper.Mapper.CreateMap <OrderItemInfo, OrderItemListModel>();
            var orderModel = AutoMapper.Mapper.Map <OrderInfo, OrderListModel>(order);

            orderModel.OrderItemList = AutoMapper.Mapper.Map <IEnumerable <OrderItemInfo>, IEnumerable <OrderItemListModel> >(order.OrderItemInfo);
            if (order.ShopBranchId.HasValue && order.ShopBranchId.Value != 0)
            {//补充数据
                var branch = ShopBranchApplication.GetShopBranchById(order.ShopBranchId.Value);
                if (branch != null)
                {
                    orderModel.ShopBranchName         = branch.ShopBranchName;
                    orderModel.ShopBranchAddress      = branch.AddressFullName;
                    orderModel.ShopBranchContactPhone = branch.ContactPhone;
                }
            }
            if (order.FightGroupOrderJoinStatus.HasValue)
            {
                orderModel.FightGroupJoinStatus = order.FightGroupOrderJoinStatus.Value;
            }
            orderModel.UserRemark = order.OrderRemarks;
            return(View(orderModel));
        }
 public static decimal GetUsedPrice(long orderid, long userid)
 {
     return(_iShopBonusService.GetUsedPrice(orderid, userid));
 }