Browse Source

优化我的众测接口

郭超 4 năm trước cách đây
mục cha
commit
38deccdde0

+ 26 - 23
core/src/main/java/com/mooctest/crowd/domain/repository/CrowdTestProjectRepo.java

@@ -105,7 +105,7 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
         return this.getCrowdTestProjectInfo(crowdTestProjectCode);
     }
 
-    public CrowdTestProject getCrowdTestProjectInfo(String crowdTestProjectCode) {
+    private CrowdTestProject getCrowdTestProjectInfo(String crowdTestProjectCode) {
         CrowdTestProjectPO crowdTestProjectPO = crowdTestProjectDao.findByCodeAndIsDeleted(crowdTestProjectCode, DeletedStatus.isNotDeleted);
         if (crowdTestProjectPO == null) {
             throw new CrowdTestProjectNotExistException();
@@ -358,33 +358,36 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
         List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
         for (CrowdTestTaskPO crowdTestTaskPO : crowdTestTaskPOList) {
             CrowdTestTask crowdTestTaskResult = Converter.convert(CrowdTestTask.class, crowdTestTaskPO);
-            // 判断否存在配置项
-            Optional<EndPointPO> endPointPO = endPointDao.findByTaskCode(crowdTestTaskResult.getCode());
-            if(endPointPO.isPresent()){
-                crowdTestTaskResult.setEndPoint(Converter.convert(EndPoint.class, endPointPO.get()));
-            }
-
-            // 检索任务中的所有已接收任务的人员信息
-            List<TaskToUserPO> taskToUserPOList = taskToUserDao.findByTaskCode(crowdTestTaskResult.getCode());
-            List<TaskToUser> taskToUserList = taskToUserPOList.stream().map(taskToUserPO -> {
-                TaskToUser taskToUser = Converter.convert(TaskToUser.class, taskToUserPO);
-                // 获取人员详细信息
-                Optional<UserPO> userPOOptional = userDao.findById(taskToUser.getUserId());
-                if (userPOOptional.isPresent()) {
-                    taskToUser.setUser(Converter.convert(User.class, userPOOptional.get()));
-                } else {
-                    throw new HttpBadRequestException("无此人员的信息");
+            // 如果是指定的任务,需要找出详细信息
+            if(taskCode != null){
+                // 判断否存在配置项
+                Optional<EndPointPO> endPointPO = endPointDao.findByTaskCode(crowdTestTaskResult.getCode());
+                if(endPointPO.isPresent()){
+                    crowdTestTaskResult.setEndPoint(Converter.convert(EndPoint.class, endPointPO.get()));
                 }
-                // 获取每个人员的报告信息
-                List<CrowdTestReport> crowdTestReportListResult = getReportByTaskCodeAndUserId(crowdTestTaskPO.getCode(), taskToUser.getUserId());
-                taskToUser.setCrowdTestReportList(crowdTestReportListResult);
-                return taskToUser;
-            }).collect(Collectors.toList());
-            crowdTestTaskResult.setAcceptedUserList(taskToUserList);
+
+                // 检索任务中的所有已接收任务的人员信息
+                List<TaskToUserPO> taskToUserPOList = taskToUserDao.findByTaskCode(crowdTestTaskResult.getCode());
+                List<TaskToUser> taskToUserList = taskToUserPOList.stream().map(taskToUserPO -> {
+                    TaskToUser taskToUser = Converter.convert(TaskToUser.class, taskToUserPO);
+                    // 获取人员详细信息
+                    Optional<UserPO> userPOOptional = userDao.findById(taskToUser.getUserId());
+                    if (userPOOptional.isPresent()) {
+                        taskToUser.setUser(Converter.convert(User.class, userPOOptional.get()));
+                    } else {
+                        throw new HttpBadRequestException("无此人员的信息");
+                    }
+                    // 获取每个人员的报告信息
+                    List<CrowdTestReport> crowdTestReportListResult = getReportByTaskCodeAndUserId(crowdTestTaskPO.getCode(), taskToUser.getUserId());
+                    taskToUser.setCrowdTestReportList(crowdTestReportListResult);
+                    return taskToUser;
+                }).collect(Collectors.toList());
+                crowdTestTaskResult.setAcceptedUserList(taskToUserList);
 
 //            // 检索任务中的所有的报告
 //            List<CrowdTestReport> crowdTestReportListResult = getCrowdTestReportByCrowdTestTask(crowdTestTaskPO.getCode());
 //            crowdTestTaskResult.setCrowdTestReportList(crowdTestReportListResult);
+            }
             crowdTestTaskListResult.add(crowdTestTaskResult);
         }
         crowdTestProjectResult.setCrowdTestTaskList(crowdTestTaskListResult);

+ 1 - 1
core/src/main/java/com/mooctest/crowd/domain/repository/IUserRepo.java

@@ -23,7 +23,7 @@ public interface IUserRepo {
 
     User getByIDJustInfo(Long userId) throws UserNotExistException, RoleNotFoundException;
 
-    User getInfoAndRolesByID(Long userId) throws UserNotExistException;
+    User getInfoAndRolesAndRegionalMangerByID(Long userId) throws UserNotExistException;
 
     List<User> getByIdList(List<Long> ids) throws RoleNotFoundException;
 

+ 13 - 17
core/src/main/java/com/mooctest/crowd/domain/repository/UserRepo.java

@@ -78,7 +78,6 @@ public class UserRepo implements IUserRepo {
             throw new UserNotExistException("用户不存在");
         } else {
             User user = getUserAndRoleAndPermissionByUserPO(userPOOptional.get());
-
             return user;
         }
     }
@@ -105,7 +104,7 @@ public class UserRepo implements IUserRepo {
     }
 
     @Override
-    public User getInfoAndRolesByID(Long userId) throws UserNotExistException {
+    public User getInfoAndRolesAndRegionalMangerByID(Long userId) throws UserNotExistException {
         Optional<UserPO> userPOOptional = userDao.findById(userId);
         if (!userPOOptional.isPresent()){
             throw new UserNotExistException("用户不存在");
@@ -121,6 +120,7 @@ public class UserRepo implements IUserRepo {
         List<UserToRolePO> userToRolePOList = userToRoleDao.findByUserId(userResult.getId());
         List<Role> roleList = userToRolePOList.stream().map(userToRolePO -> roleMap.get(userToRolePO.getRoleId())).collect(Collectors.toList());
         userResult.setRoleList(roleList);
+        this.getRegionalInfo(userPO, userResult);
         return userResult;
     }
 
@@ -444,7 +444,18 @@ public class UserRepo implements IUserRepo {
             }
 
         userResult.setPersonAbilities(abailities);
+        this.getRegionalInfo(userPO, userResult);
+
+        //获取系统管理员信息
+        SystemAdministratorToUserPO systemAdministratorToUserPO = systemAdministratorToUserDao.findByUserIdAndIsDeleted(userPO.getId(), DeletedStatus.isNotDeleted);
+        if (systemAdministratorToUserPO != null) {
+            userResult.setSystemAdministratorToUser(Converter.convert(SystemAdministratorToUser.class, systemAdministratorToUserPO));
+        }
 
+        return userResult;
+    }
+
+    private void getRegionalInfo(UserPO userPO, User userResult) {
         /*获取区域管理员信息*/
         List<RegionalManagerToRegionalPO> regionalManagerToRegionalPOList = regionalManagerToRegionalDao.findByUserIdAndIsDeleted(userPO.getId(), DeletedStatus.isNotDeleted);
         if (regionalManagerToRegionalPOList.size() > 0) {
@@ -463,20 +474,9 @@ public class UserRepo implements IUserRepo {
             regionalManager.setRegionalList(regionalList);
             userResult.setRegionalManager(regionalManager);
         }
-
-        //获取系统管理员信息
-        SystemAdministratorToUserPO systemAdministratorToUserPO = systemAdministratorToUserDao.findByUserIdAndIsDeleted(userPO.getId(), DeletedStatus.isNotDeleted);
-        if (systemAdministratorToUserPO != null) {
-            userResult.setSystemAdministratorToUser(Converter.convert(SystemAdministratorToUser.class, systemAdministratorToUserPO));
-        }
-
-        return userResult;
     }
 
 
-
-
-
     private User getEvaluationInfo(User userResult) {
         /*获取测评机构信息*/
         Optional<EvaluationAgencyPO> evaluationAgencyPOOptional = evaluationAgencyDao.findByUserIdAndIsDeleted(userResult.getId(), DeletedStatus.isNotDeleted);
@@ -494,10 +494,6 @@ public class UserRepo implements IUserRepo {
             }
             evaluationAgencyResult.setEvaluationAgencyAbilityList(evaluationAgencyAbilityList);
 
-
-
-
-
             /*获取测评机构资源*/
             List<EvaluationAgencyResourcePO> evaluationAgencyResourcePOList = agencyResourceDao.findByEvaluationAgencyIdAndIsDeleted(evaluationAgencyResult.getId(), DeletedStatus.isNotDeleted);
             List<EvaluationAgencyResource> evaluationAgencyResourceList = new ArrayList<>();

+ 7 - 7
site/src/main/java/com/mooctest/crowd/site/anticorruption/WebLogAspect.java

@@ -31,7 +31,7 @@ public class WebLogAspect {
 
 	private Logger logger = LoggerFactory.getLogger(getClass());
 
-	private String uuid = UUID.randomUUID().toString();
+	private String uuid;
 
 	ThreadLocal<Long> startTime = new ThreadLocal<>();
 
@@ -46,9 +46,9 @@ public class WebLogAspect {
 
 	@Before("webLog()")
 	// JoinPoint它是执行程序 (如方法执行、构造函数调用或字段分配) 期间的特定点
-	public void doBefore(JoinPoint joinPoint) throws Throwable {
-		startTime.set(System.currentTimeMillis());
-
+	public void doBefore(JoinPoint joinPoint) {
+		this.startTime.set(System.currentTimeMillis());
+		this.uuid = UUID.randomUUID().toString();
 		/**
 		 * 获取 request 中包含的请求参数
 		 */
@@ -91,7 +91,7 @@ public class WebLogAspect {
 		 * 入参日志
 		 */
 		logger.info("[AOP-LOG-START] {}\n\ttraceId: {}\n\trequestIP: {}\n\tcontentType:{}\n\trequestUrl: {}\n\t" +
-						"requestMethod: {}\n\trequestParams: {}\n\ttargetClassAndMethod: {}#{}", uuid,uuid,request.getRemoteAddr(),
+						"requestMethod: {}\n\trequestParams: {}\n\ttargetClassAndMethod: {}#{}", this.uuid,this.uuid,request.getRemoteAddr(),
 				request.getHeader("Content-Type"),request.getRequestURL(), request.getMethod(), params.toString(),
 				method.getDeclaringClass().getName(), method.getName());
 
@@ -100,7 +100,7 @@ public class WebLogAspect {
 	@AfterReturning(returning = "ret", pointcut = "webLog()")
 	public void doAfterReturning(Object ret) throws Throwable {
 		// 处理完请求,返回内容
-		logger.info("[AOP-LOG-END] {}\n\t{}", uuid, ret);
-		logger.info("SPEND TIME : " + (System.currentTimeMillis() - startTime.get()));
+		logger.info("[AOP-LOG-END] {}\n\t{}", this.uuid, ret);
+		logger.info("[SPEND TIME] {}\t{} ms", this.uuid, (System.currentTimeMillis() - this.startTime.get()));
 	}
 }

+ 1 - 1
site/src/main/java/com/mooctest/crowd/site/controller/CrowdReportController.java

@@ -99,7 +99,7 @@ public class CrowdReportController {
         log.info("更行项目报告,projectCode: " + projectCode);
         if (result.hasErrors())
             throw new BaseException(result.getFieldError().getDefaultMessage());
-        return reportService.updatePorjctReport(projectCode, reportCode, command);
+        return reportService.updateProjectReport(projectCode, reportCode, command);
     }
 
     public long getUserFromSession(HttpSession session) {

+ 2 - 0
site/src/main/java/com/mooctest/crowd/site/data/dto/MyCrowdDTO.java

@@ -31,4 +31,6 @@ public class MyCrowdDTO implements Serializable {
     private Long unfinishedTaskCount;
     private Long finishedTaskCount;
     private boolean canImportTask;
+    private boolean isAgency;
+    private boolean isPart;
 }

+ 2 - 2
site/src/main/java/com/mooctest/crowd/site/mediator/ViewMediator.java

@@ -50,7 +50,7 @@ public interface ViewMediator {
 
     IndexInfoDTO renderIndexInfos();
 
-    MyCrowdDTO renderMyCrowd(Long userId);
+    MyCrowdDTO renderMyCrowd(User user);
 
     UserDataDTO renderMyCrowdData(Long userId);
 
@@ -73,7 +73,7 @@ public interface ViewMediator {
 
     CrowdTestTask changeTypeByProjectAndTask(CrowdTestProject project, CrowdTestTask task);
 
-    ProjectDetailsDTO renderProjectDetails(CrowdTestProject project, User user);
+    ProjectDetailsDTO renderProjectDetails(CrowdTestProject project, Long userId);
 
     ReportDetailsDTO renderTaskReportDetails(String projectCode, String taskCode, String reportCode, Long userId);
 

+ 6 - 5
site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java

@@ -492,9 +492,9 @@ public class WebMediatorImpl implements ViewMediator {
     }
 
     @Override
-    public MyCrowdDTO renderMyCrowd(Long userId) {
+    public MyCrowdDTO renderMyCrowd(User user) {
+        Long userId = user.getId();
         MyCrowdDTO myCrowdDTO = new MyCrowdDTO();
-        User user = userRepo.getByID(userId);
         //我的众测 - 项目相关信息
         
         // 获取领域、应用、测试类型code 和 name 的map
@@ -587,7 +587,7 @@ public class WebMediatorImpl implements ViewMediator {
 
         // 测评机构或者测试人员
         if (AuthCheckServiceImpl.isAgency(user)) {
-            List<TaskToUserPO> taskToUserPOS = taskToUserDao.findByUserId(user.getId());
+            List<TaskToUserPO> taskToUserPOS = taskToUserDao.findByUserId(userId);
             if (taskToUserPOS != null && taskToUserPOS.size() > 0) {
                 allTaskOfAgency = taskToUserPOS.stream().map(taskToUserPO -> {
                             CrowdTestTaskPO crowdTestTaskPO = taskDao.findByCodeAndIsDeleted(taskToUserPO.getTaskCode(), DeletedStatus.isNotDeleted);
@@ -800,12 +800,13 @@ public class WebMediatorImpl implements ViewMediator {
     }
 
     @Override
-    public ProjectDetailsDTO renderProjectDetails(CrowdTestProject project, User user) {
+    public ProjectDetailsDTO renderProjectDetails(CrowdTestProject project, Long userId) {
 
         Map<String, String> fieldMap = commonRepo.getFieldCodeNameMap();
         Map<String, String> applicationMap = commonRepo.getApplicationCodeNameMap();
         Map<String, String> testMap = commonRepo.getTypeCodeNameMap();
 
+        User user = userRepo.getInfoAndRolesAndRegionalMangerByID(userId);
         boolean saveFlag = false;
         // 判断项目是否截止
         if (project.getDeadTime().getTime() <= System.currentTimeMillis() && project.getStatus() < CrowdTestProjectStatus.HAS_FINISHED) {
@@ -964,7 +965,7 @@ public class WebMediatorImpl implements ViewMediator {
         if (userId == null) {
             taskDetailsDTO.setTaskOperationControl(this.initTaskPermission(project, crowdTestTask, null));
         } else {
-            User user = userRepo.getInfoAndRolesByID(userId);
+            User user = userRepo.getInfoAndRolesAndRegionalMangerByID(userId);
             taskDetailsDTO.setTaskOperationControl(this.initTaskPermission(project, crowdTestTask, user));
             // 区域管理员视图
             List<TaskToUserVO> taskToUserVOS = new ArrayList<>();

+ 1 - 1
site/src/main/java/com/mooctest/crowd/site/service/CrowdReportService.java

@@ -21,5 +21,5 @@ public interface CrowdReportService {
 
     ReportDetailsDTO createProjectReport(String projectCode, CrowdTestReportCommand command);
 
-    ReportDetailsDTO updatePorjctReport(String projectCode, String reportCode, CrowdTestReportCommand command);
+    ReportDetailsDTO updateProjectReport(String projectCode, String reportCode, CrowdTestReportCommand command);
 }

+ 16 - 1
site/src/main/java/com/mooctest/crowd/site/service/impl/CommonServiceImpl.java

@@ -24,6 +24,7 @@ import com.mooctest.crowd.site.mediator.ViewMediator;
 import com.mooctest.crowd.site.mediator.impl.WebMediatorImpl;
 import com.mooctest.crowd.site.service.CommonService;
 import com.mooctest.crowd.site.util.DataUtils;
+import org.jetbrains.annotations.NotNull;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.beans.factory.annotation.Value;
@@ -88,7 +89,11 @@ public class CommonServiceImpl implements CommonService {
 
     @Override
     public MyCrowdDTO getPersonCrowd(Long userId) {
-        return viewMediator.renderMyCrowd(userId);
+        User user = userRepo.getByID(userId);
+        MyCrowdDTO myCrowdDTO = viewMediator.renderMyCrowd(user);
+        myCrowdDTO.setAgency(this.checkIsAgency(user));
+        myCrowdDTO.setPart(this.checkIsPart(user));
+        return myCrowdDTO;
     }
 
     @Override
@@ -223,6 +228,11 @@ public class CommonServiceImpl implements CommonService {
     @Override
     public Boolean checkCreateProject(Long userId) {
         User user = userRepo.getByID(userId);
+        return this.checkIsPart(user);
+    }
+
+    @NotNull
+    public Boolean checkIsPart(User user) {
         Boolean isPart = AuthCheckServiceImpl.canCreateProject(user);
         if(!isPart){
             throw new HaveNotPartAuthException();
@@ -233,6 +243,11 @@ public class CommonServiceImpl implements CommonService {
     @Override
     public Boolean checkAcceptTask(Long userId) {
         User user = userRepo.getByID(userId);
+        return this.checkIsAgency(user);
+    }
+
+    @NotNull
+    public Boolean checkIsAgency(User user) {
         Boolean isAgency = AuthCheckServiceImpl.canAcceptTask(user);
         if(!isAgency){
             throw new HaveNotAgencyAuthException();

+ 10 - 8
site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdProjectServiceImpl.java

@@ -196,9 +196,10 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
 
     @Override
     public ProjectDetailsDTO getProjectDetails(String projectCode, Long userId) {
+        CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
         if (userId == null)
-            return viewMediator.renderProjectDetails(projectRepo.getByProjectCode(projectCode), null);
-        return viewMediator.renderProjectDetails(projectRepo.getByProjectCode(projectCode), userRepo.getByID(userId));
+            return viewMediator.renderProjectDetails(project, null);
+        return viewMediator.renderProjectDetails(project, userId);
     }
 
     @Override
@@ -227,7 +228,7 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
 
     @Override
     public ProjectDetailsDTO updateProject(String projectCode, CrowdTestProjectCommand crowdTestProjectCommand) {
-        CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
+        CrowdTestProject project = projectRepo.getByProjectCodeJustInfo(projectCode);
         if (project.getStatus() == CrowdTestProjectStatus.HAS_FINISHED)
             throw new BaseException("结项项目禁止修改!");
         if (!project.getUserId().equals(crowdTestProjectCommand.getUserId()))
@@ -390,13 +391,14 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
 
     @Override
     public List<RegionalManagerVO> getRegionalManagerList() {
-        return viewMediator.renderRegionManagerList();
+//        return viewMediator.renderRegionManagerList();
+        return null;
     }
 
     @Override
     public ProjectDetailsDTO receiveProject(String projectCode, Long userId) {
-        CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
-        User user = userRepo.getByID(userId);
+        CrowdTestProject project = projectRepo.getByProjectCodeJustInfo(projectCode);
+        User user = userRepo.getInfoAndRolesAndRegionalMangerByID(userId);
         project.receiveProject(user);
         projectRepo.saveCrowdTestProject(project);
         return getProjectDetails(projectCode, userId);
@@ -404,14 +406,14 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
 
     @Override
     public void rejectProject(String projectCode, Long userId) {
-        CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
+        CrowdTestProject project = projectRepo.getByProjectCodeJustInfo(projectCode);
         project.reject(userId);
         projectRepo.saveCrowdTestProject(project);
     }
 
     @Override
     public ProjectDetailsDTO commitProject(String projectCode, Long userId) {
-        CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
+        CrowdTestProject project = projectRepo.getByProjectCodeJustInfo(projectCode);
         project.commitCrowdTestProject(userRepo.getByID(userId));
         projectRepo.saveCrowdTestProject(project);
         return getProjectDetails(projectCode, userId);

+ 6 - 6
site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdReportServiceImpl.java

@@ -43,7 +43,7 @@ public class CrowdReportServiceImpl implements CrowdReportService {
 
     @Override
     public ReportDetailsDTO createTaskReport(String projectCode, String taskCode, CrowdTestReportCommand command, Long userId) {
-        CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
+        CrowdTestProject project = projectRepo.getByProjectCodeAndTaskCode(projectCode, taskCode);
         Optional<CrowdTestTask> task = project.getCrowdTestTaskList()
                 .stream().filter(crowdTestTask -> crowdTestTask.getCode().equals(taskCode)).findFirst();
         if (!task.isPresent())
@@ -83,7 +83,7 @@ public class CrowdReportServiceImpl implements CrowdReportService {
     @Override
     public ReportDetailsDTO updateTaskReport(String projectCode, String taskCode, String reportCode, CrowdTestReportCommand command, Long userId) {
 
-        CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
+        CrowdTestProject project = projectRepo.getByProjectCodeAndTaskCode(projectCode, taskCode);
         Optional<CrowdTestTask> task = project.getCrowdTestTaskList()
                 .stream().filter(crowdTestTask -> crowdTestTask.getCode().equals(taskCode)).findFirst();
         if (!task.isPresent())
@@ -119,7 +119,7 @@ public class CrowdReportServiceImpl implements CrowdReportService {
 
     @Override
     public void deleteTaskReport(String projectCode, String taskCode, String reportCode) {
-        CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
+        CrowdTestProject project = projectRepo.getByProjectCodeAndTaskCode(projectCode, taskCode);
         project.getTaskReport(taskCode, reportCode).setIsDeleted(1);
         projectRepo.saveCrowdTestProject(project);
     }
@@ -131,7 +131,7 @@ public class CrowdReportServiceImpl implements CrowdReportService {
 
     @Override
     public ReportDetailsDTO createProjectReport(String projectCode, CrowdTestReportCommand command) {
-        CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
+        CrowdTestProject project = projectRepo.getByProjectCodeJustInfo(projectCode);
         if (project.getStatus() >= CrowdTestProjectStatus.HAS_COMMITED)
             throw new BaseException("当前阶段无法创建报告");
         CrowdTestReport report = command.toCrowdTestReport();
@@ -144,8 +144,8 @@ public class CrowdReportServiceImpl implements CrowdReportService {
     }
 
     @Override
-    public ReportDetailsDTO updatePorjctReport(String projectCode, String reportCode, CrowdTestReportCommand command) {
-        CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
+    public ReportDetailsDTO updateProjectReport(String projectCode, String reportCode, CrowdTestReportCommand command) {
+        CrowdTestProject project = projectRepo.getByProjectCodeJustInfoAndProjectReport(projectCode);
         if (project.getStatus() >= CrowdTestProjectStatus.HAS_COMMITED)
             throw new BaseException("当前阶段无法修改报告");
         CrowdTestReport report = project.getCrowdTestReportForProject();

+ 2 - 2
site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdTaskServiceImpl.java

@@ -428,7 +428,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
     @Override
     public String exportTask(String projectCode, String taskCode, Long userId) {
         // 获取项目和任务的详细信息,特定任务的信息
-        ProjectDetailsDTO projectDetailsDTO = viewMediator.renderProjectDetails(projectRepo.getByProjectCodeAndTaskCode(projectCode, taskCode), userRepo.getByID(userId));
+        ProjectDetailsDTO projectDetailsDTO = viewMediator.renderProjectDetails(projectRepo.getByProjectCodeAndTaskCode(projectCode, taskCode), userId);
 
         // 文件夹路径
         String fileDirectoryPath = fileSaveRootPath + UploadType.EXPORT_TASK_FILE;
@@ -540,7 +540,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
         crowdTestProject.setCrowdTestTaskList(crowdTestTaskList);
 
         projectRepo.saveCrowdTestProject(crowdTestProject);
-        return viewMediator.renderProjectDetails(projectRepo.getByProjectCode(crowdTestProject.getCode()), userRepo.getByID(userId));
+        return viewMediator.renderProjectDetails(projectRepo.getByProjectCodeAndTaskCode(crowdTestProject.getCode(), crowdTestTaskList.get(0).getCode()), userId);
     }
 
     /**