ソースを参照

处理上架下架电影的查看

jacksenma 7 年 前
親
コミット
d12511ddad

+ 8 - 2
src/main/java/com/example/cinema/bl/MovieService.java

@@ -25,10 +25,16 @@ public interface MovieService {
     ResponseVO searchOneMovieByIdAndUserId(int id, int userId);
 
     /**
-     * 搜索全部电影
+     * 搜索全部电影(影院方查看)
      * @return
      */
-    ResponseVO searchAllMovie();
+    ResponseVO searchAllMovieCinema();
+
+    /**
+     * 搜索全部电影(观众查看)
+     * @return
+     */
+    ResponseVO searchAllMovieAudience();
 
     /**
      * 想看电影

+ 13 - 3
src/main/java/com/example/cinema/blImpl/MovieServiceImpl.java

@@ -65,9 +65,19 @@ public class MovieServiceImpl implements MovieService {
     }
 
     @Override
-    public ResponseVO searchAllMovie() {
+    public ResponseVO searchAllMovieCinema() {
         try {
-            return ResponseVO.buildSuccess(movieMapper.selectAllMovie());
+            return ResponseVO.buildSuccess(movieMapper.selectAllMovieCinema());
+        } catch (Exception e) {
+            e.printStackTrace();
+            return ResponseVO.buildFailure("失败");
+        }
+    }
+
+    @Override
+    public ResponseVO searchAllMovieAudience() {
+        try {
+            return ResponseVO.buildSuccess(movieMapper.selectAllMovieAudience());
         } catch (Exception e) {
             e.printStackTrace();
             return ResponseVO.buildFailure("失败");
@@ -120,7 +130,7 @@ public class MovieServiceImpl implements MovieService {
     @Override
     public ResponseVO getMovieByKeyword(String keyword) {
         if (keyword==null||keyword.equals(""))
-            return ResponseVO.buildSuccess(movieMapper.selectAllMovie());
+            return ResponseVO.buildSuccess(movieMapper.selectAllMovieCinema());
         return ResponseVO.buildSuccess(movieMapper.selectMovieByKeyword(keyword));
     }
 

+ 11 - 3
src/main/java/com/example/cinema/controller/MovieController.java

@@ -27,11 +27,19 @@ public class MovieController {
         return movieService.searchOneMovieByIdAndUserId(id, userId);
     }
 
-    @RequestMapping(value = "/movie/all", method = RequestMethod.GET)
-    public ResponseVO searchAllMovie(){
-        return movieService.searchAllMovie();
+    @RequestMapping(value = "/movie/all/cinema", method = RequestMethod.GET)
+    public ResponseVO searchAllMovieCinema(){
+        //返回结果中包括已经下架的电影,用于影院方查看电影列表
+        return movieService.searchAllMovieCinema();
     }
 
+    @RequestMapping(value = "/movie/all/audience", method = RequestMethod.GET)
+    public ResponseVO searchAllMovieAudience(){
+        //返回结果中不包括已经下架的电影,主要用于观众查看以及影院查看可供排片的所有电影
+        return movieService.searchAllMovieAudience();
+    }
+
+
     @RequestMapping(value = "/movie/{movieId}/like", method = RequestMethod.POST)
     public ResponseVO likeMovie(@PathVariable int movieId,@RequestParam int userId){
         return movieService.likeMovie(userId,movieId);

+ 8 - 2
src/main/java/com/example/cinema/data/MovieMapper.java

@@ -36,10 +36,16 @@ public interface MovieMapper {
     MovieVO selectMovieByIdAndUserId(@Param("id") int id, @Param("userId") int userId);
 
     /**
-     * 展示所有电影
+     * 展示所有电影(影院方)
      * @return
      */
-    List<MovieVO> selectAllMovie();
+    List<MovieVO> selectAllMovieCinema();
+
+    /**
+     * 展示所有电影(观众)
+     * @return
+     */
+    List<MovieVO> selectAllMovieAudience();
 
     /**
      * 根据关键字搜索电影

+ 15 - 2
src/main/java/com/example/cinema/data/MovieMapper.xml

@@ -16,8 +16,21 @@
         left join (select l.movie_id as id, count(*) as likeCount from movie_like l where l.movie_id = #{id}) b on a.id = b.id
     </select>
 
-    <select id="selectAllMovie" resultMap="Movie">
-        select * from movie m left join (select l.movie_id, count(*) as likeCount from movie_like l group by l.movie_id) l on m.id = l.movie_id
+    <select id="selectAllMovieCinema" resultMap="Movie">
+        select * from movie m
+        left join
+        (select l.movie_id, count(*) as likeCount from movie_like l group by l.movie_id) l
+        on m.id = l.movie_id
+        order by m.start_date asc
+    </select>
+
+    <select id="selectAllMovieAudience" resultMap="Movie">
+        select * from
+        (select * from movie where movie.status = 0) m
+        left join
+        (select l.movie_id, count(*) as likeCount from movie_like l group by l.movie_id) l
+        on m.id = l.movie_id
+        order by m.start_date asc
     </select>
 
     <select id="selectMovieByKeyword" resultMap="Movie">