|
|
@@ -194,7 +194,8 @@ public class CommonRatingServiceImpl extends ServiceImpl<CommonRatingMapper, Com
|
|
|
}
|
|
|
|
|
|
// 检查条件2:图片中包含该店铺的小票(如果有图片)
|
|
|
- if (!condition1Passed && !imageUrls.isEmpty()) {
|
|
|
+ // 注意:无论打卡是否通过,只要有图片就进行小票审核
|
|
|
+ if (!imageUrls.isEmpty()) {
|
|
|
try {
|
|
|
// 获取店铺名称用于小票审核
|
|
|
String storeName = null;
|
|
|
@@ -227,22 +228,27 @@ public class CommonRatingServiceImpl extends ServiceImpl<CommonRatingMapper, Com
|
|
|
if (auditReason == null) {
|
|
|
auditReason = "小票审核异常";
|
|
|
}
|
|
|
+ condition2Passed = false; // 异常时视为不通过
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 如果两个条件都不满足,设置审核状态为不通过并记录审核原因
|
|
|
+ // 判断审核结果:如果两个条件都不满足,判定为审核不通过;至少满足一个条件,算审核通过
|
|
|
if (!condition1Passed && !condition2Passed) {
|
|
|
- // 如果还没有审核原因,设置默认原因
|
|
|
+ // 两个条件都不满足,判定为审核不通过
|
|
|
if (auditReason == null) {
|
|
|
- auditReason = "不满足审核条件:1) 用户未在该店铺打过卡;2) 上传的图片不包含该店铺的小票";
|
|
|
+ if (imageUrls.isEmpty()) {
|
|
|
+ auditReason = "不满足审核条件:用户未在该店铺打过卡";
|
|
|
+ } else {
|
|
|
+ auditReason = "不满足审核条件:1) 用户未在该店铺打过卡;2) 上传的图片不包含该店铺的小票";
|
|
|
+ }
|
|
|
}
|
|
|
// 设置审核状态为不通过(2-驳回)
|
|
|
commonRating.setAuditStatus(2);
|
|
|
commonRating.setAuditReason(auditReason);
|
|
|
- log.warn("评论审核不通过:内容审核通过,但不满足其他条件。条件1(打过卡)={}, 条件2(有小票)={}, 审核原因={}",
|
|
|
+ log.warn("评论审核不通过:内容审核通过,但两个条件都不满足。条件1(打过卡)={}, 条件2(有小票)={}, 审核原因={}",
|
|
|
condition1Passed, condition2Passed, auditReason);
|
|
|
} else {
|
|
|
- // 满足条件,审核状态保持为待审核(0),等待视频审核
|
|
|
+ // 至少满足一个条件,审核通过,审核状态保持为待审核(0),等待视频审核
|
|
|
log.info("评论审核通过:内容审核通过,且满足条件1(打过卡)={} 或 条件2(有小票)={}",
|
|
|
condition1Passed, condition2Passed);
|
|
|
}
|
|
|
@@ -327,24 +333,39 @@ public class CommonRatingServiceImpl extends ServiceImpl<CommonRatingMapper, Com
|
|
|
log.info("视频审核不通过,已更新状态,ratingID:{},原因:{}",
|
|
|
rating.getId(), videoAuditResult.getFailureReason());
|
|
|
} else if (Objects.nonNull(videoAuditResult) && videoAuditResult.isPassed()) {
|
|
|
- // 审核通过也更新状态
|
|
|
+ // 视频审核通过,但需要检查之前的审核状态
|
|
|
+ // 如果之前因为小票/打卡不通过而设置为2(不通过),则保持为2,不改为1
|
|
|
CommonRating rating = this.getById(commonRating.getId());
|
|
|
if (Objects.nonNull(rating)) {
|
|
|
- rating.setAuditStatus(1);
|
|
|
- this.saveOrUpdate(rating);
|
|
|
- // 对不同的businessType进行不同的处理,
|
|
|
- doBusinessWithType(commonRating);
|
|
|
- log.info("视频审核通过,已更新状态,ratingID:{}", rating.getId());
|
|
|
+ // 只有当前状态为待审核(0)时,才改为通过(1)
|
|
|
+ // 如果已经是2(不通过),说明之前因为小票/打卡不通过,保持为2
|
|
|
+ if (rating.getAuditStatus() == null || rating.getAuditStatus() == 0) {
|
|
|
+ rating.setAuditStatus(1);
|
|
|
+ this.saveOrUpdate(rating);
|
|
|
+ // 对不同的businessType进行不同的处理,
|
|
|
+ doBusinessWithType(commonRating);
|
|
|
+ log.info("视频审核通过,已更新状态为通过,ratingID:{}", rating.getId());
|
|
|
+ } else if (rating.getAuditStatus() == 2) {
|
|
|
+ // 之前因为小票/打卡不通过,即使视频通过,也保持为不通过
|
|
|
+ log.info("视频审核通过,但之前因小票/打卡不通过,保持审核状态为不通过,ratingID:{}", rating.getId());
|
|
|
+ }
|
|
|
}
|
|
|
} else {
|
|
|
// 视频审核结果为空,可能是没有视频或审核服务异常
|
|
|
- // 如果文本/图片已通过,且没有视频,则设置为审核通过
|
|
|
+ // 需要检查之前的审核状态,如果之前因为小票/打卡不通过而设置为2,则保持为2
|
|
|
CommonRating rating = this.getById(commonRating.getId());
|
|
|
if (Objects.nonNull(rating)) {
|
|
|
- rating.setAuditStatus(1);
|
|
|
- this.saveOrUpdate(rating);
|
|
|
- doBusinessWithType(commonRating);
|
|
|
- log.info("无视频或视频审核结果为空,文本/图片已通过,设置为审核通过,ratingID:{}", rating.getId());
|
|
|
+ // 只有当前状态为待审核(0)时,才改为通过(1)
|
|
|
+ // 如果已经是2(不通过),说明之前因为小票/打卡不通过,保持为2
|
|
|
+ if (rating.getAuditStatus() == null || rating.getAuditStatus() == 0) {
|
|
|
+ rating.setAuditStatus(1);
|
|
|
+ this.saveOrUpdate(rating);
|
|
|
+ doBusinessWithType(commonRating);
|
|
|
+ log.info("无视频或视频审核结果为空,文本/图片已通过,设置为审核通过,ratingID:{}", rating.getId());
|
|
|
+ } else if (rating.getAuditStatus() == 2) {
|
|
|
+ // 之前因为小票/打卡不通过,保持为不通过
|
|
|
+ log.info("无视频或视频审核结果为空,但之前因小票/打卡不通过,保持审核状态为不通过,ratingID:{}", rating.getId());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
@@ -358,13 +379,21 @@ public class CommonRatingServiceImpl extends ServiceImpl<CommonRatingMapper, Com
|
|
|
}
|
|
|
}, commonVideoTaskExecutor);
|
|
|
} else {
|
|
|
- // 7. 没有视频,文本/图片审核已通过,直接设置为审核通过
|
|
|
+ // 7. 没有视频,文本/图片审核已通过,但需要检查之前的审核状态
|
|
|
+ // 如果之前因为小票/打卡不通过而设置为2(不通过),则保持为2,不改为1
|
|
|
CommonRating rating = this.getById(commonRating.getId());
|
|
|
if (Objects.nonNull(rating)) {
|
|
|
- rating.setAuditStatus(1);
|
|
|
- this.saveOrUpdate(rating);
|
|
|
- doBusinessWithType(commonRating);
|
|
|
- log.info("无视频,文本/图片审核已通过,设置为审核通过,ratingID:{}", rating.getId());
|
|
|
+ // 只有当前状态为待审核(0)时,才改为通过(1)
|
|
|
+ // 如果已经是2(不通过),说明之前因为小票/打卡不通过,保持为2
|
|
|
+ if (rating.getAuditStatus() == null || rating.getAuditStatus() == 0) {
|
|
|
+ rating.setAuditStatus(1);
|
|
|
+ this.saveOrUpdate(rating);
|
|
|
+ doBusinessWithType(commonRating);
|
|
|
+ log.info("无视频,文本/图片审核已通过,设置为审核通过,ratingID:{}", rating.getId());
|
|
|
+ } else if (rating.getAuditStatus() == 2) {
|
|
|
+ // 之前因为小票/打卡不通过,保持为不通过
|
|
|
+ log.info("无视频,文本/图片审核已通过,但之前因小票/打卡不通过,保持审核状态为不通过,ratingID:{}", rating.getId());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|