public ActionResult Search(long activeId, long themeId, long provinceId, long areaId, long deliveryStatus, // long stateId, long maxScore, long minScore, long isPass, int current, int rowCount, string searchPhrase, FormCollection fc) { var user = ResSettings.SettingsInSession.User; //---------------------------------------------------------- var t = APDBDef.CroResource; var u = APDBDef.ResUser; APSqlOrderPhrase order = null; APSqlWherePhrase where = t.StatePKID != 10359 & t.ActiveId == ThisApp.CurrentActiveId; //TODO 只取2018 // 取排序 var co = GridOrder.GetSortDef(fc); if (co != null) { switch (co.Id) { case "Title": order = new APSqlOrderPhrase(t.Title, co.Order); break; case "Author": order = new APSqlOrderPhrase(u.RealName, co.Order); break; case "CreatedTime": order = new APSqlOrderPhrase(t.CreatedTime, co.Order); break; // case "State": order = new APSqlOrderPhrase(t.StatePKID, co.Order); break; case "Score": order = new APSqlOrderPhrase(t.Score, co.Order); break; case "WinLevel": order = new APSqlOrderPhrase(t.WinLevelPKID, co.Order); break; } } // 按作品标题,内容,作者等过滤 if (searchPhrase != null) { searchPhrase = searchPhrase.Trim(); if (searchPhrase != "") { where &= t.Title.Match(searchPhrase) | t.Author.Match(searchPhrase) | t.Description.Match(searchPhrase) | t.AuthorCompany.Match(searchPhrase); } } // 按照主题过滤 if (themeId > 0) { where &= t.ThemeId == themeId; } // 用户数据范围或搜索 if (user.ProvinceId > 0 || provinceId > 0) { where &= t.ProvinceId == (provinceId > 0 ? provinceId : user.ProvinceId); } if (user.AreaId > 0 || areaId > 0) { where &= t.AreaId == (areaId > 0 ? areaId : user.AreaId); } if (maxScore > 0) { where &= t.Score <= maxScore; } if (minScore > 0) { where &= t.Score >= minScore; } // 按项目数据过滤 if (activeId > 0) { where &= t.ActiveId == activeId; } // 按照报送状态过滤 if (deliveryStatus > -1) { where &= t.DeliveryStatus == deliveryStatus; } //if (stateId > 0) // where &= t.StatePKID == stateId; if (isPass > 0) { APDBDef.EvalResultTableDef er = APDBDef.EvalResult; var subQuery = APQuery.select(er.ResourceId).from(er).where (er.EvalType == EvalGroupHelper.FirstTrial); where &= t.CrosourceId.In(subQuery); } int total; var list = APBplDef.CroResourceBpl.TolerantSearch(out total, current, rowCount, where, order); if (Request.IsAjaxRequest()) { return(Json( new { rows = from cro in list select new { id = cro.CrosourceId, cro.Title, cro.Author, CreatedTime = cro.CreatedTime.ToString("yyyy-MM-dd"), cro.Province, cro.Area, //cro.State, cro.StatePKID, cro.Score, cro.WinLevel, cro.WinLevelPKID, cro.DeliveryStatusName, cro.DeliveryStatus, cro.Theme }, current = current, rowCount = rowCount, total = total })); } else { return(View(list)); } }
public ActionResult Search(long provinceId, long areaId, int current, int rowCount, string searchPhrase, FormCollection fc) { var user = ResSettings.SettingsInSession.User; //---------------------------------------------------------- var t = APDBDef.ResUser; var c = APDBDef.ResCompany; APSqlOrderPhrase order = null; APSqlWherePhrase where = t.Removed == false; // 取排序 var co = GridOrder.GetSortDef(fc); if (co != null) { switch (co.Id) { case "UserName": order = new APSqlOrderPhrase(t.UserName, co.Order); break; case "RealName": order = new APSqlOrderPhrase(t.RealName, co.Order); break; case "CompanyName": order = new APSqlOrderPhrase(c.CompanyName, co.Order); break; case "RoleName": order = new APSqlOrderPhrase(APDBDef.ResRole.RoleId, co.Order); break; case "Gender": order = new APSqlOrderPhrase(t.GenderPKID, co.Order); break; case "Email": order = new APSqlOrderPhrase(t.Email, co.Order); break; case "RegisterTime": order = new APSqlOrderPhrase(t.RegisterTime, co.Order); break; case "LoginCount": order = new APSqlOrderPhrase(t.LoginCount, co.Order); break; case "Actived": order = new APSqlOrderPhrase(t.Actived, co.Order); break; } } // 默认排序 // if (order == null) order = new APSqlOrderPhrase(t.RegisterTime, APSqlOrderAccording.Desc); // 按用户名或真实姓名过滤 if (searchPhrase != null) { searchPhrase = searchPhrase.Trim(); if (searchPhrase != "") { where &= (t.UserName.Match(searchPhrase) | t.RealName.Match(searchPhrase)); } } if (provinceId > 0) { where &= t.ProvinceId == provinceId; } if (areaId > 0) { where &= t.AreaId == areaId; } // 用户数据范围 if (user.ProvinceId > 0) { where &= t.ProvinceId == user.ProvinceId; } if (user.AreaId > 0) { where &= t.AreaId == user.AreaId; } if (user.CompanyId > 0) { where &= t.CompanyId == user.CompanyId; } int total; var list = APBplDef.ResUserBpl.TolerantSearch(out total, current, rowCount, where, order); //---------------------------------------------------------- if (Request.IsAjaxRequest()) { return(Json( new { rows = from res in list select new { id = res.UserId, res.UserName, res.RealName, res.CompanyName, res.UserType, res.Gender, res.Email, RegisterTime = res.RegisterTime.ToString("yyyy-MM-dd"), res.LoginCount, Actived = res.Actived ? "有效" : "无效" }, current = current, rowCount = rowCount, total = total })); } else { return(View(list)); } }
public ActionResult Category(int current, int rowCount, string searchPhrase, FormCollection fc) { //---------------------------------------------------------- var t = APDBDef.CroResource; var u = APDBDef.ResUser; APSqlOrderPhrase order = null; List <APSqlWherePhrase> conds = new List <APSqlWherePhrase>() { t.StatePKID != CroResourceHelper.StateDelete }; // 取排序 var co = GridOrder.GetSortDef(fc); if (co != null) { switch (co.Id) { case "Title": order = new APSqlOrderPhrase(t.Title, co.Order); break; case "Author": order = new APSqlOrderPhrase(u.RealName, co.Order); break; case "CreatedTime": order = new APSqlOrderPhrase(t.CreatedTime, co.Order); break; case "State": order = new APSqlOrderPhrase(t.StatePKID, co.Order); break; } } // 取过滤条件 foreach (string cond in fc.Keys) { switch (cond) { case "State": conds.Add(t.StatePKID == Int64.Parse(fc[cond])); break; } } // 按关键字过滤 if (searchPhrase != null) { searchPhrase = searchPhrase.Trim(); if (searchPhrase != "") { conds.Add(t.Title.Match(searchPhrase)); } } int total; var list = APBplDef.CroResourceBpl.TolerantSearch(out total, current, rowCount, new APSqlConditionAndPhrase(conds), order); //---------------------------------------------------------- if (Request.IsAjaxRequest()) { return(Json( new { rows = from cro in list select new { //id = cro.CrosourceId, //cro.Title, //cro.Author, //cro.MediumType, //CreatedTime = cro.CreatedTime.ToString("yyyy-MM-dd"), //cro.State, //cro.StatePKID, //cro.EliteScore, //cro.ViewCount, //cro.DownCount, //cro.FavoriteCount, //cro.CommentCount, //cro.StarTotal }, current = current, rowCount = rowCount, total = total })); } else { return(View(list)); } }