|
|
@@ -17,6 +17,7 @@ import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.springframework.data.domain.Page;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
|
|
|
@@ -79,13 +80,73 @@ public class MetaTaskNewService {
|
|
|
}
|
|
|
|
|
|
public MetaRestResult<List<MetaTaskNew>> canGet(Long userId, Long channelId) {
|
|
|
- List<MetaTaskNew> metaTaskNews = metaTaskNewRepo.canGet(userId, channelId);
|
|
|
+ List<MetaTaskNew> metaTaskNews = metaTaskNewRepo.findAllByChannelIdAndPublishAndDel(channelId, true, false);
|
|
|
+ List<MetaTaskNew> newMetaTaskNews = new ArrayList<>();
|
|
|
try {
|
|
|
- metaTaskNews.forEach(this::buildAtomTask);
|
|
|
+ metaTaskNews.forEach(metaTaskNew -> {
|
|
|
+ buildAtomTaskUnReceived(metaTaskNew, userId);
|
|
|
+ });
|
|
|
+ metaTaskNews.forEach(metaTaskNew -> {
|
|
|
+ removeMetaTaskNew(metaTaskNew, newMetaTaskNews);
|
|
|
+ });
|
|
|
} catch (Exception e) {
|
|
|
return MetaRestResult.returnError(e.getMessage());
|
|
|
}
|
|
|
- return MetaRestResult.returnSuccess(metaTaskNews);
|
|
|
+ return MetaRestResult.returnSuccess(newMetaTaskNews);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void removeMetaTaskNew(MetaTaskNew metaTaskNew, List<MetaTaskNew> newMetaTaskNews) {
|
|
|
+ if (MetaTaskType.MAIN_LINE.equals(metaTaskNew.getType())) {
|
|
|
+ if (CollectionUtils.isEmpty(metaTaskNew.getMetaNodeTask()) && CollectionUtils.isEmpty(metaTaskNew.getMetaBranchLineTask())) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ newMetaTaskNews.add(metaTaskNew);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (MetaTaskType.BRANCH_LINE.equals(metaTaskNew.getType())) {
|
|
|
+ if (CollectionUtils.isEmpty(metaTaskNew.getMetaBranchLineTask())) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ newMetaTaskNews.add(metaTaskNew);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (MetaTaskType.DAILY.equals(metaTaskNew.getType())) {
|
|
|
+ if (CollectionUtils.isEmpty(metaTaskNew.getMetaDailyTask())) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ newMetaTaskNews.add(metaTaskNew);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void buildAtomTaskUnReceived(MetaTaskNew metaTaskNew, Long userId) {
|
|
|
+ if (MetaTaskType.MAIN_LINE.equals(metaTaskNew.getType())) {
|
|
|
+ List<MetaTaskBind> metaNodeTask = metaTaskBindRepo.findUnReceived(metaTaskNew.getId(), MetaTaskType.NODE.toString(), userId);
|
|
|
+ if (CollectionUtils.isNotEmpty(metaNodeTask)) {
|
|
|
+ buildMetaAtomTask(metaNodeTask);
|
|
|
+ metaTaskNew.setMetaNodeTask(metaNodeTask);
|
|
|
+ }
|
|
|
+ List<MetaTaskBind> metaBranchLineTask = metaTaskBindRepo.findUnReceived(metaTaskNew.getId(), MetaTaskType.BRANCH_LINE.toString(), userId);
|
|
|
+ if (CollectionUtils.isNotEmpty(metaBranchLineTask)) {
|
|
|
+ buildMetaAtomTask(metaBranchLineTask);
|
|
|
+ metaTaskNew.setMetaBranchLineTask(metaBranchLineTask);
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (MetaTaskType.BRANCH_LINE.equals(metaTaskNew.getType())) {
|
|
|
+ List<MetaTaskBind> metaBranchLineTask = metaTaskBindRepo.findUnReceived(metaTaskNew.getId(), MetaTaskType.BRANCH_LINE.toString(), userId);
|
|
|
+ if (CollectionUtils.isNotEmpty(metaBranchLineTask)) {
|
|
|
+ buildMetaAtomTask(metaBranchLineTask);
|
|
|
+ metaTaskNew.setMetaBranchLineTask(metaBranchLineTask);
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (MetaTaskType.DAILY.equals(metaTaskNew.getType())) {
|
|
|
+ List<MetaTaskBind> metaDailyTask = metaTaskBindRepo.findUnReceived(metaTaskNew.getId(), MetaTaskType.DAILY.toString(), userId);
|
|
|
+ if (CollectionUtils.isNotEmpty(metaDailyTask)) {
|
|
|
+ buildMetaAtomTask(metaDailyTask);
|
|
|
+ metaTaskNew.setMetaDailyTask(metaDailyTask);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private void buildAtomTask(MetaTaskNew metaTaskNew) {
|