public ActionResult Index() { var query = new SaleOrderQuery() { OwnerIDs = new long[] { GetOwnerID() }, Take = _pageSize, OrderField = "CreatedAt", OrderDirection = OrderDirection.Desc, }; var initList = Service.Select(query).ToArray(); ViewData["Pagination"] = Pagination.FromQuery(query); List <SelectListItem> stateList = new List <SelectListItem>() { new SelectListItem() { Value = "-1", Text = "请选择", } }; stateList.AddRange(Enum.GetValues(typeof(OrderState)).Cast <OrderState>().Select(o => new SelectListItem() { Value = ((int)o).ToString(), Text = o.GetDescription(), }).ToList()); ViewData["stateList"] = stateList; GetDeliveryMehtods(initList); return(View(initList)); }
public ActionResult AjaxQuery(SaleOrderQuery query) { if (query == null) { query = new SaleOrderQuery(); } Boolean hasQueryed = false; if (Request.Form["hasQuery"] != null) { hasQueryed = Convert.ToBoolean(Request.Form["hasQuery"]); } if (hasQueryed) { if (query.AmountRange.Left == null && query.AmountRange.Right == null) { query.AmountRange = null; } if (query.CreatedAtRange.Right != null) { query.CreatedAtRange.Right = query.CreatedAtRange.Right.Value.AddDays(1); } if (query.CreatedAtRange.Left == null && query.CreatedAtRange.Right == null) { query.CreatedAtRange = null; } if (query.CodePattern != null) { query.CodePattern = query.CodePattern.Trim(); } if (query.NamePattern != null) { query.NamePattern = query.NamePattern.Trim(); } if (query.State == -1) { query.State = null; } } else { query.AmountRange = null; query.CodePattern = null; query.NamePattern = null; query.CreatedAtRange = null; query.State = null; } query.States = FilterStates(); query.OwnerIDs = new long[] { GetOwnerID() }; query.Take = _pageSize; if (string.IsNullOrWhiteSpace(query.OrderField)) { query.OrderField = "CreatedAt"; query.OrderDirection = OrderDirection.Desc; } var saleorders = Service.Select(query).ToArray(); var pro = Pagination.FromQuery(query); ViewData["Pagination"] = pro; GetDeliveryMehtods(saleorders); return(PartialView("SaleOrder/OrderList", saleorders)); }
/// <summary> /// 定制化查询 /// 类型:微信,线上 /// 分页情况 /// </summary> /// <param name="MOQuery"></param> /// <returns></returns> public ActionResult AjaxMemberOrder(MemberSaleOrderVMQuery MOQuery) { var svc = Service; var OSvc = ORSService; Collection <MemberSaleOrderVM> MasterModel = new Collection <MemberSaleOrderVM>(); long id = -1; string OrderSource = "wechat"; //获取查看用户编号 if (Request.Form["FanId"] != null) { if (!long.TryParse(Request.Form["FanId"].ToString(), out id)) { id = -1; } } //获取订单来源 //wechat--web if (Request.Form["OrderSource"] != null) { OrderSource = Request.Form["OrderSource"].ToString(); } #region 微信端订单 if (OrderSource == "wechat") { var WeChatOrderQuery = new SaleOrderQuery { FanIDs = new long[] { id }, Take = PageSize, Skip = MOQuery.Skip, OrderField = "CreatedAt", OrderDirection = OrderDirection.Asc }; var WeChatOrderList = svc.SelectOrEmpty(WeChatOrderQuery); if (WeChatOrderList != null && WeChatOrderList.Any()) { MemberSaleOrderVM ItemModel = new MemberSaleOrderVM(); var DMetholds = GetDeliveryMethods(); foreach (var item in WeChatOrderList) { ItemModel = new MemberSaleOrderVM(); ItemModel.Code = item.Code; ItemModel.Amount = item.Amount; ItemModel.CreateTime = item.CreatedAt; ItemModel.DeliveryFee = item.DeliveryFee; ItemModel.DeliveryCode = item.DeliveryCode; ItemModel.DeliveryMethodID = item.DeliveryMethodID ?? -1; foreach (var DItem in DMetholds) { if (DItem.ID == ItemModel.DeliveryMethodID) { ItemModel.DeliveryMethodName = DItem.Name; break; } } ItemModel.Status = item.State ?? -1; ItemModel.StatusName = ((OrderState)ItemModel.Status).GetDescription(); ItemModel.OrderSource = "微信商城"; MasterModel.Add(ItemModel); } } ViewData["Pagination"] = Pagination.FromQuery(WeChatOrderQuery); } #endregion #region 线上商城订单 else if (OrderSource == "web") { var relatedQuery = new MemberRelatedQuery { FanIDs = new long[] { id } }; var relatedMember = svc.SelectOrEmpty(relatedQuery).FirstOrDefault(); //如果有关联,则获取关联信息 if (relatedMember != null) { //临时记录线上商城订单信息 //线上商城订单信息需要拼接,故而需要临时信息 Collection <MemberSaleOrderVM> WebMasterModel = new Collection <MemberSaleOrderVM>(); var WebOrderQuery = new OrderQuery { CustomerIDs = new long[] { relatedMember.CustomerID ?? -1 }, Take = PageSize, Skip = MOQuery.Skip, OrderField = "CreatedAt", OrderDirection = OrderDirection.Asc }; var WebOrderList = OSvc.SelectOrEmpty(WebOrderQuery); if (WebOrderList != null && WebOrderList.Any()) { MemberSaleOrderVM ItemModel = new MemberSaleOrderVM(); int idCount = WebOrderList.Count(); long[] ids = new long[idCount]; int idIndex = 0; foreach (var item in WebOrderList) { ItemModel = new MemberSaleOrderVM(); ItemModel.Code = item.Code; ItemModel.CreateTime = item.CreatedAt; ItemModel.OrderSource = "在线商城"; ItemModel.OrderId = item.ID; ids[idIndex++] = ItemModel.OrderId ?? -1; WebMasterModel.Add(ItemModel); } var WebFundQuery = new OrderFundQuery { IDs = ids }; var WebFundList = OSvc.SelectOrEmpty(WebFundQuery); if (WebFundList != null) { for (int i = 0; i < WebMasterModel.Count(); i++) { for (int j = 0; j < WebFundList.Count(); j++) { if (WebMasterModel[i].OrderId == WebFundList.ToList()[j].ID) { WebMasterModel[i].Amount = WebFundList.ToList()[j].PayableAmount; WebMasterModel[i].DeliveryFee = WebFundList.ToList()[j].DeliveryFee; } } MasterModel.Add(WebMasterModel[i]); } } } ViewData["Pagination"] = Pagination.FromQuery(WebOrderQuery); } else//保证在未绑定的情况下,页面的一致性 { var WebOrderQuery = new OrderQuery { CustomerIDs = new long[] { -1 }, Take = PageSize, }; ViewData["Pagination"] = Pagination.FromQuery(WebOrderQuery); } } #endregion ViewData["CId"] = id; return(View("Member/MemberOrderList", MasterModel)); }
/// <summary> /// 根据微信端客户信息获取绑定的主系统信息(如果已绑定) /// </summary> /// <param name="FanList">微信端客户列表</param> /// <returns>会员完整信息</returns> private ICollection <MemberMasterVM> AttachMemberWebInfo(IEnumerable <Fan> FanList) { Collection <MemberMasterVM> VM = new Collection <MemberMasterVM>(); var OSvc = ORSService; var svc = Service; if (FanList != null && FanList.Any()) { #region 微信端订单数量信息 var idSets = FanList.Select(c => c.ID ?? 0); long[] fanids = new long[idSets.Count()]; for (int i = 0; i < fanids.Length; i++) { fanids[i] = idSets.ToList()[i]; } //获取微信端客户订单情况 var weChatOrderQuery = new SaleOrderQuery { FanIDs = fanids, State = (int)OrderState.Finished }; var weChatOrder = svc.SelectOrEmpty(weChatOrderQuery); #endregion #region 获取微信端客户绑定主系统情况 var relateQuery = new MemberRelatedQuery { FanIDs = fanids }; //memberSet 微信端和主系统绑定记录 id-fanid-customerid var memberSet = svc.SelectOrEmpty(relateQuery).OrderBy(c => c.FanID); #endregion #region 绑定信息不为空,则获取对应绑定的主系统上的基本信息 if (memberSet != null && memberSet.Any()) { var memberids = memberSet.Select(c => c.CustomerID ?? 0).Distinct().OfType <long>().ToArray(); var CIQuery = new CustomerIdentityQuery { CustomerIDs = memberids }; //CustomerIdentity表 记录不同的登陆Code var CIdentity = OSvc.SelectOrEmpty(CIQuery);//.OrderBy(c => c.CustomerID); //主系统订单情况 var WebOrderQuery = new OrderQuery { CustomerIDs = memberids }; var webOrder = OSvc.SelectOrEmpty(WebOrderQuery); //主系统会员积分信息 //CustomerBalance表和Customer表一一对应 //建立在这个前提下,下文直接以关联下标代替balance下标信息 var balanceQuery = new CustomerBalanceQuery { IDs = memberids }; var balanceSets = OSvc.SelectOrEmpty(balanceQuery); MemberMasterVM item = new MemberMasterVM(); int webCount = 0;//线上登陆方式遍历计数 int relatedCount = memberSet.Count(); long _FanId = -1; long _CustomerId = -1; if (CIdentity != null && CIdentity.Any()) { webCount = CIdentity.Count(); } for (int i = 0; i < FanList.Count(); i++) { item = new MemberMasterVM(); item.CustomerCode = new Collection <string>(); //微信端基本信息 item.WeChatMember = FanList.ToList()[i]; _FanId = item.WeChatMember.ID ?? -1; var relatedItem = memberSet.Where(c => c.FanID == _FanId).FirstOrDefault(); _CustomerId = -1; if (relatedItem != null) { _CustomerId = relatedItem.CustomerID ?? -1; } //微信端订单数量信息 item.WeChatOrderCount = GetWechatOrderCount(weChatOrder, _FanId); //主系统订单数量信息 item.WebOrderCount = GetWebOrderCount(webOrder, _CustomerId); //补齐系统编号到八位,显示用 item.DisplayID = string.Format("{0:D8}", item.WeChatMember.ID ?? 0); //主系统联名登陆信息的获取----一并获取积分信息 item.CustomerCode = GetIdentities(CIdentity, _CustomerId); //积分信息 item.WebCreadit = GetCredits(balanceSets, _CustomerId); VM.Add(item); } } #endregion #region 绑定信息为空,则直接将微信端用户信息绑定返回 else { MemberMasterVM item = new MemberMasterVM(); for (int i = 0; i < FanList.Count(); i++) { item = new MemberMasterVM(); //微信端用户基本信息 item.WeChatMember = FanList.ToList()[i]; //微信端订单数量信息 item.WeChatOrderCount = GetWechatOrderCount(weChatOrder, item.WeChatMember.ID ?? -1); //补齐系统编号到八位,显示用 item.DisplayID = string.Format("{0:D8}", item.WeChatMember.ID ?? 0); //补齐线上默认信息 item.CustomerCode = new Collection <string>(); item.CustomerCode.Add("--"); item.WebCreadit = 0; item.WebOrderCount = 0; VM.Add(item); } } #endregion return(VM); } else { return(null); } }
/// <summary> /// 会员订单详情页 /// <param name="id">会员微信系统编号</param> /// </summary> /// <returns></returns> public ActionResult MemberOrder(long id) { var svc = Service; var OSvc = ORSService; Collection <MemberSaleOrderVM> MasterModel = new Collection <MemberSaleOrderVM>(); #region 微信端订单 var WeChatOrderQuery = new SaleOrderQuery { FanIDs = new long[] { id }, OrderField = "CreatedAt", OrderDirection = OrderDirection.Asc, Take = PageSize }; var WeChatOrderList = svc.SelectOrEmpty(WeChatOrderQuery); if (WeChatOrderList != null && WeChatOrderList.Any()) { MemberSaleOrderVM ItemModel = new MemberSaleOrderVM(); var DMetholds = GetDeliveryMethods(); foreach (var item in WeChatOrderList) { ItemModel = new MemberSaleOrderVM(); ItemModel.Code = item.Code; ItemModel.Amount = item.Amount; ItemModel.CreateTime = item.CreatedAt; ItemModel.DeliveryFee = item.DeliveryFee; ItemModel.DeliveryCode = item.DeliveryCode; ItemModel.DeliveryMethodID = item.DeliveryMethodID ?? -1; foreach (var DItem in DMetholds) { if (DItem.ID == ItemModel.DeliveryMethodID) { ItemModel.DeliveryMethodName = DItem.Name; break; } } ItemModel.Status = item.State ?? -1; ItemModel.StatusName = ((OrderState)ItemModel.Status).GetDescription(); ItemModel.OrderSource = "微信商城"; MasterModel.Add(ItemModel); } } #endregion #region 线上商城订单 ////微信端订单数目不足以显示一页时,从线上商城拉取数据 //if (MasterModel.Count() < PageSize) //{ // //需从线上商城拉取的数据条数 // int _Take = PageSize - MasterModel.Count(); // var relatedQuery = new MemberRelatedQuery // { // FanIDs = new long[] { id } // }; // var relatedMember = svc.SelectOrEmpty(relatedQuery).FirstOrDefault(); // //如果有关联,则获取关联信息 // if (relatedMember != null) // { // //临时记录线上商城订单信息 // //线上商城订单信息需要拼接,故而需要临时信息 // Collection<MemberSaleOrderVM> WebMasterModel = new Collection<MemberSaleOrderVM>(); // var WebOrderQuery = new OrderQuery // { // CustomerIDs = new long[] { relatedMember.CusomerID ?? -1 }, // Take = _Take, // OrderField = "CreatedAt", // OrderDirection = OrderDirection.Asc // }; // var WebOrderList = OSvc.SelectOrEmpty(WebOrderQuery); // if (WebOrderList != null && WebOrderList.Any()) // { // MemberSaleOrderVM ItemModel = new MemberSaleOrderVM(); // int idCount = WebOrderList.Count(); // long[] ids = new long[idCount]; // int idIndex = 0; // foreach (var item in WebOrderList) // { // ItemModel = new MemberSaleOrderVM(); // ItemModel.Code = item.Code; // ItemModel.CreateTime = item.CreatedAt; // ItemModel.OrderSource = "在线商城"; // ItemModel.OrderId = item.ID; // ids[idIndex++] = ItemModel.OrderId ?? -1; // WebMasterModel.Add(ItemModel); // } // var WebFundQuery = new OrderFundQuery // { // IDs = ids // }; // var WebFundList = OSvc.SelectOrEmpty(WebFundQuery); // if (WebFundList != null) // { // for (int i = 0; i < WebMasterModel.Count(); i++) // { // for (int j = 0; j < WebFundList.Count(); j++) // { // if (WebMasterModel[i].OrderId == WebFundList.ToList()[j].ID) // { // WebMasterModel[i].Amount = WebFundList.ToList()[j].PayableAmount; // WebMasterModel[i].DeliveryFee = WebFundList.ToList()[j].DeliveryFee; // } // } // MasterModel.Add(WebMasterModel[i]); // } // } // } // } //} #endregion ViewData["Pagination"] = Pagination.FromQuery(WeChatOrderQuery); ViewData["CId"] = id; return(View(MasterModel)); }