/// <summary> /// 获取当前会话中的购物车的信息 /// 为了保证数据的实时性,这个函数不使用缓存 /// </summary> /// <param name="type">购物车类型</param> /// <returns></returns> public virtual object GetCartApiInfo(CartProductType type) { // 购物车商品显示信息 var cartProducts = GetCartProducts(type); var displayInfos = cartProducts.Select(c => c.ToOrderProductDisplayInfo()).ToList(); var anyRealProducts = displayInfos.Any(d => d.IsRealProduct); // 收货地址表单 var sessionManager = Application.Ioc.Resolve <SessionManager>(); var orderManager = Application.Ioc.Resolve <SellerOrderManager>(); var user = sessionManager.GetSession().GetUser(); var userId = user?.Id; var shippingAddressForm = new ShippingAddressForm(); shippingAddressForm.Bind(); // 订单留言表单 var commentForm = new CreateOrderCommenForm(); commentForm.Bind(); // 物流列表,各个卖家都有单独的列表 // 没有实体商品的卖家不包含在列表中 var sellers = displayInfos .Where(d => d.IsRealProduct) .Select(d => new { d.SellerId, d.Seller }).GroupBy(d => d.SellerId); var logisticsWithSellers = sellers.Select(s => new { sellerId = s.Key, seller = s.First().Seller, logisticsList = orderManager.GetAvailableLogistics(userId, s.Key) .Select(l => l.ToLiquid()).ToList() }).ToList(); // 支付接口列表,各个卖家使用同一个列表 // 卖家不应该提供单独的支付接口,应该使用结算处理 var paymentApis = orderManager.GetAvailablePaymentApis(userId) .Select(a => a.ToLiquid()).ToList(); // 订单创建表单 var createOrderForm = new CreateOrderForm(); createOrderForm.Bind(); return(new { displayInfos, anyRealProducts, shippingAddressForm, commentForm, logisticsWithSellers, paymentApis, createOrderForm, }); }
private void SubForm_Load(object sender, EventArgs e) { string Pam_id = Name; switch (Pam_id) { case "Role": RoleUcForm _RoleForm = new RoleUcForm(this); _RoleForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_RoleForm); break; case "Usr": UsrUcForm _UsrForm = new UsrUcForm(this); _UsrForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_UsrForm); break; case "Department": DeptForm _deptForm = new DeptForm(this); _deptForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_deptForm); break; case "Employee": EmployeeForm _EmployeeForm = new EmployeeForm(this); _EmployeeForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_EmployeeForm); break; case "Csv": CsvForm _csvForm = new CsvForm(this); _csvForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_csvForm); break; case "Currency": CurrencyForm _currencyForm = new CurrencyForm(this); _currencyForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_currencyForm); break; case "SalesType": SalesTypeForm _salesTypeForm = new SalesTypeForm(this); _salesTypeForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_salesTypeForm); break; case "BusinessType": BusinessTypeForm _businessTypeForm = new BusinessTypeForm(this); _businessTypeForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_businessTypeForm); break; case "ItemUt": ItemUtForm _itemUtForm = new ItemUtForm(this); _itemUtForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_itemUtForm); break; case "ItemKind": ItemKindForm _itemKindForm = new ItemKindForm(this); _itemKindForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_itemKindForm); break; case "Warehouse": WarehouseForm _warehouseForm = new WarehouseForm(this); _warehouseForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_warehouseForm); break; case "ProductArea": ProductAreaForm _productAreaForm = new ProductAreaForm(this); _productAreaForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_productAreaForm); break; case "Item": ItemForm _itemForm = new ItemForm(this); _itemForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_itemForm); break; case "RequestCollectionOrder": RequestCollectionOrderForm _OrderForm = new RequestCollectionOrderForm(this); _OrderForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_OrderForm); break; case "PlanningOrderInfoInput": PlanningOrderInfoInputForm _FrorecastForm = new PlanningOrderInfoInputForm(this); _FrorecastForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_FrorecastForm); break; case "TaskNotifyOrder": TaskNotifyOrderForm _TaskNotifyOrderForm = new TaskNotifyOrderForm(this); _TaskNotifyOrderForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_TaskNotifyOrderForm); break; case "ShippingInfoConfirmOrder": ShippingInfoConfirmOrderForm _ShippingInfoConfirmOrderForm = new ShippingInfoConfirmOrderForm(this); _ShippingInfoConfirmOrderForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_ShippingInfoConfirmOrderForm); break; case "PgmTransferWarningSetting": PgmTransferWarningSettingForm _PgmTransferWarningSettingForm = new PgmTransferWarningSettingForm(this); _PgmTransferWarningSettingForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_PgmTransferWarningSettingForm); break; case "Project": ProjectForm _ProjectForm = new ProjectForm(this); _ProjectForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_ProjectForm); break; case "ProjectStage": ProjectStageForm _ProjectStageForm = new ProjectStageForm(this); _ProjectStageForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_ProjectStageForm); break; case "ShippingAddress": ShippingAddressForm _ShippingAddressForm = new ShippingAddressForm(this); _ShippingAddressForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_ShippingAddressForm); break; default: break; } }