|
@@ -132,6 +132,22 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
|
|
|
|
|
|
@Override
|
|
|
public List<CrowdTaskVO> findMoreHotTasksList(String keyword, int taskCount, String testTypeCode) {
|
|
|
+ List<CrowdTaskVO> crowdTaskVOS = this.getTaskList(keyword, testTypeCode);
|
|
|
+ // 过滤定向任务,并对结果进行排序 接收任务、任务状态、任务创建时间
|
|
|
+ List<CrowdTaskVO> taskVOS;
|
|
|
+ taskVOS = crowdTaskVOS.stream().filter(crowdTaskVO -> crowdTaskVO.getStatus() != CrowdTestTaskStatus.HAS_TIME_OUT)
|
|
|
+ .filter(crowdTaskVO -> !crowdTaskVO.getDistributionType().equals(DistributeType.DIRECT.getId()))
|
|
|
+ .sorted(Comparator.comparing(CrowdTaskVO::getAcceptedCount)
|
|
|
+ .thenComparing(CrowdTaskVO::getStatus).thenComparing(CrowdTaskVO::getCreateTime).reversed()).collect(Collectors.toList());
|
|
|
+
|
|
|
+ if(taskCount != 0){
|
|
|
+ taskVOS = taskVOS.stream().limit(taskCount).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ return taskVOS;
|
|
|
+ }
|
|
|
+
|
|
|
+ @NotNull
|
|
|
+ private List<CrowdTaskVO> getTaskList(String keyword, String testTypeCode) {
|
|
|
// 获取领域、应用、测试类型code 和 name 的map
|
|
|
Map<String, String> fieldMap = dataCache.getFieldMap();
|
|
|
Map<String, String> applicationMap = dataCache.getApplicationTypeMap();
|
|
@@ -151,8 +167,8 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
|
|
|
});
|
|
|
|
|
|
// 过滤掉已结束、已截止、已删除的任务
|
|
|
- List<CrowdTaskVO> crowdTaskVOS = taskListInProject.stream().filter(crowdTestTask -> crowdTestTask.getStatus()!=CrowdTestTaskStatus.HAS_FINISHED
|
|
|
- && crowdTestTask.getStatus()!=CrowdTestTaskStatus.HAS_TIME_OUT && crowdTestTask.getIsDeleted()==DeletedStatus.isNotDeleted).map(task -> {
|
|
|
+ List<CrowdTaskVO> crowdTaskVOS = taskListInProject.stream().filter(crowdTestTask -> crowdTestTask.getStatus()!= CrowdTestTaskStatus.HAS_FINISHED
|
|
|
+ && crowdTestTask.getStatus()!=CrowdTestTaskStatus.HAS_TIME_OUT && crowdTestTask.getIsDeleted()== DeletedStatus.isNotDeleted).map(task -> {
|
|
|
// 判断任务是否截止
|
|
|
if (task.getDeadTime().getTime() <= System.currentTimeMillis() && task.getStatus() < CrowdTestTaskStatus.HAS_FINISHED) {
|
|
|
task.setStatus(CrowdTestTaskStatus.HAS_TIME_OUT);
|
|
@@ -167,9 +183,14 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
|
|
|
if (!testTypeCode.equals("")){
|
|
|
crowdTaskVOS = crowdTaskVOS.stream().filter(crowdTaskVO -> crowdTaskVO.getServiceType().equals(testMap.get(testTypeCode))).collect(Collectors.toList());
|
|
|
}
|
|
|
- // 过滤定向任务,并对结果进行排序 接收任务、任务状态、任务创建时间
|
|
|
- List<CrowdTaskVO> taskVOS;
|
|
|
- taskVOS = crowdTaskVOS.stream().filter(crowdTaskVO -> crowdTaskVO.getStatus() != CrowdTestTaskStatus.HAS_TIME_OUT)
|
|
|
+ return crowdTaskVOS;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<CrowdTaskVO> findWaitingAcceptByNameLike(int taskCount, String keyword, String testTypeCode) {
|
|
|
+ List<CrowdTaskVO> crowdTaskVOS = this.getTaskList(keyword, testTypeCode);
|
|
|
+ // 过滤定向任务,并对结果进行排序 任务创建时间、接收数量、任务状态
|
|
|
+ List<CrowdTaskVO> taskVOS = crowdTaskVOS.stream().filter(crowdTaskVO -> crowdTaskVO.getStatus() != CrowdTestTaskStatus.HAS_TIME_OUT)
|
|
|
.filter(crowdTaskVO -> !crowdTaskVO.getDistributionType().equals(DistributeType.DIRECT.getId()))
|
|
|
.sorted(Comparator.comparing(CrowdTaskVO::getCreateTime)
|
|
|
.thenComparing(CrowdTaskVO::getAcceptedCount).thenComparing(CrowdTaskVO::getStatus).reversed()).collect(Collectors.toList());
|
|
@@ -181,11 +202,6 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<CrowdTaskVO> findWaitingAcceptByNameLike(int showTaskCount, String keyword, String testTypeCode) {
|
|
|
- return this.findMoreHotTasksList(keyword, showTaskCount, testTypeCode);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
public ExamVO getExamInfo(Long examId) {
|
|
|
CrowdTestTask crowdTestTask = projectRepo.getTaskInfoByExamId(examId);
|
|
|
ExamVO result = new ExamVO();
|
|
@@ -426,14 +442,14 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
|
|
|
isFirstAcceptPeople = true;
|
|
|
}
|
|
|
|
|
|
- task.receive(userId);
|
|
|
+ task.receive(userId, false);
|
|
|
project.setJoinCount(project.getJoinCount() + 1);
|
|
|
|
|
|
// 判断是否为第三方任务,如果是则管理员自身也是一个参与者
|
|
|
Optional<EndPointPO> endPointPOOptional = endPointDao.findByTaskCode(task.getCode());
|
|
|
if(endPointPOOptional.isPresent() && isFirstAcceptPeople){
|
|
|
- task.receive(project.getRegionalManagerId());
|
|
|
- project.setJoinCount(project.getJoinCount() + 1);
|
|
|
+ task.receive(project.getRegionalManagerId(), true);
|
|
|
+// project.setJoinCount(project.getJoinCount() + 1);
|
|
|
}
|
|
|
|
|
|
projectRepo.saveCrowdTestProject(project);
|