Browse Source

修复我的项目中存在已删除的项目、修复区域管理员对项目的操作视图

guo00guo 5 years ago
parent
commit
030a495bf7

+ 2 - 2
core/src/main/java/com/mooctest/crowd/domain/dao/CrowdTestProjectDao.java

@@ -32,9 +32,9 @@ public interface CrowdTestProjectDao extends CrudRepository<CrowdTestProjectPO,
 
     List<CrowdTestProjectPO> findByRegionalManagerIdAndIsDeleted(Long regionalManagerId, int isDeleted);
 
-    List<CrowdTestProjectPO> findAllByStatusLessThanAndProjectDistributionTypeId(Integer status, Long distribution);
+    List<CrowdTestProjectPO> findAllByStatusLessThanAndProjectDistributionTypeIdAndIsDeletedAndUserIdIsNot(Integer status, Long distribution, int isDeleted, Long userId);
 
-    List<CrowdTestProjectPO> findByStatusLessThanAndProjectDistributionTypeId(Integer status, Long distributionType);
+    List<CrowdTestProjectPO> findByStatusLessThanAndProjectDistributionTypeIdAndIsDeletedAndUserIdIsNot(Integer status, Long distributionType, int isDeleted, Long userId);
 
     @Query(value = "SELECT new com.mooctest.crowd.domain.model.RankInfo(SUM(p.quotedPrice), p.userId) FROM CrowdTestProjectPO p where p.status>1 GROUP BY p.userId ORDER BY SUM(p.quotedPrice) DESC")
     List<RankInfo> findTotalPriceOfUser(Pageable pageable);

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

@@ -189,9 +189,9 @@ public class WebMediatorImpl implements ViewMediator {
             //定向
             List<CrowdTestProjectPO> acceptableProject = crowdTestProjectPOList.stream().filter(crowdTestProjectPO -> crowdTestProjectPO.getStatus()==CrowdTestProjectStatus.HAS_RELEASED).collect(Collectors.toList());
             //广场的
-            acceptableProject.addAll(projectDao.findAllByStatusLessThanAndProjectDistributionTypeId(CrowdTestProjectStatus.HAS_RECEIVED, 2L));
+            acceptableProject.addAll(projectDao.findAllByStatusLessThanAndProjectDistributionTypeIdAndIsDeletedAndUserIdIsNot(CrowdTestProjectStatus.HAS_RECEIVED, 2L,DeletedStatus.isNotDeleted, userId));
             //区域的
-            acceptableProject.addAll(projectDao.findByStatusLessThanAndProjectDistributionTypeId(CrowdTestProjectStatus.HAS_RECEIVED, 1L)
+            acceptableProject.addAll(projectDao.findByStatusLessThanAndProjectDistributionTypeIdAndIsDeletedAndUserIdIsNot(CrowdTestProjectStatus.HAS_RECEIVED, 1L,DeletedStatus.isNotDeleted, userId)
                     .stream().filter(crowdTestProjectPO -> user.getRegionalManager().getRegionalList().stream()
                             .anyMatch(reg -> (reg.getProvince().equals("*") || reg.getProvince().equals(crowdTestProjectPO.getDistributionProvince())) && (reg.getCity().equals("*")||reg.getCity().equals(crowdTestProjectPO.getDistributionCity())))).collect(Collectors.toList()));
             myCrowdDTO.setAcceptableProjects(acceptableProject.stream().sorted(Comparator.comparing(CrowdTestProjectPO::getCreateTime).thenComparing(CrowdTestProjectPO::getStatus).reversed())
@@ -535,12 +535,14 @@ public class WebMediatorImpl implements ViewMediator {
         if (project.getUserId().equals(user.getId())||user.getRoleList().stream().anyMatch(role -> role.getName().equals("SystemAdministrator"))){
             if (project.getStatus() < CrowdTestProjectStatus.HAS_RECEIVED){
                 operationControl.setUpdate(true);
+                operationControl.setReceive(false);
             } else if (project.getStatus() == CrowdTestProjectStatus.HAS_COMMITED){
                 operationControl.setConfirmFinish(true);
             }
         }
         //区域管理员视角
-        if (user.getRoleList().stream().anyMatch(role -> role.getName().equals("RegionalManager"))){
+        else if (user.getRoleList().stream().anyMatch(role -> role.getName().equals("RegionalManager"))){
+            operationControl.setUpdate(false);
             if ((project.getProjectDistributionTypeId() == 0 && project.getRegionalManagerId().equals(user.getId()))
                     || (project.getProjectDistributionTypeId()>0 && project.getStatus()>=CrowdTestProjectStatus.HAS_RECEIVED && project.getRegionalManagerId().equals(user.getId()))){
                 if (project.getStatus() == CrowdTestProjectStatus.HAS_RELEASED){