728x90
결제시 사용 가능한 쿠폰 확인
1)
결제 페이지 에서 회원이 보유 하고 있는 쿠폰 중에서, 사용 가능한 쿠폰만 보여지도록 한다.
2)
Model
Read에 해당하는 쿼리문을 작성 하고, WHERE 절의 조건으로 사용자의 PK를 받는다.
사용가능한 쿠폰만 불러오기 위해서,
사용 가능 여부를 알려주는 칼럼의 값을 쿼리문에 작성 한다.

쿠폰 상세 테이블에 UCABLE 이라는 쿠폰 사용 가능 여부를 의미하는 칼럼이 있다.
UCABLE 칼럼의 행값이 1이면 사용이 가능한 쿠폰이고,
UCABLE 칼럼의 행값이 0이면 사용이 불가능한 쿠폰을 의미 한다.
결제 페이지 에서는 사용이 가능한 쿠폰만 보여지도록 하기 위해서 위의 쿼리문을 사용 한다.
3)
View
회원이 보유 하고 있는 사용 가능한 쿠폰만 보여지도록 한다.
쿠폰 이름, 쿠폰 할인율, 쿠폰 유효 기간을 보여준다.
쿠폰 할인율 칼럼값은 퍼센트가 아니라 소수점으로 되어 있기 때문에,
사용자 편의성을 위해 퍼센트로 표현되도록 보완 하기.
[ buypage.jsp ]
<table class="table">
<thead>
<tr>
<th>쿠폰 이름</th>
<th>할인율</th>
<th>유효 기간</th>
<th>쿠폰 적용 여부</th>
</tr>
</thead>
<tbody>
<c:forEach var="coupon" items="${ucdatas}">
<!-- data-rowID 으로 쿠폰 정보에 대한 각 행에 ID값 부여 하기. -->
<!-- data-ucNum 으로 속성을 정의 하기. -->
<!-- data-cDiscount 으로 속성을 정의 하기. -->
<!-- data-cName 으로 속성을 정의 하기. -->
<tr data-rowID="${coupon.ucNum}">
<td>
<strong>
<a
href="#"
class="couponInfo"
data-ucNum="${coupon.ucNum}"
data-cDiscount="${coupon.cDiscount}"
data-cName="${coupon.cName}">
[ ${coupon.cName} ]
</a>
</strong>
</td>
<td>
<strong>
<c:choose>
<c:when test="${coupon.cDiscount eq 0.9}">[ 10 % ]</c:when>
<c:when test="${coupon.cDiscount eq 0.85}">[ 15 % ]</c:when>
<c:when test="${coupon.cDiscount eq 0.8}">[ 20 % ]</c:when>
</c:choose>
</strong>
</td>
<td>[ ${coupon.ucFdate} ]</td>
<td class="couponStatus">미적용</td>
</tr>
</c:forEach>
</tbody>
</table>

4)
Controller
Read에 해당하는 쿼리문인 selectAll() 메서드를 사용하고,
회원의 사용 가능한 쿠폰 데이터를 배열리스트 데이터로 받아,
데이터를 View로 보내준다.
// ==========================================================[구매]==================================================================
@RequestMapping(value = "/buyPage.do")
public String buyPage(MemberVO mVO, ProductVO pVO, SubscriptionVO subVO, UsecouponVO ucVO, HttpSession session, Model model, HttpServletRequest request) {
// 코드 생략 ..
// ---------------------------------------- ( 쿠폰 데이터 ) ----------------------------------------
// 모든 구매 경우의 수 일지라도 결제 페이지로 사용자의 사용 가능한 쿠폰 데이터를 보내 주기.
String mID = (String) session.getAttribute("mID"); // 세션 mID 받아 오기.
ucVO.setmID(mID); // mID set 하기.
ucVO.setSk("ABLE");
List<UsecouponVO> ucdatas = usecouponService.selectAll(ucVO);
model.addAttribute("ucdatas", ucdatas); // 회원의 사용 가능한 쿠폰 데이터를 보내 주기.
return "buyPage.jsp"; // 구매 페이지로 이동
}
// ================================================================================================================================
반응형
'Team Project (국비) > Team Project 메모' 카테고리의 다른 글
최종프로젝트 쿠폰 기능 관련 코드 (결제페이지 쿠폰 적용) (0) | 2023.09.16 |
---|---|
최종프로젝트 Controller, View 파트 진행도 (0) | 2023.09.16 |
최종프로젝트 쿠폰 기능 관련 코드 (마이페이지 쿠폰 확인) (0) | 2023.09.16 |
최종프로젝트 쿠폰 기능 관련 코드 (추천인 기능) (0) | 2023.09.16 |
최종프로젝트 Controller, View 파트 진행도 (0) | 2023.09.15 |