コード例 #1
0
        /// <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));
        }
コード例 #2
0
        /// <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);
            }
        }
コード例 #3
0
        //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));
        }