구현에 앞서 필요한 VO 정의
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="logImpl" value="LOG4J2"/>
</settings>
<typeAliases>
<typeAlias type="com.pcwk.miss.domain.MovieVO" alias="MovieVO"/>
<typeAlias type="com.pcwk.miss.cmn.SearchVO" alias="SearchVO"/>
<typeAlias type="com.pcwk.miss.movie.domain.NowPlayingVO" alias="NowPlayingVO"/>
<typeAlias type="com.pcwk.miss.movie.domain.PlayingSoonVO" alias="PlayingSoonVO"/>
<typeAlias type="com.pcwk.miss.movie.domain.WatchMovieVO" alias="WatchMovieVO"/>
<typeAlias type="com.pcwk.miss.movie.domain.MovieDetailVO" alias="MovieDetailVO"/>
<typeAlias type="com.pcwk.miss.movie.domain.StillCutVO" alias="StillCutVO"/>
<typeAlias type="com.pcwk.miss.movie.domain.MovieReviewVO" alias="MovieReviewVO"/>
<typeAlias type="com.pcwk.miss.domain.CouponVO" alias="CouponVO"/>
<typeAlias type="com.pcwk.miss.movie.domain.MovieListVO" alias="MovieListVO"/>
<typeAlias type="com.pcwk.miss.domain.TicketVO" alias = "TicketVO"/>
<typeAlias type="com.pcwk.miss.faq.domain.FaqVO" alias="FaqVO"/>
<typeAlias type="com.pcwk.miss.pay.domain.ReserveVO" alias="ReserveVO"/>
<typeAlias type="com.pcwk.miss.domain.MemberVO" alias="MemberVO"/>
<typeAlias type="com.pcwk.miss.mypage.domain.HistoryVO" alias="HistoryVO"/>
<typeAlias type="com.pcwk.miss.mypage.domain.MemberInfoVO" alias="MemberInfoVO"/>
<typeAlias type="com.pcwk.miss.domain.ImageVO" alias="ImageVO"/>
</typeAliases>
</configuration>
결제 완료 후 쿠폰 발급, 회원 정보 업데이트, 예매 내역, 해당 영화 정보를 불러 오기위한 DB Query 구현
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pcwk.miss.pay">
<select id="posterSelect" parameterType = "MovieVO" resultType="String">
SELECT im_route AS imRoute
FROM image
WHERE mv_num = #{mvNum} AND mv_seq = 1
</select>
<insert id="couponInsert" parameterType = "CouponVO">
INSERT INTO COUPON(
c_num,
mb_num,
c_name,
c_target,
c_ratio,
c_kind
)
VALUES(
COLUMN_SEQ.NEXTVAL,
#{mbNum},
#{cName},
#{cTarge},
#{cRatio},
#{cKind}
)
</insert>
<update id="memberUpdate" parameterType = "MemberVO">
UPDATE member
SET mb_grade = mb_grade + 1
WHERE mb_num = #{mbNum}
</update>
<select id="payCount" parameterType = "TicketVO" resultType="int">
SELECT COUNT(*) AS cnt
FROM ticket
WHERE mb_num = #{mbNum} AND t_status = 1
</select>
<select id="memberSelete" parameterType="MemberVO" resultType="MemberVO">
SELECT
mb_num AS mbNum,
mb_email AS mbEmail,
mb_name AS mbName,
mb_tel AS mbTel,
mb_birth AS mbBirth ,
mb_nickname AS mbNickname,
mb_grade AS mbGrade,
mb_point AS mbPoint
FROM member
WHERE mb_num = #{mbNum}
</select>
<select id="movieInfo" parameterType = "MovieVO" resultType="MovieVO">
SELECT mv_num AS mvNum,
mv_title AS mvTitle,
mv_director AS mvDirector,
mv_actor AS mvActor,
mv_time AS mvTime,
mv_agelimit AS mvAgelimit,
mv_summary AS mvSummary
FROM MOVIE
WHERE mv_num = #{mvNum}
</select>
<update id="couponUpdate" parameterType="CouponVO">
UPDATE coupon
SET
c_kind = 0
WHERE
c_num = #{cNum}
</update>
<update id="pointUpdate" parameterType="MemberVO">
UPDATE member
SET mb_point = #{mbPoint}
WHERE mb_num = #{mbNum}
</update>
<select id="pointValue" parameterType="MemberVO" resultType="int">
SELECT mb_point AS "mbPoint"
FROM member
WHERE mb_num = #{mbNum}
</select>
<select id="couponRetrieve" parameterType="CouponVO" resultType="CouponVO">
SELECT c_num AS "cNum",
c_name AS "cName",
c_ratio AS "cRatio"
FROM coupon
WHERE mb_num = #{mbNum}
AND c_kind = 1
</select>
<select id="couponSelete" parameterType="CouponVO" resultType="CouponVO">
SELECT
c_num AS cNum,
mb_num AS mbNum,
c_name AS cName,
c_target AS cTarget,
c_ratio AS cRatio,
c_kind AS cKind
FROM coupon
WHERE c_num = #{cNum}
</select>
<insert id="ticketInsert" parameterType="TicketVO">
INSERT INTO ticket (
t_num,
mb_num,
t_price,
t_means,
t_time,
t_status,
mv_num
) VALUES (
#{tNum},
#{mbNum},
#{tPrice},
#{tMeans},
#{tTime},
#{tStatus},
#{mvNum}
)
</insert>
<select id="getMovieOn" resultType="ReserveVO">
SELECT MV_NUM AS mvNum,
MV_TITLE AS mvTitle
FROM MOVIE
WHERE MV_ON = 1
</select>
<select id="getMovieTime" parameterType="ReserveVO" resultType="ReserveVO">
SELECT T1.MV_NUM AS mvNum,
TO_CHAR(T2.MI_TIME, 'YYYY-MM-DD HH24:MI') AS miTime,
T2.MI_QUALITY AS miQuality
FROM MOVIE T1, MOVIE_INFO T2
WHERE T1.MV_NUM = T2.MV_NUM
AND T1.MV_NUM = #{mvNum}
AND T2.MI_QUALITY LIKE '%' || #{miQuality} || '%'
ORDER BY T2.MI_TIME
</select>
</mapper>