merge master into develop - CscListRForm.jsp FAQ 아코디언 버그 수정
This commit is contained in:
@@ -0,0 +1,292 @@
|
||||
<?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.hlthset.mapper.BOHlthsetMapper">
|
||||
|
||||
<!-- 관심건강분야 설정 기본 정보 조회 -->
|
||||
<select id="selectHealthInterestBasicInfo" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
b.BNF_INNB,
|
||||
r.MLG_RWD_AMT, -- 관심분야 리워드
|
||||
b.BNF_WORDS_CN, -- 관심분야 안내문구
|
||||
COALESCE(a.AGRE_AT, 'N') AS AGRE_AT -- 정보받기 동의 여부 (기본값: N)
|
||||
FROM
|
||||
GC_BENEFIT b
|
||||
JOIN GC_BENEFIT_REWARD r ON b.BNF_INNB = r.BNF_INNB
|
||||
AND r.BNF_RWD_CATE_DV_CD = '12010'
|
||||
AND r.BNF_RWD_GODS_DV_CD = '010'
|
||||
LEFT JOIN GC_BENEFIT_AGREE a ON b.BNF_INNB = a.BNF_INNB
|
||||
AND a.SOPMAL_CD = #{sopmalCd}
|
||||
AND a.MBR_INNB = #{mbrInnb}
|
||||
AND a.MBR_DV_CD = #{mbrDvCd}
|
||||
AND a.BNF_DV_CD = '120'
|
||||
AND a.BNF_AGRE_DV_CD = '010'
|
||||
WHERE
|
||||
b.BNF_DV_CD = '120'
|
||||
AND b.SOPMAL_CD = #{sopmalCd}
|
||||
</select>
|
||||
|
||||
<!-- 관심분야 목록 조회 -->
|
||||
<select id="selectInterestAreas"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.hlthset.vo.BOHlthsetVO"
|
||||
resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
i.BNF_INTRST_INNB, -- 관심분야 ID
|
||||
i.INTRST_NM, -- 관심분야명
|
||||
i.BFE_IMG_FIL_COURS, -- 관심분야 이미지 경로
|
||||
CASE WHEN pi.CHOISE_AT = 'Y' THEN 'Y' ELSE 'N' END AS CHOISE_AT -- 선택여부
|
||||
FROM
|
||||
GC_BENEFIT_INTEREST i
|
||||
LEFT JOIN GC_BENEFIT_PARTCPTN_INTEREST pi
|
||||
ON i.BNF_INTRST_INNB = pi.BNF_INTRST_INNB
|
||||
AND pi.BNF_PRT_INNB = (
|
||||
SELECT BNF_PRT_INNB
|
||||
FROM GC_BENEFIT_PARTCPTN
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb}
|
||||
ORDER BY BNF_PRT_DT DESC
|
||||
LIMIT 1
|
||||
)
|
||||
WHERE
|
||||
i.BNF_INNB = #{bnfInnb}
|
||||
AND i.USE_AT = 'Y'
|
||||
ORDER BY
|
||||
i.SORT_ORDR
|
||||
</select>
|
||||
|
||||
<!-- 사용자 기존 관심분야 삭제 -->
|
||||
<delete id="deleteUserInterestAreas" parameterType="com.wb.domainserver.domain.gcone.bnft.hlthset.vo.BOHlthsetVO">
|
||||
<![CDATA[
|
||||
DELETE FROM GC_BENEFIT_PARTCPTN_INTEREST
|
||||
WHERE BNF_PRT_INNB = (
|
||||
SELECT BNF_PRT_INNB
|
||||
FROM GC_BENEFIT_PARTCPTN
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb}
|
||||
ORDER BY BNF_PRT_DT DESC
|
||||
LIMIT 1
|
||||
)
|
||||
]]>
|
||||
</delete>
|
||||
|
||||
<!-- 새로운 사용자 관심분야 저장 -->
|
||||
<insert id="insertUserInterestAreas" parameterType="java.util.List">
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_PARTCPTN_INTEREST (
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BNF_INTRST_INNB, -- 혜택 관심분야 고유번호
|
||||
CHOISE_AT -- 선택여부
|
||||
) VALUES
|
||||
]]>
|
||||
<foreach collection="list" item="item" separator=",">
|
||||
(
|
||||
#{item.bnfPrtInnb},
|
||||
#{item.bnfIntrstInnb},
|
||||
'Y'
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<!-- 초록잎 지급 개수 조회 -->
|
||||
<select id="selectLeafCounts" parameterType="com.wb.domainserver.domain.gcone.bnft.atend.vo.BOAtendVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
PYMNT_CNT, -- 지급 초록잎 개수
|
||||
SPECIAL_CNT -- 스페셜 지급 초록잎 개수
|
||||
FROM
|
||||
GC_BENEFIT_CPSLMKN
|
||||
WHERE
|
||||
BNF_DV_CD = '120' -- 혜택 구분 코드
|
||||
AND SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
</select>
|
||||
|
||||
<!-- 혜택 참여 정보 삽입 (gc_benefit_partcptn) -->
|
||||
<insert id="insertBenefitParticipation" parameterType="com.wb.domainserver.domain.gcone.bnft.hlthset.vo.BOHlthsetVO">
|
||||
<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 또는 update) -->
|
||||
<insert id="insertUserInterestAgreement" parameterType="com.wb.domainserver.domain.gcone.bnft.hlthset.vo.BOHlthsetVO">
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_AGREE (
|
||||
SOPMAL_CD, -- 쇼핑몰 코드 (예: NC, DT)
|
||||
MBR_INNB, -- 회원 고유번호
|
||||
MBR_DV_CD, -- 회원 구분 코드 (예: GC, DT)
|
||||
BNF_DV_CD, -- 혜택 구분 코드
|
||||
BNF_AGRE_DV_CD, -- 혜택 동의 구분 코드 (예: '010' : 알림동의)
|
||||
BNF_INNB, -- 혜택 설정 고유번호
|
||||
AGRE_AT, -- 동의 여부 (Y/N)
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록일시
|
||||
) VALUES (
|
||||
#{sopmalCd},
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
'120',
|
||||
'010',
|
||||
#{bnfInnb},
|
||||
#{agreAt},
|
||||
#{regusr},
|
||||
NOW()
|
||||
)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
AGRE_AT = VALUES(AGRE_AT),
|
||||
REGUSR = VALUES(REGUSR),
|
||||
REGIST_DT = NOW()
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- 마일리지 적립 내역 저장 -->
|
||||
<insert id="insertMileageReward" parameterType="com.wb.domainserver.domain.gcone.bnft.hlthset.vo.BOHlthsetVO">
|
||||
<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_RCV_INNB, -- 혜택 보상수령 고유번호
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
MLG_RWD_AMT, -- 마일리지 금액
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록 일시
|
||||
) VALUES (
|
||||
#{bnfRcvInnb},
|
||||
#{bnfPrtInnb},
|
||||
'12010', -- 관심건강분야 보상 코드
|
||||
'010', -- 보상상품 마일리지 코드
|
||||
#{mlgRwdAmt},
|
||||
#{regusr},
|
||||
NOW()
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- 사용자 관심분야 조회 -->
|
||||
<select id="selectUserInterests" parameterType="com.wb.domainserver.domain.gcone.bnft.hlthset.vo.BOHlthsetVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
i.BNF_INTRST_INNB,
|
||||
i.INTRST_NM
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN_INTEREST pi
|
||||
JOIN
|
||||
GC_BENEFIT_INTEREST i ON pi.BNF_INTRST_INNB = i.BNF_INTRST_INNB
|
||||
WHERE
|
||||
pi.BNF_PRT_INNB = (
|
||||
SELECT BNF_PRT_INNB
|
||||
FROM GC_BENEFIT_PARTCPTN
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb}
|
||||
ORDER BY BNF_PRT_DT DESC
|
||||
LIMIT 1
|
||||
)
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 해당 월에 마일리지 보상을 받았는지 확인 (수정된 버전) -->
|
||||
<select id="hasMonthlyMileageReward" parameterType="com.wb.domainserver.domain.gcone.bnft.hlthset.vo.BOHlthsetVO" resultType="boolean">
|
||||
<![CDATA[
|
||||
SELECT EXISTS (
|
||||
SELECT 1
|
||||
FROM GC_BENEFIT_RECEIPT r
|
||||
JOIN GC_BENEFIT_PARTCPTN p ON r.BNF_PRT_INNB = p.BNF_PRT_INNB
|
||||
WHERE p.MBR_INNB = #{mbrInnb}
|
||||
AND p.MBR_DV_CD = #{mbrDvCd}
|
||||
AND p.BNF_INNB = #{bnfInnb}
|
||||
AND r.BNF_RWD_CATE_DV_CD = '12010' -- 관심건강분야 보상 코드
|
||||
AND DATE_FORMAT(r.REGIST_DT, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m')
|
||||
)
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 사용자 관심분야 저장 상태 및 마일리지 적립 여부 조회 (수정된 버전) -->
|
||||
<select id="selectUserInterestSaveStatus" parameterType="com.wb.domainserver.domain.gcone.bnft.hlthset.vo.BOHlthsetVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
CASE WHEN COUNT(DISTINCT pi.BNF_INTRST_INNB) > 0 THEN 'Y' ELSE 'N' END AS saved_yn,
|
||||
CASE WHEN SUM(r.MLG_RWD_AMT) > 0 THEN 'Y' ELSE 'N' END AS mileage_accumulated_yn,
|
||||
COALESCE(SUM(r.MLG_RWD_AMT), 0) AS MLG_RWD_AMT
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN p
|
||||
LEFT JOIN GC_BENEFIT_PARTCPTN_INTEREST pi ON p.BNF_PRT_INNB = pi.BNF_PRT_INNB
|
||||
LEFT JOIN GC_BENEFIT_RECEIPT r ON p.BNF_PRT_INNB = r.BNF_PRT_INNB
|
||||
AND r.BNF_RWD_CATE_DV_CD = '12010'
|
||||
AND DATE_FORMAT(r.REGIST_DT, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m')
|
||||
WHERE
|
||||
p.MBR_INNB = #{mbrInnb}
|
||||
AND p.MBR_DV_CD = #{mbrDvCd}
|
||||
AND p.BNF_INNB = #{bnfInnb}
|
||||
AND DATE_FORMAT(p.BNF_PRT_DT, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m')
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 마지막 관심분야 참여 월 조회 -->
|
||||
<select id="selectLastInterestParticipationMonth" parameterType="com.wb.domainserver.domain.gcone.bnft.hlthset.vo.BOHlthsetVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT DATE_FORMAT(MAX(BNF_PRT_DT), '%Y-%m') AS last_month
|
||||
FROM GC_BENEFIT_PARTCPTN
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb}
|
||||
AND EXISTS (
|
||||
SELECT 1
|
||||
FROM GC_BENEFIT_PARTCPTN_INTEREST pi
|
||||
WHERE pi.BNF_PRT_INNB = GC_BENEFIT_PARTCPTN.BNF_PRT_INNB
|
||||
)
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 월별 관심분야 초기화 (관심분야 데이터만 삭제) -->
|
||||
<delete id="resetMonthlyInterestAreas" parameterType="com.wb.domainserver.domain.gcone.bnft.hlthset.vo.BOHlthsetVO">
|
||||
<![CDATA[
|
||||
DELETE pi FROM GC_BENEFIT_PARTCPTN_INTEREST pi
|
||||
JOIN GC_BENEFIT_PARTCPTN p ON pi.BNF_PRT_INNB = p.BNF_PRT_INNB
|
||||
WHERE p.MBR_INNB = #{mbrInnb}
|
||||
AND p.MBR_DV_CD = #{mbrDvCd}
|
||||
AND p.BNF_INNB = #{bnfInnb}
|
||||
AND DATE_FORMAT(p.BNF_PRT_DT, '%Y-%m') < DATE_FORMAT(NOW(), '%Y-%m')
|
||||
]]>
|
||||
</delete>
|
||||
|
||||
<!-- 현재 월 참여 정보 조회 -->
|
||||
<select id="selectCurrentMonthParticipation" parameterType="com.wb.domainserver.domain.gcone.bnft.hlthset.vo.BOHlthsetVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
BNF_PRT_INNB,
|
||||
BNF_PRT_DT
|
||||
FROM GC_BENEFIT_PARTCPTN
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb}
|
||||
AND DATE_FORMAT(BNF_PRT_DT, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m')
|
||||
ORDER BY BNF_PRT_DT DESC
|
||||
LIMIT 1
|
||||
]]>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user