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