ReplyService.Praise.cs 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using System.Collections.Generic;
  2. using System.Threading.Tasks;
  3. using Dapper;
  4. using Datory;
  5. using GxPress.Common.Tools;
  6. using GxPress.EnumConst;
  7. using GxPress.Request.Reply;
  8. using GxPress.Result.Reply;
  9. namespace GxPress.Service.Implement.Reply
  10. {
  11. /// <summary>
  12. /// 点赞
  13. /// </summary>
  14. public partial class ReplyService
  15. {
  16. /// <summary>
  17. /// 获取我收到的赞
  18. /// </summary>
  19. /// <param name="request"></param>
  20. /// <returns></returns>
  21. public async Task<IEnumerable<ReplyResult>> GetPraiseAsync(ReplyRequest request)
  22. {
  23. var noteConstValue = AllTypeConst.Note.GetHashCode();
  24. string sqlStr = string.Empty;
  25. if (!string.IsNullOrEmpty(request.KeyWord))
  26. {
  27. sqlStr = $@" AND (
  28. b.Title LIKE '%{request.KeyWord}%'
  29. OR b.Content LIKE '%{request.KeyWord}%' or c.Name like '%{request.KeyWord}%')";
  30. }
  31. string sql = $@"
  32. SELECT
  33. a.Id,
  34. a.SourceId,
  35. a.TypeValue,
  36. b.Title,
  37. b.Content,
  38. c.Name,
  39. c.AvatarUrl,
  40. b.CreatedDate,
  41. a.UserId,
  42. b.IsTopic,
  43. d.Name
  44. FROM
  45. tede_analyze a
  46. INNER JOIN
  47. tede_note b ON a.SourceId = b.Id
  48. INNER JOIN
  49. tede_user c ON c.Id = a.UserId
  50. INNER JOIN
  51. tede_user d ON d.Id = b.UserId
  52. WHERE
  53. b.UserId = {request.UserId} AND a.TypeValue ={noteConstValue}
  54. AND b.IsDelete = 0 and a.AnalyzeType in(1,2) {sqlStr}
  55. ORDER BY a.CreatedDate DESC
  56. ";
  57. var database = new Database(DatabaseType.MySql, ConfigHelper.GetValue("Database:ConnectionString"));
  58. var connection = database.GetConnection();
  59. return await connection.QueryAsync<ReplyResult, Entity.Note.Note, Entity.User, Entity.User, ReplyResult>(sql,
  60. (result, note, user, userModel) =>
  61. {
  62. result.UserName = user != null ? user.Name : "";
  63. result.AvatarUrl = StringUtils.AddDomainMin(user.AvatarUrl);
  64. result.Title = string.IsNullOrEmpty(note.Title) ? GetTitleText(note.Content) : note.Title;
  65. //result.Content = note.Content;
  66. result.CreatedDate = note.CreatedDate;
  67. result.Name = userModel.Name;
  68. result.Remark = result.TypeValue==AllTypeConst.Note.GetHashCode() ? AllTypeConst.Topic.GetDescriptionOriginal() : AllTypeConst.Note.GetDescriptionOriginal();
  69. return result;
  70. }, splitOn: "Id,Title,Name,Name");
  71. }
  72. }
  73. }