|
@@ -4,12 +4,15 @@ import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
|
|
|
import com.mooctest.crowd.domain.domainobject.CrowdTestProjectStatus;
|
|
import com.mooctest.crowd.domain.domainobject.CrowdTestProjectStatus;
|
|
|
import com.mooctest.crowd.domain.exception.BaseException;
|
|
import com.mooctest.crowd.domain.exception.BaseException;
|
|
|
import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
|
|
import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
|
|
|
-import com.mooctest.crowd.site.command.ProjectDetailsCommand;
|
|
|
|
|
|
|
+import com.mooctest.crowd.site.command.CrowdTestProjectCommand;
|
|
|
import com.mooctest.crowd.site.data.dto.ProjectDetailsDTO;
|
|
import com.mooctest.crowd.site.data.dto.ProjectDetailsDTO;
|
|
|
|
|
+import com.mooctest.crowd.site.data.enums.ProjectType;
|
|
|
import com.mooctest.crowd.site.data.vo.CrowdProjectVO;
|
|
import com.mooctest.crowd.site.data.vo.CrowdProjectVO;
|
|
|
import com.mooctest.crowd.site.mediator.OperationMediator;
|
|
import com.mooctest.crowd.site.mediator.OperationMediator;
|
|
|
import com.mooctest.crowd.site.mediator.ViewMediator;
|
|
import com.mooctest.crowd.site.mediator.ViewMediator;
|
|
|
import com.mooctest.crowd.site.service.CrowdProjectService;
|
|
import com.mooctest.crowd.site.service.CrowdProjectService;
|
|
|
|
|
+import com.mooctest.crowd.site.util.GenerateFlowCodeUtil;
|
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
@@ -18,6 +21,7 @@ import org.springframework.stereotype.Service;
|
|
|
* @Email: 171256175@qq.com
|
|
* @Email: 171256175@qq.com
|
|
|
* @date 2019-07-29 10:51
|
|
* @date 2019-07-29 10:51
|
|
|
*/
|
|
*/
|
|
|
|
|
+@Slf4j
|
|
|
@Service
|
|
@Service
|
|
|
public class CrowdProjectServiceImpl implements CrowdProjectService {
|
|
public class CrowdProjectServiceImpl implements CrowdProjectService {
|
|
|
|
|
|
|
@@ -30,28 +34,37 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private OperationMediator operationMediator;
|
|
private OperationMediator operationMediator;
|
|
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private GenerateFlowCodeUtil codeUtil;
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
- public ProjectDetailsDTO getProjectDetails(Long projectId) {
|
|
|
|
|
- return viewMediator.renderProjectDetails(projectRepo.getByID(projectId));
|
|
|
|
|
|
|
+ public ProjectDetailsDTO getProjectDetails(String projectCode) {
|
|
|
|
|
+ return viewMediator.renderProjectDetails(projectRepo.getByProjectCode(projectCode));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public ProjectDetailsDTO createCrowdProject(ProjectDetailsCommand command) {
|
|
|
|
|
|
|
+ public ProjectDetailsDTO createCrowdProject(CrowdTestProjectCommand command) {
|
|
|
CrowdTestProject project = command.toCrowdProject();
|
|
CrowdTestProject project = command.toCrowdProject();
|
|
|
project.setStatus(CrowdTestProjectStatus.CREATED);
|
|
project.setStatus(CrowdTestProjectStatus.CREATED);
|
|
|
|
|
+ log.info("\n"+project.toString()+"\n");
|
|
|
|
|
+ String projectCode = codeUtil.generateFlowCode("PROJ-"+ProjectType.getCode(new Integer(command.getType())));
|
|
|
|
|
+ project.setCode(projectCode);
|
|
|
ProjectDetailsDTO projectDetailsDTO = new ProjectDetailsDTO();
|
|
ProjectDetailsDTO projectDetailsDTO = new ProjectDetailsDTO();
|
|
|
- projectDetailsDTO.setProjectDetails(new CrowdProjectVO(projectRepo.saveCreateCrowdTestProject(project)));
|
|
|
|
|
|
|
+ projectRepo.saveCrowdTestProject(project);
|
|
|
|
|
+ projectDetailsDTO.setProjectDetails(new CrowdProjectVO(project));
|
|
|
return projectDetailsDTO;
|
|
return projectDetailsDTO;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public ProjectDetailsDTO updateProject(Long projectId, ProjectDetailsCommand projectDetailsCommand) {
|
|
|
|
|
- CrowdTestProject project = projectRepo.getByID(projectId);
|
|
|
|
|
- if (project.getUserId() != projectDetailsCommand.getUserId())
|
|
|
|
|
|
|
+ public ProjectDetailsDTO updateProject(String projectCode, CrowdTestProjectCommand crowdTestProjectCommand) {
|
|
|
|
|
+ CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
|
|
|
|
|
+ if (project.getStatus().equals(CrowdTestProjectStatus.FINISHED))
|
|
|
|
|
+ throw new BaseException("结项项目禁止修改!");
|
|
|
|
|
+ if (project.getUserId() != crowdTestProjectCommand.getUserId())
|
|
|
throw new BaseException("UserId不一致");
|
|
throw new BaseException("UserId不一致");
|
|
|
//todo 后面需要加入是否有权限进行更新
|
|
//todo 后面需要加入是否有权限进行更新
|
|
|
- projectRepo.saveCreateCrowdTestProject(operationMediator.updateProject(project, projectDetailsCommand));
|
|
|
|
|
- return getProjectDetails(projectId);
|
|
|
|
|
|
|
+ projectRepo.saveCrowdTestProject(operationMediator.updateProject(project, crowdTestProjectCommand));
|
|
|
|
|
+ return getProjectDetails(projectCode);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|