Skip to content

Commit 7bed2d6

Browse files
committed
feat(admin): load data to extend view
1 parent 3dc2594 commit 7bed2d6

8 files changed

Lines changed: 1028 additions & 12 deletions

File tree

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/*
2+
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
3+
* Click nbfs://nbhost/SystemFileSystem/Templates/JSP_Servlet/Servlet.java to edit this template
4+
*/
5+
package com.library.controller.admin;
6+
7+
import com.library.factory.ServiceFactory;
8+
import com.library.model.dto.ExtendRequestViewDTO;
9+
import com.library.service.ExtendBookService;
10+
import java.io.IOException;
11+
import java.io.PrintWriter;
12+
import jakarta.servlet.ServletException;
13+
import jakarta.servlet.annotation.WebServlet;
14+
import jakarta.servlet.http.HttpServlet;
15+
import jakarta.servlet.http.HttpServletRequest;
16+
import jakarta.servlet.http.HttpServletResponse;
17+
import java.util.List;
18+
19+
/**
20+
*
21+
* @author hieuchu
22+
*/
23+
@WebServlet(name = "CExtendRequestManagerController", urlPatterns = {"/admin/extend-request-manger"})
24+
public class ExtendRequestManagerController extends HttpServlet {
25+
26+
private final ExtendBookService extendSerivce = ServiceFactory.getExtendBookService();
27+
28+
@Override
29+
protected void doGet(HttpServletRequest request, HttpServletResponse response)
30+
throws ServletException, IOException {
31+
32+
List<ExtendRequestViewDTO> list = extendSerivce.getAllExtendRequests();
33+
request.setAttribute("list", list);
34+
request.getRequestDispatcher("/WEB-INF/views/admin/extend_request_manager.jsp").forward(request, response);
35+
}
36+
37+
@Override
38+
protected void doPost(HttpServletRequest request, HttpServletResponse response)
39+
throws ServletException, IOException {
40+
41+
}
42+
43+
}

src/java/com/library/controller/filter/AutholizationURLController.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ public static final String[] pageForAdmin() {
5252
"/admin/user-borrowing-record",
5353
"/admin/user/delete",
5454
"/admin/user/logout",
55-
"/admin/users/logout-all"
55+
"/admin/users/logout-all",
56+
"/admin/extend-request-manger"
5657
};
5758
return tmp ;
5859
}

src/java/com/library/dao/ExtendRequestDao.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,15 @@
55
package com.library.dao;
66

77
import com.library.model.dto.ExtendRequestDTO;
8+
import com.library.model.dto.ExtendRequestViewDTO;
89
import com.library.model.entity.ExtendRequest;
10+
import java.util.List;
911

1012
/**
1113
*
1214
* @author hieuchu
1315
*/
1416
public interface ExtendRequestDao {
1517
boolean insertExtendRequest(ExtendRequestDTO request) ;
18+
List<ExtendRequestViewDTO> getAllExtendRequests();
1619
}

src/java/com/library/dao/ExtendRequestDaoImpl.java

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,15 @@
55
package com.library.dao;
66

77
import com.library.model.dto.ExtendRequestDTO;
8+
import com.library.model.dto.ExtendRequestViewDTO;
89
import com.library.model.entity.ExtendRequest;
910
import com.library.util.DBConnection;
1011
import java.sql.Connection;
1112
import java.sql.PreparedStatement;
13+
import java.sql.ResultSet;
1214
import 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
}
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
/*
2+
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
3+
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
4+
*/
5+
package com.library.model.dto;
6+
7+
import java.time.LocalDateTime;
8+
9+
/**
10+
*
11+
* @author hieuchu
12+
*/
13+
public class ExtendRequestViewDTO {
14+
private String account;
15+
private String avatar;
16+
private String title;
17+
private String coverImage;
18+
private LocalDateTime requestDate;
19+
private String status;
20+
21+
public ExtendRequestViewDTO() {
22+
}
23+
24+
public ExtendRequestViewDTO(String account, String avatar, String title, String coverImage, LocalDateTime requestDate, String status) {
25+
this.account = account;
26+
this.avatar = avatar;
27+
this.title = title;
28+
this.coverImage = coverImage;
29+
this.requestDate = requestDate;
30+
this.status = status;
31+
}
32+
33+
public String getAccount() {
34+
return account;
35+
}
36+
37+
public void setAccount(String account) {
38+
this.account = account;
39+
}
40+
41+
public String getAvatar() {
42+
return avatar;
43+
}
44+
45+
public void setAvatar(String avatar) {
46+
this.avatar = avatar;
47+
}
48+
49+
public String getTitle() {
50+
return title;
51+
}
52+
53+
public void setTitle(String title) {
54+
this.title = title;
55+
}
56+
57+
public String getCoverImage() {
58+
return coverImage;
59+
}
60+
61+
public void setCoverImage(String coverImage) {
62+
this.coverImage = coverImage;
63+
}
64+
65+
public LocalDateTime getRequestDate() {
66+
return requestDate;
67+
}
68+
69+
public void setRequestDate(LocalDateTime requestDate) {
70+
this.requestDate = requestDate;
71+
}
72+
73+
public String getStatus() {
74+
return status;
75+
}
76+
77+
public void setStatus(String status) {
78+
this.status = status;
79+
}
80+
81+
82+
}

src/java/com/library/service/ExtendBookService.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.library.factory.DaoFactory;
1111
import com.library.model.dto.BorrowedBookDTO;
1212
import com.library.model.dto.ExtendRequestDTO;
13+
import com.library.model.dto.ExtendRequestViewDTO;
1314
import java.time.LocalDate;
1415
import java.util.List;
1516

@@ -54,5 +55,8 @@ public void insertData(ExtendRequestDTO e){
5455
this.extendDao.insertExtendRequest(e);
5556
}
5657

57-
58+
public List<ExtendRequestViewDTO> getAllExtendRequests(){
59+
return this.extendDao.getAllExtendRequests();
60+
}
61+
5862
}

web/WEB-INF/views/admin/dashboard.jsp

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -407,16 +407,23 @@
407407
<div class="stat-info"><h4>${dto.totalOnlineUser}</h4><p>Online Users</p></div>
408408
</div>
409409

410-
<div class="stat-card">
411-
<div class="stat-icon orange"><i class="fa-solid fa-book-open-reader"></i></div>
412-
<div class="stat-info"><h4></h4><p>Active Borrowings</p></div>
413-
</div>
410+
411+
<a href="${pageContext.request.contextPath}/admin/extend-request-manger" style="text-decoration: none;">
412+
<div class="stat-card" style="cursor:pointer;">
413+
<div class="stat-icon orange"><i class="fa-solid fa-book-open-reader"></i></div>
414+
<div class="stat-info">
415+
<h4></h4>
416+
<p>Active Borrowings</p>
417+
</div>
418+
</div>
419+
</a>
414420

415421
<div class="stat-card">
416422
<div class="stat-icon purple"><i class="fa-solid fa-clock-rotate-left"></i></div>
417423
<div class="stat-info"><h4></h4><p>Overdue Books</p></div>
418424
</div>
419425
</div>
426+
420427
<!-- ===== DEMO CKEDITOR + CHART.JS ===== -->
421428
<section style="margin-top:60px; padding: 30px; background: #fff; border-radius: 12px; box-shadow: 0 3px 10px rgba(0,0,0,0.1);">
422429

@@ -476,18 +483,18 @@
476483
},
477484
x: {
478485
ticks: {
479-
color: '#4f46e5',
486+
color: '#4f46e5',
480487
font: {size: 14, weight: '600', family: 'Segoe UI'},
481488
},
482-
grid: {display: false}
489+
grid: {display: false}
483490
}
484491
},
485492
plugins: {
486-
legend: {display: false},
493+
legend: {display: false},
487494
title: {
488495
display: true,
489496
text: 'Borrowed Books by Category',
490-
padding: { bottom: 30 },
497+
padding: {bottom: 30},
491498
font: {size: 18, weight: 'bold'},
492499
color: '#1f2937'
493500
}

0 commit comments

Comments
 (0)