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); } }
/// <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); }
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)); }
/// <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; } }