Browse Source

测评机构添加区域管理员权限

weihy 3 years ago
parent
commit
821a314597

+ 15 - 0
core/src/main/java/com/mooctest/crowd/domain/dao/ProvinceDao.java

@@ -0,0 +1,15 @@
+package com.mooctest.crowd.domain.dao;
+
+import com.mooctest.crowd.domain.model.ProvincePO;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.repository.PagingAndSortingRepository;
+
+import javax.transaction.Transactional;
+import java.util.List;
+
+
+@Transactional
+public interface ProvinceDao extends PagingAndSortingRepository<ProvincePO, Long>, JpaSpecificationExecutor<ProvincePO> {
+
+    List<ProvincePO> findAll();
+}

+ 1 - 1
core/src/main/java/com/mooctest/crowd/domain/dao/RegionalManagerToRegionalDao.java

@@ -28,6 +28,6 @@ public interface RegionalManagerToRegionalDao extends PagingAndSortingRepository
 
     void deleteAll(Iterable<? extends RegionalManagerToRegionalPO> iterable);
 
-    RegionalManagerToRegionalPO save(RegionalManagerToRegionalPO regionalManagerToRegionalPO);
+    //RegionalManagerToRegionalPO save(RegionalManagerToRegionalPO regionalManagerToRegionalPO);
 
 }

+ 2 - 0
site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java

@@ -1708,6 +1708,7 @@ public class WebMediatorImpl implements ViewMediator {
                     taskOperationControl.setUpdate(true);
                     taskOperationControl.setTaskRecommend(true);
                     taskOperationControl.setUploadReport(true);
+                    taskOperationControl.setReceive(true);
                     // 具有配置项,需要在第三方进行填写报告
                     if(endPointPOOptional.isPresent()){
                         taskOperationControl.setWriteReport(true);
@@ -1720,6 +1721,7 @@ public class WebMediatorImpl implements ViewMediator {
                     }
 
                     taskOperationControl.setFinish(false);
+                    taskOperationControl.setUploadReport(true);
                     if (task.getStatus() == CrowdTestTaskStatus.HAS_FINISHED || task.getStatus() == CrowdTestTaskStatus.HAS_TIME_OUT) {
                         taskOperationControl.setConfirmFinish(false);
                         taskOperationControl.setTaskRecommend(false);

+ 26 - 0
site/src/main/java/com/mooctest/crowd/site/service/impl/AgencyServiceImpl.java

@@ -5,6 +5,8 @@ import com.mooctest.crowd.domain.domainobject.*;
 import com.mooctest.crowd.domain.exception.BaseException;
 import com.mooctest.crowd.domain.exception.EvaluationAgencyNotExistException;
 import com.mooctest.crowd.domain.exception.UserNotExistException;
+import com.mooctest.crowd.domain.model.ProvincePO;
+import com.mooctest.crowd.domain.model.RegionalManagerToRegionalPO;
 import com.mooctest.crowd.domain.model.UserTaskCountPO;
 import com.mooctest.crowd.domain.repository.EvaluationAgencyRepo;
 import com.mooctest.crowd.domain.repository.UserRepo;
@@ -25,6 +27,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.List;
@@ -62,6 +65,10 @@ public class AgencyServiceImpl implements AgencyService {
     private EvaluationAgencyDao agencyDao;
     @Autowired
     private UserTaskCountDao userTaskCountDao;
+    @Autowired
+    private RegionalManagerToRegionalDao regionalManagerToRegionalDao;
+    @Autowired
+    private ProvinceDao provinceDao;
 
     @Override
     public EvaluationAgencyVO getDetailById(long userId) {
@@ -246,17 +253,36 @@ public class AgencyServiceImpl implements AgencyService {
         if (user.getEvaluationAgency().getType().contains("0") && user.getEvaluationAgency().getType().contains("1")) {
             user.getRoleList().add(userRepo.getRole(RoleType.PARTY_AGENCY.getName()));
             user.getRoleList().add(userRepo.getRole(RoleType.AGENCY.getName()));
+            user.getRoleList().add(userRepo.getRole(RoleType.REGIONAL_MANAGER.getName()));
+            this.addRegionalManager(userId);
         }
         //1是认证为研发机构0是认证为评测机构
         else if (user.getEvaluationAgency().getType().contains("1")) {
             user.getRoleList().add(userRepo.getRole(RoleType.PARTY_AGENCY.getName()));
+            user.getRoleList().add(userRepo.getRole(RoleType.REGIONAL_MANAGER.getName()));
+            this.addRegionalManager(userId);
         } else if (user.getEvaluationAgency().getType().contains("0")) {
             //给接包角色
             user.getRoleList().add(userRepo.getRole(RoleType.AGENCY.getName()));
+            user.getRoleList().add(userRepo.getRole(RoleType.REGIONAL_MANAGER.getName()));
+            this.addRegionalManager(userId);
         }
         return new AgencyVO(userRepo.saveUser(user).getEvaluationAgency());
     }
 
+    private void addRegionalManager(Long userId) {
+        List<ProvincePO> provinceList= provinceDao.findAll();
+        for(int i=0;i<provinceList.size();i++){
+            RegionalManagerToRegionalPO  regionalManagerToRegionalPO = new RegionalManagerToRegionalPO();
+            regionalManagerToRegionalPO.setUserId(userId);
+            regionalManagerToRegionalPO.setProvince(provinceList.get(i).getName());
+            regionalManagerToRegionalPO.setCity("*");
+            regionalManagerToRegionalPO.setIsDeleted(0);
+            regionalManagerToRegionalPO.setCreateTime(new Timestamp(System.currentTimeMillis()));
+            regionalManagerToRegionalDao.save(regionalManagerToRegionalPO);
+        }
+    }
+
     @Override
     public AgencyVO rejectAuth(Long userId, String explain) {
         User user = userRepo.getByID(userId);

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

@@ -163,9 +163,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("您是项目发起者,不可接收自己项目下的测试任务!");
-        }
+        //if (project.getUserId().equals(userId)) {
+            //throw new BaseException("您是项目发起者,不可接收自己项目下的测试任务!");
+        //}
         CrowdTestTask task = project.getTask(taskCode);
         // 是否为第一个接包的人标识
         boolean isFirstAcceptPeople = false;