diff --git a/epmet-module/epmet-job/epmet-job-server/pom.xml b/epmet-module/epmet-job/epmet-job-server/pom.xml
index 01e91beca0..0aae470684 100644
--- a/epmet-module/epmet-job/epmet-job-server/pom.xml
+++ b/epmet-module/epmet-job/epmet-job-server/pom.xml
@@ -79,6 +79,12 @@
feign-httpclient
10.3.0
+
+ com.epmet
+ resi-group-client
+ 2.0.0
+ compile
+
diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/TopicAutoAuditService.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/TopicAutoAuditService.java
new file mode 100644
index 0000000000..0102b54370
--- /dev/null
+++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/TopicAutoAuditService.java
@@ -0,0 +1,12 @@
+package com.epmet.service;
+
+import com.epmet.commons.tools.utils.Result;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/12/29 17:45
+ */
+public interface TopicAutoAuditService {
+ Result autoAudit();
+}
diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/TopicAutoAuditServiceImpl.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/TopicAutoAuditServiceImpl.java
new file mode 100644
index 0000000000..00fb618f5b
--- /dev/null
+++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/TopicAutoAuditServiceImpl.java
@@ -0,0 +1,22 @@
+package com.epmet.service.impl;
+
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.resi.group.feign.ResiGroupOpenFeignClient;
+import com.epmet.service.TopicAutoAuditService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/12/29 17:46
+ */
+public class TopicAutoAuditServiceImpl implements TopicAutoAuditService {
+
+ @Autowired
+ private ResiGroupOpenFeignClient resiGroupOpenFeignClient;
+
+ @Override
+ public Result autoAudit() {
+ return resiGroupOpenFeignClient.autoAudit();
+ }
+}
diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/TopicAutoAuditTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/TopicAutoAuditTask.java
new file mode 100644
index 0000000000..6bc7bb3c4b
--- /dev/null
+++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/TopicAutoAuditTask.java
@@ -0,0 +1,31 @@
+package com.epmet.task;
+
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.service.TopicAutoAuditService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/12/29 17:43
+ */
+@Slf4j
+@Component("topicAutoAuditTask")
+public class TopicAutoAuditTask implements ITask {
+
+ @Autowired
+ private TopicAutoAuditService topicAutoAuditService;
+
+ @Override
+ public void run(String params) {
+ log.info("TopicAutoAuditTask定时任务正在执行,参数为:{}", params);
+ Result result = topicAutoAuditService.autoAudit();
+ if (result.success()) {
+ log.info("TopicAutoAuditTask定时任务执行成功");
+ } else {
+ log.error("TopicAutoAuditTask定时任务执行失败:" + result.getMsg());
+ }
+ }
+}
diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java
index ad9a19903f..d2ffdb794a 100644
--- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java
+++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java
@@ -164,4 +164,14 @@ public interface ResiGroupOpenFeignClient {
*/
@PostMapping("resi/group/topicsharelinkvisitrecord/checkinviterelationship")
Result checkInviteRelationship(@RequestBody SharableTopicAndInviteeFormDTO param);
+
+
+ /**
+ * 自动审核
+ * @author zhaoqifeng
+ * @date 2020/12/30 10:11
+ * @return com.epmet.commons.tools.utils.Result
+ */
+ @PostMapping("resi/group/topicdraft/autoAudit")
+ Result autoAudit();
}
diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java
index 1b6f214fa0..38dfbcb199 100644
--- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java
+++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java
@@ -110,4 +110,16 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien
public Result checkInviteRelationship(SharableTopicAndInviteeFormDTO param) {
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "selectTopicBelongGroup", param);
}
+
+ /**
+ * 自动审核
+ *
+ * @return com.epmet.commons.tools.utils.Result
+ * @author zhaoqifeng
+ * @date 2020/12/30 10:11
+ */
+ @Override
+ public Result autoAudit() {
+ return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "autoAudit");
+ }
}
diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/TopicDraftController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/TopicDraftController.java
index 89081680fd..1c99d983c3 100644
--- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/TopicDraftController.java
+++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/TopicDraftController.java
@@ -180,4 +180,16 @@ public class TopicDraftController {
formDTO.setUserId(tokenDto.getUserId());
return new Result>().ok(topicDraftService.myAuditingList(formDTO));
}
+
+ /**
+ * 自动审核
+ * @author zhaoqifeng
+ * @date 2020/12/30 10:11
+ * @return com.epmet.commons.tools.utils.Result
+ */
+ @PostMapping("autoAudit")
+ public Result autoAudit() {
+ topicDraftService.autoAudit();
+ return new Result();
+ }
}
\ No newline at end of file
diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/TopicDraftScanTaskService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/TopicDraftScanTaskService.java
index 3b1608a18c..003b716a97 100644
--- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/TopicDraftScanTaskService.java
+++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/TopicDraftScanTaskService.java
@@ -96,4 +96,14 @@ public interface TopicDraftScanTaskService extends BaseService
+ */
+ List getScanTaskList(String draftId, String status);
}
\ No newline at end of file
diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/TopicDraftService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/TopicDraftService.java
index 87b99bc51c..b6646cf19c 100644
--- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/TopicDraftService.java
+++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/TopicDraftService.java
@@ -153,4 +153,13 @@ public interface TopicDraftService extends BaseService {
* @Description 个人中心-我发表的话题-审核中列表
**/
List myAuditingList(MyAuditingListFormDTO formDTO);
+
+ /**
+ * 自动审核
+ * @author zhaoqifeng
+ * @date 2020/12/29 17:51
+ * @param
+ * @return void
+ */
+ void autoAudit();
}
\ No newline at end of file
diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/TopicDraftScanTaskServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/TopicDraftScanTaskServiceImpl.java
index 9f4b2f42d9..9890bf5c79 100644
--- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/TopicDraftScanTaskServiceImpl.java
+++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/TopicDraftScanTaskServiceImpl.java
@@ -26,6 +26,7 @@ import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.modules.topic.dao.TopicDraftScanTaskDao;
import com.epmet.modules.topic.entity.TopicDraftScanTaskEntity;
import com.epmet.modules.topic.service.TopicDraftScanTaskService;
+import com.epmet.resi.group.constant.TopicConstant;
import com.epmet.resi.group.dto.topic.TopicDraftScanTaskDTO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
@@ -107,4 +108,21 @@ public class TopicDraftScanTaskServiceImpl extends BaseServiceImpl
+ * @author zhaoqifeng
+ * @date 2020/12/29 17:57
+ */
+ @Override
+ public List getScanTaskList(String draftId, String status) {
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq(StringUtils.isNotBlank(draftId), "TOPIC_DRAFT_ID", draftId);
+ wrapper.eq(StringUtils.isNotBlank(status),"STATUS", status);
+ List entityList = baseDao.selectList(wrapper);
+ return ConvertUtils.sourceToTarget(entityList, TopicDraftScanTaskDTO.class);
+
+ }
+
}
\ No newline at end of file
diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/TopicDraftServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/TopicDraftServiceImpl.java
index 084010e040..da10cf9b67 100644
--- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/TopicDraftServiceImpl.java
+++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/TopicDraftServiceImpl.java
@@ -239,6 +239,110 @@ public class TopicDraftServiceImpl extends BaseServiceImpl taskList = topicDraftScanTaskService.getScanTaskList(null, TopicConstant.AUDITING);
+ if (CollectionUtils.isNotEmpty(taskList)) {
+ List taskIds = taskList.stream().map(TopicDraftScanTaskDTO :: getTaskId).collect(Collectors.toList());
+ List draftIds = taskList.stream().map(TopicDraftScanTaskDTO :: getTopicDraftId).collect(Collectors.toList());
+ Result> voiceResults = ScanContentUtils.voiceResults(scanApiUrl.concat(voiceResultsMethod), taskIds);
+ if (voiceResults.success()) {
+ List list = voiceResults.getData();
+ for (VoiceResultDTO item : list) {
+ TopicDraftScanTaskDTO taskDTO = topicDraftScanTaskService.getScanByTask(item.getTaskId());
+ if (TopicConstant.REVIEW.equals(item.getSuggestion())) {
+ //结果不确定
+ TopicDraftAttachmentDTO dto = new TopicDraftAttachmentDTO();
+ dto.setId(taskDTO.getTopicDraftAttachmentId());
+ dto.setStatus(TopicConstant.REVIEW);
+ dto.setReason(item.getLabelDesc());
+ topicDraftAttachmentService.update(dto);
+
+ taskDTO.setStatus(TopicConstant.REVIEW);
+ topicDraftScanTaskService.update(taskDTO);
+
+ } else if (TopicConstant.BLOCK.equals(item.getSuggestion())) {
+ //结果违规
+ TopicDraftAttachmentDTO dto = new TopicDraftAttachmentDTO();
+ dto.setId(taskDTO.getTopicDraftAttachmentId());
+ dto.setStatus(TopicConstant.BLOCK);
+ dto.setReason(item.getLabelDesc());
+ topicDraftAttachmentService.update(dto);
+
+ taskDTO.setStatus(TopicConstant.BLOCK);
+ topicDraftScanTaskService.update(taskDTO);
+ } else {
+ //审核通过
+ TopicDraftAttachmentDTO dto = new TopicDraftAttachmentDTO();
+ dto.setId(taskDTO.getTopicDraftAttachmentId());
+ dto.setStatus(TopicConstant.AUTO_PASSED);
+ dto.setReason(item.getLabelDesc());
+ topicDraftAttachmentService.update(dto);
+
+ taskDTO.setStatus(TopicConstant.AUTO_PASSED);
+ topicDraftScanTaskService.update(taskDTO);
+ }
+ }
+
+ //判断草稿是否审核完成
+ draftIds.forEach(draftId -> {
+ List tasks = topicDraftScanTaskService.getScanTaskList(draftId, null);
+ String status = TopicConstant.AUTO_PASSED;
+ for (TopicDraftScanTaskDTO task : tasks) {
+ if (TopicConstant.AUDITING.equals(task.getStatus())) {
+ status = TopicConstant.AUDITING;
+ break;
+ } else if(TopicConstant.BLOCK.equals(task.getStatus())) {
+ status = TopicConstant.BLOCK;
+ } else if(TopicConstant.REVIEW.equals(task.getStatus())) {
+ if (!TopicConstant.BLOCK.equals(status)) {
+ status = TopicConstant.REVIEW;
+ }
+ } else {
+ if (!TopicConstant.BLOCK.equals(status) && !TopicConstant.REVIEW.equals(status)) {
+ status = TopicConstant.AUTO_PASSED;
+ }
+ }
+ }
+
+ if (TopicConstant.BLOCK.equals(status)) {
+ //草稿状态更新为block
+ TopicDraftEntity draftEntity = new TopicDraftEntity();
+ draftEntity.setId(draftId);
+ draftEntity.setDraftStatus(TopicConstant.REVIEW);
+ draftEntity.setDraftReason("需要人工审核");
+ baseDao.updateById(draftEntity);
+
+ } else if(TopicConstant.REVIEW.equals(status)) {
+ //草稿状态更新为review
+ TopicDraftEntity draftEntity = new TopicDraftEntity();
+ draftEntity.setId(draftId);
+ draftEntity.setDraftStatus(TopicConstant.BLOCK);
+ draftEntity.setDraftReason("语音存在违规内容");
+ baseDao.updateById(draftEntity);
+
+ } else if(TopicConstant.AUTO_PASSED.equals(status)) {
+ //草稿状态更新为auto_passed
+ AuditDraftTopicFormDTO formDTO = new AuditDraftTopicFormDTO();
+ formDTO.setTopicDraftId(draftId);
+ formDTO.setAuditType(TopicConstant.AUTO_PASSED);
+ audit(null, formDTO);
+ }
+ });
+
+
+ }
+ }
+ }
+
/**
* 发布话题
*
@@ -429,77 +533,67 @@ public class TopicDraftServiceImpl extends BaseServiceImpl {
- while (true) {
- Result> voiceResults = ScanContentUtils.voiceResults(scanApiUrl.concat(voiceResultsMethod), taskIds);
- if (voiceResults.success()) {
- boolean isAllPass = true;
- List list = voiceResults.getData();
- for (VoiceResultDTO item : list) {
- TopicDraftScanTaskDTO taskDTO = topicDraftScanTaskService.getScanByTask(item.getTaskId());
- if (TopicConstant.REVIEW.equals(item.getSuggestion())) {
- //结果不确定
- TopicDraftAttachmentDTO dto = new TopicDraftAttachmentDTO();
- dto.setId(taskDTO.getTopicDraftAttachmentId());
- dto.setStatus(TopicConstant.REVIEW);
- dto.setReason(item.getLabelDesc());
- topicDraftAttachmentService.update(dto);
-
- taskDTO.setStatus(TopicConstant.REVIEW);
- topicDraftScanTaskService.update(taskDTO);
-
- TopicDraftEntity draftEntity = new TopicDraftEntity();
- draftEntity.setId(topic.getId());
- draftEntity.setDraftStatus(TopicConstant.REVIEW);
- draftEntity.setDraftReason("需要人工审核");
- baseDao.updateById(draftEntity);
-
- isAllPass = false;
- } else if (TopicConstant.BLOCK.equals(item.getSuggestion())) {
- //结果违规
- TopicDraftAttachmentDTO dto = new TopicDraftAttachmentDTO();
- dto.setId(taskDTO.getTopicDraftAttachmentId());
- dto.setStatus(TopicConstant.BLOCK);
- dto.setReason(item.getLabelDesc());
- topicDraftAttachmentService.update(dto);
-
- taskDTO.setStatus(TopicConstant.BLOCK);
- topicDraftScanTaskService.update(taskDTO);
-
- TopicDraftEntity draftEntity = new TopicDraftEntity();
- draftEntity.setId(topic.getId());
- draftEntity.setDraftStatus(TopicConstant.BLOCK);
- draftEntity.setDraftReason(item.getLabelDesc());
- baseDao.updateById(draftEntity);
-
- isAllPass = false;
- } else {
- //审核通过
- TopicDraftAttachmentDTO dto = new TopicDraftAttachmentDTO();
- dto.setId(taskDTO.getTopicDraftAttachmentId());
- dto.setStatus(TopicConstant.AUTO_PASSED);
- dto.setReason(item.getLabelDesc());
- topicDraftAttachmentService.update(dto);
-
- taskDTO.setStatus(TopicConstant.AUTO_PASSED);
- topicDraftScanTaskService.update(taskDTO);
- }
- //审核通过,发布话题
- if(isAllPass) {
- saveTopic(tokenDto, formDTO, topic.getId());
- }
- }
- break;
- }
- try {
- Thread.sleep(600000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- });
+// Result> voiceResults = ScanContentUtils.voiceResults(scanApiUrl.concat(voiceResultsMethod), taskIds);
+// if (voiceResults.success()) {
+// boolean isAllPass = true;
+// List list = voiceResults.getData();
+// for (VoiceResultDTO item : list) {
+// TopicDraftScanTaskDTO taskDTO = topicDraftScanTaskService.getScanByTask(item.getTaskId());
+// if (TopicConstant.REVIEW.equals(item.getSuggestion())) {
+// //结果不确定
+// TopicDraftAttachmentDTO dto = new TopicDraftAttachmentDTO();
+// dto.setId(taskDTO.getTopicDraftAttachmentId());
+// dto.setStatus(TopicConstant.REVIEW);
+// dto.setReason(item.getLabelDesc());
+// topicDraftAttachmentService.update(dto);
+//
+// taskDTO.setStatus(TopicConstant.REVIEW);
+// topicDraftScanTaskService.update(taskDTO);
+//
+// TopicDraftEntity draftEntity = new TopicDraftEntity();
+// draftEntity.setId(topic.getId());
+// draftEntity.setDraftStatus(TopicConstant.REVIEW);
+// draftEntity.setDraftReason("需要人工审核");
+// baseDao.updateById(draftEntity);
+//
+// isAllPass = false;
+// } else if (TopicConstant.BLOCK.equals(item.getSuggestion())) {
+// //结果违规
+// TopicDraftAttachmentDTO dto = new TopicDraftAttachmentDTO();
+// dto.setId(taskDTO.getTopicDraftAttachmentId());
+// dto.setStatus(TopicConstant.BLOCK);
+// dto.setReason(item.getLabelDesc());
+// topicDraftAttachmentService.update(dto);
+//
+// taskDTO.setStatus(TopicConstant.BLOCK);
+// topicDraftScanTaskService.update(taskDTO);
+//
+// TopicDraftEntity draftEntity = new TopicDraftEntity();
+// draftEntity.setId(topic.getId());
+// draftEntity.setDraftStatus(TopicConstant.BLOCK);
+// draftEntity.setDraftReason(item.getLabelDesc());
+// baseDao.updateById(draftEntity);
+//
+// isAllPass = false;
+// } else {
+// //审核通过
+// TopicDraftAttachmentDTO dto = new TopicDraftAttachmentDTO();
+// dto.setId(taskDTO.getTopicDraftAttachmentId());
+// dto.setStatus(TopicConstant.AUTO_PASSED);
+// dto.setReason(item.getLabelDesc());
+// topicDraftAttachmentService.update(dto);
+//
+// taskDTO.setStatus(TopicConstant.AUTO_PASSED);
+// topicDraftScanTaskService.update(taskDTO);
+// }
+// //审核通过,发布话题
+// if (isAllPass) {
+// saveTopic(tokenDto, formDTO, topic.getId());
+// }
+// }
+//
+// }
}
} else {
@@ -611,6 +705,7 @@ public class TopicDraftServiceImpl extends BaseServiceImpl attachmentList = topicDraftAttachmentService.getFileList(formDTO.getTopicDraftId(), null);
List topicAttachments = ConvertUtils.sourceToTarget(attachmentList, ResiTopicAttachmentEntity.class);
+ topicAttachments.forEach(item -> {
+ item.setTopicId(resiTopic.getId());
+ });
topicAttachments.forEach(item -> {
item.setId(null);
});
resiTopicAttachmentDao.insertBatch(topicAttachments);
//将音频状态改为approved
- List voiceList =
- attachmentList.stream().filter(item -> TopicConstant.VOICE.equals(item.getAttachmentType()) && TopicConstant.REVIEW.equals(item.getStatus())).collect(Collectors.toList());
- if (CollectionUtils.isNotEmpty(voiceList)) {
- voiceList.forEach(item -> item.setStatus(TopicConstant.APPROVED));
- topicDraftAttachmentService.updateBatchById(ConvertUtils.sourceToTarget(voiceList, TopicDraftAttachmentEntity.class));
+ if (TopicConstant.APPROVED.equals(formDTO.getAuditType())) {
+ List voiceList =
+ attachmentList.stream().filter(item -> TopicConstant.VOICE.equals(item.getAttachmentType()) && TopicConstant.REVIEW.equals(item.getStatus())).collect(Collectors.toList());
+ if (CollectionUtils.isNotEmpty(voiceList)) {
+ voiceList.forEach(item -> item.setStatus(TopicConstant.APPROVED));
+ topicDraftAttachmentService.updateBatchById(ConvertUtils.sourceToTarget(voiceList, TopicDraftAttachmentEntity.class));
+ }
}
//发送积分
@@ -672,7 +773,7 @@ public class TopicDraftServiceImpl extends BaseServiceImpl