/// <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); } }
//public ActionResult UnBind /// <summary> /// 会员个人信息详情页 /// <param name="id">会员微信系统编号</param> /// </summary> /// <returns></returns> public ActionResult MemberDetail(long id) { var svc = Service; var OSvc = ORSService; var CSvc = CONService; var Member = svc.SelectOrEmpty(new FanQuery() { IDs = new long[] { id } }).FirstOrDefault(); MemberPersonalVM PersonalVM = new MemberPersonalVM(); #region 微信端用户基本信息 if (Member != null) { UserInfo UInfo = CSvc.RequeUserInfo(OwnerID, Member.Code); //微信系统用户基本信息 PersonalVM.WeChatMember = Member; PersonalVM.WeChatExtra = new WeChatPersonalExtra(); PersonalVM.WeChatExtra.City = UInfo.city; PersonalVM.WeChatExtra.Province = UInfo.province; PersonalVM.WeChatExtra.Country = UInfo.country; PersonalVM.WeChatExtra.Gender = UInfo.sex; PersonalVM.WeChatExtra.GenderName = ((MemberGender)UInfo.sex).GetDescription(); PersonalVM.WeChatExtra.NickName = UInfo.nickname; PersonalVM.WeChatExtra.FollowDate = FollowTime(UInfo.subscribe_time); } #endregion #region 主系统关联信息 var relatedQuery = new MemberRelatedQuery { FanIDs = new long[] { id } }; var relatedRecord = svc.SelectOrEmpty(relatedQuery).FirstOrDefault(); if (relatedRecord != null) { var webQuery = new CustomerQuery { IDs = new long[] { relatedRecord.CustomerID ?? -1 } }; var webMember = OSvc.SelectOrEmpty(webQuery).FirstOrDefault(); if (webMember != null) { PersonalVM.WebExtra = new WebPersonalExtra(); PersonalVM.WebExtra.CustomerMobile = webMember.Mobile; PersonalVM.WebExtra.CustomerEmail = webMember.Email; //主系统会员等级信息 var rankQuery = new CustomerRankQuery { IDs = new long[] { webMember.RankID ?? -1 } }; var rankItem = OSvc.SelectOrEmpty(rankQuery).FirstOrDefault(); if (rankItem != null) { PersonalVM.WebExtra.CustomerRank = rankItem.Name; } //主系统会员积分信息 var balanceQuery = new CustomerBalanceQuery { IDs = new long[] { webMember.ID ?? -1 } }; var balanceItem = OSvc.SelectOrEmpty(balanceQuery).FirstOrDefault(); if (balanceItem != null) { PersonalVM.WebExtra.CustomerCredit = balanceItem.Point; } //主系统会员登陆名信息 var identityQuery = new CustomerIdentityQuery { CustomerIDs = new long[] { webMember.ID ?? -1 } }; var identityList = OSvc.SelectOrEmpty(identityQuery); if (identityList != null && identityList.Any()) { PersonalVM.WebExtra.CustomerId = new List <string>(); foreach (var identityItem in identityList) { PersonalVM.WebExtra.CustomerId.Add(identityItem.Code); } } } return(View(PersonalVM)); } #endregion return(View(PersonalVM)); }