2024. 4. 17. 17:53ㆍlibraryProject
안녕하세요. 진득 코딩입니다. 이번 시간에는 연체 구제 신청에 대한 관리자의 관리 기능에 대해서 살펴보도록 하겠습니다.
View

먼저 관리자가 사용한다고 생각하고 view를 살펴보도록 하겠습니다. 관리자나 사서로 로그인 해서 관리자 모드로 들어오면 관리자 모드 index를 보실 수 있습니다. 왼쪽 sidenav에서 회원관리 배너 안에 있는 연체 구제 신청 버튼을 누르게 되면 연체 구제 신청 관리 기능을 사용하실 수 있습니다.

처음 진입하게 되면 연체 구제 신청 목록을 보실 수 있습니다. 여러 가지 정보들이 있는데 연체 구제 신청하는 기능이 아직 미완성이라서 테스트를 위해 임의로 값을 넣고 시연을 진행하였습니다. 여기에서 구제 신청 번호를 클릭하게 되면 해당 신청에 대한 상세보기를 보실 수 있습니다.

연체 구제 신청 상세보기로 들어가게 되면 해당 신청 정보를 모두 볼 수 있고 연체 구제 신청을 수락 또는 거절할 수 있는 버튼이 있습니다. 각각의 버튼을 눌러서 해당 신청을 수락 또는 거절을 할 수 있습니다.

이렇게 수락이나 거절을 해서 해당 신청에 대한 처리가 완료되면 연체 구제 신청 목록에서 해당 신청은 안보이게 됩니다. DB를 보면서 다시 한번 살펴보도록 하겠습니다.
DB

해당 테이블은 어떤 처리도 하지 않았을 때의 save_overdue 테이블입니다. process는 처리 여부를 알려주는 컬럼으로 0은 미처리, 1은 처리 완료를 뜻하게 됩니다. rankid 50은 연체 회원을 의미합니다.

연체 구제 신청을 수락하게 되면 위와 같이 process가 1로 바뀌게 되고 rankid는 준회원인 10으로 바뀌어 있는 것을 확인하실 수 있습니다.

반면에 신청을 거절하게 되면 위와 같이 process가 똑같이 1로 바뀌게 되지만 rankid는 여전히 연체 회원 코드인 50으로 유지되는 것을 확인하실 수 있습니다.

해당 도서관에서 연체를 하게 되면 overdue라는 테이블에 묶이게 되는데 해당 테이블에서의 가장 뒤에 있는 rankid 컬럼 중 아이디가 123인 회원에 대해서 모두 10으로 바뀌어 있는 것을 확인할 수 있습니다.

회원들의 정보가 담겨 있는 member 테이블에도 해당 회원의 rankid가 10으로 바뀌어 있는 것을 확인할 수 있습니다. (3번 째 컬럼 참조) 연체 구제 신청을 관리하는 기능은 다른 기능보다 건드려야할 테이블이 조금 더 많아서 코드가 좀 더 길고 신경쓸게 많았던 기능입니다. 코드를 살펴보도록 하겠습니다.
Code


연체 구제 신청 기능에 대한 컨트롤러입니다. 가장 눈에 띄는 부분은 수락하는 메서드를 보시면 서비스를 4번이나 왔다갔다 하는 것을 확인하실 수 있습니다. 이는 saveOverdue 테이블, overdue 테이블, member 테이블 총 3개의 테이블의 값을 변경해주어야 하기 때문입니다.

모든 기능들이 DB에 접근해야하기 때문에 모두 DAO를 호출합니다. ok, levelUp, howManyOverdue 메서드는 모두 수락 기능에 사용되는 메서드 입니다.

각각의 메서드 모두 DB에 접근해야하는 메서드들이기 때문에 각각에 맞는 mapper를 호출해주고 있습니다.


여기에서 levelup 메서드는 member 테이블에 있는 회원 정보를 수정하는 기능을 가지고 있고 howManyOverdue 테이블에서는 overdue 테이블에 있는 회원 권한을 10으로 바꾸면서 overdueetc를 1 증가시켜서 연체한 횟수를 업데이트 해주는 기능도 가지고 있습니다.
연관된 테이블도 많고 생각해야 할 것도 많은 꽤나 고민을 많이 하게 했던 기능이어서 좀 더 기억에 남는 기능인 것 같습니다. 하지만 해당 기능을 하면서 좀 더 MVC 패턴을 사용하는데에 자유로워진 듯한 느낌을 줬던 기능입니다.
'libraryProject' 카테고리의 다른 글
[LibraryProject] Q&A 게시판 답변 기능 구현 (0) | 2024.04.27 |
---|---|
[LibraryProject] 블랙리스트 구제 신청 관리 기능 구현 (0) | 2024.04.26 |
[LibraryProject] 정회원 전환 신청 관리 기능 구현 (2) | 2024.04.17 |
[LibraryProject] 블랙리스트 구제 신청 기능 구현 (0) | 2024.04.17 |
[LibraryProject] 정회원 전환 신청 기능 구현 (0) | 2024.04.16 |