|
@@ -6,9 +6,11 @@ import com.alibaba.fastjson.JSONObject;
|
|
|
import com.google.common.collect.Lists;
|
|
|
import com.tzld.longarticle.recommend.server.common.enums.FieshuTableColumnDataTypeEnum;
|
|
|
import com.tzld.longarticle.recommend.server.common.enums.StatusEnum;
|
|
|
+import com.tzld.longarticle.recommend.server.common.enums.VideoAuditTypeEnum;
|
|
|
import com.tzld.longarticle.recommend.server.common.enums.aigc.PublishContentStatusEnum;
|
|
|
import com.tzld.longarticle.recommend.server.common.enums.aigc.PublishPlanInputSourceTypesEnum;
|
|
|
import com.tzld.longarticle.recommend.server.common.enums.aigc.PushTypeEnum;
|
|
|
+import com.tzld.longarticle.recommend.server.common.enums.cgi.FindFaceStatusEnum;
|
|
|
import com.tzld.longarticle.recommend.server.common.enums.cgi.PQVideoAuditResultEnum;
|
|
|
import com.tzld.longarticle.recommend.server.common.enums.cgi.PQVideoSensitiveLevelEnum;
|
|
|
import com.tzld.longarticle.recommend.server.common.enums.recommend.ArticleDeleteStatusEnum;
|
|
@@ -17,6 +19,7 @@ import com.tzld.longarticle.recommend.server.common.enums.recommend.FeishuRobotI
|
|
|
import com.tzld.longarticle.recommend.server.mapper.aigc.AigcBaseMapper;
|
|
|
import com.tzld.longarticle.recommend.server.mapper.crawler.ArticleMapper;
|
|
|
import com.tzld.longarticle.recommend.server.mapper.longArticle.LongArticleBaseMapper;
|
|
|
+import com.tzld.longarticle.recommend.server.model.cgi.AlgFaceRecognizeResult;
|
|
|
import com.tzld.longarticle.recommend.server.model.cgi.PQVideoAuditResult;
|
|
|
import com.tzld.longarticle.recommend.server.model.dto.*;
|
|
|
import com.tzld.longarticle.recommend.server.model.entity.aigc.PublishAccount;
|
|
@@ -30,11 +33,11 @@ import com.tzld.longarticle.recommend.server.model.vo.ArticleDeleteListVO;
|
|
|
import com.tzld.longarticle.recommend.server.model.vo.FeishuTableDTO;
|
|
|
import com.tzld.longarticle.recommend.server.remote.WxAccessTokenRemoteService;
|
|
|
import com.tzld.longarticle.recommend.server.remote.WxArticleDeleteService;
|
|
|
+import com.tzld.longarticle.recommend.server.remote.alg.DangerFaceRecognizeService;
|
|
|
import com.tzld.longarticle.recommend.server.remote.pq.PQVideoAuditResultService;
|
|
|
import com.tzld.longarticle.recommend.server.remote.pq.PQVideoAuditStartProcessService;
|
|
|
import com.tzld.longarticle.recommend.server.repository.aigc.PublishAccountRepository;
|
|
|
import com.tzld.longarticle.recommend.server.repository.aigc.PublishContentRepository;
|
|
|
-import com.tzld.longarticle.recommend.server.repository.aigc.PublishPlanRepository;
|
|
|
import com.tzld.longarticle.recommend.server.repository.crawler.ArticleRepository;
|
|
|
import com.tzld.longarticle.recommend.server.repository.longArticle.*;
|
|
|
import com.tzld.longarticle.recommend.server.util.DateUtils;
|
|
@@ -91,7 +94,7 @@ public class ArticleAuditService {
|
|
|
@Autowired
|
|
|
private ArticleMapper articleMapper;
|
|
|
@Autowired
|
|
|
- private PublishPlanRepository publishPlanRepository;
|
|
|
+ private DangerFaceRecognizeService dangerFaceRecognizeService;
|
|
|
|
|
|
|
|
|
@XxlJob("articleVideoAudit")
|
|
@@ -110,7 +113,7 @@ public class ArticleAuditService {
|
|
|
List<LongArticlesMatchVideo> longArticlesMatchVideoList = longArticlesMatchVideoRepository.getByTraceIdIn(traceIds);
|
|
|
Map<String, LongArticlesMatchVideo> longarticlesMatchVideoMap = longArticlesMatchVideoList.stream()
|
|
|
.collect(Collectors.toMap(LongArticlesMatchVideo::getTraceId, Function.identity()));
|
|
|
- List<String> existsOssPath = longArticleBaseMapper.getExistsOssPath();
|
|
|
+ List<String> existsOssPath = longArticleBaseMapper.getExistsOssPath(VideoAuditTypeEnum.PQ.getType());
|
|
|
for (String traceId : traceIds) {
|
|
|
try {
|
|
|
LongArticlesMatchVideo longArticlesMatchVideo = longarticlesMatchVideoMap.get(traceId);
|
|
@@ -127,6 +130,7 @@ public class ArticleAuditService {
|
|
|
LongArticleVideoAudit videoAudit = new LongArticleVideoAudit();
|
|
|
videoAudit.setVideoId(response.getVideoID());
|
|
|
videoAudit.setTraceId(traceId);
|
|
|
+ videoAudit.setType(VideoAuditTypeEnum.PQ.getType());
|
|
|
videoAudit.setContentId(longArticlesMatchVideo.getContentId());
|
|
|
videoAudit.setOssPath(ossPath);
|
|
|
videoAudit.setStatus(StatusEnum.ZERO.getCode());
|
|
@@ -169,7 +173,7 @@ public class ArticleAuditService {
|
|
|
List<LongArticlesMatchVideo> longArticlesMatchVideoList = longArticlesMatchVideoRepository.getByTraceIdIn(traceIds);
|
|
|
Map<String, LongArticlesMatchVideo> longarticlesMatchVideoMap = longArticlesMatchVideoList.stream()
|
|
|
.collect(Collectors.toMap(LongArticlesMatchVideo::getTraceId, Function.identity()));
|
|
|
- List<String> existsOssPath = longArticleBaseMapper.getExistsOssPath();
|
|
|
+ List<String> existsOssPath = longArticleBaseMapper.getExistsOssPath(VideoAuditTypeEnum.COVER.getType());
|
|
|
for (String traceId : traceIds) {
|
|
|
try {
|
|
|
LongArticlesMatchVideo longArticlesMatchVideo = longarticlesMatchVideoMap.get(traceId);
|
|
@@ -186,6 +190,7 @@ public class ArticleAuditService {
|
|
|
LongArticleVideoAudit videoAudit = new LongArticleVideoAudit();
|
|
|
videoAudit.setVideoId(response.getVideoID());
|
|
|
videoAudit.setTraceId(traceId);
|
|
|
+ videoAudit.setType(VideoAuditTypeEnum.COVER.getType());
|
|
|
videoAudit.setContentId(longArticlesMatchVideo.getContentId());
|
|
|
videoAudit.setOssPath(ossPath);
|
|
|
videoAudit.setStatus(StatusEnum.ZERO.getCode());
|
|
@@ -193,22 +198,17 @@ public class ArticleAuditService {
|
|
|
longArticleVideoAuditRepository.save(videoAudit);
|
|
|
try {
|
|
|
// 调用封面检测
|
|
|
- PQVideoAuditResult result = pqVideoAuditResultService.getResult(null).get(0);
|
|
|
+ AlgFaceRecognizeResult result = dangerFaceRecognizeService.getResult(response.getVideoCover());
|
|
|
|
|
|
- if (Objects.equals(result.getAuditResult(), PQVideoAuditResultEnum.PASS.getStatus())) {
|
|
|
+ if (Objects.equals(result.getFind_face_status(), FindFaceStatusEnum.NOT_EXIST.getStatus())) {
|
|
|
// 审核通过,更新文章状态
|
|
|
videoAudit.setStatus(PQVideoAuditResultEnum.PASS.getStatus());
|
|
|
videoAudit.setFinishTimestamp(System.currentTimeMillis());
|
|
|
longArticleVideoAuditRepository.save(videoAudit);
|
|
|
- } else if (Objects.equals(result.getAuditResult(), PQVideoAuditResultEnum.REJECT.getStatus())) {
|
|
|
+ } else if (Objects.equals(result.getFind_face_status(), FindFaceStatusEnum.EXIST.getStatus())) {
|
|
|
// 审核不通过,删除文章
|
|
|
- PQVideoSensitiveLevelEnum sensitiveLevelEnum = PQVideoSensitiveLevelEnum.from(result.getSensitiveLevel());
|
|
|
- if (sensitiveLevelEnum.getLevel() >= PQVideoSensitiveLevelEnum.MID_SENSITIVE.getLevel()) {
|
|
|
- videoAudit.setStatus(PQVideoAuditResultEnum.REJECT.getStatus());
|
|
|
- } else {
|
|
|
- videoAudit.setStatus(PQVideoAuditResultEnum.PASS.getStatus());
|
|
|
- }
|
|
|
- videoAudit.setFailReason(sensitiveLevelEnum.getDescription());
|
|
|
+ videoAudit.setStatus(PQVideoAuditResultEnum.REJECT.getStatus());
|
|
|
+ videoAudit.setFailReason("封面存在违规头像");
|
|
|
videoAudit.setFinishTimestamp(System.currentTimeMillis());
|
|
|
longArticleVideoAuditRepository.save(videoAudit);
|
|
|
// 构建删除文章记录 并保存
|
|
@@ -216,7 +216,7 @@ public class ArticleAuditService {
|
|
|
// 暂时不做删除 先发送通知
|
|
|
if (videoAudit.getStatus().equals(PQVideoAuditResultEnum.REJECT.getStatus())) {
|
|
|
FeishuMessageSender.sendWebHookMessage(FeishuRobotIdEnum.ARTICLE_DELETE.getRobotId(),
|
|
|
- "视频封面识别不通过【" + sensitiveLevelEnum.getDescription() + "】\n" +
|
|
|
+ "视频封面识别不通过【存在违规头像】\n" +
|
|
|
"traceId:" + videoAudit.getTraceId() + "\n" +
|
|
|
"视频id:" + videoAudit.getVideoId() + "\n" +
|
|
|
"管理后台地址:https://admin.piaoquantv.com/cms/post-detail/" + videoAudit.getVideoId() + "/detail\n" +
|
|
@@ -260,7 +260,8 @@ public class ArticleAuditService {
|
|
|
|
|
|
@XxlJob("articleVideoAuditResult")
|
|
|
public ReturnT<String> articleVideoAuditResult(String param) {
|
|
|
- List<LongArticleVideoAudit> list = longArticleVideoAuditRepository.getByStatusAndTaskIdIsNotNull(StatusEnum.ZERO.getCode());
|
|
|
+ List<LongArticleVideoAudit> list = longArticleVideoAuditRepository.getByStatusAndTypeAndTaskIdIsNotNull(
|
|
|
+ StatusEnum.ZERO.getCode(), VideoAuditTypeEnum.PQ.getType());
|
|
|
for (List<LongArticleVideoAudit> partition : Lists.partition(list, 10)) {
|
|
|
List<Long> taskIds = partition.stream().map(LongArticleVideoAudit::getTaskId).collect(Collectors.toList());
|
|
|
Map<Long, LongArticleVideoAudit> map = partition.stream().collect(Collectors.toMap(LongArticleVideoAudit::getTaskId, Function.identity()));
|