Bladeren bron

专辑 课件搜索

xushengqiang 6 jaren geleden
bovenliggende
commit
a91d9093ba

+ 23 - 0
src/main/java/cn/efunbox/audio/entity/Album.java

@@ -30,6 +30,29 @@ public class Album implements Serializable {
 
     private String image;
 
+    private String language;
+
+    private String age;
+
+    /**
+     * 适用人群
+     */
+    @Column(name = "suitable_crowd")
+    private String suitableCrowd;
+
+    private String version;
+
+
+    /**
+     * 科目
+     */
+    private String subject;
+
+    /**
+     * 册数
+     */
+    private String volume;
+
     private Timestamp created;
 
     private Timestamp modified;

+ 1 - 0
src/main/java/cn/efunbox/audio/entity/Audio.java

@@ -85,6 +85,7 @@ public class Audio implements Serializable, Cloneable {
     @Column(name = "album_id")
     private BigInteger albumId;
 
+    private String author;
     //专辑名,如儿歌
     @Transient
     private String album;

+ 27 - 0
src/main/java/cn/efunbox/audio/impl/AlbumServiceImpl.java

@@ -4,6 +4,7 @@ import cn.efunbox.audio.entity.Album;
 import cn.efunbox.audio.page.OnePage;
 import cn.efunbox.audio.repository.AlbumRepo;
 import cn.efunbox.audio.service.AlbumService;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -32,6 +33,7 @@ public class AlbumServiceImpl implements AlbumService {
     @Override
     public OnePage<Album> SearchAll(Album album,Integer page, Integer pageSize) {
 
+        fillSearchAlbum(album);
         long count = albumRepo.count(album);
         OnePage onePage = new OnePage(count,page,pageSize);
 
@@ -47,6 +49,31 @@ public class AlbumServiceImpl implements AlbumService {
         return onePage;
     }
 
+    private void fillSearchAlbum(Album album) {
+        album.setId(album.getId());
+        if (StringUtils.isNotBlank(album.getName())) {
+            album.setName("%" + album.getName() + "%");
+        }
+        if (StringUtils.isNotBlank(album.getAge())) {
+            album.setAge("%" + album.getAge() + "%");
+        }
+        if (StringUtils.isNotBlank(album.getLanguage())) {
+            album.setLanguage("%" + album.getLanguage() + "%");
+        }
+        if (StringUtils.isNotBlank(album.getSubject())) {
+            album.setSubject("%" + album.getSubject() + "%");
+        }
+        if (StringUtils.isNotBlank(album.getSuitableCrowd())) {
+            album.setSuitableCrowd("%" + album.getSuitableCrowd() + "%");
+        }
+        if (StringUtils.isNotBlank(album.getVersion())) {
+            album.setVersion("%" + album.getVersion() + "%");
+        }
+        if (StringUtils.isNotBlank(album.getVolume())) {
+            album.setVolume("%" + album.getVolume() + "%");
+        }
+    }
+
     @Override
     public Album Insert(Album album) {
         return albumRepo.save(album);

+ 39 - 6
src/main/java/cn/efunbox/audio/impl/AudioServiceImpl.java

@@ -199,14 +199,19 @@ public class AudioServiceImpl implements AudioService {
     @Override
     public OnePage<Audio> searchList(SearchVO searchVO) {
 
-        if (StringUtils.isNotBlank(searchVO.getAlbum())) {
-            List<BigInteger> albumIds = albumRepo.findIdsByNameLike(searchVO.getAlbum());
-            if (CollectionUtils.isEmpty(albumIds)) {
-                return new OnePage(0L,searchVO.getPageNo(),searchVO.getPageSize());
-            }
-            searchVO.setIdAlbums(albumIds);
+        Album searchAlbum = fillSearchAlbum(searchVO);
+
+        List<Album> albumList = albumRepo.find(searchAlbum);
+
+        if (CollectionUtils.isEmpty(albumList)) {
+            return new OnePage(0L,searchVO.getPageNo(),searchVO.getPageSize());
         }
 
+        List<BigInteger> albumIds = new ArrayList<>();
+        albumList.forEach(album -> albumIds.add(album.getId()));
+
+        searchVO.setIdAlbums(albumIds);
+
         Long count = audioRepoImpl.count(searchVO);
         if (Objects.isNull(count)) {
             count = 0L;
@@ -225,6 +230,34 @@ public class AudioServiceImpl implements AudioService {
         return onePage;
     }
 
+    private Album fillSearchAlbum(SearchVO searchVO) {
+        Album album = new Album();
+        album.setId(searchVO.getAlbumId());
+        if (StringUtils.isNotBlank(searchVO.getAlbum())) {
+            album.setName("%" + searchVO.getAlbum() + "%");
+        }
+        if (StringUtils.isNotBlank(searchVO.getAge())) {
+            album.setAge("%" + searchVO.getAge() + "%");
+        }
+        if (StringUtils.isNotBlank(searchVO.getLanguage())) {
+            album.setLanguage("%" + searchVO.getLanguage() + "%");
+        }
+        if (StringUtils.isNotBlank(searchVO.getSubject())) {
+            album.setSubject("%" + searchVO.getSubject() + "%");
+        }
+        if (StringUtils.isNotBlank(searchVO.getSuitableCrowd())) {
+            album.setSuitableCrowd("%" + searchVO.getSuitableCrowd() + "%");
+        }
+        if (StringUtils.isNotBlank(searchVO.getVersion())) {
+            album.setVersion("%" + searchVO.getVersion() + "%");
+        }
+        if (StringUtils.isNotBlank(searchVO.getVolume())) {
+            album.setVolume("%" + searchVO.getVolume() + "%");
+        }
+
+        return album;
+    }
+
     @Override
     public Audio getAudioInfo(Long id) {
 

+ 27 - 0
src/main/java/cn/efunbox/audio/vo/SearchVO.java

@@ -2,6 +2,7 @@ package cn.efunbox.audio.vo;
 
 import lombok.Data;
 
+import javax.persistence.Column;
 import java.io.Serializable;
 import java.math.BigInteger;
 import java.util.List;
@@ -22,8 +23,34 @@ public class SearchVO implements Serializable {
 
     private String album;
 
+    private BigInteger albumId;
+
     private String keyword;
 
+    private String author;
+
+    private String language;
+
+    private String age;
+
+    /**
+     * 适用人群
+     */
+    @Column(name = "suitable_crowd")
+    private String suitableCrowd;
+
+    private String version;
+
+    /**
+     * 科目
+     */
+    private String subject;
+
+    /**
+     * 册数
+     */
+    private String volume;
+
     private Integer pageNo;
 
     private Integer pageSize;