merge master into develop - CscListRForm.jsp FAQ 아코디언 버그 수정
This commit is contained in:
@@ -0,0 +1,250 @@
|
||||
<?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.wb.domainserver.domain.gcone.bnft.lucklott.mapper.BOLucklottMapper">
|
||||
|
||||
<!-- 행운복권 혜택 기본 정보 조회 -->
|
||||
<select id="selectLucklottBenefitInfo" parameterType="com.wb.domainserver.domain.gcone.bnft.lucklott.vo.BOLucklottVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
BNF_INNB, -- 혜택 설정 고유번호
|
||||
USE_AT, -- 사용여부
|
||||
SOPMAL_CD, -- 쇼핑몰코드
|
||||
BNF_DV_CD, -- 혜택 구분 코드
|
||||
BNF_SJ, -- 혜택 제목
|
||||
SCR_REPRSNT_IMG, -- 화면 대표 이미지
|
||||
SCR_REPRSNT_LINK_URL, -- 화면 대표 링크 URL
|
||||
SCR_RWD_IMG, -- 화면 보상 이미지
|
||||
SCR_RWD_LINK_URL, -- 화면 보상 링크 URL
|
||||
BNF_BGN_DT, -- 진행기간 시작일시
|
||||
BNF_END_DT, -- 진행기간 종료일시
|
||||
BNF_WORDS_CN -- 혜택 안내
|
||||
FROM
|
||||
GC_BENEFIT
|
||||
WHERE
|
||||
BNF_DV_CD = '030' -- 행운복권 혜택 구분 코드 (문자열로 수정)
|
||||
AND USE_AT = 'Y'
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND DATE(NOW()) BETWEEN DATE(BNF_BGN_DT) AND DATE(BNF_END_DT)
|
||||
ORDER BY BNF_INNB DESC
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 행운복권 혜택 보상 및 쿠폰 정보 조회 -->
|
||||
<select id="selectLucklottBenefitRewardsAndCoupons" parameterType="com.wb.domainserver.domain.gcone.bnft.lucklott.vo.BOLucklottVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
R.BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
R.BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
R.ITM_NM, -- 표시명
|
||||
R.MLG_RWD_AMT, -- 마일리지 보상 금액
|
||||
C.COUP_NM, -- 쿠폰명
|
||||
C.COUPON_DC -- 쿠폰설명
|
||||
FROM
|
||||
GC_BENEFIT B
|
||||
LEFT JOIN GC_BENEFIT_REWARD R ON B.BNF_INNB = R.BNF_INNB
|
||||
LEFT JOIN GC_COUPON C ON R.COUPON_INNB = C.COUPON_INNB
|
||||
AND C.USE_AT = 'Y'
|
||||
WHERE
|
||||
B.BNF_DV_CD = '030' -- 행운복권 혜택 구분 코드
|
||||
AND B.USE_AT = 'Y'
|
||||
AND B.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드 조건 추가
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 행운복권 혜택 보상 정보 조회 -->
|
||||
<select id="selectLucklottBenefitRewards" parameterType="com.wb.domainserver.domain.gcone.bnft.lucklott.vo.BOLucklottVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
R.BNF_INNB, -- 혜택 설정 고유번호
|
||||
R.BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
R.BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
R.MLG_RWD_AMT, -- 마일리지 금액
|
||||
R.COUPON_INNB, -- 쿠폰 고유번호
|
||||
R.ITM_NM, -- 표시명
|
||||
R.PRZWIN_QY, -- 당첨수량
|
||||
R.PRZWIN_PRC, -- 당첨확률
|
||||
R.DSCNT_AMT, -- 할인금액
|
||||
C.COUP_NM, -- 쿠폰명
|
||||
C.COUPON_DC -- 쿠폰설명
|
||||
FROM
|
||||
GC_BENEFIT_REWARD R
|
||||
LEFT JOIN GC_COUPON C ON R.COUPON_INNB = C.COUPON_INNB
|
||||
AND C.USE_AT = 'Y'
|
||||
WHERE
|
||||
R.BNF_INNB = #{bnfInnb} -- 혜택 설정 고유번호 조건
|
||||
AND R.PRZWIN_QY > 0 -- 수량이 있는 경우만
|
||||
ORDER BY R.BNF_RWD_CATE_DV_CD ASC -- 등수 순서대로 정렬 (03010, 03020, 03030, 03040)
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 오늘 참여 횟수 조회 -->
|
||||
<select id="selectTodayParticipationCount" parameterType="com.wb.domainserver.domain.gcone.bnft.lucklott.vo.BOLucklottVO" resultType="int">
|
||||
<![CDATA[
|
||||
SELECT IFNULL(COUNT(*), 0)
|
||||
FROM GC_BENEFIT_PARTCPTN
|
||||
WHERE BNF_INNB = #{bnfInnb}
|
||||
AND MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND DATE(BNF_PRT_DT) = CURDATE()
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 초록잎 지급 개수 조회 -->
|
||||
<select id="selectLeafCounts" parameterType="com.wb.domainserver.domain.gcone.bnft.lucklott.vo.BOLucklottVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
PYMNT_CNT, -- 지급 초록잎 개수
|
||||
SPECIAL_CNT -- 스페셜 지급 초록잎 개수
|
||||
FROM
|
||||
GC_BENEFIT_CPSLMKN
|
||||
WHERE
|
||||
BNF_DV_CD = '030' -- 혜택 구분 코드 (행운복권)
|
||||
AND SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
</select>
|
||||
|
||||
<!-- 행운복권 혜택 참여 정보 삽입 (초록잎 적립 포함) -->
|
||||
<insert id="insertLucklottBenefitParticipation" parameterType="com.wb.domainserver.domain.gcone.bnft.lucklott.vo.BOLucklottVO">
|
||||
<selectKey keyProperty="bnfPrtInnb" resultType="java.lang.Long" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_PRT_INNB), 0) + 1 FROM GC_BENEFIT_PARTCPTN
|
||||
</selectKey>
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_PARTCPTN
|
||||
(
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BNF_INNB, -- 혜택 설정 고유번호
|
||||
BNF_PRT_DT, -- 혜택 참여일시
|
||||
MBR_INNB, -- 회원 고유번호
|
||||
MBR_DV_CD, -- 회원 구분 코드
|
||||
PRT_LEAF_CNT, -- 참여 초록잎 개수 (추가)
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록일시
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#{bnfPrtInnb},
|
||||
#{bnfInnb},
|
||||
NOW(),
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
#{paidLeafCnt}, -- 초록잎 지급량
|
||||
#{regusr},
|
||||
NOW()
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- 행운복권 혜택 보상 수령 정보 삽입 -->
|
||||
<insert id="insertLucklottBenefitReceipt" parameterType="com.wb.domainserver.domain.gcone.bnft.lucklott.vo.BOLucklottVO">
|
||||
<selectKey keyProperty="bnfRcvInnb" resultType="java.math.BigInteger" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_RCV_INNB), 0) + 1 FROM GC_BENEFIT_RECEIPT
|
||||
</selectKey>
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_RECEIPT (
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
MLG_RWD_AMT, -- 마일리지 금액
|
||||
COUPON_INNB, -- 쿠폰고유번호
|
||||
GOODS_INNB, -- 상품고유번호
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록일시
|
||||
) VALUES (
|
||||
#{bnfPrtInnb}, -- 혜택 참여 고유번호 (파라미터)
|
||||
#{bnfRwdCateDvCd}, -- 보상 항목 구분 코드 (파라미터)
|
||||
#{bnfRwdGodsDvCd}, -- 보상 상품 구분 코드 (파라미터)
|
||||
#{mlgRwdAmt}, -- 마일리지 금액 (파라미터, 해당 없으면 NULL)
|
||||
#{couponInnb}, -- 쿠폰고유번호 (파라미터, 해당 없으면 NULL)
|
||||
#{goodsInnb}, -- 상품고유번호 (파라미터, 해당 없으면 NULL)
|
||||
#{regUsr}, -- 등록자 번호 (파라미터)
|
||||
NOW() -- 현재 시간
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- 특정 상품의 당첨된 수량 조회 -->
|
||||
<select id="selectIssuedGoodsQuantity" parameterType="com.wb.domainserver.domain.gcone.bnft.lucklott.vo.BOLucklottVO" resultType="int">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
COUNT(brec.BNF_RCV_INNB) AS issuedGoodsQuantity -- 당첨된 수량
|
||||
FROM
|
||||
GC_BENEFIT_REWARD br -- 혜택 보상설정 정보 테이블
|
||||
LEFT JOIN
|
||||
GC_BENEFIT_PARTCPTN bp ON br.BNF_INNB = bp.BNF_INNB -- 혜택 참여 정보 테이블과 조인
|
||||
LEFT JOIN
|
||||
GC_BENEFIT_RECEIPT brec ON bp.BNF_PRT_INNB = brec.BNF_PRT_INNB -- 혜택 보상수령 내역 테이블과 조인
|
||||
AND br.BNF_RWD_CATE_DV_CD = brec.BNF_RWD_CATE_DV_CD
|
||||
AND br.BNF_RWD_GODS_DV_CD = brec.BNF_RWD_GODS_DV_CD
|
||||
WHERE
|
||||
br.BNF_INNB = #{bnfInnb} -- 특정 혜택 설정 번호 선택
|
||||
AND br.BNF_RWD_CATE_DV_CD = #{bnfRwdCateDvCd} -- 특정 보상 항목 구분 코드 선택
|
||||
AND br.BNF_RWD_GODS_DV_CD = #{bnfRwdGodsDvCd} -- 특정 보상 상품 구분 코드 선택
|
||||
GROUP BY
|
||||
br.BNF_INNB, br.BNF_RWD_CATE_DV_CD, br.BNF_RWD_GODS_DV_CD, br.ITM_NM
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 특정 상품의 남은 수량 조회 -->
|
||||
<select id="selectRemainingGoodsQuantity" parameterType="com.wb.domainserver.domain.gcone.bnft.lucklott.vo.BOLucklottVO" resultType="int">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
br.PRZWIN_QY - COALESCE(COUNT(brec.BNF_RCV_INNB), 0) AS remainingGoodsQuantity -- 남은 당첨 수량
|
||||
FROM
|
||||
GC_BENEFIT_REWARD br -- 혜택 보상설정 정보 테이블
|
||||
LEFT JOIN
|
||||
GC_BENEFIT_PARTCPTN bp ON br.BNF_INNB = bp.BNF_INNB -- 혜택 참여 정보 테이블과 조인
|
||||
LEFT JOIN
|
||||
GC_BENEFIT_RECEIPT brec ON bp.BNF_PRT_INNB = brec.BNF_PRT_INNB -- 혜택 보상수령 내역 테이블과 조인
|
||||
AND br.BNF_RWD_CATE_DV_CD = brec.BNF_RWD_CATE_DV_CD
|
||||
AND br.BNF_RWD_GODS_DV_CD = brec.BNF_RWD_GODS_DV_CD
|
||||
WHERE
|
||||
br.BNF_INNB = #{bnfInnb} -- 특정 혜택 설정 번호
|
||||
AND br.BNF_RWD_CATE_DV_CD = #{bnfRwdCateDvCd} -- 특정 보상 항목 구분 코드로 검색
|
||||
GROUP BY
|
||||
br.BNF_INNB, br.BNF_RWD_CATE_DV_CD, br.BNF_RWD_GODS_DV_CD, br.ITM_NM, br.PRZWIN_QY -- 그룹화 기준
|
||||
ORDER BY
|
||||
br.BNF_INNB, br.BNF_RWD_CATE_DV_CD, br.BNF_RWD_GODS_DV_CD -- 정렬 기준
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 모든 등수 상품의 수량 체크 -->
|
||||
<select id="selectAllRewardsQuantityStatus" parameterType="com.wb.domainserver.domain.gcone.bnft.lucklott.vo.BOLucklottVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
br.BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
br.BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
br.ITM_NM, -- 상품명
|
||||
br.PRZWIN_QY, -- 총 당첨수량
|
||||
COALESCE(COUNT(brec.BNF_RCV_INNB), 0) AS issuedQuantity, -- 지급된 수량
|
||||
br.PRZWIN_QY - COALESCE(COUNT(brec.BNF_RCV_INNB), 0) AS remainingQuantity, -- 남은 수량
|
||||
CASE
|
||||
WHEN br.PRZWIN_QY - COALESCE(COUNT(brec.BNF_RCV_INNB), 0) > 0 THEN 'Y'
|
||||
ELSE 'N'
|
||||
END AS hasStock -- 재고 여부
|
||||
FROM
|
||||
GC_BENEFIT_REWARD br
|
||||
LEFT JOIN GC_BENEFIT_PARTCPTN bp ON br.BNF_INNB = bp.BNF_INNB
|
||||
LEFT JOIN GC_BENEFIT_RECEIPT brec ON bp.BNF_PRT_INNB = brec.BNF_PRT_INNB
|
||||
AND br.BNF_RWD_CATE_DV_CD = brec.BNF_RWD_CATE_DV_CD
|
||||
AND br.BNF_RWD_GODS_DV_CD = brec.BNF_RWD_GODS_DV_CD
|
||||
WHERE
|
||||
br.BNF_INNB = #{bnfInnb}
|
||||
GROUP BY
|
||||
br.BNF_RWD_CATE_DV_CD, br.BNF_RWD_GODS_DV_CD, br.ITM_NM, br.PRZWIN_QY
|
||||
ORDER BY
|
||||
br.BNF_RWD_CATE_DV_CD
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 보상 수량 감소 쿼리 제거 -->
|
||||
<!--
|
||||
<update id="updateRewardQuantity" parameterType="com.wb.domainserver.domain.gcone.bnft.lucklott.vo.BOLucklottVO">
|
||||
<![CDATA[
|
||||
UPDATE GC_BENEFIT_REWARD
|
||||
SET PRZWIN_QY = PRZWIN_QY - 1
|
||||
WHERE BNF_INNB = #{bnfInnb}
|
||||
AND BNF_RWD_CATE_DV_CD = #{bnfRwdCateDvCd}
|
||||
AND BNF_RWD_GODS_DV_CD = #{bnfRwdGodsDvCd}
|
||||
AND PRZWIN_QY > 0
|
||||
]]>
|
||||
</update>
|
||||
-->
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user