Переглянути джерело

Merge branch 'feature-V2.0' of ssh://git.mooctest.com:1022/crowd-2019/crowd-test-service-backend into feature-V2.0

git 5 роки тому
батько
коміт
25f09c58cf

+ 2 - 0
core/src/main/java/com/mooctest/crowd/domain/repository/UserRepo.java

@@ -389,6 +389,8 @@ public class UserRepo implements IUserRepo {
             }
         }
         userResult.setRoleList(roleResultList);
+
+        /*获取机构认证的信息*/
         userResult = getEvaluationInfo(userResult);
 
         /*获取个人认证的信息*/

+ 18 - 6
site/src/main/java/com/mooctest/crowd/site/command/ApplyAgencyAuthCommand.java

@@ -1,11 +1,14 @@
 package com.mooctest.crowd.site.command;
 
+import com.alibaba.fastjson.JSONObject;
 import com.mooctest.crowd.domain.domainobject.EvaluationAgency;
 import com.mooctest.crowd.domain.domainobject.EvaluationAgencyAbility;
 import com.mooctest.crowd.domain.factory.UserFactory;
 import lombok.Data;
 import org.springframework.beans.BeanUtils;
 import javax.validation.constraints.NotNull;
+import java.sql.Timestamp;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -15,19 +18,28 @@ import java.util.stream.Collectors;
  * @date 2019-08-12 01:05
  */
 @Data
-public class ApplyAgencyAuthCommand {
+public class ApplyAgencyAuthCommand{
+    @NotNull(message = "请选择性别")
+    private String sex;
     @NotNull(message = "机构名称不可为空")
     private String evaluationAgencyName;
-    @NotNull(message = "银行卡号不可为空")
-    private String bankAccount;
+    @NotNull(message = "请上传身份证正面照")
+    private String idCardPositivePhoto;//身份证正面照
+    @NotNull(message = "请上传身份证反面照")
+    private String idCardBackPhoto;//身份证反面照
+    @NotNull(message = "请正确填写身份证过期时间")
+    private Timestamp idCardDeadTime;
     @NotNull(message = "机构地址不可为空")
     private String address;
-    @NotNull(message = "评测能力不可为空")
+//    @NotNull(message = "评测能力不可为空")
     private List<String> evaluationAgencyAbilityList;
-    @NotNull(message = "机构资源不可为空")
+//    @NotNull(message = "机构资源不可为空")
     private List<AgencyResourceCommand> evaluationAgencyResourceList;
     @NotNull(message = "LOGO不可为空")
     private String agencyPhoto;
+    @NotNull(message = "请选择认证研发机构或者评测机构")
+    private ArrayList<Integer> roleList;
+
 
     public EvaluationAgency toAgency(){
         EvaluationAgency agency = UserFactory.defaultAgency();
@@ -40,7 +52,7 @@ public class ApplyAgencyAuthCommand {
             agency.setEvaluationAgencyAbilityList(this.evaluationAgencyAbilityList.stream().map(EvaluationAgencyAbility::new).collect(Collectors.toList()));
             agency.setEvaluationAgencyResourceList(this.evaluationAgencyResourceList.stream().map(AgencyResourceCommand::toAgencyResource).collect(Collectors.toList()));
         }
-
+        agency.setType(JSONObject.toJSONString(this.roleList));
         agency.setIsDeleted(0);
         agency.setIsAuthentication(0);
         return agency;

+ 3 - 3
site/src/main/java/com/mooctest/crowd/site/controller/CrowdTaskController.java

@@ -30,9 +30,9 @@ public class CrowdTaskController{
 
     @RequestMapping(value = "/project/{projectCode}/task/{taskCode}", method = RequestMethod.GET)
     public TaskDetailsDTO getTask(@PathVariable("projectCode") String projectCode, @PathVariable("taskCode") String taskCode, HttpSession session){
-//        Object user = session.getAttribute("userId");
-//        if (user == null)
-//            return taskService.getTaskDetails(projectCode, taskCode, null);
+        Object user = session.getAttribute("userId");
+        if (user == null)
+            return taskService.getTaskDetails(projectCode, taskCode, null);
         Long userId = Long.parseLong((String)session.getAttribute("userId"));
         return taskService.getTaskDetails(projectCode, taskCode, userId);
     }

+ 5 - 9
site/src/main/java/com/mooctest/crowd/site/data/dto/CrowdTestSquareIndexDTO.java

@@ -1,9 +1,5 @@
 package com.mooctest.crowd.site.data.dto;
 
-import com.mooctest.crowd.domain.domainobject.CrowdTestProjectStatus;
-import com.mooctest.crowd.domain.domainobject.CrowdTestTaskStatus;
-import com.mooctest.crowd.domain.model.CrowdTestProjectPO;
-import com.mooctest.crowd.domain.model.CrowdTestTaskPO;
 import com.mooctest.crowd.site.data.vo.CrowdTaskVO;
 import com.mooctest.crowd.site.data.vo.CrowdTestProjectVO;
 import lombok.Data;
@@ -34,16 +30,16 @@ public class CrowdTestSquareIndexDTO {
      */
     public void initHotTaskAndProject(){
         List<CrowdTestProjectVO> projectVOS = this.crowdTestProjectVOs;
-
-        this.crowdTestProjectVOs = projectVOS.subList(0, 6);
+        this.crowdTestProjectVOs = projectVOS.size() <= 6 ? projectVOS : projectVOS.subList(0, 6);
+        
 
         //根据参与人数和创建时间进行排序
         List<CrowdTestProjectVO> list1 = projectVOS.stream().sorted(Comparator.comparing(CrowdTestProjectVO::getJoinCount).reversed()).collect(Collectors.toList());
         //截取前七条
-        this.hotCrowdTestProjectVOs = list1.subList(0, 7);
-        List<CrowdTaskVO> tasklist1 = crowdTestTaskVOS.subList(0, 6);
+        this.hotCrowdTestProjectVOs = list1.size() <= 7 ? list1 :list1.subList(0, 7);
+        List<CrowdTaskVO> tasklist1 = crowdTestTaskVOS.size() <= 6 ? crowdTestTaskVOS : crowdTestTaskVOS.subList(0, 6);
         List<CrowdTaskVO> tasklist2 = crowdTestTaskVOS.stream().sorted(Comparator.comparing(CrowdTaskVO::getAcceptedCount).reversed()).collect(Collectors.toList());
-        this.hotCrowdTaskVOs = tasklist2.subList(0, 7);
+        this.hotCrowdTaskVOs = tasklist2.size() <= 7 ? tasklist2 : tasklist2.subList(0, 7);
         this.crowdTestTaskVOS = tasklist1;
     }
 }

+ 9 - 7
site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java

@@ -1450,9 +1450,13 @@ public class WebMediatorImpl implements ViewMediator {
 
     private TaskOperationControl initTaskPermission(CrowdTestProject project, CrowdTestTask task, User user) {
         TaskOperationControl taskOperationControl = new TaskOperationControl();
-        if (user == null)
+
+        if (user == null || task.getStatus() == CrowdTestTaskStatus.HAS_FINISHED || task.getStatus() == CrowdTestTaskStatus.HAS_TIME_OUT) {
             return taskOperationControl;
-        if (task.getStatus() == CrowdTestTaskStatus.HAS_TIME_OUT) {
+        }
+
+        //发包机构和发包人员视角
+        if (user.getRoleList().stream().anyMatch(role -> role.getName().equals(RoleType.PARTY_AGENCY.getName()) || role.getName().equals(RoleType.PARTY_USER.getName())) && task.getStatus() != CrowdTestTaskStatus.HAS_REJECTED) {
             return taskOperationControl;
         }
 
@@ -1470,8 +1474,8 @@ public class WebMediatorImpl implements ViewMediator {
                 taskOperationControl.setConfirmFinish(false);
             }
         }
-        //评测机构视角
-        if (user.getRoleList().stream().anyMatch(role -> role.getName().equals("evaluationAgency")) && task.getStatus() != CrowdTestTaskStatus.HAS_REJECTED) {
+        //评测机构和测评人员视角 //??? 已拒绝视图
+        else if (user.getRoleList().stream().anyMatch(role -> role.getName().equals("evaluationAgency") || role.getName().equals(RoleType.EVALUATION_USER.getName())) && task.getStatus() != CrowdTestTaskStatus.HAS_REJECTED) {
             if ((task.getDistributionType() == 0 && task.getEvaluationAgencyId().equals(user.getId()))
                     || (task.getDistributionType() == 2 && task.getStatus() >= CrowdTestTaskStatus.HAS_RECEIVED)) {
                 List<TaskToUser> acceptedUserList = task.getAcceptedUserList();
@@ -1515,9 +1519,7 @@ public class WebMediatorImpl implements ViewMediator {
                 }
             }
         }
-        if (task.getStatus() == CrowdTestTaskStatus.HAS_FINISHED || task.getStatus() == CrowdTestTaskStatus.HAS_TIME_OUT) {
-            taskOperationControl.noAll();
-        }
+
         System.out.println(taskOperationControl);
         return taskOperationControl;
     }

+ 33 - 5
site/src/main/java/com/mooctest/crowd/site/service/impl/AgencyServiceImpl.java

@@ -1,9 +1,6 @@
 package com.mooctest.crowd.site.service.impl;
 
-import com.mooctest.crowd.domain.dao.EvaluationAgencyDao;
-import com.mooctest.crowd.domain.dao.TaskToUserDao;
-import com.mooctest.crowd.domain.dao.UserDao;
-import com.mooctest.crowd.domain.dao.UserTaskCountDao;
+import com.mooctest.crowd.domain.dao.*;
 import com.mooctest.crowd.domain.domainobject.*;
 import com.mooctest.crowd.domain.exception.BaseException;
 import com.mooctest.crowd.domain.exception.EvaluationAgencyNotExistException;
@@ -12,6 +9,7 @@ import com.mooctest.crowd.domain.exception.UserNotExistException;
 import com.mooctest.crowd.domain.model.EvaluationAgencyPO;
 import com.mooctest.crowd.domain.model.RankCountInfo;
 import com.mooctest.crowd.domain.model.UserTaskCountPO;
+import com.mooctest.crowd.domain.model.UserToRolePO;
 import com.mooctest.crowd.domain.repository.EvaluationAgencyRepo;
 import com.mooctest.crowd.domain.repository.UserRepo;
 import com.mooctest.crowd.site.anticorruption.UserAntiCorruption;
@@ -53,6 +51,8 @@ public class AgencyServiceImpl implements AgencyService {
     private UserDao userDao;
     @Autowired
     private UserRepo userRepo;
+    @Autowired
+    private UserToRoleDao userToRoleDao;
 
     @Autowired
     private ViewMediator mediator;
@@ -118,13 +118,13 @@ public class AgencyServiceImpl implements AgencyService {
 
             return list.stream().filter(evaluationAgencyVO-> evaluationAgencyVO.getEvaluationAgencyName().contains(keyword)).collect(Collectors.toList());
         }
-
     }
     @Override
     public UserDTO applyAgency(Long userId, ApplyAgencyAuthCommand command) {
         EvaluationAgency agency = command.toAgency();
         User user = userRepo.getByID(userId);
         user.applyAgencyAuthentication(agency);
+        user.setEvaluationAgency(agency);
         return mediator.renderUser(userRepo.saveUser(user));
     }
 
@@ -198,6 +198,34 @@ public class AgencyServiceImpl implements AgencyService {
         if (user.getEvaluationAgency() == null)
             throw new BaseException("该用户未申请机构认证!");
         user.getEvaluationAgency().passAuthentication();
+         if(user.getEvaluationAgency().getType().contains("1")&&user.getEvaluationAgency().getType().contains("2")){
+             UserToRolePO userToRolePO=new UserToRolePO();
+             userToRolePO.setUserId(userId);
+             //给发包角色
+             userToRolePO.setRoleId(RoleType.PARTY_USER.getId());
+              userToRoleDao.save(userToRolePO);
+              //给接包角色
+             UserToRolePO u2r=new UserToRolePO();
+             u2r.setUserId(userId);
+             u2r.setRoleId(RoleType.EVALUATION_USER.getId());
+             userToRoleDao.save(u2r); }
+
+         //1是认证为研发机构0是认证为评测机构
+      else   if(user.getEvaluationAgency().getType().contains("1")){
+
+             UserToRolePO userToRolePO=new UserToRolePO();
+             userToRolePO.setUserId(userId);
+            //给发包角色
+             userToRolePO.setRoleId(RoleType.PARTY_AGENCY.getId());
+             userToRoleDao.save(userToRolePO);
+         }
+      else if(user.getEvaluationAgency().getType().contains("0"))   {
+          //给接包角色
+             UserToRolePO userToRolePO=new UserToRolePO();
+             userToRolePO.setUserId(userId);
+             userToRolePO.setRoleId(RoleType.AGENCY.getId());
+             userToRoleDao.save(userToRolePO);
+         }
         user.getRoleList().add(userRepo.getRole("evaluationAgency"));
         return new AgencyVO(userRepo.saveUser(user).getEvaluationAgency());
     }

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

@@ -7,7 +7,6 @@ import com.mooctest.crowd.domain.exception.BadRequestException;
 import com.mooctest.crowd.domain.exception.BaseException;
 import com.mooctest.crowd.domain.exception.Excel2ProjectException;
 import com.mooctest.crowd.domain.factory.CrowdTestProjectFactory;
-import com.mooctest.crowd.domain.model.RolePO;
 import com.mooctest.crowd.domain.model.UserTaskCountPO;
 import com.mooctest.crowd.domain.model.UserToRolePO;
 import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
@@ -133,37 +132,11 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
 
     @Override
     public ProjectDetailsDTO createCrowdProject(CrowdTestProjectCommand command, long userId) {
-        boolean canCreateProject = false;//当前用户是否能接包
         // 获取用户所有角色
-        List<UserToRolePO> usertoRole = userToRoleDao.findByUserId(userId);
-        //用户所有角色PO
-        List<RolePO> rolePOS = new ArrayList<>();//用户所有角色列表
-        //用户所有角色id
-        long rolIdArray[] = new long[usertoRole.size()];
-        for (int i = 0; i < rolIdArray.length; i++) {
-            rolIdArray[i] = usertoRole.get(i).getRoleId();
-            Optional<RolePO> role = roleDao.findById(rolIdArray[i]);
-            rolePOS.add(role.get());
-        }
-        //获取用户角色列表所有的角色name;
-        List<String> roleNames = new ArrayList<>();
-        for (int i = 0; i < rolePOS.size(); i++) {
-            roleNames.add(rolePOS.get(i).getName());
-        }
-
-        for (int i = 0; i < roleNames.size(); i++) {
-            if (roleNames.get(i).equals("RegionalManager") || roleNames.get(i).equals("SystemAdministrator")
-                    || roleNames.get(i).equals("enterpriseUser") || roleNames.get(i).equals("partyUser") || roleNames.get(i).equals("partyAgency")) {
-                canCreateProject = true;
-            } else {
-                canCreateProject = false;
-                throw new BaseException("用户权限不足无法创建项目");
-
-            }
-        }
-
-
-        if (canCreateProject) {
+        List<UserToRolePO> userToRole = userToRoleDao.findByUserId(userId);
+        if(userToRole.stream().anyMatch(userToRolePO -> userToRolePO.getRoleId().equals(RoleType.PARTY_USER.getId()) ||
+                userToRolePO.getRoleId().equals(RoleType.PARTY_AGENCY.getId()) || userToRolePO.getRoleId().equals(RoleType.AGENCY.getId()) ||
+                userToRolePO.getRoleId().equals(RoleType.REGIONAL_MANAGER.getId()) || userToRolePO.getRoleId().equals(RoleType.SYSTEM_ADMIN.getId()))){
             CrowdTestProject project = command.toCrowdProject();
             project.setStatus(CrowdTestProjectStatus.HAS_RELEASED);
             log.info("\n" + project.toString() + "\n");
@@ -177,8 +150,9 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
             projectDetailsDTO.setProjectDetails(new CrowdProjectVO(project));
             themeSchedulerService.createNewThemeScheduler(project);
             return projectDetailsDTO;
+        }else{
+            throw new BaseException("用户权限不足无法创建项目");
         }
-        return null;
     }
 
     @Override

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
site/src/main/java/com/mooctest/crowd/site/service/impl/UserServiceImpl.java


Деякі файли не було показано, через те що забагато файлів було змінено