55package com .library .dao ;
66
77import com .library .model .dto .ExtendRequestDTO ;
8+ import com .library .model .dto .ExtendRequestViewDTO ;
89import com .library .model .entity .ExtendRequest ;
910import com .library .util .DBConnection ;
1011import java .sql .Connection ;
1112import java .sql .PreparedStatement ;
13+ import java .sql .ResultSet ;
1214import java .sql .SQLException ;
15+ import java .util .ArrayList ;
16+ import java .util .List ;
1317
1418/**
1519 *
@@ -21,8 +25,7 @@ public class ExtendRequestDaoImpl implements ExtendRequestDao {
2125 public boolean insertExtendRequest (ExtendRequestDTO dto ) {
2226 String sql = "INSERT INTO extend_requests (borrowing_id, user_id, status) VALUES (?, ?, ?)" ;
2327 try (
24- Connection conn = DBConnection .getInstance ().getConnection ();
25- PreparedStatement ps = conn .prepareStatement (sql )) {
28+ Connection conn = DBConnection .getInstance ().getConnection (); PreparedStatement ps = conn .prepareStatement (sql )) {
2629 ps .setInt (1 , dto .getBorrowing ().getBorrowingID ());
2730 ps .setInt (2 , dto .getUser ().getUserID ());
2831 ps .setString (3 , dto .getStatus ().PENDING .getValue ());
@@ -33,4 +36,32 @@ public boolean insertExtendRequest(ExtendRequestDTO dto) {
3336 }
3437 }
3538
39+ @ Override
40+ public List <ExtendRequestViewDTO > getAllExtendRequests () {
41+ List <ExtendRequestViewDTO > list = new ArrayList <>();
42+ String sql = " SELECT users.account, users.avatar, books.title, books.cover_image,\n "
43+ + " extend_requests.request_date, extend_requests.status\n "
44+ + " FROM extend_requests\n "
45+ + " JOIN users ON users.user_id = extend_requests.user_id\n "
46+ + " JOIN borrowings ON borrowings.borrowing_id = extend_requests.borrowing_id\n "
47+ + " JOIN books ON books.book_id = borrowings.book_id" ;
48+
49+ try (
50+ Connection conn = DBConnection .getInstance ().getConnection (); PreparedStatement ps = conn .prepareStatement (sql ); ResultSet rs = ps .executeQuery ()) {
51+ while (rs .next ()) {
52+ ExtendRequestViewDTO dto = new ExtendRequestViewDTO ();
53+ dto .setAccount (rs .getString ("account" ));
54+ dto .setAvatar (rs .getString ("avatar" ));
55+ dto .setTitle (rs .getString ("title" ));
56+ dto .setCoverImage (rs .getString ("cover_image" ));
57+ dto .setRequestDate (rs .getTimestamp ("request_date" ).toLocalDateTime ());
58+ dto .setStatus (rs .getString ("status" ));
59+ list .add (dto );
60+ }
61+ } catch (SQLException e ) {
62+ e .printStackTrace ();
63+ }
64+ return list ;
65+ }
66+
3667}
0 commit comments