Procházet zdrojové kódy

修改页面按钮布局

weihy před 3 roky
rodič
revize
2be43d09bc

+ 5 - 0
core/src/main/java/com/mooctest/crowd/domain/dao/UserToRoleDao.java

@@ -1,7 +1,9 @@
 package com.mooctest.crowd.domain.dao;
 
 import com.mooctest.crowd.domain.model.UserToRolePO;
+import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.repository.query.Param;
 
 import javax.transaction.Transactional;
 import java.util.List;
@@ -18,4 +20,7 @@ public interface UserToRoleDao extends CrudRepository<UserToRolePO,Long> {
     List<UserToRolePO> findByRoleId(Long roleId);
 
     UserToRolePO save(UserToRolePO userToRolePO);
+
+    @Query(value="SELECT user_to_role.UTR_R_ID from user_to_role WHERE user_to_role.UTR_U_ID=?",nativeQuery = true)
+    List<Long> findRoleId(@Param("userId") Long userId);
 }

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

@@ -1704,24 +1704,30 @@ public class WebMediatorImpl implements ViewMediator {
             //区域管理员或系统管理员视角
             if (user.getRoleList().stream().anyMatch(role -> role.getName().equals("SystemAdministrator"))
                     || (user.getRegionalManager() != null && user.getId().equals(project.getRegionalManagerId()))) {
+                List<TaskToUser> acceptedUserList = task.getAcceptedUserList();
+                Optional<TaskToUser> taskToUserOptional = acceptedUserList.stream().filter(taskToUser -> taskToUser.getUserId().equals(user.getId())).findFirst();
                 if (task.getStatus() < CrowdTestTaskStatus.HAS_RECEIVED) {
+
                     taskOperationControl.setUpdate(true);
                     taskOperationControl.setTaskRecommend(true);
-                    taskOperationControl.setUploadReport(true);
                     taskOperationControl.setReceive(true);
                     // 具有配置项,需要在第三方进行填写报告
                     if(endPointPOOptional.isPresent()){
                         taskOperationControl.setWriteReport(true);
                     }
-                }
-                else{
+                }else if(task.getStatus() == CrowdTestTaskStatus.HAS_RECEIVED&&taskToUserOptional.isPresent()){
+                        taskOperationControl.setUploadReport(true);
+                        if (taskToUserOptional.get().getHasReport() == 1 && taskToUserOptional.get().getIsCommitted() == 0) {
+                            taskOperationControl.setFinish(true);
+                        } else if (taskToUserOptional.get().getHasReport() == 1 && taskToUserOptional.get().getIsCommitted() == 1) {
+                        taskOperationControl.setFinish(false);
+                        taskOperationControl.setUploadReport(false);
+                    }
+                }else{
                     taskOperationControl.setTaskRecommend(true);
                     if ((task.getParticipantHasCommittedCount() == task.getAcceptedCount() && task.getStatus() == CrowdTestTaskStatus.HAS_RECEIVED) || (task.getParticipantHasCommittedCount() == task.getParticipantCount() && task.getStatus() == CrowdTestTaskStatus.HAS_COMMITED)) {
                         taskOperationControl.setConfirmFinish(true);
                     }
-
-                    taskOperationControl.setFinish(false);
-                    taskOperationControl.setUploadReport(true);
                     if (task.getStatus() == CrowdTestTaskStatus.HAS_FINISHED || task.getStatus() == CrowdTestTaskStatus.HAS_TIME_OUT) {
                         taskOperationControl.setConfirmFinish(false);
                         taskOperationControl.setTaskRecommend(false);

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

@@ -3,12 +3,14 @@ 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.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;
@@ -68,6 +70,9 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
     @Autowired
     private CommonRepo commonRepo;
 
+    @Autowired
+    private UserToRoleDao userToRoleDao;
+
     @Override
     public List<CrowdTaskVO> findMoreHotTasks() {
         return viewMediator.findMoreHotTasks();
@@ -200,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))) {