Bläddra i källkod

众测资源搜索

git 5 år sedan
förälder
incheckning
6fa3c881a0

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

@@ -25,4 +25,6 @@ public interface ResourceDao extends CrudRepository<ResourcePO, Long>, JpaSpecif
     List<ResourcePO> findAll();
 
     Page<ResourcePO> findAll(Specification<ResourcePO> spec , Pageable pageable);
+
+    List<ResourcePO> findByNameLike(String name);
 }

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
site/src/main/java/com/mooctest/crowd/site/controller/CommonController.java


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

@@ -103,4 +103,6 @@ public interface ViewMediator {
     List<ResourceVO>  getResource();
 
     ResourceVO getResourceDetailed(String code);
+
+    List<ResourceVO>  getSearchResource(String name);
 }

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

@@ -1050,6 +1050,32 @@ public class WebMediatorImpl implements ViewMediator {
         return resourceVO;
     }
 
+    @Override
+    public List<ResourceVO> getSearchResource(String name) {
+        List<ResourceVO> resourceVOList = new ArrayList<>();
+        resourceDao.findByNameLike("%" + name + "%").forEach(resourcePO -> {
+            ResourceVO resourceVO = new ResourceVO();
+            resourceVO.setCode(resourcePO.getCode());
+            resourceVO.setName(resourcePO.getName());
+            Optional<ResourceTypePO> type = resourceTypeDao.findByCode(resourcePO.getType());
+            resourceVO.setType(type.get().getName());
+            resourceVO.setQuantity(resourcePO.getQuantity());
+            resourceVO.setPhotoUrl(resourcePO.getPhotoUrl());
+            resourceVO.setDescription(resourcePO.getDescription());
+            resourceVO.setScene(resourcePO.getScene());
+            resourceVO.setUnitWork(resourcePO.getUnitWork());
+            resourceVO.setStandard(resourcePO.getStandard());
+            resourceVO.setUnit(resourcePO.getUnit());
+            resourceVO.setState(resourcePO.getState());
+            resourceVO.setStartTime(resourcePO.getStartTime());
+            resourceVO.setPersonnel(resourcePO.getPersonnel());
+            resourceVO.setRemarks(resourcePO.getRemarks());
+            resourceVOList.add(resourceVO);
+        });
+        List<ResourceVO> results=resourceVOList.stream().sorted(Comparator.comparing(ResourceVO::getStartTime).reversed()).collect(Collectors.toList());
+        return results;
+    }
+
     private ProjectOperationControl initProjectPermission(CrowdTestProject project, User user) {
         ProjectOperationControl operationControl = new ProjectOperationControl();
         if (user == null)

+ 4 - 0
site/src/main/java/com/mooctest/crowd/site/service/CommonService.java

@@ -4,6 +4,7 @@ import com.mooctest.crowd.site.data.dto.IndexDTO;
 import com.mooctest.crowd.site.data.dto.IndexInfoDTO;
 import com.mooctest.crowd.site.data.dto.IndexPageDTO;
 import com.mooctest.crowd.site.data.dto.MyCrowdDTO;
+import com.mooctest.crowd.site.data.response.ResponseVO;
 import com.mooctest.crowd.site.data.vo.*;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
@@ -39,4 +40,7 @@ public interface CommonService {
     List<ResourceVO>  getResource();
 
     ResourceVO getResourceDetailed(String code);
+
+    ResponseVO findByNameLike(SearchConditionVO searchConditionVO);
+
 }

+ 34 - 0
site/src/main/java/com/mooctest/crowd/site/service/impl/CommonServiceImpl.java

@@ -1,19 +1,30 @@
 package com.mooctest.crowd.site.service.impl;
 
 import com.mooctest.crowd.domain.repository.*;
+import com.mooctest.crowd.site.constants.CommonConstant;
+import com.mooctest.crowd.site.data.ColumnFilter;
 import com.mooctest.crowd.site.data.dto.IndexDTO;
 import com.mooctest.crowd.site.data.dto.IndexInfoDTO;
 import com.mooctest.crowd.site.data.dto.IndexPageDTO;
 import com.mooctest.crowd.site.data.dto.MyCrowdDTO;
+import com.mooctest.crowd.site.data.enums.ColumnFilterType;
+import com.mooctest.crowd.site.data.response.ResponseVO;
+import com.mooctest.crowd.site.data.response.ServerCode;
 import com.mooctest.crowd.site.data.vo.*;
 import com.mooctest.crowd.site.mediator.ViewMediator;
 import com.mooctest.crowd.site.service.CommonService;
+import com.mooctest.crowd.site.util.DataUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Sort;
 import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -116,4 +127,27 @@ public class CommonServiceImpl implements CommonService {
     public ResourceVO getResourceDetailed(String code) {
         return viewMediator.getResourceDetailed(code);
     }
+
+    @Override
+    public ResponseVO findByNameLike(SearchConditionVO searchConditionVO) {
+        Pageable pageable = this.getPageable(searchConditionVO);
+        String keyword = searchConditionVO.getKeyword();
+        List<ResourceVO> resourceList=viewMediator.getSearchResource(keyword);
+        Page<ResourceVO> resourcePage = DataUtils.listToPage(resourceList, pageable);
+        return new ResponseVO<>(ServerCode.SUCCESS, resourcePage);
+    }
+
+    Pageable getPageable(SearchConditionVO searchConditionVO) {
+        int activePage = searchConditionVO.getActivePage() == 0 ? 1 : searchConditionVO.getActivePage();
+        Sort sort = new Sort(Sort.Direction.DESC, "id");
+        if (searchConditionVO.getColumnFilters() != null) {
+            for (ColumnFilter columnFilter : searchConditionVO.getColumnFilters()) {
+                if (ColumnFilterType.SORT.getName().equals(columnFilter.getType()) && columnFilter.getValue() != null) {
+                    sort = new Sort(Sort.Direction.fromString(columnFilter.getValue()), columnFilter.getField());
+                    break;
+                }
+            }
+        }
+        return new PageRequest(activePage - 1, CommonConstant.SQUARE_ROWS_ON_PAGE, sort);
+    }
 }

Vissa filer visades inte eftersom för många filer har ändrats