Skip to content

Commit 2ef647c

Browse files
committed
update
1 parent 3bfb56b commit 2ef647c

File tree

10 files changed

+166
-2
lines changed

10 files changed

+166
-2
lines changed

pom.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,14 @@
4545
<scope>provided</scope>
4646
</dependency>
4747

48+
<!-- https://mvnrepository.com/artifact/javax.validation/validation-api -->
49+
<dependency>
50+
<groupId>javax.validation</groupId>
51+
<artifactId>validation-api</artifactId>
52+
<version>2.0.1.Final</version>
53+
</dependency>
54+
55+
4856

4957
</dependencies>
5058

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.hoangtien2k3.ticketbookingapi.repository;
2+
3+
import com.hoangtien2k3.ticketbookingapi.entity.Book;
4+
import jakarta.transaction.Transactional;
5+
import org.springframework.data.jpa.repository.JpaRepository;
6+
import org.springframework.data.jpa.repository.Modifying;
7+
import org.springframework.data.jpa.repository.Query;
8+
import org.springframework.stereotype.Repository;
9+
10+
@Repository
11+
public interface BookRepository extends JpaRepository<Book, Integer> {
12+
// insert thoong tin booking
13+
@Transactional
14+
@Modifying
15+
@Query(value = "INSERT INTO `booking`(`user_id`, `schedule_id`, `seat_id`, `price`, `seat_status`) " +
16+
"VALUES (?1, ?2, ?3, ?4, ?5)",
17+
nativeQuery = true
18+
)
19+
Integer bookTicket(Integer user_id, Integer schedule_id, Integer seat_id, Double price, Integer seat_status);
20+
21+
// update thông tin booking
22+
@Transactional
23+
@Modifying
24+
@Query(value = "UPDATE `booking` SET `seat_status`= '1' WHERE `user_id`= ?1 AND `booking_id`= ?2",
25+
nativeQuery = true
26+
)
27+
Integer updateStatus(Integer user_id, Integer booking_id);
28+
29+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.hoangtien2k3.ticketbookingapi.repository;
2+
3+
import com.hoangtien2k3.ticketbookingapi.entity.Cinema;
4+
import org.springframework.data.jpa.repository.JpaRepository;
5+
import org.springframework.data.jpa.repository.Query;
6+
import org.springframework.stereotype.Repository;
7+
8+
import java.util.List;
9+
10+
@Repository
11+
public interface CinemaRepository extends JpaRepository<Cinema, Integer> {
12+
13+
@Query(value = "SELECT `cinemas`.* FROM `cinemas`,`schedule`, `room` WHERE `schedule`.`room_id` = `room`.`room_id` AND `room`.`cinema_id` = `cinemas`.`cinema_id` AND `schedule`.`schedule_id` = ?1", nativeQuery = true)
14+
Cinema getCinemasByIdSchedule(Integer schedule_id);
15+
16+
17+
@Query(nativeQuery = true, value = "SELECT `cinemas`.* FROM `cinemas`, `schedule`, `room` WHERE `schedule`.`room_id` = `room`.`room_id` AND `room`.`cinema_id` = `cinemas`.`cinema_id` AND `schedule`.`movie_id` = ?1 AND `schedule`.`schedule_date` = ?2")
18+
List<Cinema> getScheduleCinema(Integer movie_id, String schedule_date);
19+
20+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.hoangtien2k3.ticketbookingapi.repository;
2+
3+
import com.hoangtien2k3.ticketbookingapi.entity.Movie;
4+
import org.springframework.data.jpa.repository.JpaRepository;
5+
import org.springframework.data.jpa.repository.Query;
6+
import org.springframework.stereotype.Repository;
7+
8+
import java.util.List;
9+
10+
@Repository
11+
public interface MovieRepository extends JpaRepository<Movie, Integer> {
12+
// lấy ra phim đang chiếu
13+
@Query(value = "SELECT `movie_id`,`movie_name`,`movie_description`,`movie_trailer`,`movie_cens`,`movie_genres`, DATE_FORMAT(`movie_release`, \"%d/%m/%Y\") as `movie_release`,`movie_lenght`,`movie_format`,`movie_poster` " +
14+
"FROM `movies` WHERE `movie_release` = CURRENT_DATE OR `movie_release` < CURRENT_DATE",
15+
nativeQuery = true
16+
)
17+
List<Movie> getMoviesNow();
18+
19+
20+
// lấy ra phim sắp chiếu
21+
@Query(value = "SELECT `movie_id`,`movie_name`,`movie_description`,`movie_trailer`,`movie_cens`,`movie_genres`,DATE_FORMAT(`movie_release`, \"%d/%m/%Y\") as `movie_release`,`movie_lenght`,`movie_format`,`movie_poster` " +
22+
"FROM `movies` WHERE `movie_release` > CURRENT_DATE",
23+
nativeQuery = true
24+
)
25+
List<Movie> getMoviesFuture();
26+
27+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.hoangtien2k3.ticketbookingapi.repository;
2+
3+
import com.hoangtien2k3.ticketbookingapi.entity.Room;
4+
import org.springframework.data.jpa.repository.JpaRepository;
5+
import org.springframework.stereotype.Repository;
6+
7+
@Repository
8+
public interface RoomRepository extends JpaRepository<Room, Integer> {
9+
10+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.hoangtien2k3.ticketbookingapi.repository;
2+
3+
import com.hoangtien2k3.ticketbookingapi.entity.Schedule;
4+
import com.hoangtien2k3.ticketbookingapi.model.ResponseCinema;
5+
import com.hoangtien2k3.ticketbookingapi.model.ResponseScheduleCinema;
6+
import com.hoangtien2k3.ticketbookingapi.model.ResponseScheduleTime;
7+
import org.springframework.data.jpa.repository.JpaRepository;
8+
import org.springframework.data.jpa.repository.Query;
9+
import org.springframework.stereotype.Repository;
10+
11+
import java.util.List;
12+
13+
@Repository
14+
public interface ScheduleRepository extends JpaRepository<Schedule, Integer> {
15+
@Query(name = "getResponseCinema", nativeQuery = true)
16+
List<ResponseCinema> getScheduleCinema(Integer movie_id, String schedule_date);
17+
18+
@Query(name = "getScheduleFormat", nativeQuery = true)
19+
String getFormat(Integer movie_id, String schedule_date, Integer cinema_id);
20+
21+
@Query(name = "getScheduleTimeByFilm", nativeQuery = true)
22+
List<ResponseScheduleTime> getScheduleTimeByFilm(Integer movie_id, String schedule_date, Integer cinema_id);
23+
24+
@Query(name = "showSchedule", nativeQuery = true)
25+
List<ResponseScheduleCinema> getSchedule(Integer movie_id, String schedule_date);
26+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.hoangtien2k3.ticketbookingapi.repository;
2+
3+
import com.hoangtien2k3.ticketbookingapi.entity.Seat;
4+
import com.hoangtien2k3.ticketbookingapi.model.ResponseSeat;
5+
import org.springframework.data.jpa.repository.JpaRepository;
6+
import org.springframework.data.jpa.repository.Query;
7+
8+
import java.util.List;
9+
10+
public interface SeatRepository extends JpaRepository<Seat, Integer> {
11+
//lấy ghế trống theo id film và id schedule
12+
@Query(name = "getSeatEmpty", nativeQuery = true)
13+
List<ResponseSeat> getSeatEmptyBySchedule(Integer schedule_id);
14+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.hoangtien2k3.ticketbookingapi.request;
2+
3+
4+
import javax.validation.constraints.NotNull;
5+
6+
public class BookRequest {
7+
@NotNull(message = "Missing movie screening id")
8+
private int scheduleId;
9+
@NotNull(message = "Missing id seat")
10+
private int seatId;
11+
@NotNull(message = "Missing seat rack")
12+
private double price;
13+
@NotNull(message = "Missing seat status")
14+
private int seatStatus;
15+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.hoangtien2k3.ticketbookingapi.service;
2+
3+
import com.hoangtien2k3.ticketbookingapi.repository.UserRepository;
4+
import org.springframework.beans.factory.annotation.Autowired;
5+
import org.springframework.stereotype.Service;
6+
7+
@Service
8+
public class UserService {
9+
10+
@Autowired
11+
private UserRepository userRepository;
12+
13+
14+
15+
}

src/main/resources/application.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ server.port=8080
33
## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
44

55
## data localhost
6-
spring.datasource.url=jdbc:mysql://localhost:8080/data_cinema?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false
6+
spring.datasource.url=jdbc:mysql://localhost:8080/booking_ticket?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false
77
spring.datasource.username=root
88
spring.datasource.password=12042003
99

@@ -12,5 +12,5 @@ spring.datasource.password=12042003
1212
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
1313

1414
## Hibernate ddl-auto (create, create-drop, validate, update)
15-
spring.jpa.hibernate.ddl-auto=none
15+
spring.jpa.hibernate.ddl-auto=update
1616

0 commit comments

Comments
 (0)