jacksenma 7 роки тому
батько
коміт
a105891e16

+ 5 - 2
src/main/java/com/example/cinema/blImpl/ScheduleServiceImpl.java

@@ -104,12 +104,15 @@ public class ScheduleServiceImpl implements ScheduleService {
 
             List<ScheduleItem> result = new ArrayList<>();
             for(ScheduleItem s : scheduleItems){
-                if(s.getEndTime().before(endDate) && s.getEndTime().after(today)){
+                if(s.getStartTime().before(endDate) && s.getStartTime().after(new Date())){
                     result.add(s);
                 }
             }
+            int interval = 1;
+            if(result.size() > 0){
+                interval = (int)((result.get(result.size() - 1).getStartTime().getTime() - today.getTime()) / (1000 * 3600 * 24)) + 1;
+            }
 
-            int interval = (int)((result.get(result.size() - 1).getEndTime().getTime() - result.get(0).getEndTime().getTime()) / (1000 * 3600 * 24)) + 1;
             return ResponseVO.buildSuccess(getScheduleVOList(interval, today, result));
 
         }catch (Exception e){

+ 3 - 19
src/main/java/com/example/cinema/blImpl/StatisticsServiceImpl.java

@@ -2,21 +2,16 @@ package com.example.cinema.blImpl;
 
 import com.example.cinema.bl.StatisticsService;
 import com.example.cinema.data.StatisticsMapper;
-import com.example.cinema.po.MovieScheduleTime;
+import com.example.cinema.vo.MovieScheduleTimeVO;
 import com.example.cinema.vo.ResponseVO;
-import com.example.cinema.vo.ScheduleRateVO;
-import org.omg.PortableInterceptor.SYSTEM_EXCEPTION;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.text.DecimalFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
-import java.util.stream.Collectors;
 
 /**
  * @author fjj
@@ -37,19 +32,8 @@ public class StatisticsServiceImpl implements StatisticsService {
             requireDate = simpleDateFormat.parse(simpleDateFormat.format(requireDate));
 
             Date nextDate = getNumDayAfterDate(requireDate, 1);
-            List<MovieScheduleTime> movieScheduleTimes = statisticsMapper.selectMovieScheduleTimes(requireDate, nextDate);
-
-            //统计该天总排片数
-//            int totalTimes = movieScheduleTimes.stream().mapToInt(mst -> mst.getTime()).sum();
-//            List<ScheduleRateVO> scheduleRateVOList = new ArrayList<>();
-//            for(MovieScheduleTime movieScheduleTime: movieScheduleTimes){
-//                ScheduleRateVO scheduleRateVO = new ScheduleRateVO();
-//                scheduleRateVO.setMovieId(movieScheduleTime.getMovieId());
-//                scheduleRateVO.setRate(Double.parseDouble(String.format("%.2f",(double)movieScheduleTime.getTime() / totalTimes)));
-//                scheduleRateVO.setName(movieScheduleTime.getName());
-//                scheduleRateVOList.add(scheduleRateVO);
-//            }
-            return ResponseVO.buildSuccess(movieScheduleTimes);
+            List<MovieScheduleTimeVO> movieScheduleTimeVOList = statisticsMapper.selectMovieScheduleTimes(requireDate, nextDate);
+            return ResponseVO.buildSuccess(movieScheduleTimeVOList);
 
         }catch (Exception e){
             e.printStackTrace();

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

@@ -1,6 +1,6 @@
 package com.example.cinema.data;
 
-import com.example.cinema.po.MovieScheduleTime;
+import com.example.cinema.vo.MovieScheduleTimeVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -18,5 +18,5 @@ public interface StatisticsMapper {
      * @param date
      * @return
      */
-    List<MovieScheduleTime> selectMovieScheduleTimes(@Param("date") Date date, @Param("nextDate") Date nextDate);
+    List<MovieScheduleTimeVO> selectMovieScheduleTimes(@Param("date") Date date, @Param("nextDate") Date nextDate);
 }

+ 9 - 0
src/main/java/com/example/cinema/data/StatisticsMapper.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.example.cinema.data.StatisticsMapper">
+    <select id="selectMovieScheduleTimes" resultType="com.example.cinema.vo.MovieScheduleTimeVO">
+        select movie_id as movieId, count(*) as time,name from
+              (select * from schedule where start_time between #{date} and #{nextDate}) s,
+              movie where s.movie_id = movie.id group by movieId
+    </select>
+</mapper>

+ 2 - 2
src/main/java/com/example/cinema/po/MovieScheduleTime.java → src/main/java/com/example/cinema/vo/MovieScheduleTimeVO.java

@@ -1,10 +1,10 @@
-package com.example.cinema.po;
+package com.example.cinema.vo;
 
 /**
  * @author fjj
  * @date 2019/4/16 2:48 PM
  */
-public class MovieScheduleTime {
+public class MovieScheduleTimeVO {
     private Integer movieId;
     /**
      * 排片次数

+ 0 - 35
src/main/java/com/example/cinema/vo/ScheduleRateVO.java

@@ -1,35 +0,0 @@
-package com.example.cinema.vo;
-
-/**
- * @author fjj
- * @date 2019/4/16 3:48 PM
- */
-public class ScheduleRateVO {
-    private Integer movieId;
-    private Double rate;
-    private String name;
-
-    public Integer getMovieId() {
-        return movieId;
-    }
-
-    public void setMovieId(Integer movieId) {
-        this.movieId = movieId;
-    }
-
-    public Double getRate() {
-        return rate;
-    }
-
-    public void setRate(Double rate) {
-        this.rate = rate;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-}

+ 26 - 0
src/test/java/com/example/cinema/blImpl/ScheduleServiceImplTest.java

@@ -0,0 +1,26 @@
+package com.example.cinema.blImpl;
+
+import com.example.cinema.bl.ScheduleService;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import static org.junit.Assert.*;
+
+/**
+ * @author fjj
+ * @date 2019/4/21 12:08 AM
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class ScheduleServiceImplTest {
+
+    @Autowired
+    private ScheduleService scheduleService;
+    @Test
+    public void searchAudienceSchedule() {
+        scheduleService.searchAudienceSchedule(16);
+    }
+}

+ 5 - 5
src/test/java/com/example/cinema/blImpl/StatisticsServiceImplTest.java

@@ -22,11 +22,11 @@ import static org.junit.Assert.*;
 public class StatisticsServiceImplTest {
     @Autowired
     private StatisticsService statisticsService;
-//    @Test
-//    public void getScheduleRateByDate() throws ParseException {
-//        System.out.println(getNumDayBeforeDate(new Date(),-5));
-//        statisticsService.getScheduleRateByDate(getNumDayBeforeDate(new Date(),-5));
-//    }
+    @Test
+    public void getScheduleRateByDate() throws ParseException {
+        System.out.println(getNumDayBeforeDate(new Date(),-5));
+        statisticsService.getScheduleRateByDate(getNumDayBeforeDate(new Date(),-5));
+    }
 
     /**
      * 获得num天后的日期