/// <summary> /// 广告列表 /// </summary> /// <param name="setting"></param> /// <returns></returns> public static IPageOfList<AdDeliveryInfo> List(AdSearchSetting setting) { FastPaging fp = new FastPaging(); fp.OverOrderBy = " CreateDateTime DESC"; fp.PageIndex = setting.PageIndex; fp.PageSize = setting.PageSize; fp.QueryFields = "*"; fp.TableName = "AdDelivery"; fp.PrimaryKey = "Id"; fp.WithOptions = " WITH(NOLOCK)"; if(setting.AdPositionId>0){ fp.Condition = string.Format(" AdPositionId = {0}",setting.AdPositionId); } IList<AdDeliveryInfo> list = new List<AdDeliveryInfo>(); AdDeliveryInfo model = null; DataTable dt = SQLPlus.ExecuteDataTable(CommandType.Text, fp.Build2005()); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { model = GetByRow(dr); if (model != null) { list.Add(model); } } } int count = Convert.ToInt32(SQLPlus.ExecuteScalar(CommandType.Text, fp.BuildCountSQL())); return new PageOfList<AdDeliveryInfo>(list, setting.PageIndex, setting.PageSize, count); }
/// <summary> /// 获得前台显示列表 /// </summary> /// <param name="companyId"></param> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> /// <returns></returns> public static IPageOfList<CompanyFeedbackFrontInfo> FrontList(int companyId,int pageIndex,int pageSize) { FastPaging fp = new FastPaging(); fp.OverOrderBy = " CF.CreateDateTime DESC"; fp.PageIndex = pageIndex; fp.PageSize = pageSize; fp.QueryFields = "CF.Id,CF.RealName,CF.CreateDateTime,CF.[Type],CF.Content,C.CompanyName AS ForCompanyName,CF.ForCompanyId,CF.UserId,ISNULL(M.Avatar,'nophoto.jpg') AS Avatar,ISNULL(M.UserName,'') AS UserName"; fp.TableName = "CompanyFeedback"; fp.PrimaryKey = "Id"; fp.TableReName = "CF"; fp.WithOptions = " WITH(NOLOCK)"; fp.JoinSQL = "INNER JOIN Companies AS C WITH(NOLOCK) ON CF.ForCompanyId = C.CompanyId LEFT JOIN Members AS M WITH(NOLOCK) ON CF.UserId = M.Id"; fp.Condition = string.Format(" CF.ForCompanyId = {0} AND CF.IsDeleted = 0", companyId); IList<CompanyFeedbackFrontInfo> list = new List<CompanyFeedbackFrontInfo>(); DataTable dt = SQLPlus.ExecuteDataTable(CommandType.Text, fp.Build2005()); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { var model = new CompanyFeedbackFrontInfo(); model.Avatar = dr.Field<string>("Avatar"); model.Content = dr.Field<string>("Content"); model.CreateDateTime = dr.Field<DateTime>("CreateDateTime"); model.ForCompanyId = dr.Field<int>("ForCompanyId"); model.ForCompanyName = dr.Field<string>("ForCompanyName"); model.RealName = dr.Field<string>("RealName"); model.Type = dr.Field<string>("Type"); model.UserId = dr.Field<int>("UserId"); model.UserName = dr.Field<string>("UserName"); if(string.IsNullOrEmpty(model.UserName)){ model.UserName = model.RealName; } list.Add(model); } } int count = Convert.ToInt32(SQLPlus.ExecuteScalar(CommandType.Text, fp.BuildCountSQL())); return new PageOfList<CompanyFeedbackFrontInfo>(list, pageIndex, pageSize, count); }
public static IPageOfList<CompanyInfo> CompanyList(MemberSearchSetting setting) { FastPaging fp = new FastPaging(); fp.OverOrderBy = " C.ApplyDateTime DESC"; fp.PageIndex = setting.PageIndex; fp.PageSize = setting.PageSize; fp.QueryFields = "*"; fp.TableName = "Members"; fp.PrimaryKey = "Id"; fp.WithOptions = " WITH(NOLOCK)"; fp.TableReName = "M"; fp.JoinSQL = "INNER JOIN Companies AS C WITH(NOLOCK) ON M.Id = C.UserId"; StringBuilder sbSQL = new StringBuilder(); sbSQL.Append(" 1 = 1"); if(setting.CompanyStatus != CompanyStatus.None){ sbSQL.AppendFormat(" AND C.CompanyStatus = {0}",(int)setting.CompanyStatus); } if(!string.IsNullOrEmpty(setting.CompanyName)){ //这块应该检查一下是否有危险字符,防止SQL注入 //目前没有加上 xingbaifang 2012-12-05 sbSQL.AppendFormat(" AND C.CompanyName LIKE '%{0}%'",setting.CompanyName); } fp.Condition = sbSQL.ToString(); //throw new Exception(fp.Build2005()); IList<CompanyInfo> list = new List<CompanyInfo>(); CompanyInfo model = null; DataTable dt = SQLPlus.ExecuteDataTable(CommandType.Text, fp.Build2005()); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { model = GetCompanyByDataRow(dr); if (model != null) { list.Add(model); } } } sbSQL = new StringBuilder(); sbSQL.Append("SELECT COUNT(*) FROM Members AS M WITH(NOLOCK) INNER JOIN Companies AS C WITH(NOLOCK) ON M.Id = C.UserId"); sbSQL.Append(" WHERE 1 = 1 "); if(fp.Condition.Length>0){ sbSQL.AppendFormat(" AND {0}",fp.Condition); } //throw new Exception(sbSQL.ToString()); int count = Convert.ToInt32(SQLPlus.ExecuteScalar(CommandType.Text, sbSQL.ToString())); return new PageOfList<CompanyInfo>(list, setting.PageIndex, setting.PageSize, count); }
public static IPageOfList<MemberInfo> BaseInfoList(MemberSearchSetting setting) { FastPaging fp = new FastPaging(); fp.OverOrderBy = " CreateDateTime DESC"; fp.PageIndex = setting.PageIndex; fp.PageSize = setting.PageSize; fp.QueryFields = "*"; fp.TableName = "Members"; fp.PrimaryKey = "Id"; fp.WithOptions = " WITH(NOLOCK)"; StringBuilder sbSQL = new StringBuilder(); sbSQL.Append(" 1 = 1 "); //根据用户名查询信息 if(!string.IsNullOrEmpty(setting.UserName)){ sbSQL.AppendFormat(" AND UserName LIKE '%{0}%'",Controleng.Common.Utils.ChkSQL(setting.UserName)); } fp.Condition += sbSQL.ToString(); IList<MemberInfo> list = new List<MemberInfo>(); MemberInfo model = null; DataTable dt = SQLPlus.ExecuteDataTable(CommandType.Text, fp.Build2005()); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { model = GetByDataRow(dr); if (model != null) { list.Add(model); } } } string strSQL = "SELECT COUNT(*) FROM Members AS M WITH(NOLOCK) WHERE "; strSQL += fp.Condition; int count = Convert.ToInt32(SQLPlus.ExecuteScalar(CommandType.Text, strSQL)); return new PageOfList<MemberInfo>(list, setting.PageIndex, setting.PageSize, count); }
/// <summary> /// 列表 /// </summary> /// <param name="searchSetting"></param> /// <returns></returns> public static IPageOfList<CompanyProductInfo> List(CompanyProductSearchSetting searchSetting) { FastPaging fp = new FastPaging(); fp.OverOrderBy = " CP.PublishDateTime DESC"; fp.PageIndex = searchSetting.PageIndex; fp.PageSize = searchSetting.PageSize; fp.QueryFields = "*"; fp.TableName = "CompanyProducts"; fp.PrimaryKey = "Id"; fp.TableReName = "CP"; fp.WithOptions = " WITH(NOLOCK)"; fp.Condition = " IsDeleted = 0 "; if(searchSetting.CompanyId >0){ fp.Condition += string.Format(" AND CompanyId = {0}", searchSetting.CompanyId); } if(searchSetting.CategoryId > 0){ fp.Condition += string.Format(" AND CategoryId = {0}",searchSetting.CategoryId); } if(searchSetting.SystemCategoryId >0){ fp.Condition += string.Format(" AND SystemCategoryId = {0}",searchSetting.SystemCategoryId); } IList<CompanyProductInfo> list = new List<CompanyProductInfo>(); CompanyProductInfo model = null; DataTable dt = SQLPlus.ExecuteDataTable(CommandType.Text, fp.Build2005()); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { model = GetByDataRow(dr); if (model != null) { list.Add(model); } } } int count = Convert.ToInt32(SQLPlus.ExecuteScalar(CommandType.Text, fp.BuildCountSQL())); return new PageOfList<CompanyProductInfo>(list, searchSetting.PageIndex, searchSetting.PageSize, count); }
/// <summary> /// 博客列表 /// </summary> /// <param name="searchSetting"></param> /// <returns></returns> public static IPageOfList<BlogPostInfo> List(BlogSearchSetting searchSetting) { FastPaging fp = new FastPaging(); fp.OverOrderBy = " BP.CreateDateTime DESC"; fp.PageIndex = searchSetting.PageIndex; fp.PageSize = searchSetting.PageSize; fp.QueryFields = "*"; fp.TableName = "BlogPosts"; fp.PrimaryKey = "Id"; fp.TableReName = "BP"; fp.WithOptions = " WITH(NOLOCK)"; StringBuilder sbCondition = new StringBuilder(); sbCondition.Append(" IsDeleted = 0 "); if(searchSetting.UserId >0){ sbCondition.AppendFormat(" AND UserId = {0}",searchSetting.UserId); } if(searchSetting.SystemCategoryId >0){ sbCondition.AppendFormat(" AND SystemCategoryId = {0}",searchSetting.SystemCategoryId); } fp.Condition = sbCondition.ToString(); IList<BlogPostInfo> list = new List<BlogPostInfo>(); BlogPostInfo model = null; DataTable dt = SQLPlus.ExecuteDataTable(CommandType.Text, fp.Build2005()); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { model = GetByDataRow(dr); if (model != null) { list.Add(model); } } } int count = Convert.ToInt32(SQLPlus.ExecuteScalar(CommandType.Text, fp.BuildCountSQL())); return new PageOfList<BlogPostInfo>(list, searchSetting.PageIndex, searchSetting.PageSize, count); }
/// <summary> /// 分页列表(包含CompanyNews和Articles两个部分) /// </summary> /// <param name="searchSetting"></param> /// <returns></returns> public static IPageOfList<CompanyNewsInfo> List(CompanyNewsSearchSetting searchSetting) { FastPaging fp = new FastPaging(); fp.OverOrderBy = " CN.PublishDateTime DESC"; fp.PageIndex = searchSetting.PageIndex; fp.PageSize = searchSetting.PageSize; fp.QueryFields = "*"; fp.TableName = string.Format(@"( SELECT Id,CompanyId,[Type],Title,Content,Remark,ImageUrl,Tags,PublishDateTime,ModifyDateTime,CreateDateTime,IsDeleted,Url FROM CompanyNews WITH(NOLOCK) WHERE CompanyId = {0} AND [Type] = '{1}' AND IsDeleted = 0 UNION ALL SELECT Id,CompanyId,'article',Title,Content,Remark,ImageUrl,Tags,PublishDateTime,LastModifyDateTime,CreateDateTime,IsDeleted,Url FROM Articles WITH(NOLOCK) WHERE CompanyId = {0} AND IsDeleted = 0)",searchSetting.CompanyId,searchSetting.Type); fp.PrimaryKey = "Id"; fp.TableReName = "CN"; IList<CompanyNewsInfo> list = new List<CompanyNewsInfo>(); CompanyNewsInfo model = null; DataTable dt = SQLPlus.ExecuteDataTable(CommandType.Text, fp.Build2005()); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { model = GetByDataRow(dr); if (model != null) { list.Add(model); } } } int count = Convert.ToInt32(SQLPlus.ExecuteScalar(CommandType.Text, fp.BuildCountSQL())); return new PageOfList<CompanyNewsInfo>(list, searchSetting.PageIndex, searchSetting.PageSize, count); }
/// <summary> /// 根据公司ID获得反馈列表 /// </summary> /// <param name="companyId"></param> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> /// <returns></returns> public static IPageOfList<CompanyFeedbackInfo> List(int companyId,int pageIndex,int pageSize) { FastPaging fp = new FastPaging(); fp.OverOrderBy = " CreateDateTime DESC"; fp.PageIndex = pageIndex; fp.PageSize = pageSize; fp.QueryFields = "*"; fp.TableName = "CompanyFeedback"; fp.PrimaryKey = "Id"; fp.WithOptions = " WITH(NOLOCK)"; fp.Condition = string.Format(" CompanyId = {0} AND IsDeleted = 0", companyId); IList<CompanyFeedbackInfo> list = new List<CompanyFeedbackInfo>(); DataTable dt = SQLPlus.ExecuteDataTable(CommandType.Text, fp.Build2005()); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { list.Add(new CompanyFeedbackInfo() { CompanyName = dr.Field<string>("CompanyName"), Content = dr.Field<string>("Content"), CreateDateTime = dr.Field<DateTime>("CreateDateTime"), UserId = dr.Field<int>("UserId"), Email = dr.Field<string>("Email"), Phone = dr.Field<string>("Phone"), ForCompanyId = dr.Field<int>("ForCompanyId"), Id = dr.Field<int>("Id"), IP = dr.Field<string>("IP"), RealName = dr.Field<string>("RealName"), Type = dr.Field<string>("Type"), ReplyList = _ReplyList(dr.Field<int>("Id")) }); } } int count = Convert.ToInt32(SQLPlus.ExecuteScalar(CommandType.Text, fp.BuildCountSQL())); return new PageOfList<CompanyFeedbackInfo>(list, pageIndex, pageSize, count); }
/// <summary> /// 带有分页的文章列表 /// </summary> /// <param name="searchSetting"></param> /// <returns></returns> public static IPageOfList<ArticleInfo> List(ArticleSearchSetting searchSetting) { FastPaging fp = new FastPaging(); fp.OverOrderBy = " A.PublishDateTime DESC"; fp.PageIndex = searchSetting.PageIndex; fp.PageSize = searchSetting.PageSize; fp.QueryFields = "*"; fp.TableName = "Articles"; fp.PrimaryKey = "Id"; fp.TableReName = "A"; fp.WithOptions = " WITH(NOLOCK)"; StringBuilder sbSQL = new StringBuilder(); if (searchSetting.ColumnIds != null && searchSetting.ColumnIds.Length > 0) { //过滤栏目分类 //跳过为0的值 string temp = Enumerable.Range(0, searchSetting.ColumnIds.Length).Select(i => { if (searchSetting.ColumnIds[i] > 0) { return string.Format(" A.CategoryId = {0} ", searchSetting.ColumnIds[i]); } return string.Empty; }).Aggregate((a, b) => a + " OR " + b); if(!string.IsNullOrEmpty(temp)){ sbSQL.AppendFormat(" AND ( {0} )",temp ); } } if (searchSetting.TechIds != null && searchSetting.TechIds.Length > 0) { //过滤技术分类 string temp = Enumerable.Range(0, searchSetting.TechIds.Length).Select(i => { if (searchSetting.TechIds[i] > 0) { return string.Format(" A2C.CategoryId = {0} ", searchSetting.TechIds[i]); } return string.Empty; }).Aggregate((a, b) => a + " OR " + b); if (!string.IsNullOrEmpty(temp)) { sbSQL.Append(" AND EXISTS("); sbSQL.Append(" SELECT * FROM dbo.Article2Category AS A2C WITH(NOLOCK)"); sbSQL.Append(" WHERE A2C.[Type] = 'tech'"); sbSQL.Append(" AND A.Id = A2C.ArticleId"); sbSQL.AppendFormat(" AND ( {0} )", temp); sbSQL.Append(" )"); } } if (searchSetting.IndustryIds != null && searchSetting.IndustryIds.Length > 0) { //过滤行业分类 string temp = Enumerable.Range(0, searchSetting.IndustryIds.Length).Select(i => { if (searchSetting.IndustryIds[i] > 0) { return string.Format(" A2C.CategoryId = {0} ", searchSetting.IndustryIds[i]); } return string.Empty; }).Aggregate((a, b) => a + " OR " + b); if (!string.IsNullOrEmpty(temp)) { sbSQL.Append(" AND EXISTS("); sbSQL.Append(" SELECT * FROM dbo.Article2Category AS A2C WITH(NOLOCK)"); sbSQL.Append(" WHERE A2C.[Type] = 'industry'"); sbSQL.Append(" AND A.Id = A2C.ArticleId"); sbSQL.AppendFormat(" AND ( {0} )", temp); sbSQL.Append(" )"); } } if(!searchSetting.IsDeleted){ sbSQL.Append(" AND IsDeleted = 0"); } fp.Condition = " 1 = 1 " + sbSQL.ToString(); //throw new Exception(fp.Build2005()); IList<ArticleInfo> list = new List<ArticleInfo>(); ArticleInfo model = null; DataTable dt = SQLPlus.ExecuteDataTable(CommandType.Text, fp.Build2005()); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { model = GetByDataRow(dr); if (model != null) { list.Add(model); } } } int count = Convert.ToInt32(SQLPlus.ExecuteScalar(CommandType.Text,fp.BuildCountSQL())); return new PageOfList<ArticleInfo>(list, searchSetting.PageIndex, searchSetting.PageSize, count); }