TCommentUserAuditService.java 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. package com.ylx.order.service;
  2. import com.baomidou.mybatisplus.extension.service.IService;
  3. import com.ylx.order.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, String auditReason, String auditorId, String auditorName);
  52. /**
  53. * 批量审核结果
  54. * <p>
  55. * 封装批量审核操作的执行结果,包括成功和失败的统计信息。
  56. * </p>
  57. */
  58. class BatchAuditResult implements Serializable {
  59. private static final long serialVersionUID = 1L;
  60. /**
  61. * 成功审核的评论数量
  62. */
  63. private int successCount;
  64. /**
  65. * 审核失败的评论数量
  66. */
  67. private int failCount;
  68. /**
  69. * 失败详情
  70. * Key: 评论ID
  71. * Value: 失败原因
  72. */
  73. private Map<String, String> failDetails;
  74. public BatchAuditResult() {
  75. this.successCount = 0;
  76. this.failCount = 0;
  77. this.failDetails = new HashMap<>();
  78. }
  79. public int getSuccessCount() {
  80. return successCount;
  81. }
  82. public void setSuccessCount(int successCount) {
  83. this.successCount = successCount;
  84. }
  85. public int getFailCount() {
  86. return failCount;
  87. }
  88. public void setFailCount(int failCount) {
  89. this.failCount = failCount;
  90. }
  91. public java.util.Map<String, String> getFailDetails() {
  92. return failDetails;
  93. }
  94. public void setFailDetails(java.util.Map<String, String> failDetails) {
  95. this.failDetails = failDetails;
  96. }
  97. /**
  98. * 增加成功计数
  99. */
  100. public void incrementSuccess() {
  101. this.successCount++;
  102. }
  103. /**
  104. * 增加失败计数
  105. */
  106. public void incrementFail() {
  107. this.failCount++;
  108. }
  109. /**
  110. * 添加失败详情
  111. *
  112. * @param commentId 评论ID
  113. * @param reason 失败原因
  114. */
  115. public void addFailDetail(String commentId, String reason) {
  116. this.failDetails.put(commentId, reason);
  117. this.incrementFail();
  118. }
  119. /**
  120. * 获取总数量
  121. *
  122. * @return 成功数量 + 失败数量
  123. */
  124. public int getTotalCount() {
  125. return successCount + failCount;
  126. }
  127. /**
  128. * 是否全部成功
  129. *
  130. * @return true-全部成功,false-存在失败
  131. */
  132. public boolean isAllSuccess() {
  133. return failCount == 0;
  134. }
  135. }
  136. }