이제 제일 어려운 구간이다
흐름
쿠폰 1차 유효성 검사-> 매장별로 제품을 꺼낸다->상품을 검증한다->쿠폰 2차 검증한다
제품별 결제정보 생성->매장 조건에 부합하는지 검증한다
1. 쿠폰 1차 검사

쿠폰 유효성 검사 후 받는다
couponVo couponVo=couponService.CheckAndGet(couponName);
2. 매장별로 제품을 꺼낸다

매장 꺼내기
storeVo storeVo=storeService.getVo(storeId);
검증 전 일단 배달 가능 지역인지 확인
if(checkDeliverRadius(storeVo.getSaddress(),storeVo.getDeliverRadius(),tryOrderDto.getAddress())){
이 함수 안에서 카카오 주소 api를 호출해
현존하는 주소가 맞는지 검사한다
그리고 위도 경도로 거리를 측정한다
제품 검증 시작
for(Map<String,Object>basketAndProduct:basketAndProducts){
3. 상품 검증

이벤트가 있는 제품인지 판별
이벤트가 있다면 이벤트 금액을 주고
아니라면 원래 가격을 받음
productVo productVo=(productVo)productService.getProduct(productId).get("message");
쿠폰 적용 전 총액 저장
배달 최소금액에 부합하는지 확인
totalPrice+=price*count;
쿠폰 적용을 요청했는지 검사
if(coupons.get(basketId)!=null){
4. 쿠폰 2차 검증

장바구니 개수==쿠폰 개수 검사
바나나 2개 == 최대 쿠폰 2장 사용 가능
if(counponInfors.size()>count){
해당 매장 발행 쿠폰인지 검사
if(couponVo.getStoreId()!=storeId){
(쿠폰 중복/기간/사용 여부 검사는 1차에서 이뤄짐)
쿠폰 적용 후 가격 계산
for(int discountPrice:discountPrices){//쿠폰 적용 가격들 더해주기
System.out.println("discountPrice"+discountPrice);
price+=discountPrice;
}
}else{
price*=count;
}
5. 제품별 결제 정보/ 매장 주문 가능 여부 판단

매당 매장 제품/쿠폰 검증이 모두 끝나면
총액으로 배달 여부 판단
6. 결제정보 만들기

모든 반복문이 끝나면
정리한 자료로 결제정보를 생성한다
결과


주문 정보가 잘 만들어졌다
테스트
제품1개 쿠폰 2개

배달 최소금액 미 충족

배달 범위 미충족

아하나를 빼먹었다
영업중인지 판단도 해줘야한다
'Jang_bo_go' 카테고리의 다른 글
Springboot 결제시스템(4) 결제검증 (0) | 2022.03.16 |
---|---|
Springboot 결제시스템(3) redis에 저장하기 (0) | 2022.03.11 |
Springboot 결제시스템(1) 매장별 분리 (0) | 2022.03.11 |
SpringBoot 장바구니 만들기(미완성버전) (0) | 2022.03.07 |
프로젝트 중간상태 (0) | 2022.02.28 |