|
@@ -2,18 +2,21 @@ package com.mooctest.crowd.site.service.impl;
|
|
|
|
|
|
import com.mooctest.crowd.domain.dao.CrowdTestTaskDao;
|
|
|
import com.mooctest.crowd.domain.dao.EndPointDao;
|
|
|
-import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
|
|
|
-import com.mooctest.crowd.domain.domainobject.CrowdTestTask;
|
|
|
-import com.mooctest.crowd.domain.domainobject.CrowdTestTaskStatus;
|
|
|
-import com.mooctest.crowd.domain.domainobject.DistributeType;
|
|
|
+import com.mooctest.crowd.domain.dao.ResourceTokenDao;
|
|
|
+import com.mooctest.crowd.domain.dao.UserToRoleDao;
|
|
|
+import com.mooctest.crowd.domain.domainobject.*;
|
|
|
import com.mooctest.crowd.domain.exception.BaseException;
|
|
|
import com.mooctest.crowd.domain.exception.CrowdTestTaskNotExistException;
|
|
|
import com.mooctest.crowd.domain.exception.UnauthorizedException;
|
|
|
import com.mooctest.crowd.domain.model.EndPointPO;
|
|
|
+import com.mooctest.crowd.domain.model.ResourceTokenPO;
|
|
|
+import com.mooctest.crowd.domain.model.UserToRolePO;
|
|
|
import com.mooctest.crowd.domain.repository.CommonRepo;
|
|
|
import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
|
|
|
import com.mooctest.crowd.domain.repository.CrowdTestTaskRepo;
|
|
|
import com.mooctest.crowd.domain.repository.UserRepo;
|
|
|
+import com.mooctest.crowd.domain.util.Converter;
|
|
|
+import com.mooctest.crowd.domain.util.MD5Base64Util;
|
|
|
import com.mooctest.crowd.site.command.CrowdTestTaskCommand;
|
|
|
import com.mooctest.crowd.site.data.dto.TaskDetailsDTO;
|
|
|
import com.mooctest.crowd.site.data.dto.TaskSquareDTO;
|
|
@@ -47,6 +50,9 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
|
|
|
private EndPointDao endPointDao;
|
|
|
|
|
|
@Autowired
|
|
|
+ private ResourceTokenDao resourceTokenDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
CrowdTestProjectRepo projectRepo;
|
|
|
|
|
|
@Autowired
|
|
@@ -64,6 +70,9 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
|
|
|
@Autowired
|
|
|
private CommonRepo commonRepo;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private UserToRoleDao userToRoleDao;
|
|
|
+
|
|
|
@Override
|
|
|
public List<CrowdTaskVO> findMoreHotTasks() {
|
|
|
return viewMediator.findMoreHotTasks();
|
|
@@ -159,9 +168,9 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
|
|
|
public TaskDetailsDTO acceptTask(String projectCode, String taskCode, Long userId) {
|
|
|
CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
|
|
|
|
|
|
- if (project.getUserId().equals(userId)) {
|
|
|
- throw new BaseException("您是项目发起者,不可接收自己项目下的测试任务!");
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
CrowdTestTask task = project.getTask(taskCode);
|
|
|
|
|
|
boolean isFirstAcceptPeople = false;
|
|
@@ -196,7 +205,8 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
|
|
|
public TaskDetailsDTO commitTask(String projectCode, String taskCode, Long userId) {
|
|
|
CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
|
|
|
CrowdTestTask task = project.getTask(taskCode);
|
|
|
- if (userId.equals(project.getRegionalManagerId())) {
|
|
|
+ List<Long> roleList= userToRoleDao.findRoleId(userId);
|
|
|
+ if (userId.equals(project.getRegionalManagerId())&&!roleList.contains(2L)) {
|
|
|
|
|
|
task.commitByRegionalManager();
|
|
|
} else if (AuthCheckServiceImpl.isAgency(userRepo.getByID(userId))) {
|
|
@@ -236,5 +246,18 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
|
|
|
return TFIDFAnalyzer.getInstance().extractTagsList(taskDetails.getCrowdTaskVO().getDescription(), 20);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public String getToken(String projectCode, String taskCode, Long userId) {
|
|
|
+ Optional<ResourceTokenPO> resourceTokenPOOptional = resourceTokenDao.findByProjectCodeAndTaskCodeAndUserId(projectCode, taskCode, userId);
|
|
|
+ if(resourceTokenPOOptional.isPresent()){
|
|
|
+ return resourceTokenPOOptional.get().getToken();
|
|
|
+ }else{
|
|
|
+ String token = MD5Base64Util.EncryptionByBase64(projectCode + "-" + taskCode + "-" + userId);
|
|
|
+ ResourceToken resourceToken = new ResourceToken(projectCode, taskCode, userId, token);
|
|
|
+ ResourceTokenPO resourceTokenPO = resourceTokenDao.save(Converter.convert(ResourceTokenPO.class, resourceToken));
|
|
|
+ return resourceTokenPO.getToken();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|