public int GetOrderCount(OrderSearchCondition condition) { var query = _orderRepository.Table; try { if (!string.IsNullOrEmpty(condition.OrderNum)) { query = query.Where(q => q.OrderNum.Contains(condition.OrderNum)); } if (condition.Status.HasValue) { query = query.Where(q => q.Status == condition.Status.Value); } if (condition.IsPrint.HasValue) { query = query.Where(q => q.IsPrint == condition.IsPrint.Value); } if (condition.Type.HasValue) { query = query.Where(q => q.Type == condition.Type.Value); } if (condition.PayType.HasValue) { query = query.Where(q => q.PayType == condition.PayType.Value); } if (condition.LocationX.HasValue) { query = query.Where(q => q.LocationX == condition.LocationX.Value); } if (condition.LocationY.HasValue) { query = query.Where(q => q.LocationY == condition.LocationY.Value); } if (!string.IsNullOrEmpty(condition.DeliveryAddress)) { query = query.Where(q => q.DeliveryAddress.Contains(condition.DeliveryAddress)); } if (!string.IsNullOrEmpty(condition.PhoneNumber)) { query = query.Where(q => q.PhoneNumber.Contains(condition.PhoneNumber)); } if (condition.Ids != null && condition.Ids.Any()) { query = query.Where(q => condition.Ids.Contains(q.Id)); } if (condition.AddTimeBegin.HasValue) { query = query.Where(q => q.Addtime >= condition.AddTimeBegin); } if (condition.AddTimeEnd.HasValue) { query = query.Where(q => q.Addtime < condition.AddTimeEnd); } return query.Count(); } catch(Exception e) { _log.Error(e,"数据库操作出错"); return -1; } }
public string NotifyUurl() { //获取流 Stream s = System.Web.HttpContext.Current.Request.InputStream; //转换成Byte数组 byte[] b = new byte[s.Length]; //读取流 s.Read(b, 0, (int)s.Length); //转化成utf8编码 string postStr = Encoding.UTF8.GetString(b); //XML XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(postStr); var returnCode = xmlDoc.SelectSingleNode("/xml/return_code"); var resultCode = xmlDoc.SelectSingleNode("/xml/result_code"); if (returnCode.InnerText == "SUCCESS" && resultCode.InnerText == "SUCCESS") { var sign = xmlDoc.SelectSingleNode("/xml/sign").InnerText; var dic = FromXml(xmlDoc); if (!CheckSign(sign, dic)) { var error = new SortedDictionary<string, string> { {"return_code", "FAIL"}, {"return_msg", "签名验证失败"} }; return _helper.ConvertToXml(error); } var orderNo = xmlDoc.SelectSingleNode("/xml/out_trade_no"); var con = new OrderSearchCondition() { OrderNum = orderNo.InnerText }; var order = _orderService.GetOrdersByCondition(con).FirstOrDefault(); if (order != null) { // if (order.Status == EnumOrderStatus.) // { // var error = new SortedDictionary<string, string> // { // {"return_code", "FAIL"}, // {"return_msg", "没有获取到PrepayId"} // }; // return _wcHelper.ConvertToXml(error); // } if (order.Status == EnumOrderStatus.Payed) { var successMsg = new SortedDictionary<string, string> { {"return_code", "SUCCESS"}, {"return_msg", "OK"} }; return _helper.ConvertToXml(successMsg); } if (order.Status == EnumOrderStatus.Created) { //更新本地订单状态 order.Status = EnumOrderStatus.Payed; order.Updtime = DateTime.Now; _orderService.Update(order); var successMsg = new SortedDictionary<string, string> { {"return_code", "SUCCESS"}, {"return_msg", "OK"} }; return _helper.ConvertToXml(successMsg); } } var msg = new SortedDictionary<string, string> { {"return_code", "FAIL"}, {"return_msg", "本地不存在订单信息"} }; return _helper.ConvertToXml(msg); } var errorMsg = new SortedDictionary<string, string> { {"return_code", "FAIL"}, {"return_msg", "交易失败"} }; return _helper.ConvertToXml(errorMsg); }
public IQueryable<OrderEntity> GetOrdersByCondition(OrderSearchCondition condition) { var query = _orderRepository.Table; try { if (!string.IsNullOrEmpty(condition.OrderNum)) { query = query.Where(q => q.OrderNum == condition.OrderNum); } if (condition.Status.HasValue) { query = query.Where(q => q.Status == condition.Status.Value); } if (condition.IsPrint.HasValue) { query = query.Where(q => q.IsPrint == condition.IsPrint.Value); } if (condition.Type.HasValue) { query = query.Where(q => q.Type == condition.Type.Value); } if (condition.PayType.HasValue) { query = query.Where(q => q.PayType == condition.PayType.Value); } if (condition.LocationX.HasValue) { query = query.Where(q => q.LocationX == condition.LocationX.Value); } if (condition.LocationY.HasValue) { query = query.Where(q => q.LocationY == condition.LocationY.Value); } if (!string.IsNullOrEmpty(condition.DeliveryAddress)) { query = query.Where(q => q.DeliveryAddress.Contains(condition.DeliveryAddress)); } if (!string.IsNullOrEmpty(condition.PhoneNumber)) { query = query.Where(q => q.PhoneNumber.Contains(condition.PhoneNumber)); } if (condition.Ids != null && condition.Ids.Any()) { query = query.Where(q => condition.Ids.Contains(q.Id)); } if (condition.AddTimeBegin.HasValue) { query = query.Where(q => q.Addtime >= condition.AddTimeBegin); } if (condition.AddTimeEnd.HasValue) { query = query.Where(q => q.Addtime < condition.AddTimeEnd); } if(condition.OrderBy.HasValue) { switch (condition.OrderBy.Value) { case EnumOrderSearchOrderBy.OrderById: query = condition.IsDescending?query.OrderByDescending(q=>q.Id):query.OrderBy(q=>q.Id); break; case EnumOrderSearchOrderBy.OrderByOrderNum: query = condition.IsDescending?query.OrderByDescending(q=>q.OrderNum):query.OrderBy(q=>q.OrderNum); break; case EnumOrderSearchOrderBy.OrderByTotalPrice: query = condition.IsDescending?query.OrderByDescending(q=>q.TotalPrice):query.OrderBy(q=>q.TotalPrice); break; case EnumOrderSearchOrderBy.OrderByStatus: query = condition.IsDescending?query.OrderByDescending(q=>q.Status):query.OrderBy(q=>q.Status); break; case EnumOrderSearchOrderBy.OrderByIsPrint: query = condition.IsDescending?query.OrderByDescending(q=>q.IsPrint):query.OrderBy(q=>q.IsPrint); break; case EnumOrderSearchOrderBy.OrderByAddtime: query = condition.IsDescending?query.OrderByDescending(q=>q.Addtime):query.OrderBy(q=>q.Addtime); break; case EnumOrderSearchOrderBy.OrderByUpdtime: query = condition.IsDescending?query.OrderByDescending(q=>q.Updtime):query.OrderBy(q=>q.Updtime); break; case EnumOrderSearchOrderBy.OrderByType: query = condition.IsDescending?query.OrderByDescending(q=>q.Type):query.OrderBy(q=>q.Type); break; case EnumOrderSearchOrderBy.OrderByPayType: query = condition.IsDescending?query.OrderByDescending(q=>q.PayType):query.OrderBy(q=>q.PayType); break; } } else { query = query.OrderByDescending(q => q.Id); } if (condition.Page.HasValue && condition.PageCount.HasValue) { query = query.Skip((condition.Page.Value - 1)*condition.PageCount.Value).Take(condition.PageCount.Value); } return query; } catch(Exception e) { _log.Error(e,"数据库操作出错"); return null; } }
private string GetNewOrderNum() { var now = DateTime.Today; var condition = new OrderSearchCondition { AddTimeBegin = now, AddTimeEnd = now.AddDays(1) }; var count = _OrderService.GetOrderCount(condition); return DateTime.Now.ToString("yyyyMMddHHmmss") + count.ToString("000000"); }
public string GetTodayOrderNumber() { OrderSearchCondition OSC = new OrderSearchCondition() { OrderNum = DateTime.Now.ToString("yyyyMMdd") }; return "" + _OrderService.GetOrderCount(OSC); }
public HttpResponseMessage GetCount(int? page = 1, int? pageCount = 10, string ids = "", bool isDescending = false, string orderNum = "", EnumOrderStatus? status = null, string deliveryAddress = "", bool? isPrint = null, string phoneNumber = "", EnumOrderType? type = null, EnumPayType? payType = null, decimal? locationX = null, decimal? locationY = null, DateTime? addTimeBegin = null, DateTime? addTimeEnd = null, EnumOrderSearchOrderBy orderBy = EnumOrderSearchOrderBy.OrderById) { var condition = new OrderSearchCondition { AddTimeBegin = addTimeBegin, AddTimeEnd = addTimeEnd, DeliveryAddress = deliveryAddress, Ids = string.IsNullOrEmpty(ids) ? null : ids.Split(',').Select(int.Parse).ToArray(), IsDescending = isDescending, IsPrint = isPrint, LocationX = locationX, LocationY = locationY, OrderBy = orderBy, OrderNum = orderNum, Page = page, PageCount = pageCount, PayType = payType, PhoneNumber = phoneNumber, Type = type, Status = status }; var count = _OrderService.GetOrderCount(condition); return PageHelper.toJson(new { TotalCount = count, Condition = condition }); }
public HttpResponseMessage GetByCondition(int? page = 1, int? pageCount = 10, string ids ="", bool isDescending = false, string orderNum = "", EnumOrderStatus? status = null, string deliveryAddress = "", bool? isPrint = null, string phoneNumber = "", EnumOrderType? type = null, EnumPayType? payType = null, decimal? locationX = null, decimal? locationY = null, DateTime? addTimeBegin = null, DateTime? addTimeEnd = null, EnumOrderSearchOrderBy orderBy = EnumOrderSearchOrderBy.OrderById) { var condition = new OrderSearchCondition { AddTimeBegin = addTimeBegin, AddTimeEnd = addTimeEnd, DeliveryAddress = deliveryAddress, Ids = string.IsNullOrEmpty(ids)?null:ids.Split(',').Select(int.Parse).ToArray(), IsDescending = isDescending, IsPrint = isPrint, LocationX = locationX, LocationY = locationY, OrderBy = orderBy, OrderNum = orderNum, Page = page, PageCount = pageCount, PayType = payType, PhoneNumber = phoneNumber, Type = type, Status = status }; var model = _OrderService.GetOrdersByCondition(condition).Select(c => new OrderModel { Id = c.Id, OrderNum = c.OrderNum, TotalPrice = c.TotalPrice, TransCost = c.TransCost, ProductCost = c.ProductCost, Discount = c.Discount, Status = c.Status, DeliveryAddress = c.DeliveryAddress, IsPrint = c.IsPrint, PhoneNumber = c.PhoneNumber, Adduser = new UserModel{Id = c.Adduser.Id,UserName = c.Adduser.UserName}, Addtime = c.Addtime, Upduser = new UserModel { Id = c.Upduser.Id, UserName = c.Upduser.UserName }, Updtime = c.Updtime, // Details = c.Details, // Coupon = c.Coupon, Type = c.Type, PayType = c.PayType, LocationX = c.LocationX, LocationY = c.LocationY, Details = c.Details.Select(d => new OrderDetailModel() { Count = d.Count, Id = d.Id, ProductId = d.Product.Id, ProductName = d.Product.Name, TotalPrice = d.TotalPrice, UnitPrice = d.Product.Price, Remark=d.Remark }).ToList() }).ToList(); return PageHelper.toJson(new { List = model }); }