using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Dapper; using Datory; using GxPress.Common.Tools; using GxPress.EnumConst; using GxPress.Request.Reply; using GxPress.Result.Reply; namespace GxPress.Service.Implement.Reply { /// /// 获取我收到的或者我回复的评论 /// public partial class ReplyService { /// /// 获取我收到的评论 /// /// public async Task> GetReceiptCommentResult(ReplyRequest request) { string sqlStr = string.Empty; if (!string.IsNullOrEmpty(request.KeyWord)) sqlStr += $" and (a.Content like '%{request.KeyWord}%' or b.Name like '%request.KeyWord%')"; //获取回复我的 string sql = $@"SELECT a.Id, a.ArticleId AS SourceId, a.Content AS CommentContent, a.TypeValue, a.CreatedDate, a.Pid, b.Id AS UserId, b.Name as UserName FROM tede_comment a INNER JOIN tede_user b ON a.UserId = b.Id WHERE a.Pid IN (SELECT id FROM tede_comment WHERE id IN (SELECT Pid FROM tede_comment WHERE pid > 0) AND userId = {request.UserId}) {sqlStr}"; var database = new Database(DatabaseType.MySql, ConfigHelper.GetValue("Database:ConnectionString")); var connection = database.GetConnection(); var receipt = await connection.QueryAsync(sql); sql = $@"SELECT a.Id, a.ArticleId AS SourceId, a.Content AS CommentContent, a.TypeValue, a.CreatedDate, a.Pid, b.Id AS UserId, b.Name FROM tede_comment a INNER JOIN tede_user b ON a.UserId = b.Id WHERE a.id IN (SELECT Pid FROM tede_comment WHERE pid > 0) AND userId = {request.UserId}"; var my = await connection.QueryAsync(sql); foreach (var item in receipt) { if (item.Pid > 0) { ReplyResult replyResult1 = my.FirstOrDefault(n => n.Id == item.Pid); ReplyResult replyResult = replyResult1; item.Title = replyResult.CommentContent; item.Name = replyResult.Name; } item.AvatarUrl = StringUtils.AddDomainMin(item.AvatarUrl); item.Remark = ((AllTypeConst)item.TypeValue).GetDescriptionOriginal(); item.IsComment = true; } return receipt; } /// /// 获取我回复的评论 /// /// public async Task> GetMyReceiptCommentResult(ReplyRequest request) { string sqlStr = string.Empty; if (!string.IsNullOrEmpty(request.KeyWord)) sqlStr += $" and (a.Content like '%{request.KeyWord}%' or b.Name like '%request.KeyWord%')"; //获取回复我的 string sql = $@"SELECT a.Id, a.ArticleId AS SourceId, a.Content AS CommentContent, a.TypeValue, a.CreatedDate, a.Pid, b.Id AS UserId, b.Name AS UserName FROM tede_comment a INNER JOIN tede_user b ON a.UserId = b.Id WHERE a.pid > 0 AND a.userId = {request.UserId} {sqlStr}"; var database = new Database(DatabaseType.MySql, ConfigHelper.GetValue("Database:ConnectionString")); var connection = database.GetConnection(); var receipt = await connection.QueryAsync(sql); sql = $@"SELECT a.Id, a.ArticleId AS SourceId, a.Content AS CommentContent, a.TypeValue, a.CreatedDate, a.Pid, b.Id AS UserId, b.Name FROM tede_comment a INNER JOIN tede_user b ON a.UserId = b.Id WHERE a.id IN (SELECT a.Pid FROM tede_comment a INNER JOIN tede_user b ON a.UserId = b.Id WHERE a.pid > 0 AND a.userId = {request.UserId})"; var my = await connection.QueryAsync(sql); foreach (var item in receipt) { if (item.Pid > 0) { ReplyResult replyResult1 = my.FirstOrDefault(n => n.Id == item.Pid); if (replyResult1 != null) { ReplyResult replyResult = replyResult1; item.Title = replyResult.CommentContent; item.Name = replyResult.Name; } } item.AvatarUrl = StringUtils.AddDomainMin(item.AvatarUrl); item.Remark = ((AllTypeConst)item.TypeValue).GetDescriptionOriginal(); item.IsComment = true; } return receipt; } } }