소스 검색

创建任务时定向发布增加获取接包人员、更多热门项目中可以通过领域类型筛选、我的众测的导出任务通过变量控制

郭超 4 년 전
부모
커밋
4c83048d07

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

@@ -43,7 +43,7 @@ public interface CrowdTestProjectDao extends CrudRepository<CrowdTestProjectPO,
     List<CrowdTestProjectPO> findSquareIndexProject(int indexCount);
 
     //适用于众测广场 指定了查询热门项目卡片显示的数量
-    @Query(value = "SELECT * FROM crowd_test_project p WHERE CTP_STATUS !=4 and CTP_STATUS !=5 and CTP_IS_DELETED = 0 ORDER BY CTP_JOIN_COUNT DESC ,CTP_CREATE_TIME LIMIT ?1 ", nativeQuery = true)
+    @Query(value = "SELECT * FROM crowd_test_project p WHERE CTP_STATUS !=4 and CTP_STATUS !=5 and CTP_IS_DELETED = 0 ORDER BY CTP_JOIN_COUNT DESC ,CTP_CREATE_TIME DESC LIMIT ?1 ", nativeQuery = true)
     List<CrowdTestProjectPO> findHotProjectCardLimitCount(int projectCount);
 
     //更多热门项目

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

@@ -27,6 +27,8 @@ public interface EvaluationAgencyDao extends PagingAndSortingRepository<Evaluati
     @Override
     Iterable<EvaluationAgencyPO> findAll();
 
+    List<EvaluationAgencyPO> findAllByIsAuthenticationAndIsDeleted(int isAuthentication, int isDeleted);
+
     @Override
     void delete(EvaluationAgencyPO evaluationAgencyPO);
 

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

@@ -1,6 +1,5 @@
 package com.mooctest.crowd.domain.dao;
 
-import com.mooctest.crowd.domain.domainobject.PersonalAuthentication;
 import com.mooctest.crowd.domain.model.PersonalAuthenticationPO;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.repository.PagingAndSortingRepository;
@@ -26,6 +25,8 @@ public interface PersonalAuthenticationDao extends PagingAndSortingRepository<Pe
 
     List<PersonalAuthenticationPO> findAll();
 
+    List<PersonalAuthenticationPO> findAllByIsDeletedAndIsAuthentication(int deletedStatus, int isAuth);
+
     PersonalAuthenticationPO save(PersonalAuthenticationPO personalAuthenticationPO);
 
 }

+ 10 - 3
core/src/main/java/com/mooctest/crowd/domain/repository/EvaluationAgencyRepo.java

@@ -3,6 +3,7 @@ package com.mooctest.crowd.domain.repository;
 import com.mooctest.crowd.domain.dao.AgencyAbilityDao;
 import com.mooctest.crowd.domain.dao.AgencyResourceDao;
 import com.mooctest.crowd.domain.dao.EvaluationAgencyDao;
+import com.mooctest.crowd.domain.dao.PersonalAuthenticationDao;
 import com.mooctest.crowd.domain.domainobject.*;
 import com.mooctest.crowd.domain.exception.EvaluationAgencyResourceNotExist;
 import com.mooctest.crowd.domain.model.EvaluationAgencyAbilityPO;
@@ -41,6 +42,9 @@ public class EvaluationAgencyRepo implements IEvaluationAgencyRepo {
     @Autowired
     private EvaluationAgencyDao evaluationAgencyDao;
 
+    @Autowired
+    private PersonalAuthenticationDao personalAuthDao;
+
     @Override
     public EvaluationAgency findAgencyById(Long id){
         Optional<EvaluationAgencyPO> evaluationAgencyPO = evaluationAgencyDao.findById(id);
@@ -51,8 +55,6 @@ public class EvaluationAgencyRepo implements IEvaluationAgencyRepo {
         }
     }
 
-
-
     @Override
     public EvaluationAgency findAgencyByUserId(Long userId){
         EvaluationAgencyPO evaluationAgencyPO = evaluationAgencyDao.findByUserIdAndIsDeleted(userId, DeletedStatus.isNotDeleted);
@@ -62,11 +64,16 @@ public class EvaluationAgencyRepo implements IEvaluationAgencyRepo {
     @Override
     public List<EvaluationAgency> findAll() {
         List<EvaluationAgency> evaluationAgencyList = new ArrayList<>();
-        Iterable<EvaluationAgencyPO> agencyPOS = evaluationAgencyDao.findAll();
+        Iterable<EvaluationAgencyPO> agencyPOS = evaluationAgencyDao.findAllByIsAuthenticationAndIsDeleted(AuthenticationStatus.isAuthenticated, DeletedStatus.isNotDeleted);
         agencyPOS.forEach(agencyPO -> evaluationAgencyList.add(Converter.convert(EvaluationAgency.class, agencyPO)));
         return evaluationAgencyList;
     }
 
+
+    public List<PersonalAuthentication> findAllPersonalAuth(){
+       return personalAuthDao.findAllByIsDeletedAndIsAuthentication(DeletedStatus.isNotDeleted, AuthenticationStatus.isAuthenticated).stream().map(personalAuthPO -> Converter.convert(PersonalAuthentication.class, personalAuthPO)).collect(Collectors.toList());
+    }
+
     @Override
     public EvaluationAgencyResource findById(Long id){
         Optional<EvaluationAgencyResourcePO> evaluationAgencyResourcePOOptional = agencyResourceDao.findById(id);

+ 7 - 1
site/src/main/java/com/mooctest/crowd/site/command/CrowdTestTaskCommand.java

@@ -7,6 +7,8 @@ import lombok.Data;
 import org.springframework.beans.BeanUtils;
 
 import javax.validation.constraints.NotNull;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
 import java.sql.Timestamp;
 import java.util.Base64;
 import java.util.Map;
@@ -77,7 +79,9 @@ public class CrowdTestTaskCommand {
         if(endPoint.getServerCode() != null && endPoint.getServerCode() != ""){
             String serverCode = endPoint.getServerCode();
             try {
-                byte[] decodedBytes = Base64.getDecoder().decode(serverCode);
+                String decodeUrl;
+                decodeUrl = URLDecoder.decode(serverCode,"UTF-8");
+                byte[] decodedBytes = Base64.getDecoder().decode(decodeUrl);
                 String url = new String(decodedBytes);
 
                 if(url.contains("examId_")){
@@ -92,6 +96,8 @@ public class CrowdTestTaskCommand {
                 crowdTestTask.setEndPoint(endPoint);
             }catch (IllegalArgumentException e){
                 throw new CrowdTestEndPointException();
+            }catch (UnsupportedEncodingException e){
+                e.printStackTrace();
             }
         }
         return crowdTestTask;

+ 6 - 0
site/src/main/java/com/mooctest/crowd/site/controller/AgencyController.java

@@ -13,6 +13,7 @@ import com.mooctest.crowd.site.data.response.ServerCode;
 import com.mooctest.crowd.site.data.vo.AgencyVO;
 import com.mooctest.crowd.site.data.vo.EvaluationAgencyVO;
 import com.mooctest.crowd.site.data.vo.SearchConditionVO;
+import com.mooctest.crowd.site.data.vo.TestUserOrAgencyVO;
 import com.mooctest.crowd.site.service.AgencyService;
 import com.mooctest.crowd.site.service.ResidentAgencyService;
 import com.mooctest.crowd.site.util.DataUtils;
@@ -159,6 +160,11 @@ public class AgencyController extends BaseSearchController {
         return agencyService.getAgencyList();
     }
 
+    @RequestMapping(value = "/agencyAndTestUser/list", method = RequestMethod.GET)
+    public List<TestUserOrAgencyVO> getAgencyAndTestUserList() {
+        return agencyService.getAgencyAndTestUserList();
+    }
+
 
     @RequestMapping(value = "/agency/list/more", method = RequestMethod.POST)
     public ResponseVO getMoreAgencyList(@RequestBody SearchConditionVO searchConditionVO) {

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

@@ -84,6 +84,7 @@ public class CrowTestSquareController extends BaseSearchController {
      */
     @GetMapping("/task/{testTypeCode}")
     public ResponseVO getAll(@PathVariable("testTypeCode") String testTypeCode) {
+        LOG.info("testTypeCode " + testTypeCode);
         CrowdTestSquareIndexDTO crowdTestSquareIndexDTO = new CrowdTestSquareIndexDTO();
         crowdTestSquareIndexDTO.setCrowdTestTaskVOS(crowdTaskService.findWaitingAcceptByNameLike(showTaskCount,"", testTypeCode));//众测任务
         return new ResponseVO(ServerCode.SUCCESS, crowdTestSquareIndexDTO);
@@ -109,7 +110,7 @@ public class CrowTestSquareController extends BaseSearchController {
     @PostMapping("/hotProject/list")
     public ResponseVO findMoreHotProjectLists(@RequestBody SearchConditionVO searchConditionVO) {
         Pageable pageable = this.getPageable(searchConditionVO);
-        List<CrowdProjectVO> crowdTestProjectVOList = crowdProjectService.findAllMoreHotProjectList(searchConditionVO.getKeyword());
+        List<CrowdProjectVO> crowdTestProjectVOList = crowdProjectService.findAllMoreHotProjectList(searchConditionVO);
         Page<CrowdProjectVO> projectVOPage = DataUtils.listToPage(crowdTestProjectVOList, pageable);
         return new ResponseVO(ServerCode.SUCCESS, projectVOPage);
     }

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

@@ -30,4 +30,5 @@ public class MyCrowdDTO implements Serializable {
     private Long acceptableProjectCount;
     private Long unfinishedTaskCount;
     private Long finishedTaskCount;
+    private boolean canImportTask;
 }

+ 32 - 0
site/src/main/java/com/mooctest/crowd/site/data/vo/TestUserOrAgencyVO.java

@@ -0,0 +1,32 @@
+package com.mooctest.crowd.site.data.vo;
+
+import com.mooctest.crowd.domain.domainobject.EvaluationAgency;
+import com.mooctest.crowd.domain.domainobject.PersonalAuthentication;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.beans.BeanUtils;
+
+import java.io.Serializable;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class TestUserOrAgencyVO implements Serializable {
+
+    private Long id;
+    private Long userId;
+    private Integer isAuthentication;
+    private String name;
+    private String businessLicensePhoto;
+
+    public TestUserOrAgencyVO(EvaluationAgency agency){
+        BeanUtils.copyProperties(agency, this);
+        this.name = agency.getEvaluationAgencyName();
+    }
+
+    public TestUserOrAgencyVO(PersonalAuthentication testUser){
+        BeanUtils.copyProperties(testUser, this);
+        this.name = testUser.getRealName();
+    }
+}

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

@@ -86,6 +86,8 @@ public interface ViewMediator {
 
     List<EvaluationAgencyVO> renderAgencyList();
 
+    List<TestUserOrAgencyVO> renderAgencyAndTestUserList();
+
     List<BaseAuthVO> renderAuthingList();
 
     List<BaseAuthVO> renderAuthedList();
@@ -143,5 +145,4 @@ public interface ViewMediator {
     List<UserTaskCountVO> getCount();
 
     void  jumpPublicTesting(String projectCode, String taskCode, Long userId);
-
 }

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

@@ -568,6 +568,9 @@ public class WebMediatorImpl implements ViewMediator {
                     }).collect(Collectors.toList()));
             myCrowdDTO.setAcceptableProjectNoticeCount(Long.parseLong("" + acceptableProject.size()));
             myCrowdDTO.setAcceptableProjectCount((long) (myCrowdDTO.getAcceptableProjects() == null ? 0 : myCrowdDTO.getAcceptableProjects().size()));
+
+            // 可以导入任务,显示导入任务按钮
+            myCrowdDTO.setCanImportTask(true);
         }
         UserVO userVO = new UserVO(user);
         myCrowdDTO.setUserVO(userVO);
@@ -1059,16 +1062,24 @@ public class WebMediatorImpl implements ViewMediator {
     @Override
     public List<EvaluationAgencyVO> renderAgencyList() {
         List<EvaluationAgencyVO> agencyList = new ArrayList<>();
-        agencyDao.findAll().forEach(evaluationAgencyPO -> {
+        evaluationAgencyRepo.findAll().forEach(evaluationAgency -> {
             EvaluationAgencyVO agencyVO = new EvaluationAgencyVO();
-            agencyVO.setId(evaluationAgencyPO.getUserId());
-            agencyVO.setEvaluationAgencyName(evaluationAgencyPO.getEvaluationAgencyName());
+            agencyVO.setId(evaluationAgency.getUserId());
+            agencyVO.setEvaluationAgencyName(evaluationAgency.getEvaluationAgencyName());
             agencyList.add(agencyVO);
         });
         return agencyList.stream().collect(Collectors.toList());
     }
 
     @Override
+    public List<TestUserOrAgencyVO> renderAgencyAndTestUserList() {
+        List<TestUserOrAgencyVO> testUserOrAgencyVOS = new ArrayList<>();
+        testUserOrAgencyVOS.addAll(evaluationAgencyRepo.findAll().stream().map(TestUserOrAgencyVO::new).collect(Collectors.toList()));
+        testUserOrAgencyVOS.addAll( evaluationAgencyRepo.findAllPersonalAuth().stream().map(TestUserOrAgencyVO::new).collect(Collectors.toList()));
+        return testUserOrAgencyVOS;
+    }
+
+    @Override
     public List<BaseAuthVO> renderAuthingList() {
         List<BaseAuthVO> resultList = new ArrayList<>();
         resultList.addAll(personalAuthenticationDao.findByIsAuthentication(AuthenticationStatus.isAuthenIng).stream().map(personalAuthenticationPO -> {

+ 3 - 0
site/src/main/java/com/mooctest/crowd/site/service/AgencyService.java

@@ -7,6 +7,7 @@ import com.mooctest.crowd.site.data.dto.UserDTO;
 import com.mooctest.crowd.site.data.vo.AgencyDetailVO;
 import com.mooctest.crowd.site.data.vo.AgencyVO;
 import com.mooctest.crowd.site.data.vo.EvaluationAgencyVO;
+import com.mooctest.crowd.site.data.vo.TestUserOrAgencyVO;
 
 import java.util.List;
 
@@ -33,6 +34,8 @@ public interface AgencyService {
 
     List<EvaluationAgencyVO> getAgencyList();
 
+    List<TestUserOrAgencyVO> getAgencyAndTestUserList();
+
     AgencyVO passAuth(Long userId);
 
     AgencyVO rejectAuth(Long userId, String explain);

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

@@ -7,6 +7,7 @@ import com.mooctest.crowd.site.data.dto.ProjectDetailsDTO;
 import com.mooctest.crowd.site.data.vo.CrowdProjectVO;
 import com.mooctest.crowd.site.data.vo.CrowdTestProjectVO;
 import com.mooctest.crowd.site.data.vo.RegionalManagerVO;
+import com.mooctest.crowd.site.data.vo.SearchConditionVO;
 import org.springframework.data.domain.Pageable;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -23,7 +24,7 @@ public interface CrowdProjectService {
 
     List<CrowdTestProjectVO>  findHotProjectCardLimitCount(int projectCount);
 
-    List<CrowdProjectVO>  findAllMoreHotProjectList(String keyword);
+    List<CrowdProjectVO>  findAllMoreHotProjectList(SearchConditionVO searchConditionVO);
 
     List<CrowdTestProjectVO> findByNameLike(String name);
 

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

@@ -15,10 +15,7 @@ import com.mooctest.crowd.site.command.ApplyAgencyAuthCommand;
 import com.mooctest.crowd.site.command.GenerateAgencyCommand;
 import com.mooctest.crowd.site.data.dto.UserDTO;
 import com.mooctest.crowd.site.data.enums.RoleType;
-import com.mooctest.crowd.site.data.vo.AgencyDetailVO;
-import com.mooctest.crowd.site.data.vo.AgencyVO;
-import com.mooctest.crowd.site.data.vo.EvaluationAgencyVO;
-import com.mooctest.crowd.site.data.vo.UserVO;
+import com.mooctest.crowd.site.data.vo.*;
 import com.mooctest.crowd.site.mediator.ViewMediator;
 import com.mooctest.crowd.site.service.AgencyService;
 import lombok.extern.slf4j.Slf4j;
@@ -238,6 +235,11 @@ public class AgencyServiceImpl implements AgencyService {
     }
 
     @Override
+    public List<TestUserOrAgencyVO> getAgencyAndTestUserList() {
+        return mediator.renderAgencyAndTestUserList();
+    }
+
+    @Override
     public AgencyVO passAuth(Long userId) {
         User user = userRepo.getByID(userId);
         if (user.getEvaluationAgency() == null)

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

@@ -15,12 +15,14 @@ import com.mooctest.crowd.domain.repository.UserRepo;
 import com.mooctest.crowd.domain.util.Converter;
 import com.mooctest.crowd.site.command.CrowdTestProjectCommand;
 import com.mooctest.crowd.site.command.GenerateProjectCommand;
+import com.mooctest.crowd.site.data.ColumnFilter;
 import com.mooctest.crowd.site.data.dto.ProjectDetailsDTO;
 import com.mooctest.crowd.site.data.enums.ProjectType;
 import com.mooctest.crowd.site.data.enums.RoleType;
 import com.mooctest.crowd.site.data.vo.CrowdProjectVO;
 import com.mooctest.crowd.site.data.vo.CrowdTestProjectVO;
 import com.mooctest.crowd.site.data.vo.RegionalManagerVO;
+import com.mooctest.crowd.site.data.vo.SearchConditionVO;
 import com.mooctest.crowd.site.mediator.OperationMediator;
 import com.mooctest.crowd.site.mediator.ViewMediator;
 import com.mooctest.crowd.site.service.CrowdProjectService;
@@ -118,7 +120,13 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
     }
 
     @Override
-    public List<CrowdProjectVO> findAllMoreHotProjectList(String keyword) {
+    public List<CrowdProjectVO> findAllMoreHotProjectList(SearchConditionVO searchConditionVO) {
+        List<ColumnFilter> columnFilters = searchConditionVO.getColumnFilters();
+        String fieldCode = "";
+        if(columnFilters.size() > 0 && columnFilters.get(0).getType().equals("fieldCode")){
+            fieldCode = columnFilters.get(0).getValue();
+        }
+        String keyword = searchConditionVO.getKeyword();
         // 获取领域、应用、测试类型code 和 name 的map
         Map<String, String> fieldMap = commonRepo.getFieldCodeNameMap();
         Map<String, String> applicationMap = commonRepo.getApplicationCodeNameMap();
@@ -134,10 +142,17 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
             }
             return new CrowdProjectVO(crowdTestProject);
         }).collect(Collectors.toList());
+
         if (keyword != null && keyword != "") {
-            System.out.println("keyword  " + keyword);
             crowdProjectVOS = crowdProjectVOS.stream().filter(crowdProjectVO -> crowdProjectVO.getName().contains(keyword)).collect(Collectors.toList());
         }
+        if (fieldCode != null && !fieldCode.equals("")){
+            String finalFieldCode = fieldCode;
+            crowdProjectVOS = crowdProjectVOS.stream().filter(crowdProjectVO -> crowdProjectVO.getField().equals(fieldMap.get(finalFieldCode))).collect(Collectors.toList());
+        }
+//        if (appCode != null && !appCode.equals("")){
+//            crowdProjectVOS = crowdProjectVOS.stream().filter(crowdProjectVO -> crowdProjectVO.getPlatform().equals(applicationMap.get(appCode))).collect(Collectors.toList());
+//        }
         return crowdProjectVOS;
     }
 

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

@@ -139,7 +139,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
         }
 
         if (!testTypeCode.equals("")){
-            crowdTaskVOS = crowdTaskVOS.stream().filter(crowdTaskVO -> crowdTaskVO.getServiceType().equals(testTypeCode)).collect(Collectors.toList());
+            crowdTaskVOS = crowdTaskVOS.stream().filter(crowdTaskVO -> crowdTaskVO.getServiceType().equals(testMap.get(testTypeCode))).collect(Collectors.toList());
         }
         // 对结果进行排序 接收任务、任务状态、任务创建时间
         List<CrowdTaskVO> taskVOS;
@@ -473,6 +473,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
         crowdTestProject.setLinkManMobile(user.getMobile());
         crowdTestProject.setLinkMan(user.getName());
         crowdTestProject.setProjectDistributionTypeId(DistributeType.SQUARE.getId());
+        crowdTestProject.setStatus(CrowdTestProjectStatus.HAS_RECEIVED);
         crowdTestProject.setCreateTime(new Timestamp(System.currentTimeMillis()));
         // 判断领域类型是否存在
         Optional<FieldPO> fieldPO = fieldDao.findByName(crowdTestProject.getFieldType());