/// <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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #9
0
        /// <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);
        }