Skip to content

Commit 503f50a

Browse files
committed
책삭제 조건 추가, 대공사 하기전 백업
1 parent 926dc03 commit 503f50a

File tree

2 files changed

+62
-27
lines changed

2 files changed

+62
-27
lines changed

src/view/BookInfo.java

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ public class BookInfo extends JFrame {
5858
long diffDays = 0; // 연체일을 나타내는 변수
5959
ReviewPanel[] review;
6060
JLabel bookGradeLabel;
61+
Date susDate = null;
6162

6263
/**
6364
* Launch the application.
@@ -99,13 +100,14 @@ public BookInfo(String book_ISBN, String user_phone) {
99100
@Override
100101
public void mouseClicked(MouseEvent e) {
101102

103+
if (isSuspension()) { // 만약 연체 유저라면
104+
userSus = true;
105+
} else { // 만약 연체 유저가 아니거나 정지일이 지난 유저라면
106+
updateUserSuspension(0);
107+
}
108+
102109
if (bookBorrowButton.getText().equals("대출하기")) // 대출하기 버튼 상태일 때
103110
{
104-
if (isSuspension()) { // 만약 연체 유저라면
105-
userSus = true;
106-
} else { // 만약 연체 유저가 아니거나 정지일이 지난 유저라면
107-
updateUserSuspension(0);
108-
}
109111

110112
if ((userPoint < 50 && bookBorrowCnt < 3 || userPoint >= 50 && bookBorrowCnt < 5) && !userSus) // 대출성공했을때
111113

@@ -408,7 +410,7 @@ public void updateUserSuspension(int day) {
408410
// 업데이트
409411
} else {
410412
Date now = new Date();
411-
413+
412414
Calendar cal = Calendar.getInstance();
413415
cal.setTime(now); // 현재 유저가 접속한 날짜를 기준으로 정지일을 추가시킴.
414416
cal.add(Calendar.DATE, day);
@@ -419,12 +421,10 @@ public void updateUserSuspension(int day) {
419421
sql = "update USER\r\n" + "SET USER_POINT = USER_POINT-5, USER_SUSPENSION = '" + diffTime + "'\r\n"
420422
+ "WHERE USER_PHONE = '" + user_phone + "';"; // 해당 유저의 정지일을 업데이트시키고 포인트 5점을 깎음.
421423

422-
sql = "update USER SET USER_POINT = USER_POINT + 5\r\n" + "WHERE USER_PHONE = '" + user_phone + "';";
423424

424425
}
425426
try { // DB 접근
426427
PreparedStatement ps = dbConn.conn.prepareStatement(sql);
427-
ps.executeUpdate();
428428

429429
} catch (SQLException e) {
430430
e.printStackTrace();
@@ -436,7 +436,6 @@ public void updateUserSuspension(int day) {
436436
public boolean isSuspension() {
437437
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
438438
Date returnDate;
439-
Date susDate;
440439
Date nowDate;
441440
try {
442441
nowDate = dateFormat.parse(LocalDate.now().toString());
@@ -452,7 +451,8 @@ public boolean isSuspension() {
452451

453452
int compare = nowDate.compareTo(susDate); // 현재 날짜와 정지 날짜를 비교하면 compare가 0보다 크다면 정지
454453

455-
if (compare > 0) { // 만약 정지 날짜가 현재 날짜보다 뒤에있다면
454+
if (compare < 0) { // 만약 정지 날짜가 현재 날짜보다 뒤에있다면
455+
System.out.println(nowDate + " " + susDate);
456456
return true;
457457
}
458458
}
@@ -467,20 +467,27 @@ public boolean isSuspension() {
467467
returnDate = dateFormat.parse(s);
468468

469469
int compare = nowDate.compareTo(returnDate); // 현재 날짜와 반납 날짜를 비교하면 compare가 0보다 크다면 반납 기한을 지남
470-
470+
boolean r = false;
471+
int max = 0;
471472
if (compare > 0) { // 만약 반납 날짜가 현재 날짜를 지났다면
473+
472474
Calendar nowCal = Calendar.getInstance();
473475
nowCal.setTime(nowDate);
474476
Calendar returnCal = Calendar.getInstance();
475477
returnCal.setTime(returnDate);
476478

477479
long diffSec = (nowCal.getTimeInMillis() - returnCal.getTimeInMillis()) / 1000;
478480
diffDays = diffSec / (24 * 60 * 60); // 현재 날짜와 반납 일자수 차이
479-
480-
updateUserSuspension((int) diffDays); // 해당 유저의 정지일을 업데이트하기 위해 정지 업뎃함수를 호출함.
481-
481+
if(max < (int)diffDays) max = (int)diffDays;
482+
r = true;
483+
484+
}
485+
486+
if(r && max != 0) {
487+
updateUserSuspension(max); // 해당 유저의 정지일을 업데이트하기 위해 정지 업뎃함수를 호출함.
482488
return true;
483489
}
490+
484491
}
485492
} catch (SQLException e) {
486493
e.printStackTrace();
@@ -491,6 +498,15 @@ public boolean isSuspension() {
491498
}
492499
return false;
493500
}
501+
502+
//정지 여부를 확인해주는 함수
503+
504+
505+
//정지일을 부여하는 함수
506+
507+
//연체된책이 있는지 확인해주는 함수
508+
509+
494510

495511
// 해당 도서 대여시 Rent테이블 업뎃함수
496512
public int BookRent() {

src/view/EditableBookInfo.java

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,8 @@ public void mouseClicked(MouseEvent e) {
147147
+ book_ISBN + "' AND RENT_RETURN_YN IS NULL;");
148148

149149
if (rs2.next()) {
150-
System.out.println(rs2.getString("BOOK_ISBN"));
151-
System.out.println("안녕");
150+
151+
152152
JOptionPane.showMessageDialog(null, "대여중인 도서입니다.", "도서 삭제 실패",
153153
JOptionPane.ERROR_MESSAGE);
154154
} else {
@@ -158,25 +158,44 @@ public void mouseClicked(MouseEvent e) {
158158

159159
int count1 = ps1.executeUpdate();
160160

161-
//즐겨찾기 삭제
162-
String sql2="DELETE from FAVORITES\r\n"
163-
+ "WHERE FAVORITES.BOOK_ISBN = '"+book_ISBN+"';";
164-
PreparedStatement ps2 = dbConn.conn.prepareStatement(sql2);
165-
int count2 = ps2.executeUpdate();
161+
ResultSet isFavorite = dbConn.executeQuery("SELECT BOOK_ISBN FROM FAVORITES WHERE BOOK_ISBN = '"
162+
+ book_ISBN + "';");
163+
164+
ResultSet isReview = dbConn.executeQuery("SELECT BOOK_ISBN FROM REVIEW WHERE BOOK_ISBN = '"
165+
+ book_ISBN + "';");
166+
167+
int count2 = 0;
168+
int count3 = 0;
169+
170+
if(isFavorite.next()) {
171+
//즐겨찾기 삭제
172+
String sql2="DELETE from FAVORITES\r\n"
173+
+ "WHERE FAVORITES.BOOK_ISBN = '"+book_ISBN+"';";
174+
175+
176+
PreparedStatement ps2 = dbConn.conn.prepareStatement(sql2);
177+
count2 = ps2.executeUpdate();
178+
}else {
179+
count2 = 1;
180+
}
181+
182+
if(isReview.next()) {
183+
//리뷰 삭제
184+
String sql3="DELETE from REVIEW\r\n"
185+
+ "WHERE REVIEW.BOOK_ISBN = '"+book_ISBN+"';";
186+
PreparedStatement ps3=dbConn.conn.prepareStatement(sql3);
187+
count3 = ps3.executeUpdate();
188+
}else {
189+
count3 = 1;
190+
}
166191

167-
//리뷰 삭제
168-
String sql3="DELETE from REVIEW\r\n"
169-
+ "WHERE REVIEW.BOOK_ISBN = '"+book_ISBN+"';";
170-
PreparedStatement ps3=dbConn.conn.prepareStatement(sql3);
171-
int count3 = ps3.executeUpdate();
172192

173193
if (count1 == 0||count2==0||count3==0) {
174194
JOptionPane.showMessageDialog(null, "도서 삭제에 실패하였습니다.", "도서 삭제 실패",
175195
JOptionPane.ERROR_MESSAGE);
176196
} else {
177197
JOptionPane.showMessageDialog(null, "도서 삭제에 성공하였습니다.", "도서 삭제 성공",
178198
JOptionPane.NO_OPTION);
179-
180199

181200
}
182201
}

0 commit comments

Comments
 (0)