전체 글 269

Springboot 결제+예약!(1) 당일 예약 시스템 with 아임포트 ,j쿼리,HttpSession

이전 예약 시스템은 결제 시스템이 없는 시스템이었다 예약하는데 꼭 결제 시스템을 넣어 보고 싶어서 이틀 동안 고생한 결과 아임 포트를 이용해서 성공했다 다만 순수 자바스크립트가 아닌 j쿼리의 힘을 어느 정도 빌려서 만들었다 시작해보자! 예약결제 자체는 아임 포트에서 자체적으로 제공해줘서 별로 어렵지 않다 하지만 검증/취소가 서버 쪽에서 이뤄져야 해서 아임 포트 api를 열심히 뒤져서 만들었다 html 그다음 좌석에 맞는 예약 가능 시간을 가져온다 j쿼리를 사용해서 서버에서 예약 가능 시간을 가져와서 개수만큼 체크 박스를 만들어준다 $('#requesthourdiv').append(""+alreadytime[i]+"시~"+ii+"시"); 정말 편리하다 j 쿼리 서버소스는 이전에 여기서 구현했다 https:..

Springboot 결제시스템 만들기!(3) 결제취소 with 아임포트,HttpEntity,RestTemplate,HttpHeaders,Json

토큰을 발급받고 나니까 얼추 적응을 했는지 또 금방 환불을 구현했다 어떻게 api와 통신하는지 감을 좀 잡은 거 같다 service 헤더에는 토큰을 넣어주고 바디에는 결제 id를 넣어준다 그다음 주소로 쏴주고 dto를 만들어서 받아준다! dto 진짜 편리하다 dto로 받는 기능 결과 너무 기쁘다 ㅠㅠㅠ 외부 api 사용하기! 포기하고 싶었던 구간을 넘었다! 첫날 진짜 몇 시간 동안 토큰 받는 거에 매달렸는데 그다음 감을 잡았는지 일사천리로 했다 ㅠㅠㅠ 토큰/결제정보 받기/결제 취소, 환불 모두 터득했다 ㅠㅠㅠ 처음에 어 뭐야 겁나 쉽네 결제시스템 했는데... 검증을 서버에서 해야 한다니ㅋㅋㅋ 하 그래도 아임 포트가 있어서 이 정도지 직접 구현했다가는 어후... 이제 이걸 토대로 예약/변경/취소를 만들자!

Springboot 결제 시스템 만들기!(2) 결제정보 가져오기 with 아임포트,RestTemplate,HttpHeaders,Json,HttpEntity

이제 토큰을 받아왔으니 토큰을 이용해 결제정보가 맞는지 확인하기 위해 결제정보를 가져와보자! 생각보다 빨리 해냈다 https://api.iamport.kr/ API-아임포트 api.iamport.kr apl를 자세히 보면 payments : 결제내역 조회 및 결제 취소 /payments/{imp_uid}를 사용해서 가져왔다 dto service 처음에 nobody오류가 나길래 body로 토큰을 보냈는데 또 같은 오류가 났다 그래서 보통 이런 건 헤더로 보내던데 해서 그냥 헤더로 보내봤다 결과 구매정보를 받았다 근데 분명 api에 get이라고 되어있었는데 postForObject를 사용해서 성공했다.. 이제 가격을 비교해서 좌석 가격과 일치하면 true를 리턴하고 아니라면 결제 취소를 하자!

Springboot 결제 시스템 만들기! (1) 토큰 발급받기 with 아임포트, HttpHeaders ,RestTemplate,Response

진짜 죽는 줄 알았다 결제만 몇 번 한 건지 모르겠다 오후 2시 부터 했는데 현재 8시이다 일단 결제 시스템을 만든 이유는 사실 예약 변경/수정/삭제는 이제 db에서 delete/update/insert 하는 일만 남았었다 또 똑같이 만들기엔 좀 발전이 없는거 같아서 결제 시스템을 적용 하려고 한다! 처음 결제를 하는건 어렵지 않다 그냥 프론트에서 해주면 되는데 문제는 서버였다 검증을 해주려면 일단 토큰부터 발급받아야 하는데 진짜 겁나 힘들었다 내가 찾은 해답은 이것이다 js 알아서 제공해주는 기능이고 rsp가 오면 성공적이라면 rsp id를 서버로 준다 restcontroller 일단 서비스고 뭐고 빠른 테스트를 위해 컨트롤러에서 테스트 중이었다 진짜 죽는 줄 알았다 진짜 서버로 통신 어떻게 해야 하는..

Springboot 예약내역 페이지 만들기!(2) 날짜를 비교하자 with Timestamp and LocalDateTime

이제 시간이 지난 예약은 변경/취소할 수 없게 만들어보자! 날짜를 비교해야하는데 service LocalDateTime을 선택한 이유가 일단 timestamp에서 변환 하기 간단했고 isAfter/isBefore처럼 아주 유용한 기능을 제공해 주고 있었다 그래서 현재시간이라 비교해서 판별하게 했다! service 여기서 이제 true를 주는것만 배열에 넣어서 프런트에게 던져 주면 되고 false인 경우reservationdao.deleteById(reservationvo.getId()) 사용해 예약 테이블에서 빼준다 개인적으로 isAfter/isBefore가 아직 했갈린다 ㅋㅋㅋ 그래서 테스트를 몇 번 해봐야 한다! 컨트롤러는 달라진 게 없으니! 스킵 결과 현재 3시 58분 16시 거를 무지하게 예약했다..

Springboot 예약내역 페이지 만들기!(1) with thymeleaf

이제 예약 내역 페이지를 만들 건데 1. 예약시간이 지난 예약은 표시해주지 않는다 2. 히스토리를 같이 표시해준다 vo를 고쳐주자! 추후 수정/삭제를 위해 몇 가지를 추가해주자! @Column(name = "rid",nullable = false) int rid; @Column(name="email",nullable = false) String email; @Column(name = "seat",nullable = false) String seat; controller 예약 내역 페이지에 갈 때 필요한 것들이다 reservationservice.getReservationByEmail(email)는 시간이 아직인 예약 historyservice.getHistories(email,page,totalpages..

Springboot 당일 예약 시스템 만들기!(3) with json and Transactional

+추가 20210821 당일이 아닌 더 업그레이드 된 예약시스템은 여기있습니다 https://cordingmonster.tistory.com/138 Springboot 예약시스템 만들기!(1) 연/월/일/요일 뿌리기! 이전에 kimscafe에서는 '당일' 예약만 가능한 시스템이었다 이번엔 언제든 가능한 예약시스템을 사용해보자! 시나리오 자리 선택->년/월/날짜 표시-> 날짜 선택-> 시간표시-> 예약 프런트 서버 html cordingmonster.tistory.com 이제 예약 시스템 2번째 히스토리 시스템을 만들어보자! 이게 히스토리와/예약의 다른 부분은 예약 시스템은 사용자가 예약을 사용하거나/예약시간을 놓치거나 하거나 예약의 효력이 없어지는 상황이 된다면 사라진다 하지만 히스토리는 사용하든/효력이..

Springboot 당일 예약시스템 만들기!(2) with Enum

생활 치료소에 온 지 5일이 지났다 5일 동안 열이 좀 나서 코딩을 못하다 이제 괜찮아져서 다시 적는다 두 가지에 대한 검증을 할 건데 1. 예약하는 사이에 이미 예약 이참 2. 불법 적으로 이전 시간으로 조작해서 예약을 시도 service 상황에 맞게 검증해보자 그리고 경우가 늘어나므로 반환 형식을 string로 해준다 service true면 예약이 진행 나머지면 enum의 .valueOf를 이용해서 메시지를 던 저주자! 정상적 예약 시도 중복 시간 예약 시도 (다른 아이디 사용) 이전 시간 예약 시도 마지막 줄은 enum메시지인데 j쿼리가 아직 엉망이어서 받지 못하는 중이다 일단 그건 마지막에 하고 이제 히스토리를 만들러 가자! 히스토리는 모든 예약을 가지고 있는 테이블로 만들 것이다! 아 예약 게..

Springboot 당일 예약시스템 만들기!(1)

아 정말 혼자 공부했을 때 뿌듯했던 파트였다 근데... 지금 아버지가 격리 시설에 들어가시고... 나도 몸살이 좀 있어서 검사를 받았다 정말 열심히 쓰고 싶었던 파트인데 국비지원도 같이 들으면서 열심히 하고 있는데 정말 절망이 찾아온 거 같다 격리 시설 가게 된다면... 노트북으로라도 진행할 생각인데 망할 lombok이 안 먹는다@data가 진짜 젠장 일단 대충 설명을 해야 할 거 같다 여기서는 일단 j쿼리를 사용했고 추후에 교체 예정이다 html 테스트를 위해 잠시 authorize 밖에 빼놨다 j쿼리 부분은 옛날에 짜는 거라 너무 개판이라 나중에 올리는 게 좋을 거 같아서 나중에 올려보자 service 첫 번째로 예를 들어 지금이 현재 오후 8시라면 당일 오전 6시 가 예약이 없었어도 던져주면 안 되..

Springboot 게시판만들기!(14) 게시글 삭제

이제 대망의 삭제를 할 건데 게시글이 삭제될때 게시글만 삭제되면 안 되고 사진/내용/댓글 모두 삭제시키려고 한다 이미 사진삭제하는 함수는 만들어 놨으니 글/댓글부터 삭제해주는 함수를 만들자 commentdao native쿼리를 이용해서 게시글 번호로 관련된 댓글들을 한 번에 삭제할 수 있게 해 주자 commentservice dao를 불러주는 함수이다 boardservice Listalreadyimages=new ArrayList(); uploadimageservice.deleteImage(alreadyimages, bid); 이전 함수를 호출해서 빈 배열을 준다 이렇게 되면 기존 사진의 배열이 비어있으므로 db의 사진 정보가 그대로 deleteimages배열에 들어가서 그대로 delete문으로 들어가게..