Преглед изворни кода

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

 Conflicts:
	site/src/main/java/com/mooctest/crowd/site/controller/CommonController.java
xuxuan пре 5 година
родитељ
комит
9026738e26
18 измењених фајлова са 212 додато и 17 уклоњено
  1. 9 1
      core/src/main/java/com/mooctest/crowd/domain/dao/ResourceDao.java
  2. 13 0
      core/src/main/java/com/mooctest/crowd/domain/dao/ResourceTypeDao.java
  3. 1 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/Competition.java
  4. 14 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/Resource.java
  5. 9 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/ResourceStatus.java
  6. 3 0
      core/src/main/java/com/mooctest/crowd/domain/model/CompetitionPO.java
  7. 37 0
      core/src/main/java/com/mooctest/crowd/domain/model/ResourcePO.java
  8. 24 0
      core/src/main/java/com/mooctest/crowd/domain/model/ResourceTypePO.java
  9. 26 2
      core/src/main/java/com/mooctest/crowd/domain/repository/ApplicationTypeRepo.java
  10. 20 4
      core/src/main/java/com/mooctest/crowd/domain/repository/CommonRepo.java
  11. 1 1
      core/src/main/java/com/mooctest/crowd/domain/repository/IApplicationTypeRepo.java
  12. 0 0
      site/src/main/java/com/mooctest/crowd/site/controller/CommonController.java
  13. 2 0
      site/src/main/java/com/mooctest/crowd/site/data/vo/CompetitionVO.java
  14. 16 0
      site/src/main/java/com/mooctest/crowd/site/data/vo/ResourceTypeVO.java
  15. 25 0
      site/src/main/java/com/mooctest/crowd/site/data/vo/ResourceVO.java
  16. 0 3
      site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java
  17. 4 2
      site/src/main/java/com/mooctest/crowd/site/service/CommonService.java
  18. 8 4
      site/src/main/java/com/mooctest/crowd/site/service/impl/CommonServiceImpl.java

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

@@ -1,19 +1,27 @@
 package com.mooctest.crowd.domain.dao;
 
+import com.mooctest.crowd.domain.model.CompetitionPO;
 import com.mooctest.crowd.domain.model.ResourcePO;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.repository.PagingAndSortingRepository;
 
 import javax.transaction.Transactional;
 import java.util.List;
 import java.util.Optional;
 
 @Transactional
-public interface ResourceDao extends CrudRepository<ResourcePO, Long>, JpaSpecificationExecutor<ResourcePO> {
+public interface ResourceDao extends CrudRepository<ResourcePO, Long>, JpaSpecificationExecutor<ResourcePO>,PagingAndSortingRepository<ResourcePO, Long>,JpaRepository<ResourcePO, Long> {
 
     Optional<ResourcePO> findByCode(String code);
 
     Optional<ResourcePO> findById(Long id);
 
     List<ResourcePO> findAll();
+
+    Page<ResourcePO> findAll(Specification<ResourcePO> spec , Pageable pageable);
 }

+ 13 - 0
core/src/main/java/com/mooctest/crowd/domain/dao/ResourceTypeDao.java

@@ -0,0 +1,13 @@
+package com.mooctest.crowd.domain.dao;
+
+import com.mooctest.crowd.domain.model.ResourceTypePO;
+import org.springframework.data.repository.CrudRepository;
+
+
+import javax.transaction.Transactional;
+import java.util.Optional;
+
+@Transactional
+public interface ResourceTypeDao extends CrudRepository<ResourceTypePO, Long>{
+    Optional<ResourceTypePO> findByCode(String code);
+}

+ 1 - 0
core/src/main/java/com/mooctest/crowd/domain/domainobject/Competition.java

@@ -18,6 +18,7 @@ public class Competition {
     private String name;
     private String linkUrl;
     private Timestamp startTime;
+    private String unit;
     private String image;
     private int isDeleted;
 }

+ 14 - 0
core/src/main/java/com/mooctest/crowd/domain/domainobject/Resource.java

@@ -2,6 +2,8 @@ package com.mooctest.crowd.domain.domainobject;
 
 import lombok.Data;
 
+import java.sql.Timestamp;
+
 /**
  * @author guochao
  * @date 2019/7/6 17:54
@@ -11,4 +13,16 @@ public class Resource {
     private Long id;
     private String code;
     private String name;
+    private String type;
+    private int quantity;
+    private String photoUrl;
+    private String description;
+    private String scene;
+    private String unitWork;
+    private String standard;
+    private String unit;
+    private String state;
+    private Timestamp startTime;
+    private String personnel;
+    private String remarks;
 }

+ 9 - 0
core/src/main/java/com/mooctest/crowd/domain/domainobject/ResourceStatus.java

@@ -0,0 +1,9 @@
+package com.mooctest.crowd.domain.domainobject;
+
+
+public class ResourceStatus {
+    public static final int R_FREE = 0;  //空闲
+    public static final int R_OCCUPY = 1; //占用
+    public static final int R_USABLE = 2; //可用
+    public static final int R_FAULT = 4; //故障
+}

+ 3 - 0
core/src/main/java/com/mooctest/crowd/domain/model/CompetitionPO.java

@@ -26,6 +26,9 @@ public class CompetitionPO {
     @Column(name = "C_START_TIME")
     private Timestamp startTime;
 
+    @Column(name="C_UNIT")
+    private String unit;
+
     @Column(name = "C_IMAGE")
     private String image;
 

+ 37 - 0
core/src/main/java/com/mooctest/crowd/domain/model/ResourcePO.java

@@ -3,6 +3,7 @@ package com.mooctest.crowd.domain.model;
 import lombok.Data;
 
 import javax.persistence.*;
+import java.sql.Timestamp;
 
 /**
  * @author guochao
@@ -21,4 +22,40 @@ public class ResourcePO {
 
     @Column(name = "R_NAME")
     private String name;
+
+    @Column(name = "R_RT_CODE")
+    private String type;
+
+    @Column(name = "R_QUANTITY")
+    private int quantity;
+
+    @Column(name = "R_PHOTO_URL")
+    private String photoUrl;
+
+    @Column(name = "R_DESCRIPTION")
+    private String description;
+
+    @Column(name = "R_SCENE")
+    private String scene;
+
+    @Column(name = "R_UNIT_WORK")
+    private String unitWork;
+
+    @Column(name = "R_STANDARD")
+    private String standard;
+
+    @Column(name = "R_UNIT")
+    private String unit;
+
+    @Column(name = "R_STATE")
+    private String state;
+
+    @Column(name = "R_DATE")
+    private Timestamp startTime;
+
+    @Column(name = "R_PERSONNEL")
+    private String personnel;
+
+    @Column(name = "R_REMARKS")
+    private String remarks;
 }

+ 24 - 0
core/src/main/java/com/mooctest/crowd/domain/model/ResourceTypePO.java

@@ -0,0 +1,24 @@
+package com.mooctest.crowd.domain.model;
+
+import lombok.Data;
+
+import javax.persistence.*;
+
+/**
+ * @author hanyuwei
+ * @date 2020/7/7
+ */
+@Data
+@Entity(name = "resource_type")
+public class ResourceTypePO {
+    @Id
+    @Column(name = "RT_ID")
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+
+    @Column(name = "RT_CODE")
+    private String code;
+
+    @Column(name = "RT_NAME")
+    private String name;
+}

+ 26 - 2
core/src/main/java/com/mooctest/crowd/domain/repository/ApplicationTypeRepo.java

@@ -2,13 +2,22 @@ package com.mooctest.crowd.domain.repository;
 
 import com.mooctest.crowd.domain.dao.ApplicationTypeDao;
 import com.mooctest.crowd.domain.domainobject.ApplicationType;
+import com.mooctest.crowd.domain.model.ApplicationTypePO;
 import com.mooctest.crowd.domain.util.Converter;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.data.jpa.domain.Specifications;
 import org.springframework.stereotype.Component;
 
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+
 
 @Slf4j
 @Component
@@ -19,7 +28,22 @@ public class ApplicationTypeRepo implements IApplicationTypeRepo{
     private ApplicationTypeDao applicationTypeDao;
 
     @Override
-    public Page<ApplicationType> getHotTesting(Pageable pageable) {
-        return applicationTypeDao.findAll(pageable).map(ApplicationTypePO->Converter.convert(ApplicationType.class, ApplicationTypePO));
+    public Page<ApplicationType> getHotTesting(Pageable pageable,String keyword) {
+        Specifications<ApplicationTypePO> where =  Specifications.where(getArticlesByIsNotDeleted(keyword));
+        return applicationTypeDao.findAll(where,pageable).map(ApplicationTypePO->Converter.convert(ApplicationType.class, ApplicationTypePO));
+    }
+    private Specification<ApplicationTypePO> getArticlesByIsNotDeleted(String keyword) {
+        return new Specification<ApplicationTypePO>() {
+            @Override
+            public Predicate toPredicate(Root<ApplicationTypePO> a, CriteriaQuery<?> q, CriteriaBuilder cb) {
+                Predicate predicate = cb.conjunction();
+                if(keyword != null) {
+                    predicate.getExpressions().add(
+                            cb.like(a.<String>get("name"), "%" + StringUtils.trim(keyword) + "%")
+                    );
+                }
+                return predicate;
+            }
+        };
     }
 }

+ 20 - 4
core/src/main/java/com/mooctest/crowd/domain/repository/CommonRepo.java

@@ -59,6 +59,9 @@ public class CommonRepo {
     @Autowired
     private  CompetitionsDao competitionsDao;
 
+    @Autowired
+    private  ResourceTypeDao resourceTypeDao;
+
     public List<TestType> getAllTestType(){
         return testTypeDao.findAll().stream().map(testTypePO -> Converter.convert(TestType.class, testTypePO)).collect(Collectors.toList());
     }
@@ -81,10 +84,24 @@ public class CommonRepo {
                 .filter(competition -> competition.getIsDeleted() == DeletedStatus.isNotDeleted).collect(Collectors.toList());
     }
 
-    public Page<Competition> findAllCompetition(Pageable pageable) {
-        return  competitionsDao.findAll(pageable).map(CompetitionPO -> Converter.convert(Competition.class, CompetitionPO));
+    public Page<Competition> findAllCompetition(Pageable pageable,String keyword) {
+        Specifications<CompetitionPO> where =  Specifications.where(getArticlesByIsNotDeleted(keyword));
+        return  competitionsDao.findAll(where,pageable).map(CompetitionPO -> Converter.convert(Competition.class, CompetitionPO));
+    }
+    private Specification<CompetitionPO> getArticlesByIsNotDeleted(String keyword) {
+        return new Specification<CompetitionPO>() {
+            @Override
+            public Predicate toPredicate(Root<CompetitionPO> a, CriteriaQuery<?> q, CriteriaBuilder cb) {
+                Predicate predicate = cb.conjunction();
+                if(keyword != null) {
+                    predicate.getExpressions().add(
+                            cb.like(a.<String>get("name"), "%" + StringUtils.trim(keyword) + "%")
+                    );
+                }
+                return predicate;
+            }
+        };
     }
-
     public List<Competition> getAllCompetitionTop3(Pageable pageable){
         List<CompetitionPO> competitionPOS = competitionDao.findAll(pageable);
         return competitionPOS.stream().map(competitionPO -> Converter.convert(Competition.class, competitionPO))
@@ -144,7 +161,6 @@ public class CommonRepo {
         Specifications<ResourcePO> where =  Specifications.where(getResource(keyword));
         return resourceDao.findAll(where, pageable).map(resourcePO -> Converter.convert(Resource.class, resourcePO));
     }
-
     private Specification<ResourcePO> getResource(String keyword) {
         return new Specification<ResourcePO>() {
             @Override

+ 1 - 1
core/src/main/java/com/mooctest/crowd/domain/repository/IApplicationTypeRepo.java

@@ -7,6 +7,6 @@ import org.springframework.data.domain.Pageable;
 
 public interface IApplicationTypeRepo {
 
-    Page<ApplicationType> getHotTesting(Pageable pageable);
+    Page<ApplicationType> getHotTesting(Pageable pageable,String keyword);
 
 }

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
site/src/main/java/com/mooctest/crowd/site/controller/CommonController.java


+ 2 - 0
site/src/main/java/com/mooctest/crowd/site/data/vo/CompetitionVO.java

@@ -20,6 +20,7 @@ public class CompetitionVO implements Serializable {
     private String name;
     private String linkUrl;
     private Timestamp startTime;
+    private String unit;
     private String image;
     private int isDeleted;
 
@@ -28,6 +29,7 @@ public class CompetitionVO implements Serializable {
         name = competition.getName();
         linkUrl = competition.getLinkUrl();
         startTime = competition.getStartTime();
+        unit=competition.getUnit();
         image = competition.getImage();
         isDeleted = competition.getIsDeleted();
     }

+ 16 - 0
site/src/main/java/com/mooctest/crowd/site/data/vo/ResourceTypeVO.java

@@ -0,0 +1,16 @@
+package com.mooctest.crowd.site.data.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class ResourceTypeVO implements Serializable {
+    private Long id;
+    private String code;
+    private String name;
+}

+ 25 - 0
site/src/main/java/com/mooctest/crowd/site/data/vo/ResourceVO.java

@@ -6,6 +6,7 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
+import java.sql.Timestamp;
 
 /**
  * @author guochao
@@ -17,9 +18,33 @@ import java.io.Serializable;
 public class ResourceVO implements Serializable {
     private String code;
     private String name;
+    private String type;
+    private int quantity;
+    private String photoUrl;
+    private String description;
+    private String scene;
+    private String unitWork;
+    private String standard;
+    private String unit;
+    private String state;
+    private Timestamp startTime;
+    private String personnel;
+    private String remarks;
 
     public ResourceVO(Resource resource){
         code = resource.getCode();
         name = resource.getName();
+        type=  resource.getType();
+        quantity=resource.getQuantity();
+        photoUrl=resource.getPhotoUrl();
+        description=resource.getDescription();
+        scene=resource.getScene();
+        unitWork=resource.getUnitWork();
+        standard=resource.getStandard();
+        unit=resource.getUnit();
+        state=resource.getState();
+        startTime=resource.getStartTime();
+        personnel=resource.getPersonnel();
+        remarks=resource.getRemarks();
     }
 }

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

@@ -103,9 +103,6 @@ public class WebMediatorImpl implements ViewMediator {
     @Autowired
     private BankLogoDao bankLogoDao;
 
-    @Autowired
-    private UploadService uploadService;
-
     @Value("${agency}")
     private String agencyId;
 

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

@@ -29,7 +29,9 @@ public interface CommonService {
 
     Page<CrowdTaskVO> getTaskinfo(Pageable pageable, String keyword, int deletedStatus);
 
-    Page<ApplicationTypeVO> getHotTesting(Pageable pageable);
+    Page<ApplicationTypeVO> getHotTesting(Pageable pageable,String keyword);
 
-    Page<CompetitionVO> getCompetition(Pageable pageable);
+    Page<CompetitionVO> getCompetition(Pageable pageable,String keyword);
+
+    Page<ResourceVO> getResource(Pageable pageable,String keyword);
 }

+ 8 - 4
site/src/main/java/com/mooctest/crowd/site/service/impl/CommonServiceImpl.java

@@ -93,13 +93,17 @@ public class CommonServiceImpl implements CommonService {
     }
 
     @Override
-    public Page<ApplicationTypeVO> getHotTesting(Pageable pageable) {
-        return applicationTypeRepo.getHotTesting(pageable).map(applicationType -> new ApplicationTypeVO(applicationType));
+    public Page<ApplicationTypeVO> getHotTesting(Pageable pageable,String keyword) {
+        return applicationTypeRepo.getHotTesting(pageable,keyword).map(applicationType -> new ApplicationTypeVO(applicationType));
     }
 
     @Override
-    public Page<CompetitionVO> getCompetition(Pageable pageable) {
-        return commonRepo.findAllCompetition(pageable).map(competition -> new CompetitionVO(competition));
+    public Page<CompetitionVO> getCompetition(Pageable pageable,String keyword) {
+        return commonRepo.findAllCompetition(pageable,keyword).map(competition -> new CompetitionVO(competition));
     }
 
+    @Override
+    public Page<ResourceVO> getResource(Pageable pageable, String keyword) {
+        return commonRepo.findAllResourceByPage(pageable, keyword).map(resource -> new ResourceVO(resource));
+    }
 }

Неке датотеке нису приказане због велике количине промена