Beispiel #1
0
        public OperatorState GetInformation(string keyword, string member, ConditionModal conditionModal, List <CustomItem> customItemList, ref List <InformationModel> modelList)
        {
            if (member == string.Empty)
            {
                return(OperatorState.empty);
            }

            try
            {
                if (conditionModal == null)
                {
                    modelList.AddRange(_informationDAL.SelectByConditions(keyword, member));
                }
                else
                {
                    modelList.AddRange(_informationDAL.SelectByConditions(conditionModal, keyword, member));
                }

                foreach (var item in customItemList)
                {
                    var temp = _customItemValueDAL.SelectByKeyword(keyword, item.Id);
                    if (temp != null)
                    {
                        foreach (var subitem in temp)
                        {
                            modelList.Add(_informationDAL.SelectByConditions(subitem.InforId));
                        }
                    }
                }

                return(OperatorState.success);
            }
            catch (Exception ex)
            {
                LogHelper.writeLog_error(ex.Message);
                LogHelper.writeLog_error(ex.StackTrace);

                return(OperatorState.error);
            }
        }
Beispiel #2
0
        /// <summary>
        /// 筛选
        /// </summary>
        /// <param name="set"></param>
        /// <param name="conditionModel"></param>
        /// <returns></returns>
        private IQueryable <Information> Filter(IQueryable <Information> set, ConditionModal conditionModel)
        {
            // 筛选收入
            if (!string.IsNullOrEmpty(conditionModel.Income))
            {
                set = set.Where(n => n.Income.Contains(conditionModel.Income));
            }

            // 筛选子女
            if (conditionModel.Children > 0)
            {
                set = set.Where(n => n.Children == 1);
            }
            else if (conditionModel.Children == 0)
            {
                set = set.Where(n => n.Children == 0);
            }

            // 筛选车否
            if (conditionModel.HasCar > 0)
            {
                set = set.Where(n => n.HasCar == 1);
            }
            else if (conditionModel.HasCar == 0)
            {
                set = set.Where(n => n.HasCar == 0);
            }

            //筛选房否
            if (conditionModel.HasHouse > 0)
            {
                set = set.Where(n => n.HasHouse == 1);
            }
            else if (conditionModel.HasHouse == 0)
            {
                set = set.Where(n => n.HasHouse == 0);
            }

            //筛选性别
            if (conditionModel.Sex > 0)
            {
                set = set.Where(n => n.Sex == 1);
            }
            else if (conditionModel.Sex == 0)
            {
                set = set.Where(n => n.Sex == 0);
            }

            //筛选婚否
            if (conditionModel.IsMarry > 0)
            {
                set = set.Where(n => n.IsMarry == 1);
            }
            else if (conditionModel.IsMarry == 0)
            {
                set = set.Where(n => n.IsMarry == 0);
            }

            if (conditionModel.MinAge > 0 && conditionModel.MaxAge <= 0)
            {
                set = set.Where(n => n.Age >= conditionModel.MinAge);
            }
            else if (conditionModel.MinAge > 0 && conditionModel.MaxAge > 0)
            {
                set = set.Where(n => n.Age >= conditionModel.MinAge && n.Age <= conditionModel.MaxAge);
            }
            else if (conditionModel.MinAge <= 0 && conditionModel.MaxAge > 0)
            {
                set = set.Where(n => n.Age <= conditionModel.MaxAge);
            }

            var  starttime = DateTime.Now;
            var  endtime   = DateTime.Now;
            bool startnull = string.IsNullOrEmpty(conditionModel.StartTime);
            bool endnull   = string.IsNullOrEmpty(conditionModel.EndTime);

            if (startnull == true && endnull == false)
            {
                endtime = DateTime.Parse(conditionModel.EndTime);
                set     = set.Where(n => n.InsertTime <= endtime);
            }
            else if (startnull == false && endnull == false)
            {
                starttime = DateTime.Parse(conditionModel.StartTime);
                endtime   = DateTime.Parse(conditionModel.EndTime);

                set = set.Where(n => n.InsertTime <= endtime && n.InsertTime >= starttime);
            }
            else if (startnull == false && endnull == true)
            {
                starttime = DateTime.Parse(conditionModel.StartTime);
                set       = set.Where(n => n.InsertTime >= starttime);
            }

            return(set);
        }
Beispiel #3
0
        public ActionResult Search(bool OnlyKeyword, ConditionModal conditionModel, string keyword)
        {
            AjaxResult ar = new Globals.AjaxResult();

            if (conditionModel == null)
            {
                ar.state   = ResultType.error.ToString();
                ar.message = "提交的数据为空,查询数据失败";

                return(Json(ar, JsonRequestBehavior.AllowGet));
            }

            var currentUser = LoginManager.GetCurrentUser();
            List <CustomItem>       customItemList = new List <CustomItem>();
            List <InformationModel> modelList      = new List <InformationModel>();

            try
            {
                var state = OperatorState.error;

                List <Member> memberList = _underlingManager.GetUnderlingList();

                foreach (var member in memberList)
                {
                    state = _customItemBLL.GetCustomItems(member.Account, ref customItemList);
                    if (state == OperatorState.error)
                    {
                        ar.state   = ResultType.error.ToString();
                        ar.message = "获取自定义项失败,无法搜索到数据";

                        return(Json(ar, JsonRequestBehavior.AllowGet));
                    }

                    // 是否使用条件查询模式
                    if (OnlyKeyword)
                    {
                        state = _informationBLL.GetInformation(keyword, member.Account, conditionModel, customItemList, ref modelList);
                    }
                    else
                    {
                        state = _informationBLL.GetInformation(keyword, member.Account, null, customItemList, ref modelList);
                    }
                }

                // 查询自己
                state = _customItemBLL.GetCustomItems(currentUser.Account, ref customItemList);
                if (state == OperatorState.error)
                {
                    ar.state   = ResultType.error.ToString();
                    ar.message = "获取自定义项失败,无法搜索到数据";

                    return(Json(ar, JsonRequestBehavior.AllowGet));
                }

                // 是否使用条件查询模式
                if (OnlyKeyword)
                {
                    state = _informationBLL.GetInformation(keyword, currentUser.Account, conditionModel, customItemList, ref modelList);
                }
                else
                {
                    state = _informationBLL.GetInformation(keyword, currentUser.Account, null, customItemList, ref modelList);
                }

                if (state == OperatorState.empty)
                {
                    ar.state   = ResultType.error.ToString();
                    ar.message = "无法获取到当前用户,无法搜索到数据";
                }
                else if (state == OperatorState.success)
                {
                    if (modelList == null || modelList.Count <= 0)
                    {
                        ar.state   = ResultType.error.ToString();
                        ar.message = "无法搜索到有关数据";
                    }
                    else
                    {
                        ar.state = ResultType.success.ToString();
                        ar.data  = modelList.ToJson();

                        DataCacheManager.SetDataCache(CachaKey.Key, modelList);
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.writeLog_error(ex.Message);
                LogHelper.writeLog_error(ex.StackTrace);

                ar.state   = ResultType.error.ToString();
                ar.message = "系统错误,获取数据失败";
            }

            return(Json(ar, JsonRequestBehavior.AllowGet));
        }
Beispiel #4
0
        /// <summary>
        /// 带条件的关键字搜索
        /// </summary>
        /// <param name="conditionModel"></param>
        /// <param name="keyword"></param>
        /// <param name="member"></param>
        /// <returns></returns>
        public IEnumerable <InformationModel> SelectByConditions(ConditionModal conditionModel, string keyword, string member)
        {
            try
            {
                if (keyword == string.Empty)
                {
                    var set = db.Set <Information>().Where(n => n.UsageMember == member && n.IsDeleted == false);

                    set = Filter(set, conditionModel);

                    return(set.Select(n => new InformationModel
                    {
                        dataCode = n.DataCode,
                        insertMember = n.InsertMember,
                        customerName = n.CustomerName,
                        sex = n.Sex,
                        phone = n.Phone,
                        qq = n.QQ,
                        webchat = n.WebCat,
                        email = n.Email,
                        hashouse = n.HasHouse,
                        hobby = n.Hobby,
                        state = n.State,
                        usageMember = n.UsageMember
                    }));
                }
                else
                {
                    var set = db.Set <Information>()
                              .Where(n => n.CustomerName.Contains(keyword) || n.Email.Contains(keyword) || n.Hobby.Contains(keyword) ||
                                     n.InsertMember.Contains(keyword) || n.Address.Contains(keyword) || n.QQ.Contains(keyword) ||
                                     n.WebCat.Contains(keyword) || n.Industry.Contains(keyword) || n.InvestConc.Contains(keyword) ||
                                     n.InvestLife.Contains(keyword) || n.InvestProj.Contains(keyword) || n.Note1.Contains(keyword) ||
                                     n.Note2.Contains(keyword) || n.Note3.Contains(keyword) || n.Occupation.Contains(keyword) ||
                                     n.Phone.Contains(keyword) || n.InsertMember.Contains(keyword) || n.UsageMember.Contains(keyword))
                              .Where(n => n.UsageMember == member && n.IsDeleted == false);

                    set = Filter(set, conditionModel);

                    return(set.Select(n => new InformationModel
                    {
                        dataCode = n.DataCode,
                        insertMember = n.InsertMember,
                        customerName = n.CustomerName,
                        sex = n.Sex,
                        phone = n.Phone,
                        qq = n.QQ,
                        webchat = n.WebCat,
                        email = n.Email,
                        hashouse = n.HasHouse,
                        hobby = n.Hobby,
                        state = n.State,
                        usageMember = n.UsageMember
                    }));
                }
            }
            catch (Exception)
            {
                throw;
            }
        }