TCommentUserAuditService.java 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. package com.ylx.massage.service;
  2. import com.baomidou.mybatisplus.extension.service.IService;
  3. import com.ylx.massage.domain.CommentUserAudit;
  4. import java.io.Serializable;
  5. import java.util.HashMap;
  6. import java.util.List;
  7. import java.util.Map;
  8. /**
  9. * 用户评论审核服务接口
  10. * <p>
  11. * 提供用户评论审核功能的业务接口,包括审核通过、审核拒绝等操作。
  12. * 继承自 MyBatis-Plus 的 IService 接口,提供基础的 CRUD 操作。
  13. * </p>
  14. *
  15. * @author ylx
  16. * @version 1.0
  17. * @since 2024
  18. */
  19. public interface TCommentUserAuditService extends IService<CommentUserAudit> {
  20. /**
  21. * 审核用户评论
  22. * <p>
  23. * 根据审核结果更新评论状态,并记录审核信息到审核表。
  24. * 审核通过后,评论状态更新为"通过";
  25. * 审核拒绝后,评论状态更新为"拒绝",并可记录拒绝原因。
  26. * </p>
  27. *
  28. * @param commentId 评论ID,用于标识待审核的评论
  29. * @param auditStatus 审核状态:1-通过,2-拒绝
  30. * @param auditReason 审核原因/拒绝理由,审核拒绝时必填,审核通过时可为空
  31. * @param auditorId 审核人ID,当前登录管理员的ID
  32. * @param auditorName 审核人姓名,当前登录管理员的姓名
  33. * @return 审核是否成功
  34. */
  35. Boolean auditComment(String commentId, Integer auditStatus, String auditReason, String auditorId, String auditorName);
  36. /**
  37. * 批量审核用户评论
  38. * <p>
  39. * 批量审核多条用户评论,支持统一通过或拒绝。
  40. * 对每条评论进行独立的验证和处理,记录详细的审核结果。
  41. * 返回审核结果统计,包括成功数量、失败数量和失败详情。
  42. * </p>
  43. *
  44. * @param commentIds 评论ID列表,用于标识待审核的多条评论
  45. * @param auditStatus 审核状态:1-通过,2-拒绝
  46. * @param auditReason 审核原因/拒绝理由,审核拒绝时必填,审核通过时可为空
  47. * @param auditorId 审核人ID,当前登录管理员的ID
  48. * @param auditorName 审核人姓名,当前登录管理员的姓名
  49. * @return 审核结果对象,包含成功数量、失败数量和失败详情
  50. */
  51. BatchAuditResult batchAuditComments(List<String> commentIds, Integer auditStatus,
  52. String auditReason, String auditorId, String auditorName);
  53. /**
  54. * 批量审核结果
  55. * <p>
  56. * 封装批量审核操作的执行结果,包括成功和失败的统计信息。
  57. * </p>
  58. */
  59. class BatchAuditResult implements Serializable {
  60. private static final long serialVersionUID = 1L;
  61. /**
  62. * 成功审核的评论数量
  63. */
  64. private int successCount;
  65. /**
  66. * 审核失败的评论数量
  67. */
  68. private int failCount;
  69. /**
  70. * 失败详情
  71. * Key: 评论ID
  72. * Value: 失败原因
  73. */
  74. private Map<String, String> failDetails;
  75. public BatchAuditResult() {
  76. this.successCount = 0;
  77. this.failCount = 0;
  78. this.failDetails = new HashMap<>();
  79. }
  80. public int getSuccessCount() {
  81. return successCount;
  82. }
  83. public void setSuccessCount(int successCount) {
  84. this.successCount = successCount;
  85. }
  86. public int getFailCount() {
  87. return failCount;
  88. }
  89. public void setFailCount(int failCount) {
  90. this.failCount = failCount;
  91. }
  92. public java.util.Map<String, String> getFailDetails() {
  93. return failDetails;
  94. }
  95. public void setFailDetails(java.util.Map<String, String> failDetails) {
  96. this.failDetails = failDetails;
  97. }
  98. /**
  99. * 增加成功计数
  100. */
  101. public void incrementSuccess() {
  102. this.successCount++;
  103. }
  104. /**
  105. * 增加失败计数
  106. */
  107. public void incrementFail() {
  108. this.failCount++;
  109. }
  110. /**
  111. * 添加失败详情
  112. *
  113. * @param commentId 评论ID
  114. * @param reason 失败原因
  115. */
  116. public void addFailDetail(String commentId, String reason) {
  117. this.failDetails.put(commentId, reason);
  118. this.incrementFail();
  119. }
  120. /**
  121. * 获取总数量
  122. *
  123. * @return 成功数量 + 失败数量
  124. */
  125. public int getTotalCount() {
  126. return successCount + failCount;
  127. }
  128. /**
  129. * 是否全部成功
  130. *
  131. * @return true-全部成功,false-存在失败
  132. */
  133. public boolean isAllSuccess() {
  134. return failCount == 0;
  135. }
  136. }
  137. }