Skip to content

sungjiRyu/prj01

Repository files navigation

SUTABUKS

스타벅스를 벤치마킹한 음식 배달 서비스 입니다.

소개

GPS를 통해 근처의 매장을 검색할 수 있습니다. 매장을 선택해서 음료와 음식을 주문합니다.
멤버십 카드를 통해 결제할 수 있습니다.

시연영상

sutabucks.mp4


프로젝트 개요 ->


목차

  1. 제작 기간 & 제작 인원
  2. 담당 기능
  3. 사용 기술
  4. ERD 설계
  5. 주요 코드
  6. 단위테스트




1. 제작 기간 & 제작 인원

  • 2022/12/28 ~ 2023/02/06
  • 참여인원 7명(프론트 3명, 백엔드 4명)




2. 담당 기능




3. 사용 기술

Back-end

open-api

형상관리




4. ERD 설계

prj01_ERD




5. 주요 코드


5.1 아이디 찾기 인증번호 발송(휴대폰)

public Map<String, Object> IdAuthNumByPhone(PostFindIdDTO data, HttpSession session) {
        MemberEntity user = null;
        Map<String, Object> resultMap = new HashMap<String, Object>();
        String name = data.getMiName();
        String phoneNum = data.getMiPhoneNum();
        try {
            user = mRepo.findByMiNameAndMiPhoneNum(data.getMiName(), data.getMiPhoneNum());
        } catch (Exception e) {
            e.printStackTrace();
        }
        // 회원정보가 없을때(탈퇴회원도 동일)
        if(name == null){
            resultMap.put("status", false);
            resultMap.put("message", "이름을 입력해주세요.");
            resultMap.put("code", HttpStatus.BAD_REQUEST);
        }
        else if(phoneNum == null){
            resultMap.put("status", false);
            resultMap.put("message", "전화번호를 입력해 주세요.");
            resultMap.put("code", HttpStatus.BAD_REQUEST);
        }
        else if (user == null || user.getMiStatus() == 3) {
            resultMap.put("status", false);
            resultMap.put("message", "등록된 회원정보와 일치하지 않습니다");
            resultMap.put("code", HttpStatus.BAD_REQUEST);
        }
        else{
            // 인증번호 생성
            Integer certificationNum = GetAuthNum.getAuthNum();
            // 인증번호 메시지로 발송
            sendMessage.sendAuthNumbyPhone(data.getMiPhoneNum(), certificationNum);

            // 입력받은 이름, 전화번호와 일치하는 사용자 정보 seesion에 저장
            // 생성한 인증번호 session 에 저장
            // session에 저장된 정보는 3분후 삭제
            session.setAttribute("authNum", certificationNum);
            session.setAttribute("user", user);
            session.setMaxInactiveInterval(60*3);

            resultMap.put("status", true);
            resultMap.put("message", "인증번호가 발송되었습니다. 3분안에 입력해 주세요");
            resultMap.put("code", HttpStatus.OK);
            resultMap.put("authNum", certificationNum);

        }
        return resultMap;
    }

입력받은 이름과 전화번호로 회원가입된 사용자인지 조회합니다.
user객체가 null이면 회원가입되지 않은 사용자로 판단하고 오류메세지를 출력합니다.
유효성 검사를 통과했을 시 getAuthNum 메서드를 통해 4자리 숫자로된 인증번호를 생성합니다.
외부api를 사용한 sendMessage 메서드를 통해 입력한 전화번호로 인증번호가 전송됩니다.




6. 단위 테스트


8.1 Postman

prj01_postman1



기타 postman 테스트 보기

화면 캡처 2023-03-28 020912 화면 캡처 2023-03-28 020842 화면 캡처 2023-03-28 020823 화면 캡처 2023-03-28 020805 화면 캡처 2023-03-28 020740 화면 캡처 2023-03-28 020717 화면 캡처 2023-03-28 020658 화면 캡처 2023-03-28 020627


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published