コード例 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public ActionResult Index()
        {
            var userGuid = CookieOper.Instance.GetUserGuid();
            var user     = MemCacheHelper2.Instance.Cache.GetModel <User>("UserGuID_" + userGuid);

            if (user != null)
            {
                var OrderList                  = OrderListFunc.Instance.SelectOrder(0, 3, user.Id);
                var OrderDetailList            = OrderListFunc.Instance.SelectOrderCommodity(OrderList.Select(p => p.Id).ToList().ConvertToString());
                List <OrderInfoResponse> infos = new List <OrderInfoResponse>();
                var ListStatus                 = StatusFunc.Instance.GetAllStatusInfo();
                var ListColor                  = ColorinfoFunc.Instance.GetAllColorListBase();
                ViewBag.AllImage = Carousel_ImageFunc.Instance.SelectAllImages().Item1;
                foreach (var item in OrderList)
                {
                    var response = new OrderInfoResponse(item, ListStatus);
                    #region 颜色
                    response.ListDetail = new List <OrderDetailResponse>();
                    var detailList = OrderDetailList.Where(p => p.OrderId == item.Id).ToList();
                    foreach (var detail in detailList)
                    {
                        var detailResponse = new OrderDetailResponse(detail, ListColor);
                        response.ListDetail.Add(detailResponse);
                    }
                    infos.Add(response);
                    #endregion
                }
                ViewBag.Order = infos;
            }
            else
            {
                return(RedirectToAction("Index", "Main"));
            }
            return(View());
        }
コード例 #2
0
        /// <summary>
        /// 评论
        /// </summary>
        /// <returns></returns>
        public ActionResult Evaluate()
        {
            //订单信息
            var OrderId = HttpContext.Request.QueryString["OrderId"].ParseInt();

            if (OrderId != null)
            {
                var OrderList  = OrderListFunc.Instance.SelectOrderInfo(OrderId.Value);
                var ListStatus = StatusFunc.Instance.GetAllStatusInfo();
                var ListColor  = ColorinfoFunc.Instance.GetAllColorListBase();
                var response   = new OrderInfoResponse(OrderList, ListStatus);
                ViewBag.Order = response;

                #region 订单详细信息
                response.ListDetail = new List <OrderDetailResponse>();
                var DetailList = OrderListFunc.Instance.SelectDetail(0, 99, OrderList.Id);
                foreach (var detail in DetailList)
                {
                    var detailResponse = new OrderDetailResponse(detail, ListColor);
                    response.ListDetail.Add(detailResponse);
                }
                ViewBag.OrderDetail = response;
                #endregion

                #region 地址
                int AddressId = OrderList.AddressId.Value;
                ViewBag.Address = AddressFunc.Instance.SelectAddrById(AddressId);
                #endregion
            }
            return(View());
        }
コード例 #3
0
        public ResultJsonModel <List <OrderInfoResponse>, int> OrderCountByPage(OrderTypeRequest request)
        {
            ResultJsonModel <List <OrderInfoResponse>, int> result = new ResultJsonModel <List <OrderInfoResponse>, int>();
            var userGuid        = CookieOper.Instance.GetUserGuid();
            var user            = MemCacheHelper2.Instance.Cache.GetModel <User>("UserGuID_" + userGuid);
            var status          = StatusFunc.Instance.GetTypeStatus(request.Name);
            var listOrder       = OrderListFunc.Instance.SelectOrder(user.Id, status);
            var listOrderDetail = OrderListFunc.Instance.SelectOrderCommodity(listOrder.Select(p => p.Id).ToList().ConvertToString());
            var ListColor       = ColorinfoFunc.Instance.GetAllColorListBase();
            var tuples          = StatusFunc.Instance.GetAllStatusInfo();
            var flag            = true;

            result.Model1 = new List <OrderInfoResponse>();
            foreach (var item in listOrder)
            {
                OrderInfoResponse response = new OrderInfoResponse(item, tuples);
                if (flag && request.PageNo == 1)
                {
                    flag = false;
                }
                response.ListDetail = new List <OrderDetailResponse>();
                var detailList = listOrderDetail.Where(p => p.OrderId == item.Id).ToList();
                foreach (var detail in detailList)
                {
                    var detailResponse = new OrderDetailResponse(detail, ListColor);
                    response.ListDetail.Add(detailResponse);
                }
                result.Model1.Add(response);
            }
            result.HttpCode = 200;
            result.Message  = "查询数据成功!";
            return(result);
        }
コード例 #4
0
        /// <summary>
        /// 退货申请1
        /// </summary>
        /// <returns></returns>
        public ActionResult ReturnGood()
        {
            var OrderId = HttpContext.Request.QueryString["OrderId"].ParseInt();

            if (OrderId != null)
            {
                var OrderList  = OrderListFunc.Instance.SelectOrderInfo(OrderId.Value);
                var ListStatus = StatusFunc.Instance.GetAllStatusInfo();
                var ListColor  = ColorinfoFunc.Instance.GetAllColorListBase();
                //状态
                var response = new OrderInfoResponse(OrderList, ListStatus);
                ViewBag.Order       = response;
                response.ListDetail = new List <OrderDetailResponse>();
                #region 颜色
                var DetailList = OrderListFunc.Instance.SelectDetail(0, 99, OrderList.Id);
                foreach (var detail in DetailList)
                {
                    var detailResponse = new OrderDetailResponse(detail, ListColor);
                    response.ListDetail.Add(detailResponse);
                }
                #endregion
                ViewBag.OrderDetail = response;
            }
            return(View());
        }
コード例 #5
0
        public async Task AValidOrderResponseIsReturnedForTheCustomer(string customerId)
        {
            var jsonContent = await _response.Content.ReadAsStringAsync();

            _orderDetailResponse = JsonConvert.DeserializeObject <OrderDetailResponse>(jsonContent);

            Assert.True(_orderDetailResponse.Order.CustomerId == Convert.ToInt32(customerId));
        }
コード例 #6
0
 public async Task <RequestResult> GetOrderDetailsTest(string OrderCode)
 {
     try
     {
         //Tìm kiếm orderId dựa vào OrderCode
         var order = _context.Orders.SingleOrDefault(x => x.OrderCode == OrderCode);
         if (order != null)
         {
             //Lấy danh sách order details
             //var details = _context.OrderDetails.Where(x => x.OrderId == order.Id);
             var details = _context.OrderDetails.ToList();
             var list    = from detail in details
                           where detail.OrderId == order.Id
                           select new CartResponse
             {
                 Id               = detail.ProductId,
                 Name             = detail.ProductName,
                 OriginalPrice    = detail.OriginalPrice,
                 SellingPrice     = detail.SellingPrice,
                 Description      = detail.Description,
                 MadeIn           = detail.MadeIn,
                 ManufacturerName = detail.ManufacturerName,
                 ImageURL         = detail.ImageURL,
                 UnitName         = detail.UnitName,
                 Quantity         = detail.Quantity
             };
             OrderDetailResponse orderDetail = new OrderDetailResponse();
             orderDetail.ShipName    = order.ShipName;
             orderDetail.ShipPhone   = order.ShipPhone;
             orderDetail.ShipAddress = order.ShipAddress;
             orderDetail.ShipNote    = order.ShipNote;
             orderDetail.OrderStatus = order.Status;
             orderDetail.Details     = new List <CartResponse>(list);
             return(new RequestResult
             {
                 StatusCode = DataAccess.Models.Enum.StatusCode.Success,
                 Content = JsonConvert.SerializeObject(orderDetail)
             });
         }
         else
         {
             return(new RequestResult
             {
                 StatusCode = DataAccess.Models.Enum.StatusCode.Failed,
                 Content = "Can not find order Id"
             });
         }
     }
     catch
     {
         return(new RequestResult
         {
             StatusCode = DataAccess.Models.Enum.StatusCode.Failed,
             Content = "Failed"
         });
     }
 }
コード例 #7
0
        //订单详情 (平台管理员和选手)
        public OrderDetailResponse Detail(int id)
        {
            OrderDetailResponse response = null;

            try
            {
                t_order order = _dbContext.Get <t_order>(id);
                if (order != null)
                {
                    response = new OrderDetailResponse
                    {
                        CreateTime    = order.createtime,
                        Id            = order.id,
                        IsNeedInvoice = order.isNeedInvoice,
                        MainOrderId   = order.mainOrderId,
                        MemberId      = order.memberId,
                        Money         = order.money,
                        OrderStatus   = order.orderStatus,
                        OrderType     = order.orderType,
                        PayExpiryDate = order.payExpiryDate,
                        Remark        = order.remark,
                        TotalCoupon   = order.totalcoupon,
                        TotalDiscount = order.totaldiscount,
                        SourceId      = order.sourceId,
                        UpdateTime    = order.updatetime
                    };
                    var data = _dbContext.Select <t_order_detail>(c => c.orderId == id).ToList();
                    if (data != null && data.Count > 0)
                    {
                        foreach (var item in data)
                        {
                            response.OrderDetail.Add(new OrderDetail
                            {
                                Id            = item.id,
                                Coupon        = item.coupon,
                                UpdateTime    = item.updatetime,
                                CreateTime    = item.createtime,
                                DiscountPrice = item.discountprice,
                                MemberId      = item.memberId,
                                Money         = item.money,
                                Name          = item.name,
                                Number        = item.number,
                                OrderId       = item.orderId,
                                ProductId     = item.productId,
                                UnitPrice     = item.unitprice
                            });
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LogUtils.LogError("OrderService.RefundList", ex);
            }
            return(response);
        }
コード例 #8
0
        /// <summary>
        /// 订单详情1
        /// </summary>
        /// <returns></returns>
        public ActionResult OrderDetail()
        {
            var OrderId = HttpContext.Request.QueryString["OrderId"].ParseInt();

            if (OrderId != null)
            {
                var OrderList = OrderListFunc.Instance.SelectOrderInfo(OrderId.Value);
                //状态
                var ListStatus = StatusFunc.Instance.GetAllStatusInfo();
                var ListColor  = ColorinfoFunc.Instance.GetAllColorListBase();
                var response   = new OrderInfoResponse(OrderList, ListStatus);
                ViewBag.Order       = response;
                response.ListDetail = new List <OrderDetailResponse>();

                #region 颜色
                var DetailList = OrderListFunc.Instance.SelectDetail(0, 99, OrderList.Id);
                foreach (var detail in DetailList)
                {
                    var detailResponse = new OrderDetailResponse(detail, ListColor);
                    response.ListDetail.Add(detailResponse);
                }
                #endregion

                ViewBag.OrderDetail = response;

                #region 地址
                if (OrderList.Address != null)
                {
                    ViewBag.AddressFull = OrderList.Address;
                }
                else
                {
                    int AddressId = OrderList.AddressId.Value;
                    ViewBag.Address = AddressFunc.Instance.SelectAddrById(AddressId);
                }
                #endregion

                #region 快递
                if (OrderList.ExpressNo != null && OrderList.ExpressCompany != null)
                {
                    var result = MemCacheHelper2.Instance.Cache.GetModel <KdApiResult>(OrderList.ExpressNo + ":" + OrderList.ExpressCompany);
                    if (result == null)
                    {
                        result = KdApiSearchDemo.Instance.getOrderTracesByJson(OrderList.ExpressCompany, OrderList.ExpressNo);
                        MemCacheHelper2.Instance.Cache.Set(OrderList.ExpressNo + ":" + OrderList.ExpressCompany, result, DateTime.Now.AddHours(6));
                    }
                    ViewBag.Express = result;
                }
                #endregion
            }
            return(View());
        }
コード例 #9
0
        public async Task <IActionResult> RouteBasedLogic(int customerId)
        {
            var order = await _orderRetriever.GetOrderForCustomer(customerId);

            var claimResults = User.Claims.Select(claim => new ClaimDetailResponse(claim.Type, claim.Value)).ToList();

            var response = new OrderDetailResponse()
            {
                Order = order, Claims = claimResults
            };

            return(Ok(response));
        }
コード例 #10
0
        /// <summary>
        /// 我的订单1
        /// </summary>
        /// <returns></returns>
        public ActionResult MyOrderList()
        {
            var userGuid = CookieOper.Instance.GetUserGuid();
            var user     = MemCacheHelper2.Instance.Cache.GetModel <User>("UserGuID_" + userGuid);

            if (user == null)
            {
                return(RedirectToAction("Index", "Login"));
            }
            #region 状态
            var OrderList                  = OrderListFunc.Instance.SelectOrder(user.Id);
            var OrderDetailList            = OrderListFunc.Instance.SelectOrderCommodity(OrderList.Select(p => p.Id).ToList().ConvertToString());
            List <OrderInfoResponse> infos = new List <OrderInfoResponse>();
            var ListStatus                 = StatusFunc.Instance.GetAllStatusInfo();
            var ListColor                  = ColorinfoFunc.Instance.GetAllColorListBase();
            foreach (var item in OrderList)
            {
                var response = new OrderInfoResponse(item, ListStatus);
                response.ListDetail = new List <OrderDetailResponse>();
                #region 颜色
                var detailList = OrderDetailList.Where(p => p.OrderId == item.Id).ToList();
                foreach (var detail in detailList)
                {
                    var detailResponse = new OrderDetailResponse(detail, ListColor);
                    response.ListDetail.Add(detailResponse);
                }
                infos.Add(response);
                #endregion
            }
            #endregion
            ViewBag.Order = infos;
            //ViewBag.OrderCount = OrderListFunc.Instance.SelectOrderCount(user.Id);
            ////待付款
            //ViewBag.PendingOrderCount = OrderListFunc.Instance.SelectOrderCount(user.Id, 1);
            ////待收货
            //ViewBag.ReceivedOrderCount = OrderListFunc.Instance.SelectOrderCount(user.Id, 4);
            ////待评价
            //ViewBag.EvaluatedOrderCount = OrderListFunc.Instance.SelectOrderCount(user.Id, 5);
            ////退货中
            //ViewBag.RefundOrderCount = OrderListFunc.Instance.SelectOrderCount(user.Id, 6);
            return(View());
        }
コード例 #11
0
        public async Task <ActionResult <OrderDetailResponse> > GetUserOrder(string userId)
        {
            var userOrder = await service.GetUserOrderDetailAsync(userId);

            if (userOrder != null)
            {
                var od = new OrderDetailResponse {
                    orderDetails = userOrder, totalPrice = userOrder.Sum(o => (o.Product.productPrice * o.quantity))
                };

                foreach (var odDetails in od.orderDetails)
                {
                    foreach (var prodImg in odDetails.Product.Images)
                    {
                        prodImg.imageUrl = filesService.GetFileUrl(prodImg.imageUrl);
                    }
                }
                return(Ok(od));
            }
            return(NotFound());
        }
コード例 #12
0
        /// <summary>
        /// 订单详情
        /// </summary>
        /// <param name="condition"></param>
        /// <returns></returns>
        public OrderDetailResponse GetOrderDetail(OrderDetailCondition condition)
        {
            OrderDetailResponse response = new OrderDetailResponse();

            try
            {
                var result = HotelApiAccess.Query <OrderDetailCondition, OrderDetailResponse>(condition, "hotel.order.detail");

                if (result.Code == "0")
                {
                    response = result.Result;
                }
                else
                {
                    throw new Exception("接口请求失败:" + result.Code);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(response);
        }
コード例 #13
0
        public OrderDetailResponse ToOrderDetailResponse()
        {
            OrderDetailResponse detailResponse = new OrderDetailResponse();
            XDocument           xDoc           = new XDocument(new XDeclaration("1.0", "utf-16", "yes"), new XElement("Root", "Content"));

            xDoc = XDocument.Parse(xmlResponse);

            XElement detailResponseHeader = xDoc.XPathSelectElement("//OrderDetailResponseHeader");

            if (detailResponseHeader != null)
            {
                var serializer = new XmlSerializer(typeof(OrderDetailResponse), new XmlRootAttribute("OrderDetailResponseHeader"));
                var response   = detailResponseHeader.ToString();
                var reader     = new StringReader(response);
                detailResponse = (OrderDetailResponse)serializer.Deserialize(reader);

                detailResponse.Card        = detailResponse.GetCreditCard();
                detailResponse.PartnerInfo = detailResponse.GetOrderAddresses();
                detailResponse.OrderItems  = detailResponse.GetProducts();
            }

            return(detailResponse);
        }
コード例 #14
0
        /// <summary>
        /// 我的订单
        /// </summary>
        /// <returns></returns>
        public ActionResult MyOrderList()
        {
            var userGuid = CookieOper.Instance.GetUserGuid();
            var user     = MemCacheHelper2.Instance.Cache.GetModel <User>("UserGuID_" + userGuid);

            if (user == null)
            {
                return(RedirectToAction("Index", "Main"));
            }
            #region  状态
            var OrderList                  = OrderListFunc.Instance.SelectOrder(user.Id);
            var OrderDetailList            = OrderListFunc.Instance.SelectOrderCommodity(OrderList.Select(p => p.Id).ToList().ConvertToString());
            var CommodityList              = CommodityFunc.Instance.SelectByKeys("Id", OrderDetailList.Select(p => p.CommodityId.ToString()).ToList());
            var MaterialsList              = Raw_MaterialsFunc.Instance.SelectByKeys("Id", CommodityList.Select(p => p.MaterialId.ToString()).ToList());
            List <OrderInfoResponse> infos = new List <OrderInfoResponse>();
            var ListStatus                 = StatusFunc.Instance.GetAllStatusInfo();
            var ListColor                  = ColorinfoFunc.Instance.GetAllColorListBase();
            ViewBag.AllImage = Carousel_ImageFunc.Instance.SelectAllImages().Item1;
            foreach (var item in OrderList)
            {
                var response = new OrderInfoResponse(item, ListStatus);
                #region 颜色
                response.ListDetail = new List <OrderDetailResponse>();
                var detailList = OrderDetailList.Where(p => p.OrderId == item.Id).ToList();
                foreach (var detail in detailList)
                {
                    var commodity = CommodityList.Where(p => p.Id == detail.CommodityId).FirstOrDefault();
                    if (commodity == null)
                    {
                        continue;
                    }
                    var Materials = MaterialsList.Where(p => p.Id == commodity.MaterialId).FirstOrDefault();
                    if (Materials == null)
                    {
                        continue;
                    }
                    var detailResponse = new OrderDetailResponse(detail, ListColor, Materials.PrintFuncInfo);
                    response.ListDetail.Add(detailResponse);
                }
                infos.Add(response);
                #endregion
            }
            #endregion

            ViewBag.Order = infos;
            #region 获得数据
            var num        = 50;
            var OrderCount = OrderListFunc.Instance.SelectOrderCount(user.Id);
            ViewBag.OrderCount = OrderCount % num == 0 ? ((int)(OrderCount / num)) : ((int)(OrderCount / num) + 1);
            //待付款
            var PendingOrderCount = OrderListFunc.Instance.SelectOrderCount(user.Id, 1);
            ViewBag.PendingOrderCount = PendingOrderCount % num == 0 ? ((int)(PendingOrderCount / num)) : ((int)(PendingOrderCount / num) + 1);
            //待发货
            var deliveryOrderCount = OrderListFunc.Instance.SelectOrderCount(user.Id, 3);
            ViewBag.DeliveryOrderCount = deliveryOrderCount % num == 0 ? ((int)(deliveryOrderCount / num)) : ((int)(deliveryOrderCount / num) + 1);
            //待收货
            var ReceivedOrderCount = OrderListFunc.Instance.SelectOrderCount(user.Id, 4);
            ViewBag.ReceivedOrderCount = ReceivedOrderCount % num == 0 ? ((int)(ReceivedOrderCount / num)) : ((int)(ReceivedOrderCount / num) + 1);
            //待评价
            var EvaluatedOrderCount = OrderListFunc.Instance.SelectOrderCount(user.Id, 5);
            ViewBag.EvaluatedOrderCount = EvaluatedOrderCount % num == 0 ? ((int)(EvaluatedOrderCount / num)) : ((int)(EvaluatedOrderCount / num) + 1);
            //已完成
            var CompletedOrderCount = OrderListFunc.Instance.SelectOrderCount(user.Id, 6);
            ViewBag.CompletedOrderCount = CompletedOrderCount % num == 0 ? ((int)(CompletedOrderCount / num)) : ((int)(CompletedOrderCount / num) + 1);
            //退货中
            var RefundOrderCount = OrderListFunc.Instance.SelectOrderCount(user.Id, 7);
            ViewBag.RefundOrderCount = RefundOrderCount % num == 0 ? ((int)(RefundOrderCount / num)) : ((int)(RefundOrderCount / num) + 1);
            #endregion

            return(View());
        }
コード例 #15
0
        public static OrderDetailResponse ConverToViewModel(this OrderCacheResponse orderModel)
        {
            OrderDetailResponse orderDetail = new OrderDetailResponse();

            #region 实例化

            //新实例start
            var carOrder     = new CarOrder();
            var userInfo     = new UserInfo();
            var claimDetails = new List <ClaimDetail>();
            var precisePrice = new PrecisePrice();
            //新实例end
            //原有实例start
            bx_car_order           bxCarOrder     = orderModel.BxCarOrder;
            bx_userinfo            bxUserInfo     = orderModel.BxUserInfo;
            bx_quoteresult         bxQuoteResult  = orderModel.BxQuoteResult;
            bx_savequote           bxSaveQuote    = orderModel.BxSaveQuote;
            bx_submit_info         bxSubmitInfo   = orderModel.BxSubmitInfo;
            bx_lastinfo            bxLastInfo     = orderModel.BxLastInfo;
            bx_quoteresult_carinfo bxCarInfo      = orderModel.BxCarInfo;
            List <bx_claim_detail> bxClaimDetails = orderModel.BxClaimDetails;
            InsuranceStartDate     qrStartDate    = orderModel.QrStartDate;
            //原有实例end

            #endregion

            #region CarOrder转换

            if (bxCarOrder != null)
            {
                carOrder.AgentName   = string.Empty;
                carOrder.AgentMobile = string.Empty;
                if (bxCarOrder.cur_agent.HasValue)
                {
                    carOrder.Agent = bxCarOrder.cur_agent.Value;
                    //调用代理人列表
                    IAgentRepository agentRepository = new AgentRepository();
                    var curAgent = agentRepository.GetAgent(bxCarOrder.cur_agent.Value);
                    if (curAgent != null)
                    {
                        carOrder.AgentName   = curAgent.AgentName;
                        carOrder.AgentMobile = curAgent.Mobile;
                    }
                }
                carOrder.OpenId              = bxCarOrder.openid;
                carOrder.Mobile              = bxCarOrder.mobile;
                carOrder.ContactsName        = bxCarOrder.contacts_name;
                carOrder.OrderStatus         = bxCarOrder.order_status.HasValue ? bxCarOrder.order_status.Value : 0;
                carOrder.GetOrderTime        = bxCarOrder.GetOrderTime.ToString();
                carOrder.CreateTime          = bxCarOrder.create_time.ToString();
                carOrder.OrderId             = bxCarOrder.id;
                carOrder.Buid                = bxCarOrder.buid.HasValue ? bxCarOrder.buid.Value : 0;
                carOrder.Source              = bxCarOrder.source.HasValue ? bxCarOrder.source.Value : 0;
                carOrder.Source              = SourceGroupAlgorithm.GetNewSource((int)carOrder.Source);
                carOrder.InsuredName         = bxCarOrder.insured_name;
                carOrder.IdType              = bxCarOrder.id_type.HasValue ? bxCarOrder.id_type.Value : 2; //默认空时,赋值个“其他”
                carOrder.IdNum               = bxCarOrder.id_num;
                carOrder.IdImgFirst          = bxCarOrder.id_img_firs;
                carOrder.IdImgSecond         = bxCarOrder.id_img_secd;
                carOrder.ImageUrls           = bxCarOrder.imageUrls;
                carOrder.ProvinceName        = string.Empty;
                carOrder.CityName            = string.Empty;
                carOrder.AreaName            = string.Empty;
                carOrder.DistributionAddress = bxCarOrder.distribution_address;
                carOrder.DistributionName    = bxCarOrder.distribution_name;
                carOrder.DistributionPhone   = bxCarOrder.distribution_phone;
                carOrder.DistributionTime    = bxCarOrder.distribution_time.HasValue
                    ? bxCarOrder.distribution_time.Value.ToString("yyyy-MM-dd HH:mm:ss")
                    : string.Empty;
                carOrder.InsurancePrice = bxCarOrder.insurance_price.HasValue
                    ? (double)bxCarOrder.insurance_price.Value
                    : 0;
                carOrder.CarriagePrice = bxCarOrder.carriage_price.HasValue
                    ? (double)bxCarOrder.carriage_price.Value
                    : 0;
                carOrder.TotalPrice = bxCarOrder.total_price.HasValue
                    ? (double)bxCarOrder.total_price.Value
                    : 0;
                carOrder.Receipt          = bxCarOrder.receipt_title;
                carOrder.ReceiptHead      = bxCarOrder.receipt_head.HasValue ? bxCarOrder.receipt_head.Value : 0;
                carOrder.PayType          = bxCarOrder.pay_type.HasValue ? bxCarOrder.pay_type.Value : 0;
                carOrder.DistributionType = bxCarOrder.distribution_type.HasValue
                    ? bxCarOrder.distribution_type.Value
                    : 0;
            }

            #endregion

            #region UserInfo转换

            if (bxUserInfo != null)
            {
                userInfo.LicenseNo      = bxUserInfo.LicenseNo;
                userInfo.LicenseOwner   = bxUserInfo.LicenseOwner;
                userInfo.IdType         = bxUserInfo.OwnerIdCardType; //默认空时,赋值个“其他”
                userInfo.InsuredName    = bxUserInfo.InsuredName;
                userInfo.InsuredMobile  = bxUserInfo.InsuredMobile;
                userInfo.InsuredAddress = bxUserInfo.InsuredAddress;
                userInfo.InsuredIdType  = bxUserInfo.InsuredIdType.HasValue ? bxUserInfo.InsuredIdType.Value : 6;
                //默认空时,赋值个“其他”
                userInfo.CredentislasNum = bxUserInfo.InsuredIdCard;
                userInfo.Email           = bxUserInfo.Email;
                userInfo.CityCode        = !string.IsNullOrEmpty(bxUserInfo.CityCode)
                    ? int.Parse(bxUserInfo.CityCode)
                    : 0;
                //CarUsedType如下
                userInfo.EngineNo = bxUserInfo.EngineNo;
                userInfo.CarVin   = bxUserInfo.CarVIN;
                //PurchasePrice如下
                //SeatCount如下
                userInfo.ModleName    = bxUserInfo.MoldName;
                userInfo.RegisterDate = bxUserInfo.RegisterDate;
                //LastEndDate如下
                //LastBusinessEndDdate如下
                //ForceStartDate如下
                //BizStartDate如下
                //ClaimCount如下
            }

            #endregion

            #region QuoteResultCarInfo转换

            if (bxCarInfo != null)
            {
                userInfo.CarUsedType   = bxCarInfo.car_used_type.HasValue ? bxCarInfo.car_used_type.Value : 0;
                userInfo.PurchasePrice = bxCarInfo.purchase_price.HasValue ? (double)bxCarInfo.purchase_price.Value : 0;
                userInfo.SeatCount     = bxCarInfo.seat_count.HasValue ? bxCarInfo.seat_count.Value : 0;
            }

            #endregion

            #region ClaimDetails转换

            if (bxClaimDetails != null)
            {
                userInfo.ClaimCount = bxClaimDetails.Count;
                var claim       = new ClaimDetail();
                var claimDetail = new bx_claim_detail();
                for (int i = 0; i < userInfo.ClaimCount; i++)
                {
                    claim             = new ClaimDetail();
                    claimDetail       = new bx_claim_detail();
                    claimDetail       = bxClaimDetails[i];
                    claim.EndcaseTime = claimDetail.endcase_time.HasValue
                        ? claimDetail.endcase_time.Value.ToString()
                        : string.Empty;
                    claim.LossTime = claimDetail.loss_time.HasValue
                        ? claimDetail.loss_time.Value.ToString()
                        : string.Empty;
                    claim.PayAmount      = claimDetail.pay_amount.HasValue ? claimDetail.pay_amount.Value : 0;
                    claim.PayCompanyName = claimDetail.pay_company_name;
                    claimDetails.Add(claim);
                }
            }

            #endregion

            #region SaveQuote、QuoteResult、SubmitInfo转换

            if (bxSaveQuote != null)
            {
                bool isquoteresult = true;
                if (bxQuoteResult == null)
                {
                    isquoteresult = false;
                    bxQuoteResult = new bx_quoteresult();
                }
                precisePrice.BizTotal   = bxQuoteResult.BizTotal.HasValue ? bxQuoteResult.BizTotal.Value : 0;
                precisePrice.ForceTotal = bxQuoteResult.ForceTotal ?? 0;
                precisePrice.TaxTotal   = bxQuoteResult.TaxTotal ?? 0;
                precisePrice.Source     = bxQuoteResult.Source ?? 0;
                precisePrice.Source     = SourceGroupAlgorithm.GetNewSource((int)precisePrice.Source);
                precisePrice.JiaoQiang  = bxSaveQuote.JiaoQiang.HasValue ? bxSaveQuote.JiaoQiang.Value : 1;
                if (bxSubmitInfo != null)
                {
                    precisePrice.QuoteStatus = bxSubmitInfo.quote_status.HasValue
                        ? bxSubmitInfo.quote_status.Value
                        : 0;
                    precisePrice.QuoteResult  = bxSubmitInfo.quote_result;
                    precisePrice.SubmitStatus = bxSubmitInfo.submit_status.HasValue
                        ? bxSubmitInfo.submit_status.Value
                        : 0;
                    precisePrice.SubmitResult = bxSubmitInfo.submit_result;
                    precisePrice.BizTno       = bxSubmitInfo.biz_tno;
                    precisePrice.ForceTno     = bxSubmitInfo.force_pno;
                    precisePrice.BizSysRate   = bxSubmitInfo.biz_rate.HasValue ? (double)bxSubmitInfo.biz_rate.Value : 0;
                    precisePrice.ForceSysRate = bxSubmitInfo.force_rate.HasValue ? (double)bxSubmitInfo.force_rate.Value : 0;
                    //BenefitRate
                }
                precisePrice.CheSun = new XianZhongUnit
                {
                    BaoE =
                        isquoteresult
                            ? (bxQuoteResult.CheSunBE.HasValue ? bxQuoteResult.CheSunBE.Value : 0)
                            : (bxSaveQuote.CheSun.HasValue ? bxSaveQuote.CheSun.Value : 0),
                    BaoFei = bxQuoteResult.CheSun.HasValue ? bxQuoteResult.CheSun.Value : 0
                };
                precisePrice.SanZhe = new XianZhongUnit
                {
                    BaoE   = bxSaveQuote.SanZhe.HasValue ? bxSaveQuote.SanZhe.Value : 0,
                    BaoFei = bxQuoteResult.SanZhe.HasValue ? bxQuoteResult.SanZhe.Value : 0
                };
                precisePrice.DaoQiang = new XianZhongUnit
                {
                    BaoE =
                        isquoteresult
                            ? (bxQuoteResult.DaoQiangBE.HasValue ? bxQuoteResult.DaoQiangBE.Value : 0)
                            : (bxSaveQuote.DaoQiang.HasValue ? bxSaveQuote.DaoQiang.Value : 0),
                    BaoFei = bxQuoteResult.DaoQiang.HasValue ? bxQuoteResult.DaoQiang.Value : 0
                };
                precisePrice.SiJi = new XianZhongUnit
                {
                    BaoE   = bxSaveQuote.SiJi.HasValue ? bxSaveQuote.SiJi.Value : 0,
                    BaoFei = bxQuoteResult.SiJi.HasValue ? bxQuoteResult.SiJi.Value : 0
                };
                precisePrice.ChengKe = new XianZhongUnit
                {
                    BaoE   = bxSaveQuote.ChengKe.HasValue ? bxSaveQuote.ChengKe.Value : 0,
                    BaoFei = bxQuoteResult.ChengKe.HasValue ? bxQuoteResult.ChengKe.Value : 0
                };
                precisePrice.BoLi = new XianZhongUnit
                {
                    BaoE   = bxSaveQuote.BoLi.HasValue ? bxSaveQuote.BoLi.Value : 0,
                    BaoFei = bxQuoteResult.BoLi.HasValue ? bxQuoteResult.BoLi.Value : 0
                };
                precisePrice.HuaHen = new XianZhongUnit
                {
                    BaoE   = bxSaveQuote.HuaHen.HasValue ? bxSaveQuote.HuaHen.Value : 0,
                    BaoFei = bxQuoteResult.HuaHen.HasValue ? bxQuoteResult.HuaHen.Value : 0
                };
                precisePrice.BuJiMianCheSun = new XianZhongUnit
                {
                    BaoE   = bxSaveQuote.BuJiMianCheSun.HasValue ? bxSaveQuote.BuJiMianCheSun.Value : 0,
                    BaoFei = bxQuoteResult.BuJiMianCheSun.HasValue ? bxQuoteResult.BuJiMianCheSun.Value : 0
                };
                precisePrice.BuJiMianSanZhe = new XianZhongUnit
                {
                    BaoE   = bxSaveQuote.BuJiMianSanZhe.HasValue ? bxSaveQuote.BuJiMianSanZhe.Value : 0,
                    BaoFei = bxQuoteResult.BuJiMianSanZhe.HasValue ? bxQuoteResult.BuJiMianSanZhe.Value : 0
                };
                precisePrice.BuJiMianDaoQiang = new XianZhongUnit
                {
                    BaoE   = bxSaveQuote.BuJiMianDaoQiang.HasValue ? bxSaveQuote.BuJiMianDaoQiang.Value : 0,
                    BaoFei = bxQuoteResult.BuJiMianDaoQiang.HasValue ? bxQuoteResult.BuJiMianDaoQiang.Value : 0
                };
                precisePrice.BuJiMianChengKe = new XianZhongUnit()
                {
                    BaoE   = bxSaveQuote.BuJiMianChengKe.HasValue ? bxSaveQuote.BuJiMianChengKe.Value : 0,
                    BaoFei = bxQuoteResult.BuJiMianChengKe.HasValue ? bxQuoteResult.BuJiMianChengKe.Value : 0
                };
                precisePrice.BuJiMianSiJi = new XianZhongUnit()
                {
                    BaoE   = bxSaveQuote.BuJiMianSiJi.HasValue ? bxSaveQuote.BuJiMianSiJi.Value : 0,
                    BaoFei = bxQuoteResult.BuJiMianSiJi.HasValue ? bxQuoteResult.BuJiMianSiJi.Value : 0
                };
                precisePrice.BuJiMianHuaHen = new XianZhongUnit()
                {
                    BaoE   = bxSaveQuote.BuJiMianHuaHen.HasValue ? bxSaveQuote.BuJiMianHuaHen.Value : 0,
                    BaoFei = bxQuoteResult.BuJiMianHuaHen.HasValue ? bxQuoteResult.BuJiMianHuaHen.Value : 0
                };
                precisePrice.BuJiMianSheShui = new XianZhongUnit()
                {
                    BaoE   = bxSaveQuote.BuJiMianSheShui.HasValue ? bxSaveQuote.BuJiMianSheShui.Value : 0,
                    BaoFei = bxQuoteResult.BuJiMianSheShui.HasValue ? bxQuoteResult.BuJiMianSheShui.Value : 0
                };
                precisePrice.BuJiMianZiRan = new XianZhongUnit()
                {
                    BaoE   = bxSaveQuote.BuJiMianZiRan.HasValue ? bxSaveQuote.BuJiMianZiRan.Value : 0,
                    BaoFei = bxQuoteResult.BuJiMianZiRan.HasValue ? bxQuoteResult.BuJiMianZiRan.Value : 0
                };
                precisePrice.BuJiMianJingShenSunShi = new XianZhongUnit()
                {
                    BaoE =
                        bxSaveQuote.BuJiMianJingShenSunShi.HasValue
                            ? bxSaveQuote.BuJiMianJingShenSunShi.Value
                            : 0,
                    BaoFei =
                        bxQuoteResult.BuJiMianJingShenSunShi.HasValue
                            ? bxQuoteResult.BuJiMianJingShenSunShi.Value
                            : 0
                };
                precisePrice.SheShui = new XianZhongUnit
                {
                    BaoE   = bxSaveQuote.SheShui.HasValue ? bxSaveQuote.SheShui.Value : 0,
                    BaoFei = bxQuoteResult.SheShui.HasValue ? bxQuoteResult.SheShui.Value : 0
                };
                precisePrice.ZiRan = new XianZhongUnit
                {
                    BaoE =
                        isquoteresult
                            ? (bxQuoteResult.ZiRanBE.HasValue ? bxQuoteResult.ZiRanBE.Value : 0)
                            : (bxSaveQuote.ZiRan.HasValue ? bxSaveQuote.ZiRan.Value : 0),
                    BaoFei = bxQuoteResult.ZiRan.HasValue ? bxQuoteResult.ZiRan.Value : 0
                };
                precisePrice.HcSheBeiSunshi = new XianZhongUnit
                {
                    BaoE   = bxSaveQuote.HcSheBeiSunshi.HasValue ? bxSaveQuote.HcSheBeiSunshi.Value : 0,
                    BaoFei = bxQuoteResult.HcSheBeiSunshi.HasValue ? bxQuoteResult.HcSheBeiSunshi.Value : 0
                };
                precisePrice.HcHuoWuZeRen = new XianZhongUnit
                {
                    BaoE   = bxSaveQuote.HcHuoWuZeRen.HasValue ? bxSaveQuote.HcHuoWuZeRen.Value : 0,
                    BaoFei = bxQuoteResult.HcHuoWuZeRen.HasValue ? bxQuoteResult.HcHuoWuZeRen.Value : 0
                };
                precisePrice.HcFeiYongBuChang = new XianZhongUnit
                {
                    BaoE   = bxSaveQuote.HcFeiYongBuChang.HasValue ? bxSaveQuote.HcFeiYongBuChang.Value : 0,
                    BaoFei = bxQuoteResult.HcFeiYongBuChang.HasValue ? bxQuoteResult.HcFeiYongBuChang.Value : 0
                };
                precisePrice.HcJingShenSunShi = new XianZhongUnit
                {
                    BaoE   = bxSaveQuote.HcJingShenSunShi.HasValue ? bxSaveQuote.HcJingShenSunShi.Value : 0,
                    BaoFei = bxQuoteResult.HcJingShenSunShi.HasValue ? bxQuoteResult.HcJingShenSunShi.Value : 0
                };
                precisePrice.HcSanFangTeYue = new XianZhongUnit
                {
                    BaoE   = bxSaveQuote.HcSanFangTeYue.HasValue ? bxSaveQuote.HcSanFangTeYue.Value : 0,
                    BaoFei = bxQuoteResult.HcSanFangTeYue.HasValue ? bxQuoteResult.HcSanFangTeYue.Value : 0
                };
                precisePrice.HcXiuLiChang = new XianZhongUnit
                {
                    BaoE   = bxSaveQuote.HcXiuLiChang.HasValue ? bxSaveQuote.HcXiuLiChang.Value : 0,
                    BaoFei = bxQuoteResult.HcXiuLiChang.HasValue ? bxQuoteResult.HcXiuLiChang.Value : 0
                };
                precisePrice.HcXiuLiChangType = bxSaveQuote.HcXiuLiChangType.HasValue
                    ? bxSaveQuote.HcXiuLiChangType.Value.ToString()
                    : "-1";
                precisePrice.RateFactor1 = bxQuoteResult.RateFactor1.HasValue
                    ? (double)bxQuoteResult.RateFactor1.Value
                    : 0;
                precisePrice.RateFactor2 = bxQuoteResult.RateFactor2.HasValue
                    ? (double)bxQuoteResult.RateFactor2.Value
                    : 0;
                precisePrice.RateFactor3 = bxQuoteResult.RateFactor3.HasValue
                    ? (double)bxQuoteResult.RateFactor3.Value
                    : 0;
                precisePrice.RateFactor4 = bxQuoteResult.RateFactor4.HasValue
                    ? (double)bxQuoteResult.RateFactor4.Value
                    : 0;
            }

            #endregion

            #region LastInfo转换

            if (bxLastInfo != null)
            {
                userInfo.LastEndDate          = bxLastInfo.last_end_date;
                userInfo.LastBusinessEndDdate = bxLastInfo.last_business_end_date;
            }

            #endregion

            #region 保险起始时间

            if (qrStartDate != null)
            {
                userInfo.ForceStartDate = qrStartDate.ForceStartDate.HasValue
                    ? qrStartDate.ForceStartDate.Value.ToString()
                    : string.Empty;
                userInfo.BizStartDate = qrStartDate.BizStartDate.HasValue
                    ? qrStartDate.BizStartDate.Value.ToString()
                    : string.Empty;
            }

            #endregion

            orderDetail.CarOrder     = carOrder;
            orderDetail.ClaimDetail  = claimDetails;
            orderDetail.PrecisePrice = precisePrice;
            orderDetail.UserInfo     = userInfo;

            return(orderDetail);
        }