예제 #1
0
        public async Task <ResultModel> Run(AcceptParam acceptParam, AppSetting appSetting, HttpContext context)
        {
            //解析参数
            var pageModel = acceptParam.AnalyzeParam <PageModel <FilterReq> >();

            if (pageModel == null)
            {
                return(ResultModel.GetNullErrorModel(string.Empty));
            }

            //动态sql
//      StringBuilder whereBuilder = new StringBuilder();
            List <string> whereList = new List <string>();

            if (pageModel.Result.ValidFlag != null && pageModel.Result.ValidFlag >= 0)
            {
//        whereBuilder.Append($@"
//{SqlCharConst.WHERE} {EntityTools.GetField<ArticleTag>(nameof(ArticleTag.ValidFlag))} = {pageModel.Result.ValidFlag}
//");
                whereList.Add($"{EntityTools.GetField<ArticleTag>(nameof(ArticleTag.ValidFlag))} = {pageModel.Result.ValidFlag}");
            }

            //获取连接
            var mysqlConn = appSetting.GetMysqlConn();

            var dbConnection = context.GetConnection(mysqlConn.FlagKey, mysqlConn.ConnStr);

            //采用工具类分页查询
            var pageList = await DapperTools.GetPageList <ArticleTag>(pageModel.PageNo, pageModel.PageSize, dbConnection,
                                                                      whereList);

            //返回结果集
            return(ResultModel.GetSuccessModel(string.Empty, pageList));
        }
        public async Task <ResultModel> Run(AcceptParam acceptParam, AppSetting appSetting, HttpContext context)
        {
            var whereEnumerable = GetWhereEnumerable(acceptParam, out var page, out var msg);

            if (msg != string.Empty)
            {
                return(ResultModel.GetParamErrorModel(msg));
            }

            var conn = appSetting.GetMysqlConn(context);

            var tableMapper = typeof(CommentInfo).GetCustomAttribute <TableMapperAttribute>();

            var fieldList = GetFieldEnumerable(tableMapper).ToList();

            var orderEnumerable = GetOrderEnumerable(tableMapper);

            #region 查询用户信息

            fieldList.Add($@"
(
  {SqlCharConst.SELECT} {EntityTools.GetField<UserInfo>(nameof(UserInfo.DisplayName))}
  {SqlCharConst.FROM} {EntityTools.GetTableName<UserInfo>()}
  {SqlCharConst.WHERE} {nameof(BaseModel.Id)} = {tableMapper.Alias}.{EntityTools.GetField<CommentInfo>(nameof(CommentInfo.ActionUser))}
)
 {SqlCharConst.AS} {EntityTools.GetField<CommentDto>(nameof(CommentDto.NickName))}
"); //查询用户名

            fieldList.Add($@"
(
  {SqlCharConst.SELECT} {EntityTools.GetField<UserInfo>(nameof(UserInfo.FaceImg))}
  {SqlCharConst.FROM} {EntityTools.GetTableName<UserInfo>()}
  {SqlCharConst.WHERE} {nameof(BaseModel.Id)} = {tableMapper.Alias}.{EntityTools.GetField<CommentInfo>(nameof(CommentInfo.ActionUser))}
)
 {SqlCharConst.AS} {EntityTools.GetField<CommentDto>(nameof(CommentDto.FaceImg))}
"); //查询用户头像

            #endregion

            var pageList = await DapperTools.GetPageList <CommentDto>(page.PageNo, page.PageSize, conn, tableMapper.TableName,
                                                                      whereEnumerable, fieldList, orderEnumerable, tableMapper.Alias, page.Result);

            return(ResultModel.GetSuccessModel(pageList));
        }
예제 #3
0
        public async Task <ResultModel> Run(AcceptParam acceptParam, AppSetting appSetting, HttpContext context, long userId)
        {
            //解析参数
            var pageModel = acceptParam.AnalyzeParam <PageModel <ArticlePageFilterAuthReq> >();

            if (pageModel == null)
            {
                return(ResultModel.GetNullErrorModel(string.Empty));
            }

            //动态sql
            var whereArr = new List <string>()
            {
                $"{EntityTools.GetField<ArticleInfo>(nameof(ArticleInfo.ValidFlag))} = {(int) ValidFlagMenu.UseFul}",
                $"{EntityTools.GetField<ArticleInfo>(nameof(ArticleInfo.UserId))} = {userId}"
            };

            var tableMapper = typeof(ArticleInfo).GetCustomAttribute <TableMapperAttribute>();

            var fields = EntityTools.GetFields <ArticleInfo>().ToList();

            fields.Add($@"
(
  {SqlCharConst.SELECT} {SqlCharConst.COUNT}(0)
	{SqlCharConst.FROM} {EntityTools.GetTableName<CommentInfo>()}
	{SqlCharConst.WHERE} {EntityTools.GetField<CommentInfo>(nameof(CommentInfo.CommentType))} = {(int) CommentTypeMenu.Article}
	{SqlCharConst.AND} {EntityTools.GetField<CommentInfo>(nameof(CommentInfo.JoinKey))} = {tableMapper.Alias}.{nameof(BaseModel.Id)}
  {SqlCharConst.AND} {nameof(BaseModel.ValidFlag)} = {(int) ValidFlagMenu.UseFul}
) {SqlCharConst.AS} {EntityTools.GetField<ArticleInfoDto>(nameof(ArticleInfoDto.CommentCount))}
"); //评论数量

            fields.Add($@"
(
  {SqlCharConst.SELECT} {SqlCharConst.COUNT}(0)
	{SqlCharConst.FROM} {EntityTools.GetTableName<ArticleOptInfo>()}
	{SqlCharConst.WHERE} {EntityTools.GetField<ArticleOptInfo>(nameof(ArticleOptInfo.OptionType))} = {(int) ArticleOptMenu.Like}
	{SqlCharConst.AND} {EntityTools.GetField<ArticleOptInfo>(nameof(ArticleOptInfo.RelationKey))} = {tableMapper.Alias}.{nameof(BaseModel.Id)}
  {SqlCharConst.AND} {nameof(BaseModel.ValidFlag)} = {(int) ValidFlagMenu.UseFul}
) {SqlCharConst.AS} {EntityTools.GetField<ArticleInfoDto>(nameof(ArticleInfoDto.LikeCount))}
"); //点赞数量

            if (pageModel.Result != null && pageModel.Result.ArticleType > 0)
            {
                if (pageModel.Result.ArticleType > 0)
                {
                    whereArr.Add($@"
{EntityTools.GetField<ArticleInfo>(nameof(ArticleInfo.ArticleType))} = {pageModel.Result.ArticleType}
");
                }

                if (pageModel.Result.FilterType == 1)
                {
                    whereArr.Add($@"
{SqlCharConst.EXISTS} (

	{SqlCharConst.SELECT} * {SqlCharConst.FROM} {EntityTools.GetTableName<ArticleOptInfo>()}
	{SqlCharConst.WHERE} {EntityTools.GetField<ArticleOptInfo>(nameof(ArticleOptInfo.OptionType))} = {(int) ArticleOptMenu.Collect}
	{SqlCharConst.AND} {nameof(BaseModel.ValidFlag)} = {(int) ValidFlagMenu.UseFul}
	{SqlCharConst.AND} {EntityTools.GetField<ArticleOptInfo>(nameof(ArticleOptInfo.ActionUser))} = {userId}
	{SqlCharConst.AND} {EntityTools.GetField<ArticleOptInfo>(nameof(ArticleOptInfo.RelationKey))} = {tableMapper.Alias}.{nameof(BaseModel.Id)}
	
)
");
                }
                else if (pageModel.Result.FilterType == 2)
                {
                    whereArr.Add($"{EntityTools.GetField<ArticleInfo>(nameof(ArticleInfo.UserId))} = {userId}");
                }
            }


            //获取连接
            var mysqlConn = appSetting.GetMysqlConn();

            var dbConnection = context.GetConnection(mysqlConn.FlagKey, mysqlConn.ConnStr);

            //采用工具类分页查询
            var pageList = await DapperTools.GetPageList <ArticleInfoDto>(pageModel.PageNo, pageModel.PageSize, dbConnection,
                                                                          tableMapper.TableName,
                                                                          whereArr, fields, new[]
            {
                SqlCharConst.DefaultOrder
            }, tableMapper.Alias, pageModel.Result);

            //返回结果集
            return(ResultModel.GetSuccessModel(string.Empty, pageList));
        }
예제 #4
0
        public async Task <ResultModel> Run(AcceptParam acceptParam, AppSetting appSetting, HttpContext context)
        {
            //解析参数
            var pageModel = acceptParam.AnalyzeParam <PageModel <ArticlePageFilterReq> >();

            if (pageModel == null)
            {
                return(ResultModel.GetNullErrorModel(string.Empty));
            }

            var publishTimeFieldName = EntityTools.GetField <ArticleInfo>(nameof(ArticleInfo.PublishTime));

            //动态sql
            var whereArr = new List <string>()
            {
                $"{publishTimeFieldName} <= @{publishTimeFieldName}"
            };//只返回已发布的文章

            if (pageModel.Result.ValidFlag != null && pageModel.Result.ValidFlag >= 0)
            {
                whereArr.Add($@"
{EntityTools.GetField<ArticleInfo>(nameof(ArticleInfo.ValidFlag))} = {pageModel.Result.ValidFlag}
");
            }

            if (pageModel.Result.ArticleType != null && pageModel.Result.ArticleType > 0)
            {
                whereArr.Add($@"
{EntityTools.GetField<ArticleInfo>(nameof(ArticleInfo.ArticleType))} = {pageModel.Result.ArticleType}
");
            }

//      if (pageModel.Result.FilterType == 1)
//      {
//        whereArr.Add($@"
//{EntityTools.GetField<ArticleInfo>(nameof(ArticleInfo.UserId))} = {acceptParam.GetUserId()}
//");
//      }

            //获取连接
            var mysqlConn = appSetting.GetMysqlConn();

            var dbConnection = context.GetConnection(mysqlConn.FlagKey, mysqlConn.ConnStr);

            var param = new ArticleInfo()
            {
                PublishTime = DateTime.Now
            };

            //采用工具类分页查询
            var pageList = await DapperTools.GetPageList <ArticleInfo>(pageModel.PageNo, pageModel.PageSize, dbConnection,
                                                                       whereArr, param);

            //返回结果集
            return(ResultModel.GetSuccessModel(string.Empty, pageList));

//      var count = await dbConnection.QueryFirstAsync<int>($@"
//{SqlCharConst.SELECT} {SqlCharConst.COUNT}(1)
//{SqlCharConst.FROM} {EntityTools.GetTableName<ArticleInfo>()}
//{whereBuilder}
//");
//
//      PageModel<IEnumerable<ArticleInfo>> resultPage = new PageModel<IEnumerable<ArticleInfo>>()
//      {
//        Count = count,
//        PageNo = pageModel.PageNo,
//        PageSize = pageModel.PageSize
//      };
//
//      if ((pageModel.PageNo - 1) * pageModel.PageSize <= count)
//      {
//        IEnumerable<ArticleInfo> articleInfos = await dbConnection.QueryAsync<ArticleInfo>($@"
//{SqlCharConst.SELECT} {string.Join(",", EntityTools.GetFields<ArticleInfo>())}
//{SqlCharConst.FROM} {EntityTools.GetTableName<ArticleInfo>()}
//{whereBuilder}
//
//{SqlCharConst.ORDERBY} {EntityTools.GetField<ArticleInfo>(nameof(ArticleInfo.Id))} {SqlCharConst.DESC}
//
//{SqlCharConst.LIMIT} {(pageModel.PageNo - 1) * pageModel.PageSize},{pageModel.PageSize}
//
//");
//
//        resultPage.Result = articleInfos.ToList();
//      }
//
//      return ResultModel.GetSuccessModel(string.Empty, resultPage);
        }