public void Handle(ICommandContext context, CreateOrderGoodsCommand command) { var orderGoods = new OrderGoods( command.AggregateRootId, command.OrderId, new OrderGoodsInfo( command.OrderGoods.GoodsId, command.OrderGoods.SpecificationId, command.OrderGoods.WalletId, command.OrderGoods.StoreOwnerWalletId, command.OrderGoods.GoodsName, command.OrderGoods.GoodsPic, command.OrderGoods.SpecificationName, command.OrderGoods.Price, command.OrderGoods.OrigianlPrice, command.OrderGoods.Quantity, command.OrderGoods.Total, command.OrderGoods.StoreTotal, DateTime.Now.Add(ConfigSettings.OrderGoodsServiceAutoExpiration), command.OrderGoods.Benevolence) ); //添加到上下文 context.Add(orderGoods); }
public Goods ParsePopOrderGoodsNumber(OrderGoods og) { //上货时通常用&号,或者空格分开厂家货号 string stock = og.Number.Contains("&") || og.Number.Contains(" ") ? og.Number : og.Vendor + "&" + og.Number; string[] stocks = stock.Split(new char[] { '&', ' ' }, StringSplitOptions.RemoveEmptyEntries); string rawVendor = null, rawNumber = null; if (stocks.Length != 2) { return(null); } rawVendor = stocks[0].Trim(); rawNumber = stocks[1].Trim(); var g = ParseGoods(rawVendor, rawNumber).First; if (g == null) { return(null); } og.Number = g.Number; og.GoodsId = g.Id; og.Image = g.Image; og.Weight = g.Weight; og.Price = g.Price; og.Vendor = ServiceContainer.GetService <VendorService>().GetVendorName(g.VendorId).data; return(g); }
private OrderGoods CreateTestOrderGoods() { //生成商品 OrderGoods og = new OrderGoods { Color = "白色", Count = 2, Edtion = "升级版", GoodsId = 1076, Id = 2076969, Image = "", Number = "D34", OrderId = 20160121456, PopInfo = "", PopPrice = 34, PopUrl = "http://www.baidu.com", Price = 45, Size = "37", State = OrderState.PAYED, Vendor = "彩蝴蝶", Weight = 0.6F, }; return(og); }
public void PaySuccess(string msg, string id, string create_time, string state, string email, string firstName, string lastName, string amount) { IPN iPN = new IPN() { transactionID = id, txTime = create_time, paymentStatus = state, buyerEmail = email, firstName = firstName, lastName = lastName, amount = amount }; _context.IPNs.Add(iPN); _context.SaveChanges(); List <AccountGood> CartaccountGoods = _context.AccountGoods.Where(ag => ag.Account_ID == _context.Users.Where(name => name.UserName == User.Identity.Name).Select(i => i.Id).FirstOrDefault() && ag.Type == "cart").ToList(); CookieHelper cookieHelper = new CookieHelper(_httpContextAccessor, Request, Response); Order newOrder = new Order() { Order_id = ar.generateNewOrderID(), Account_ID = _context.Users.Where(name => name.UserName == User.Identity.Name).Select(i => i.Id).FirstOrDefault(), order_time = DateTime.Now, total_price = Convert.ToDecimal(cookieHelper.Get("totalPrice")), total_number = Convert.ToInt32(cookieHelper.Get("totalPieces")) }; _context.Orders.Add(newOrder); _context.SaveChanges(); foreach (var item in CartaccountGoods) { OrderGoods temp = new OrderGoods() { Order_id = newOrder.Order_id, goods_id = item.Goods_ID, Quantity = item.Quantity }; _context.OrderGoods.Add(temp); _context.SaveChanges(); } foreach (var item in CartaccountGoods) { item.Type = "bought"; _context.SaveChanges(); Goods good = _context.Goodses.Where(i => i.goods_id == item.Goods_ID).FirstOrDefault(); good.goods_quantity -= item.Quantity; good.sold_quantity += item.Quantity; _context.SaveChanges(); } cookieHelper.Remove("totalPrice"); cookieHelper.Remove("totalPieces"); }
public override int GetHashCode() { int hashCode = -197546992; hashCode = hashCode * -1521134295 + OrderGoods.GetHashCode(); hashCode = hashCode * -1521134295 + Amount.GetHashCode(); return(hashCode); }
public OrderSpilteViewModel(OrderGoods orderGoods) { this.OrderGoods = orderGoods; this.OrderId = orderGoods.OrderId; this.OrderGoodsId = orderGoods.Id; this.State = orderGoods.State; this.Comment = orderGoods.Comment; this.Count = orderGoods.Count; this.OrderGoodsInfo = orderGoods.Vendor + " " + orderGoods.Number + " " + orderGoods.Edtion + " " + orderGoods.Color + " " + orderGoods.Size + " " + orderGoods.Count; }
public Task <int> SaveItemAsync(OrderGoods item) { if (item.OrderGoodsID != 0) { return(database.UpdateAsync(item)); } else { return(database.InsertAsync(item)); } }
/// <summary> /// 打印测试 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnPrintTest_Click(object sender, RoutedEventArgs e) { try { var printTemplate = this.lstDeliveryPrintTemplates.SelectedItem as PrintTemplate; if (printTemplate == null) { MessageBox.Show("请选择一个模板"); return; } int count = 0; if (int.TryParse(this.tbTestCount.Text.Trim(), out count) == false) { MessageBox.Show("请输入要打印测试的数量"); return; } var ret = pd.ShowDialog(); if (ret.Value == false) { return; } pd.PrintTicket.PageMediaSize = new System.Printing.PageMediaSize(printTemplate.Width, printTemplate.Height); if (printTemplate.Type == PrintTemplate.TYPE_GOODS) { OrderGoods[] orderGoodss = new OrderGoods[count]; for (int i = 0; i < count; i++) { orderGoodss[i] = CreateTestOrderGoods(); } GoodsPrintDocument doc = new GoodsPrintDocument(); doc.StartPrint(orderGoodss, "", true, printTemplate); } else if (printTemplate.Type == PrintTemplate.TYPE_RETURN) { OrderReturn[] or = new OrderReturn[count]; for (int i = 0; i < count; i++) { or[i] = CreateTestOrderReturn(); } OrderReturnPrintDocument od = new OrderReturnPrintDocument(); od.StartPrint(or, "", true, printTemplate); } MessageBox.Show("打印完成"); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public object Format(PrintTemplate template, PrintTemplateItem item, OrderGoods orderGoods) { string ma = "材质:"; if (orderGoods.GoodsId < 1) { return(ma); } var gu = ServiceContainer.GetService <GoodsService>().GetById(orderGoods.GoodsId); if (gu != null) { return(ma + gu.Material); } return(""); }
private void btnDelete_Click(object sender, RoutedEventArgs e) { if (this.dgvOrderGoods.SelectedCells.Count < 1) { return; } OrderGoods og = this.dgvOrderGoods.SelectedCells[0].Item as OrderGoods; if (og == null) { MessageBox.Show("未选择数据"); return; } this.ogs.Remove(og); }
public void FindTest() { Customer customer = new Customer(); Order order = new Order { OwnerCustomer = customer, }; OrderGoods goods = new OrderGoods { OwnerOrder = order, }; OrderReady ready = new OrderReady(); OrderReadyGoods readyGoods = new OrderReadyGoods { OwnerGoods = goods, }; OrderWarehouse warehouse = new OrderWarehouse { OwnerOrder = order, }; OrderWarehouseGoods warehouseGoods = new OrderWarehouseGoods { OwnerGoods = goods, OwnerWarehouse = warehouse, }; NewOrderWarehouseGoods newWarehouseGoods = new NewOrderWarehouseGoods { OwnerGoods = goods, OwnerWarehouse = warehouse, }; OrderDelivery delivery = new OrderDelivery { OwnerOrder = order, }; OrderDeliveryGoods deliveryGoods = new OrderDeliveryGoods { OwnerGoods = goods, OwnerDelivery = delivery, }; OrderPayment payment = new OrderPayment { OwnerOrder = order, }; DataSourceFinder finder = DataSourceFinder.Instance; Assert.AreSame(customer, finder.Find <Customer>(warehouseGoods)); Assert.AreSame(customer, finder.Find <Customer>(newWarehouseGoods)); Assert.AreSame(customer, finder.Find <Customer>(deliveryGoods)); Assert.AreSame(customer, finder.Find <Customer>(readyGoods)); Assert.AreSame(customer, finder.Find <Customer>(payment)); Assert.IsNull(finder.Find <Customer>(ready)); Assert.IsNull(finder.Find <A>(new C())); }
public OrdreGoodsSimple(OrderGoods goods) { Id = goods.Id; GoodsId = goods.GoodsId; SingleGoodsId = goods.SingleGoodsId; Quantity = goods.Quantity; GoodsName = goods.GoodsName; GoodsAttribute = goods.GoodsAttribute; Unit = goods.Unit; Price = goods.Price; RefundStatus = goods.RefundStatus; var fileService = HostConstObject.Container.Resolve <IStorageFileService>(); var goodsImage = fileService.GetFiles(goods.Id, OrderProcessModule.Key, "GoodsImage").FirstOrDefault(); GoodsImage = goodsImage?.Simplified(); MaxRefundAmount = Price * Quantity; }
public void getOrderGoods(int orderId) { //将OrderGoods添加到数据库中 List <OrderGoods> ogList = new List <OrderGoods>(); //从session["cartTemp"]中取出信息存储到OrderGoods List <CartTemp> cTemp = (List <CartTemp>)Session["cartTemp"]; //遍历购物车 foreach (CartTemp ct in cTemp) { OrderGoods ogs = new OrderGoods(); ogs.OrderID = orderId; ogs.GoodsID = ct.GoodsID; ogs.GoodsNumber = ct.GoodsNumber; ogList.Add(ogs); } //添加信息到数据库OrderGoods int rows = ob.AddOrderGoods(ogList); }
//获取该订单内的商品信息 public void GetOrdersList(int ordersId) { using (FlowersSIMEntities fs = new FlowersSIMEntities()) { //清除存放订单内商品信息的临时数据表OrderGoods内的数据 List <OrderGoods> list = fs.OrderGoods.ToList(); for (int i = 0; i < list.Count; i++) { int ogId = list[i].OGId; SqlParameter[] paras = new SqlParameter[] { new SqlParameter("@ogId", ogId), }; fs.Database.ExecuteSqlCommand("delete from OrderGoods where OGId=@ogId", paras); } Orders entity1 = fs.Orders.FirstOrDefault(o => o.OrdersId == ordersId); string[] productIdString = entity1.ProductIdList.Split(','); int[] productIdArray = Array.ConvertAll(productIdString, int.Parse); string[] productNumString = entity1.OrderNumbers.Split(','); int[] productNumArray = Array.ConvertAll(productNumString, int.Parse); decimal Price = 0; OrderGoods entity = new OrderGoods(); for (int i = 0; i < productIdArray.Length; i++) { int productId = productIdArray[i]; Product IdToName = fs.Product.FirstOrDefault(p => p.ProductId == productId); entity.Picture1 = IdToName.Picture1; entity.ProductName = IdToName.ProductName; entity.Num = productNumArray[i]; entity.NowPrice = IdToName.NowPrice; string num1 = Convert.ToString(entity.Num); decimal num = decimal.Parse(num1); decimal nowPrice = Convert.ToDecimal(entity.NowPrice); entity.Price = num * nowPrice; Price += num * nowPrice; fs.OrderGoods.Add(entity); fs.SaveChanges(); } ViewBag.Price = Price; } }
public SimpleOrderGoods(OrderGoods goods, Order order) { GoodsId = goods.GoodsId; SingleGoodsId = goods.SingleGoodsId; Quantity = goods.Quantity; GoodsName = goods.GoodsName; GoodsAttribute = goods.GoodsAttribute; Unit = goods.Unit; Price = goods.Price; RefundStatus = goods.RefundStatus; var fileService = HostConstObject.Container.Resolve <IStorageFileService>(); var goodsImage = fileService.GetFiles(goods.Id, OrderProcessModule.Key, "GoodsImage").FirstOrDefault(); GoodsImage = goodsImage?.Simplified(); MaxRefundAmount = Price * Quantity; if (order.IntegralMoney > 0) { MaxRefundAmount -= order.IntegralMoney * (Price * Quantity / order.GoodsAmount); } }
public CreateOrderGoodsCommand(Guid id, Guid storeId, Guid orderId, OrderGoods orderGoods) : base(id) { StoreId = storeId; OrderId = orderId; OrderGoods = orderGoods; }
public object Format(PrintTemplate template, PrintTemplateItem item, OrderGoods orderGoods) { return("颜色:" + orderGoods.Color); }
public override bool Equals(object obj) { return(obj is OrderDetail detail && OrderGoods.Equals(detail) && Amount == detail.Amount); }
public static object Format(PrintTemplate template, PrintTemplateItem item, OrderGoods orderGoods) { var formtter = GetPrintDataFormatter(item.Type); return(formtter.Format(template, item, orderGoods)); }
public IActionResult CreateOnlineOrder(OrderDto model) { try { Token Fun = new Token(_context); var Addrs = _context.Addresss.Where(x => x.AddressId == model.AddressId).FirstOrDefault(); var UserId = _context.User.Where(i => i.OpenId == model.OpenId).FirstOrDefault().UserId; if (model.PayType == PayType.在线支付) { var Order = new Order() { OrderNo = DateTime.Now.ToString("yyyyMMddhhmmssfff") + "" + UserId, Price = model.Price, PayType = model.PayType, PayState = PayState.已付款, CreatDate = DateTime.Now, UserId = UserId, SysUserId = model.SysUserId, AddressId = model.AddressId, Comments = model.Comments }; var goodsID = model.GoodsId.Replace("[", "").Replace("]", "").Split(','); _context.Orders.Add(Order); foreach (var p in goodsID) { var num = 1; if (model.ordertype == "wu") { num = _context.AppCarts.Where(i => i.GoodsId == Convert.ToInt64(p) && i.UserId == UserId).FirstOrDefault().Num; } //if(_context.AppCarts.Where(i => i.UserId == UserId).ToList().Contains(Convert.ToInt64(p))) var ordergoods = new OrderGoods() { OrderId = Order.OrderId, GoodsId = Convert.ToInt64(p), Num = num }; _context.OrderGoods.Add(ordergoods); } var CartInfo = _context.AppCarts.Where(x => x.UserId == UserId).ToList(); if (CartInfo.Count != 0) { _context.AppCarts.RemoveRange(CartInfo); _context.SaveChanges(); } else { _context.SaveChanges(); } var Tem = new TemDto(); var sysUserinfo = _context.SysUsers.Where(x => x.SysUserId == model.SysUserId).FirstOrDefault(); var Good = _context.OrderGoods.Where(x => x.OrderId == Order.OrderId).ToList(); var NT = ""; foreach (var s in Good) { var Goodss = _context.Goodss.Where(x => x.GoodsId == s.GoodsId).FirstOrDefault(); NT = NT + Goodss.Name + "*" + s.Num + "; "; } Tem.touser = sysUserinfo.Popenid; Tem.template_id = "xEh7eyNbqUA4REhnVT-aCCH0-NOwqrHFh4IyqFnkM-g"; var data1 = new Data1(); var keyword1 = new Keyword(); var keyword2 = new Keyword(); var keyword3 = new Keyword(); var keyword4 = new Keyword(); var keyword5 = new Keyword(); var first = new Keyword(); var remark = new Keyword(); Tem.data = data1; Tem.data.keyword1 = keyword1; Tem.data.keyword2 = keyword2; Tem.data.keyword3 = keyword3; Tem.data.keyword4 = keyword4; Tem.data.keyword5 = keyword5; Tem.data.first = first; Tem.data.remark = remark; Tem.data.first.value = Order.OrderNo; Tem.data.keyword1.value = NT; Tem.data.keyword2.value = model.Price.ToString(); Tem.data.keyword3.value = Addrs.ContactName + " " + Addrs.ContactPhone; Tem.data.keyword4.value = Addrs.Addr; Tem.data.keyword5.value = model.Comments; Tem.data.remark.value = "在线支付"; var Tnc = new TemDto(); var data2 = new Data1(); var first1 = new Keyword(); var keyword11 = new Keyword(); var keyword21 = new Keyword(); var keyword31 = new Keyword(); var keyword41 = new Keyword(); var keyword51 = new Keyword(); var keyword61 = new Keyword(); Tnc.data = data2; Tnc.data.keyword1 = keyword11; Tnc.data.keyword2 = keyword21; Tnc.data.keyword3 = keyword31; Tnc.data.keyword4 = keyword41; Tnc.data.keyword5 = keyword51; Tnc.data.keyword6 = keyword61; Tnc.touser = model.OpenId; Tnc.template_id = "IOxfg-a_xjT3GSY8RHgF6qybqmV-4MlSM1IOpgwpWWg"; Tnc.form_id = model.FormId; Tnc.data.keyword1.value = Order.OrderNo; Tnc.data.keyword2.value = model.Price.ToString(); Tnc.data.keyword3.value = NT; Tnc.data.keyword4.value = DateTime.Now.ToString(); Tnc.data.keyword5.value = Addrs.Addr; Tnc.data.keyword6.value = Addrs.ContactPhone; Fun.GetToken(Tem); AppToken Text = new AppToken(_context); Text.GetAppToken(Tnc); Jpush jpush = new Jpush(); jpush.SendOrder(model.SysUserId, sysUserinfo.Name); } return(Ok("666!!")); } catch (Exception ex) { return(StatusCode(500, ex.Message)); } }
private void GoodsImage_Click(object sender, RoutedEventArgs e) { try { FrameworkElement fe = sender as FrameworkElement; OrderGoods og = fe.Tag as OrderGoods; if (og == null) { throw new Exception("数据绑定信息不正确"); } string url = ""; if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl)) { if (string.IsNullOrWhiteSpace(og.PopUrl)) { throw new Exception("商品网店地址为空"); } var o = ServiceContainer.GetService <OrderService>().GetById(og.OrderId); if (o.PopType == PopType.TAOBAO || o.PopType == PopType.TMALL) { url = "http://item.taobao.com/item.htm?id=" + og.PopUrl; } else if (o.PopType == PopType.CHUCHUJIE) { url = "http://wx.chuchujie.com/index.php?s=/WebProduct/product_detail/product_id/" + og.PopUrl; } else if (o.PopType == PopType.PINGDUODUO) { url = "http://mobile.yangkeduo.com/goods.html?goods_id=" + og.PopUrl; } else { throw new Exception("无法识别的平台"); } } else { if (og.GoodsId <= 0) { return; } var gu = ServiceContainer.GetService <GoodsService>().GetById(og.GoodsId); if (gu == null) { throw new Exception("指定的商品不存在"); } url = gu.Url; if (string.IsNullOrWhiteSpace(url)) { return; } } Process.Start(url); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public OrderGoodsResult GetFreshFoods(string ekOrg, string ekGrp, string werks, string buDat, string perNo) { ManageOrderOfferProgramInClient soapClient = new ManageOrderOfferProgramInClient(); soapClient.ClientCredentials.UserName.UserName = System.Configuration.ConfigurationManager.AppSettings["SAP_WEBSERVICE_USERNAME"]; soapClient.ClientCredentials.UserName.Password = System.Configuration.ConfigurationManager.AppSettings["SAP_WEBSERVICE_PASSWORD"]; int year; int month; int day; int.TryParse(buDat.Substring(0, 4), out year); int.TryParse(buDat.Substring(4, 2), out month); int.TryParse(buDat.Substring(6, 2), out day); DateTime dt = new DateTime(year, month, day); FreshFoodOrderQuery_sync typeMParam = new FreshFoodOrderQuery_sync() { EKGRP = ekGrp, WERKS = werks, BUDAT = dt, BUDATSpecified = true, PERNO = perNo, ZTYPE = "M" }; FreshFoodOrderResponse_sync typeMResult = soapClient.FreshFoodOrderQueryResponse_In(typeMParam); ////FreshFoodOrder typeMFreshFoodOrder = new FreshFoodOrder(); ////typeMFreshFoodOrder.E_SUBRC = typeMResult.Flag; // 0 정상, 4 에러 ////typeMFreshFoodOrder.E_ZTEXT = typeMResult.ReturnMessage; //if (typeMResult.Flag == "E" || typeMResult.Flag == "4") // throw new Exception(typeMResult.ReturnMessage); //// second call FreshFoodOrderQuery_sync typeAParam = new FreshFoodOrderQuery_sync() { EKGRP = ekGrp, WERKS = werks, BUDAT = dt, BUDATSpecified = true, PERNO = perNo, ZTYPE = "A", MATNRFreshFoodOrderList = typeMResult.MATNRFreshFoodOrderList }; FreshFoodOrderResponse_sync typeAResult = soapClient.FreshFoodOrderQueryResponse_In(typeAParam); //if (typeAResult.Flag == "E" || typeAResult.Flag == "4") // throw new Exception(typeAResult.ReturnMessage); QueryMaterialPriceInfoClient client = new QueryMaterialPriceInfoClient(); client.ClientCredentials.UserName.UserName = System.Configuration.ConfigurationManager.AppSettings["SAP_WEBSERVICE_USERNAME"]; client.ClientCredentials.UserName.Password = System.Configuration.ConfigurationManager.AppSettings["SAP_WEBSERVICE_PASSWORD"]; List <Matnr> matnrList = new List <Matnr>(); MaterialVendorInfoQuery_sync mParam = null; OrderGoodsResult orderGoodsResult = new OrderGoodsResult(); List <OrderGoods> orderGoodsList = new List <OrderGoods>(); OrderGoods goods = null; MaterialVendorInfoResponse_sync q = null; orderGoodsResult.Flag = typeAResult.Flag; orderGoodsResult.ReturnMessage = typeAResult.ReturnMessage; orderGoodsResult.orderGoods = new List <OrderGoods>(); if (typeAResult.FreshFoodOrderList != null) { foreach (var item in typeAResult.FreshFoodOrderList) { goods = new OrderGoods(); goods.LIFNR = item.LIFNR; goods.MATNR = item.MATNR; goods.MAKTX = item.MAKTX; goods.MENGE = item.MENGE; goods.UMREZ = item.UMREZ; ////goods.LFDAT = item.LFDAT.ToString("MMdd"); goods.LFDAT = item.LFDAT; goods.NETPR = item.NETPR; goods.LABST = item.LABST; goods.ICON = item.ICON; goods.ICON1 = item.ICON1; goods.NAME1 = item.NAME1; goods.MEINS = item.MEINS; goods.WAKFG = item.WAKFG; goods.MSTAE = item.MSTAE; goods.TDYMG = item.TDYMG; goods.MENG1 = item.MENG1; goods.MENG2 = item.MENG2; goods.MENG3 = item.MENG3; goods.MENG0 = item.MENG0; goods.TNETPR = item.TNETPR; goods.BANFN = item.BANFN; goods.EBELN1 = item.EBELN1; goods.REMARK = item.REMARK; goods.LQTY7 = item.LQTY7; goods.LQTY6 = item.LQTY6; goods.LQTY5 = item.LQTY5; goods.LQTY4 = item.LQTY4; goods.LQTY3 = item.LQTY3; goods.WEQTY = item.WEQTY; goods.YEQTY = item.YEQTY; goods.TOQTY = item.TOQTY; goods.TOTAL = item.TOTAL; goods.EISBE = item.EISBE; goods.DDATE = item.DDATE; goods.WERKS = item.WERKS; goods.EKGRP = item.EKGRP; foreach (var matnr in typeAResult.MATNRFreshFoodOrderList) { if (item.MATNR == matnr.MATNR) { mParam = new MaterialVendorInfoQuery_sync(); mParam.EKORG = ekOrg; mParam.MATNR = matnr.MATNR; matnrList = new List <Matnr>(); q = client.MaterialVendorInfoQueryResponse_In(mParam); foreach (var innerItem in q.MaterialVendorList) { matnrList.Add(new Matnr() { MATNR = innerItem.MATNR, LIFNR_N = string.Format("{0}-{1}", innerItem.LIFNR_N, innerItem.LIFNR), LIFNR = innerItem.LIFNR }); } break; } } goods.MATNRLIST = matnrList; orderGoodsList.Add(goods); } } orderGoodsResult.orderGoods = orderGoodsList; return(orderGoodsResult); }
/// <summary> /// 添加信息信息 /// </summary> /// <param name="inputDtos">要添加的店铺信息DTO信息</param> /// <returns>业务操作结果</returns> public async Task <OperationResult> AddOrders(params OrderInputDto[] inputDtos) { //开启事务 OrderRepository.UnitOfWork.TransactionEnabled = true; List <string> names = new List <string>(); foreach (OrderInputDto dto in inputDtos) { //auto mapper maybe fileter 不能通过自动映射 数据集合也会映射 //Models.Order order = dto.MapTo<Models.Order>(); Models.Order order = new Models.Order() { ShopName = dto.ShopName, OrderNumber = dto.OrderNumber, Amount = dto.Amount, HPayAmount = dto.HPayAmount, RealAmount = dto.RealAmount, Preferential = dto.Preferential, ExpressFee = dto.ExpressFee, Remark = dto.Remark, State = dto.State }; //店铺 if (dto.ShopId.HasValue && dto.ShopId.Value > 0) { Shop.Models.Shop shop = await ShopRepository.GetByKeyAsync(dto.ShopId.Value); if (shop == null) { return(new OperationResult(OperationResultType.QueryNull, "店铺不存在")); } order.Shop = shop; shop.Orders.Add(order); } //用户 if (dto.UserId.HasValue && dto.UserId.Value > 0) { User user = await UserRepository.GetByKeyAsync(dto.UserId.Value); if (user == null) { return(new OperationResult(OperationResultType.QueryNull, "用户不存在")); } order.User = user; user.Orders.Add(order); } //配送信息 order.OrderExpress = new OrderExpress() { Name = dto.OrderExpress.Name, Region = dto.OrderExpress.Region, DetailAddress = dto.OrderExpress.DetailAddress, Zip = dto.OrderExpress.Zip, Mobile = dto.OrderExpress.Mobile }; //商品 if (dto.OrderGoodses.Count > 0) { foreach (OrderGoodsInputDto orderGoodsDto in dto.OrderGoodses) { //auto mapper maybe filter OrderGoods orderGoods = orderGoodsDto.MapTo <OrderGoods>(); //处理商品 if (orderGoodsDto.GoodsId.HasValue && orderGoodsDto.GoodsId.Value > 0) { Goods.Models.Goods goods = await GoodsRepository.GetByKeyAsync(orderGoodsDto.GoodsId.Value); if (goods == null) { throw new Exception("商品不存在"); } orderGoods.Goods = goods; } await OrderGoodsRepository.InsertAsync(orderGoods); orderGoods.Order = order; order.OrderGoodses.Add(orderGoods); } } int id = await OrderRepository.InsertAsync(order); names.Add(order.OrderNumber); } return(await OrderRepository.UnitOfWork.SaveChangesAsync() > 0 ? new OperationResult(OperationResultType.Success, $"订单“{names.ExpandAndToString()}”创建成功") : OperationResult.NoChanged); }
public string SyncReturn(HttpRequestBase request) { Logger.Warning("进入支付宝支付成功同步通知"); var payment = _paymentService.LoadPayment(PaymentType.Alipay.ToString()); var alipayConfig = _configService.Get <AlipayConfig>(); var config = new AlipayConfig2 { Partner = alipayConfig.Partner, SellerId = alipayConfig.SellerId, Md5Key = alipayConfig.MD5Key, SignType = SignType.MD5 }; SortedDictionary <string, string> sPara = GetRequestPostByKey(request); Logger.Warning("支付同步返回签名参数:" + Core.CreateLinkString(sPara)); if (sPara.Count > 0)//判断是否有带返回参数 { Notify aliNotify = new Notify(config); string sign = Core.GetSign(sPara); bool verifyResult = aliNotify.GetSignVeryfy(sPara, Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(sign))); if (verifyResult)//验证成功 { ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //请在这里加上商户的业务逻辑程序代码 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表 //商户订单号 string out_trade_no = request.QueryString["out_trade_no"]; //支付宝交易号 string trade_no = request.QueryString["trade_no"]; //交易状态 string trade_status = request.QueryString["trade_status"]; Logger.Warning("正在同步操作商户订单号:" + out_trade_no); string returnString = ""; if (request.QueryString["trade_status"] == "TRADE_FINISHED" || request.QueryString["trade_status"] == "TRADE_SUCCESS") { //判断该笔订单是否在商户网站中已经做过处理 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //如果有做过处理,不执行商户的业务程序 PayLog payLog = _currencyService.GetSingleByConditon <PayLog>(o => o.TransactionNo == out_trade_no); payLog.PayTime = DateTime.Now; payLog.LogStatus = LogStatus.Paid; if (payLog != null && payLog.LogStatus != LogStatus.Paid) { _currencyService.Update <PayLog>(payLog); Order order = _currencyService.GetSingleByConditon <Order>(o => o.Id == payLog.OrderId); order.PayStatus = PayStatus.Paid; order.PayTime = DateTime.Now; order.PaymentId = payment.Id; order.PaymentName = payment.Name; order.OrderStatus = OrderStatus.WaitingForDelivery; _orderService.ChangeOrderStatus(order.Id, order.OrderStatus, order.PayStatus); _currencyService.Update <Order>(order); OrderGoods orderGoods = _currencyService.GetSingleByConditon <OrderGoods>(o => o.OrderId == order.Id); if (orderGoods != null) { var dicParams = new Dictionary <string, string>(); dicParams.Add("messagetype", "3"); } } } else { returnString = "trade_status=" + request.QueryString["trade_status"]; } //打印页面 returnString += "验证成功<br />"; return(returnString); //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— ///////////////////////////////////////////////////////////////////////////////////////////////////////////// } else//验证失败 { Logger.Warning("验证失败"); return("验证失败"); } } else { Logger.Warning("无返回参数"); return("无返回参数"); } }
public object Format(PrintTemplate template, PrintTemplateItem item, OrderGoods orderGoods) { return("尺码:" + (220 + (int.Parse(orderGoods.Size) - 34) * 5).ToString() + "/1.5"); }
public Task <int> DeleteItemAsync(OrderGoods item) { return(database.DeleteAsync(item)); }
public FinishPage(PotentialCustomer Customer1, Transport TransportToSend, List <string> GoodsName, List <CartGoods> GoodsInCart, List <int> Piece1) { InitializeComponent(); Piece = Piece1; Address Address = new Address(); Address.Street = Customer1.Street; Address.Town = Customer1.Town; Address.PostNumber = int.Parse(Customer1.PostCode.ToString()); AddressDatabase.SaveItemAsync(Address); DebugMethod(); ContactInformation Contact = new ContactInformation(); Contact.Email = Customer1.Mail; Contact.Phone = Customer1.Phone; ContactInformationDatabase.SaveItemAsync(Contact); DebugMethod(); Customer Customer = new Customer(); Customer.AddressID = Address.AddressID; Customer.ContactInformationID = Contact.ContactInformationID; Customer.Name = Customer1.Name; Customer.Surname = Customer1.Surname; CustomerDatabase.SaveItemAsync(Customer); DebugMethod(); OrderTransport Transport = new OrderTransport(); Transport.TypeOfTransport = TransportToSend.Name; Transport.Price = TransportToSend.Price; OrderTransportDatabase.SaveItemAsync(Transport); DebugMethod(); Random r = new Random(); int rnd = r.Next(); int TotalPrice = 0; for (int i = 0; i < GoodsInCart.Count; i++) { TotalPrice += GoodsInCart[i].TotalPrice; } TotalPrice += Transport.Price; Order Order = new Order(); Order.CustomerID = Customer.CustomerID; Order.TransportID = Transport.TransportID; Order.OrderNumber = rnd; Order.OrderPrice = TotalPrice; OrderDatabase.SaveItemAsync(Order); DebugMethod(); Number.Text = Order.OrderNumber.ToString(); List <Customer> clist = new List <Customer>(); clist = CustomerDatabase.GetItemsAsync().Result; for (int i = 0; i < GoodsName.Count; i++) { OrderGoods OrderGoods = new OrderGoods(); OrderGoods.OrderID = Order.OrderID; Goods goods = GoodsDatabase.GetItemAsync(GoodsName[i]).Result; OrderGoods.GoodsQauntity = GoodsInCart[i].GoodsQauntity; OrderGoods.GoodsID = goods.GoodsID; OrderGoodsDatabase.SaveItemAsync(OrderGoods); DebugMethod(); } var ordergoods = OrderGoodsDatabase.GetItemsAsync().Result; var order = OrderDatabase.GetItemsAsync().Result; }
public object Format(PrintTemplate template, PrintTemplateItem item, OrderGoods orderGoods) { return("货号:" + (orderGoods.GoodsId > 0 ? orderGoods.Number : "")); }
private ShopErp.Domain.Order ParseOrder(TaobaoQueryOrderListResponseOrder orderShort, Shop shop) { var dbMineTime = ServiceContainer.GetService <OrderService>().GetDBMinTime(); //订单信息 var js = ScriptManager.GetBody(jspath, "//TAOBAO_GET_ORDER").Replace("###bizOrderId", orderShort.id); var task = wb1.GetBrowser().MainFrame.EvaluateScriptAsync(js, "", 1, new TimeSpan(0, 0, 30)); var ret = task.Result; if (ret.Success == false || (ret.Result != null && ret.Result.ToString().StartsWith("ERROR"))) { throw new Exception("执行操作失败:" + ret.Message); } var content = ret.Result.ToString(); string title = shop.PopType == PopType.TMALL ? "var detailData" : "var data = JSON"; int si = content.IndexOf(title); if (si <= 0) { throw new Exception("未找到订单详情数据开始标识" + title); } si = content.IndexOf('{', si); if (si <= 0) { throw new Exception("未找到订单详情数据开始标识" + title); } int ei = content.IndexOf("</script>", si); if (ei <= si) { throw new Exception("未找到详情结尾数据"); } while (ei >= 0 && content[ei] != '}') { ei--; } if (ei <= si) { throw new Exception("未找到详情结尾数据"); } String orderInfo = content.Substring(si, ei - si + 1).Trim(); DateTime popPayTime = dbMineTime, popDeliveryTime = dbMineTime; string buyerComment = "", sellerComment = "", reciverInfo = "", popOrderState = ""; float goodsPrice = 0, deliveryPrice = 0, sellerGetMoney = 0; Dictionary <string, float> namePrice = new Dictionary <string, float>(); if (shop.PopType == PopType.TMALL) { var orderDetail = Newtonsoft.Json.JsonConvert.DeserializeObject <TmallQueryOrderDetailResponse>(orderInfo, new Newtonsoft.Json.JsonSerializerSettings { StringEscapeHandling = Newtonsoft.Json.StringEscapeHandling.EscapeHtml }); string payTime = orderDetail.stepbar.options.First(obj => obj.content == "买家付款").time; string deliveryTime = orderDetail.stepbar.options.First(obj => obj.content == "发货").time; popOrderState = orderDetail.overStatus.status.content[0].text; popPayTime = string.IsNullOrWhiteSpace(payTime) ? dbMineTime : DateTime.Parse(payTime); popDeliveryTime = string.IsNullOrWhiteSpace(deliveryTime) ? dbMineTime : DateTime.Parse(deliveryTime); buyerComment = orderDetail.basic.lists.First(obj => obj.key == "买家留言").content[0].text; if (buyerComment == "-") { buyerComment = ""; } var addN = orderDetail.basic.lists.First(obj => obj.key == "收货地址").content[0]; //html 表示地址是要经过转运的地址,label是不需要经过转运的大陆地址 if (addN.type.Equals("html", StringComparison.OrdinalIgnoreCase)) { HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument(); document.LoadHtml(addN.text); string hh = document.DocumentNode.InnerText; string nhh = hh.Substring(0, hh.IndexOf("]转 ") + 1);// string read = nhh.Trim().TrimEnd(']'); string mark = "[转运仓转运仓库:"; if (read.IndexOf(mark) > 0) { read = read.Replace(mark, ""); } reciverInfo = read; } else if (addN.type.Equals("label", StringComparison.OrdinalIgnoreCase)) { reciverInfo = addN.text; } else { throw new Exception("无法识别的地址格式"); } //订单金额 var contents = new List <TmallQueryOrderDetailResponseAmountCountContent>(); foreach (var c in orderDetail.amount.count) { foreach (var cc in c) { contents.AddRange(cc.content); } } string strGoodsPrice = contents.FirstOrDefault(obj => obj.data.titleLink.text == "商品总价").data.money.text.Replace("¥", "").Trim(); string strDeliveryPrice = contents.FirstOrDefault(obj => obj.data.titleLink.text.Contains("运费")).data.money.text.Replace("¥", "").Trim(); string strBuyerPayPrice = contents.FirstOrDefault(obj => obj.data.titleLink.text.Contains("订单总价")).data.money.text.Replace("¥", "").Trim(); var strSellerGetMoney = contents.FirstOrDefault(obj => obj.data.titleLink != null && (obj.data.titleLink.text.Contains("应收款") || obj.data.titleLink.text.Contains("实收款"))); goodsPrice = float.Parse(strGoodsPrice); deliveryPrice = float.Parse(strDeliveryPrice); sellerGetMoney = float.Parse(strSellerGetMoney.data.dotPrefixMoney.text + strSellerGetMoney.data.dotSufixMoney.text); //商家备注 if (orderDetail.overStatus.operate.FirstOrDefault(obj => string.IsNullOrWhiteSpace(obj.key)) != null) { string comment = orderDetail.overStatus.operate.FirstOrDefault(obj => string.IsNullOrWhiteSpace(obj.key)).content[0].text; si = comment.IndexOf("备忘:</span><span>"); ei = comment.IndexOf("</span>", si + "备忘:</span><span>".Length); sellerComment = comment.Substring(si + "备忘:</span><span>".Length, ei - si - "备忘:</span><span>".Length); } foreach (var vv in orderDetail.orders.list) { foreach (var vvv in vv.status) { foreach (var vvvv in vvv.subOrders) { namePrice[vvvv.itemInfo.title] = float.Parse(vvvv.priceInfo[0].text.Trim()); } } } } else { orderInfo = Regex.Unescape(orderInfo); var orderDetail = Newtonsoft.Json.JsonConvert.DeserializeObject <TaobaoQueryOrderDetailResponse>(orderInfo); List <TaobaoQueryOrderDetailResponseOrderInfoLineContentNameValue> infoLines = new List <TaobaoQueryOrderDetailResponseOrderInfoLineContentNameValue>(); foreach (var v in orderDetail.mainOrder.orderInfo.lines) { foreach (var vv in v.content) { infoLines.Add(vv.value); } } var infoLinePayTime = infoLines.FirstOrDefault(obj => obj.name.Contains("付款时间")); var infoLineDeliveryTime = infoLines.FirstOrDefault(obj => obj.name.Contains("发货时间")); popPayTime = infoLinePayTime != null?DateTime.Parse(infoLinePayTime.value) : dbMineTime; popDeliveryTime = infoLineDeliveryTime != null?DateTime.Parse(infoLineDeliveryTime.value) : dbMineTime; popOrderState = orderDetail.mainOrder.statusInfo.text; buyerComment = orderDetail.buyMessage; foreach (var v in orderDetail.operationsGuide) { foreach (var vv in v.lines) { if (vv.content.Any(obj => obj.value == "标记:")) { sellerComment = vv.content[1].value; break; } } } goodsPrice = float.Parse(orderDetail.mainOrder.totalPrice[0].content[0].value); deliveryPrice = float.Parse(orderDetail.mainOrder.totalPrice.FirstOrDefault(obj => obj.content[0].value.Contains("快递")).content[0].value.Replace("(快递:", "")); sellerGetMoney = orderDetail.mainOrder.payInfo.actualFee.value; foreach (var v in orderDetail.mainOrder.subOrders) { namePrice[v.itemInfo.title] = v.priceInfo; } var addN = orderDetail.tabs.FirstOrDefault(obj => obj.id == "logistics"); if (addN == null) { throw new Exception("未找到地址结点"); } reciverInfo = addN.content.address; } var order = new Order { CloseOperator = "", CloseTime = dbMineTime, CreateOperator = "", CreateTime = DateTime.Now, CreateType = OrderCreateType.DOWNLOAD, DeliveryCompany = "", DeliveryNumber = "", DeliveryOperator = "", DeliveryTime = dbMineTime, DeliveryMoney = 0, Id = 0, PopDeliveryTime = popDeliveryTime, OrderGoodss = new List <OrderGoods>(), ParseResult = true, PopBuyerComment = buyerComment, PopBuyerId = orderShort.buyer.nick, PopBuyerPayMoney = orderShort.payInfo.actualFee, PopCodNumber = "", PopCodSevFee = 0, PopFlag = ConvertFlag(orderShort.extra.sellerFlag), PopOrderId = orderShort.id, PopOrderTotalMoney = goodsPrice + deliveryPrice, PopPayTime = popPayTime, PopPayType = PopPayType.ONLINE, PopSellerComment = sellerComment, PopSellerGetMoney = sellerGetMoney, PopState = popOrderState, PopType = shop.PopType, PrintOperator = "", PrintTime = dbMineTime, ReceiverAddress = "", ReceiverMobile = "", ReceiverName = "", ReceiverPhone = "", ShopId = shop.Id, State = ConvertState(orderShort.statusInfo.text.Trim()), Type = OrderType.NORMAL, Weight = 0, DeliveryTemplateId = 0, Refused = false, }; foreach (var so in orderShort.subOrders) { var og = new OrderGoods { CloseOperator = "", CloseTime = dbMineTime, Color = so.itemInfo.skuText.FirstOrDefault(obj => obj.name.Contains("颜色")).value, Comment = "", Count = so.quantity, Edtion = "", GetedCount = 0, Id = 0, Image = so.itemInfo.pic, Number = so.itemInfo.extra[0].value, GoodsId = 0, OrderId = 0, PopOrderSubId = "", PopPrice = namePrice[so.itemInfo.title], PopUrl = "", Price = 0, Size = so.itemInfo.skuText.FirstOrDefault(obj => obj.name.Contains("尺码")).value, State = OrderState.PAYED, Weight = 0, StockOperator = "", StockTime = dbMineTime, Vendor = "", IsPeijian = false, }; og.PopInfo = og.Number + " " + og.Color + " " + og.Size; if (so.operations != null && so.operations.FirstOrDefault(obj => obj.text.Trim() == "退款成功") != null) { og.State = OrderState.CANCLED; } else if (so.operations != null && so.operations.FirstOrDefault(obj => obj.text.Trim() == "请卖家处理" || obj.text.Trim() == "请退款") != null) { og.State = OrderState.RETURNING; } else { og.State = OrderState.PAYED; } order.OrderGoodss.Add(og); } if (order.OrderGoodss.Select(obj => obj.State).Distinct().Count() == 1) { order.State = order.OrderGoodss[0].State; } string add = ""; string[] reinfos = reciverInfo.Split(new char[] { ',', ',' }, StringSplitOptions.RemoveEmptyEntries); order.ReceiverName = HttpUtility.HtmlDecode(reinfos[0].Trim()); order.ReceiverMobile = HttpUtility.HtmlDecode(reinfos[1].Replace("86-", "")); int start = 2; if (reinfos[2].All(c => Char.IsDigit(c) || c == '-')) { order.ReceiverPhone = reinfos[2]; start = 3; } for (; start < reinfos.Length; start++) { if (start == reinfos.Length - 1 && reinfos[start].All(c => Char.IsDigit(c))) { break; } add += reinfos[start] + ","; } order.ReceiverAddress = HttpUtility.HtmlDecode(add.Trim(',')); return(order); }