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