merge master into develop - CscListRForm.jsp FAQ 아코디언 버그 수정
This commit is contained in:
@@ -0,0 +1,890 @@
|
||||
<?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.admin.instcSle.mtng.mapper.BOMaMtngMapper">
|
||||
<sql id = "mtngWhere">
|
||||
<!-- 검색어 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStr)">
|
||||
<choose>
|
||||
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchType, 'ID')">
|
||||
AND FM.MBR_ID = #{srchStr}
|
||||
</when>
|
||||
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchType, 'NAME')">
|
||||
AND FM.MBR_NM = #{srchStr}
|
||||
</when>
|
||||
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchType, 'ADRES')">
|
||||
AND FMA.IDNTFC_INFO LIKE CONCAT('%',#{srchStr},'%')
|
||||
</when>
|
||||
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchType, 'AGENT')">
|
||||
AND FMA.IDNTFC_INFO LIKE CONCAT('%',#{srchStr},'%')
|
||||
</when>
|
||||
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchType, 'MBTLNB')">
|
||||
AND FMA.IDNTFC_INFO = HEX(AES_ENCRYPT(#{srchStr} , #{secretKey}))
|
||||
</when>
|
||||
</choose>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchIdntfcDvCd)">
|
||||
AND FMA.IDNTFC_STDR_CD IN
|
||||
<foreach item="srchIdntfcDvCd" collection="srchIdntfcDvCd" open="(" separator="," close=")">
|
||||
#{srchIdntfcDvCd}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchShop)">
|
||||
AND FMA.SOPMAL_CD = #{srchShop}
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchAppn)">
|
||||
AND FMA.APPN_DV_CD = #{srchAppn}
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtRegDt)">
|
||||
AND FMA.REGIST_DT <![CDATA[>=]]> #{srchStrtRegDt}
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndRegDt)">
|
||||
AND FMA.REGIST_DT <![CDATA[<]]> #{srchEndRegDt}
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
<!--부정판매 회원 건수 조회-->
|
||||
<select id="selectItcSleMtngTotCnt"
|
||||
parameterType="com.wb.domainserver.domain.admin.instcSle.mtng.vo.BOMaMtngSrchVO"
|
||||
resultType="java.lang.Integer">
|
||||
SELECT COUNT(1)
|
||||
FROM(SELECT FMA.APPN_INNB
|
||||
FROM GC_MEMBER_APPN FMA
|
||||
LEFT JOIN GC_MEMBER FM
|
||||
ON FMA.IDNTFC_INFO = FM.MBR_INNB
|
||||
AND FMA.MBR_DV_CD = FM.MBR_DV_CD
|
||||
AND FMA.IDNTFC_STDR_CD = 'mbr_innb'
|
||||
LEFT JOIN GC_MEMBER_GRAD_MAPPING FMGM
|
||||
ON FMGM.MBR_INNB = FM.MBR_INNB
|
||||
AND FMGM.MBR_DV_CD = FM.MBR_DV_CD
|
||||
AND FMGM.SOPMAL_CD = FMA.SOPMAL_CD
|
||||
LEFT JOIN GC_MEMBER_GRAD FMG
|
||||
ON FMG.MBR_GRAD_INNB = FMGM.MBR_GRAD_INNB
|
||||
AND FMG.SOPMAL_CD = FMGM.SOPMAL_CD
|
||||
WHERE 1=1
|
||||
<include refid="mtngWhere"/>
|
||||
) TB
|
||||
</select>
|
||||
|
||||
<!--부정판매 회원 목록 조회-->
|
||||
<select id="selectItcSleMtngList"
|
||||
parameterType="com.wb.domainserver.domain.admin.instcSle.mtng.vo.BOMaMtngSrchVO"
|
||||
resultType="dataMap">
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM
|
||||
,TB.*
|
||||
FROM(SELECT DATE_FORMAT(FMA.REGIST_DT, '%Y-%m-%d %H:%i:%s')AS REGIST_DT
|
||||
,FMA.SOPMAL_CD
|
||||
,(SELECT FS.SOPMAL_NM FROM GC_SHOP FS WHERE FS.SOPMAL_CD = FMA.SOPMAL_CD)SOPMAL_NM
|
||||
,fn_get_commcode_name("RSLR_APPN_DV",FMA.APPN_DV_CD)APPN_DV_CD_NM
|
||||
,fn_get_commcode_name("IDNTFC_STDR",FMA.IDNTFC_STDR_CD)IDNTFC_STDR_CD_NM
|
||||
,FMA.IDNTFC_STDR_CD
|
||||
,fn_get_commcode_name("ORIGIN_DV",FMA.ORIGIN_DV_CD)ORIGIN_DV_CD_NM
|
||||
,CASE
|
||||
WHEN FMA.IDNTFC_STDR_CD = 'order_mbtlnb' THEN CAST(AES_DECRYPT(UNHEX(FMA.IDNTFC_INFO) , #{secretKey}) AS CHAR(50))
|
||||
ELSE FMA.IDNTFC_INFO
|
||||
END IDNTFC_INFO
|
||||
,FM.MBR_ID
|
||||
,FM.MBR_DV_CD
|
||||
,FM.MBR_NM
|
||||
,FMA.APPN_DV_CD
|
||||
,FMA.ORIGIN_DV_CD
|
||||
,FMA.MBR_IDNTFC_INFO
|
||||
,FMA.APPN_INNB
|
||||
FROM GC_MEMBER_APPN FMA
|
||||
LEFT JOIN GC_MEMBER FM
|
||||
ON FMA.IDNTFC_INFO = FM.MBR_INNB
|
||||
AND FMA.MBR_DV_CD = FM.MBR_DV_CD
|
||||
AND FMA.IDNTFC_STDR_CD = 'mbr_innb'
|
||||
LEFT JOIN GC_MEMBER_GRAD_MAPPING FMGM
|
||||
ON FMGM.MBR_INNB = FM.MBR_INNB
|
||||
AND FMGM.MBR_DV_CD = FM.MBR_DV_CD
|
||||
AND FMGM.SOPMAL_CD = FMA.SOPMAL_CD
|
||||
LEFT JOIN GC_MEMBER_GRAD FMG
|
||||
ON FMG.MBR_GRAD_INNB = FMGM.MBR_GRAD_INNB
|
||||
AND FMG.SOPMAL_CD = FMGM.SOPMAL_CD
|
||||
WHERE 1=1
|
||||
<include refid="mtngWhere"/>
|
||||
ORDER BY FMA.REGIST_DT DESC ,FMA.APPN_INNB DESC
|
||||
) TB
|
||||
WHERE (@rownum:=0)=0
|
||||
) PV
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
</select>
|
||||
|
||||
<!--부정 판매 대상자 지정 이력 건수-->
|
||||
<select id="selectBOItcSleMtngDtlTotCnt"
|
||||
parameterType="com.wb.domainserver.domain.admin.instcSle.mtng.vo.BOMaMtngVO"
|
||||
resultType="java.lang.Integer">
|
||||
SELECT COUNT(1)
|
||||
FROM (SELECT MAL.APPN_INNB
|
||||
FROM GC_MEMBER_APPN_LOG MAL
|
||||
INNER JOIN GC_SHOP FS
|
||||
ON FS.SOPMAL_CD = MAL.SOPMAL_CD
|
||||
LEFT OUTER JOIN GC_MANAGER FM
|
||||
ON FM.MNGR_INNB = MAL.REGUSR
|
||||
WHERE MAL.MBR_IDNTFC_INFO=#{idntfcInfo})A
|
||||
</select>
|
||||
|
||||
<!--부정 판매 대상자 지정 이력 -->
|
||||
<select id="selectBOItcSleMtngDtlInqire"
|
||||
parameterType="com.wb.domainserver.domain.admin.instcSle.mtng.vo.BOMaMtngVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM
|
||||
,TB.*
|
||||
FROM (SELECT MAL.APPN_INNB
|
||||
,DATE_FORMAT(MAL.REGIST_DT, '%Y-%m-%d %H:%i:%S') AS REGIST_DT
|
||||
,fn_get_commcode_name("RSLR_APPN_DV",MAL.APPN_DV_CD)AS APPN_DV_CD_NM
|
||||
,MAL.APPN_MEMO
|
||||
,FS.SOPMAL_NM
|
||||
,IFNULL(FM.MNGR_NM,'시스템') AS MNGR_NM
|
||||
,IFNULL(FM.MNGR_ID,'SYSTEM') AS MNGR_ID
|
||||
FROM GC_MEMBER_APPN_LOG MAL
|
||||
INNER JOIN GC_SHOP FS
|
||||
ON FS.SOPMAL_CD = MAL.SOPMAL_CD
|
||||
LEFT OUTER JOIN GC_MANAGER FM
|
||||
ON FM.MNGR_INNB = MAL.UPDUSR
|
||||
WHERE MAL.MBR_IDNTFC_INFO=#{idntfcInfo}
|
||||
ORDER BY MAL.APPN_LOG_INNB DESC
|
||||
) TB
|
||||
WHERE (@rownum:=0)=0
|
||||
) PV
|
||||
WHERE 1=1
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!--부정 판매 대상자 지정 이력 건수-->
|
||||
<select id="selectBOItcSleOrdrInfoTotCnt"
|
||||
parameterType="com.wb.domainserver.domain.admin.instcSle.mtng.vo.BOMaMtngVO"
|
||||
resultType="java.lang.Integer">
|
||||
SELECT COUNT(1)
|
||||
FROM (SELECT FO.ORDR_INNB
|
||||
, fn_get_commcode_name("ORDR_STTUS", FO.ORDR_STTUS_CD) AS ORDR_STTUS_NM
|
||||
, DATE_FORMAT(FO.ORDR_RCEPT_DT, '%Y-%m-%d %H:%i:%S') AS ORDR_RCEPT_DT
|
||||
, fn_get_commcode_name("SLE_ENVRN", FO.SLE_ENVRN_CD) AS SLE_ENVRN_NM
|
||||
, (FO.RL_SETLE_AMT + FO.ENURI_AMT) AS SETLE_AMT
|
||||
, FS.SOPMAL_NM
|
||||
, MAX(FOI.GOODS_NM) AS GOODS_NM
|
||||
, COUNT(DISTINCT FOI.GOODS_INNB) AS CNT /*주문상품 동일 상품 중복 제거 종류 개수*/
|
||||
, (COUNT(DISTINCT FOI.GOODS_INNB) - 1) AS MINUS_CNT
|
||||
, SUM(FOIO.ORDR_QY) AS GOODS_SUM
|
||||
FROM GC_ORDER FO
|
||||
INNER JOIN GC_SHOP FS
|
||||
ON FO.SOPMAL_CD = FS.SOPMAL_CD
|
||||
INNER JOIN GC_ORDER_ITEM FOI
|
||||
ON FO.SOPMAL_CD = FOI.SOPMAL_CD
|
||||
AND FO.ORDR_INNB = FOI.ORDR_INNB
|
||||
INNER JOIN GC_ORDER_ITEM_OPTION FOIO
|
||||
ON FOI.SOPMAL_CD = FOIO.SOPMAL_CD
|
||||
AND FOI.ORDR_GOODS_INNB = FOIO.ORDR_GOODS_INNB
|
||||
WHERE FO.MBR_INNB = #{idntfcInfo}
|
||||
AND FO.MBR_DV_CD = #{mbrDvCd}
|
||||
AND !(FO.ORDR_STTUS_CD = '99' AND FO.USE_AT = 'Y')
|
||||
GROUP BY FO.ORDR_INNB
|
||||
, ORDR_STTUS_NM
|
||||
, ORDR_RCEPT_DT
|
||||
, SLE_ENVRN_NM
|
||||
, SETLE_AMT
|
||||
, FS.SOPMAL_NM
|
||||
, FO.RL_SETLE_AMT
|
||||
, FO.ENURI_AMT
|
||||
, GOODS_NM) TB
|
||||
</select>
|
||||
|
||||
<!--부정 판매 대상자 지정 이력 -->
|
||||
<select id="selectBOItcSleOrdrInfoInqire"
|
||||
parameterType="com.wb.domainserver.domain.admin.instcSle.mtng.vo.BOMaMtngVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM
|
||||
,tb.*
|
||||
FROM (SELECT FO.ORDR_INNB
|
||||
,fn_get_commcode_name("ORDR_STTUS",FO.ORDR_STTUS_CD )AS ORDR_STTUS_NM
|
||||
,DATE_FORMAT(FO.ORDR_RCEPT_DT, '%Y-%m-%d %H:%i:%S') AS ORDR_RCEPT_DT
|
||||
,fn_get_commcode_name("SLE_ENVRN",FO.SLE_ENVRN_CD )AS SLE_ENVRN_NM
|
||||
,(FO.RL_SETLE_AMT + FO.ENURI_AMT) AS SETLE_AMT
|
||||
,FS.SOPMAL_NM
|
||||
,MAX(FOI.GOODS_NM)AS GOODS_NM
|
||||
,COUNT(DISTINCT FOI.GOODS_INNB) AS CNT /*주문상품 동일 상품 중복 제거 종류 개수*/
|
||||
,(COUNT(DISTINCT FOI.GOODS_INNB)-1) AS MINUS_CNT
|
||||
,SUM(FOIO.ORDR_QY) AS GOODS_SUM
|
||||
FROM GC_ORDER FO
|
||||
INNER JOIN GC_SHOP FS
|
||||
ON FO.SOPMAL_CD = FS.SOPMAL_CD
|
||||
INNER JOIN GC_ORDER_ITEM FOI
|
||||
ON FO.SOPMAL_CD = FOI.SOPMAL_CD
|
||||
AND FO.ORDR_INNB = FOI.ORDR_INNB
|
||||
INNER JOIN GC_ORDER_ITEM_OPTION FOIO
|
||||
ON FOI.SOPMAL_CD = FOIO.SOPMAL_CD
|
||||
AND FOI.ORDR_GOODS_INNB = FOIO.ORDR_GOODS_INNB
|
||||
WHERE FO.MBR_INNB = #{idntfcInfo}
|
||||
AND FO.MBR_DV_CD = #{mbrDvCd}
|
||||
AND !(FO.ORDR_STTUS_CD = '99' AND FO.USE_AT = 'Y')
|
||||
GROUP BY FO.ORDR_INNB
|
||||
,ORDR_STTUS_NM
|
||||
,ORDR_RCEPT_DT
|
||||
,SLE_ENVRN_NM
|
||||
,SETLE_AMT
|
||||
,FS.SOPMAL_NM
|
||||
,FO.RL_SETLE_AMT
|
||||
,FO.ENURI_AMT
|
||||
,GOODS_NM
|
||||
ORDER BY FO.ORDR_INNB DESC
|
||||
) TB
|
||||
WHERE (@rownum:=0)=0
|
||||
) PV
|
||||
WHERE 1=1
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
|
||||
<!--주문시 부정 판매 조회-->
|
||||
<!-- <select id = "checkInstcSle" parameterType="com.wb.domainserver.domain.admin.instcSle.mtng.vo.BOInstcSleVO" -->
|
||||
<!-- resultType="com.wb.domainserver.domain.admin.instcSle.mtng.vo.BOInstcSleVO"> -->
|
||||
<!-- SELECT CASE -->
|
||||
<!-- <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbrInnb) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbrDvCd)"> -->
|
||||
<!-- WHEN MBR_INNB_CHK <![CDATA[>]]> 0 THEN 'Y' -->
|
||||
<!-- </if> -->
|
||||
<!-- <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(agentId)"> -->
|
||||
<!-- WHEN AGENT_CHK <![CDATA[>]]> 0 THEN 'Y' -->
|
||||
<!-- </if> -->
|
||||
<!-- <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ordrrMbtlnb)"> -->
|
||||
<!-- WHEN MBTLNB_CHK <![CDATA[>]]> 0 THEN 'Y' -->
|
||||
<!-- </if> -->
|
||||
<!-- <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(adres)"> -->
|
||||
<!-- WHEN ADRES_CHK <![CDATA[>]]> 0 THEN 'Y' -->
|
||||
<!-- </if> -->
|
||||
<!-- ELSE 'N' -->
|
||||
<!-- END AS IS_INSTC_SLE -->
|
||||
<!-- FROM (SELECT 1 -->
|
||||
<!-- <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbrInnb) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbrDvCd)"> -->
|
||||
<!-- ,SUM(CASE -->
|
||||
<!-- WHEN GMA.IDNTFC_STDR_CD = 'mbr_innb' AND GMA.IDNTFC_INFO = #{mbrInnb} AND MBR_DV_CD = #{mbrDvCd} THEN 1 -->
|
||||
<!-- ELSE 0 -->
|
||||
<!-- END)MBR_INNB_CHK -->
|
||||
<!-- </if> -->
|
||||
<!-- <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(agentId)"> -->
|
||||
<!-- ,SUM(CASE -->
|
||||
<!-- WHEN GMA.IDNTFC_STDR_CD = 'agent_id' AND GMA.IDNTFC_INFO = #{agentId} THEN 1 -->
|
||||
<!-- ELSE 0 -->
|
||||
<!-- END) AGENT_CHK -->
|
||||
<!-- </if> -->
|
||||
<!-- <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ordrrMbtlnb)"> -->
|
||||
<!-- ,SUM(CASE -->
|
||||
<!-- WHEN GMA.IDNTFC_STDR_CD = 'order_mbtlnb' AND GMA.IDNTFC_INFO = HEX(AES_ENCRYPT( #{ordrrMbtlnb} , #{secretKey})) THEN 1 -->
|
||||
<!-- ELSE 0 -->
|
||||
<!-- END) MBTLNB_CHK -->
|
||||
<!-- </if> -->
|
||||
<!-- <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(adres)"> -->
|
||||
<!-- ,SUM(CASE -->
|
||||
<!-- WHEN GMA.IDNTFC_STDR_CD = 'adres' AND GMA.IDNTFC_INFO = #{adres} THEN 1 -->
|
||||
<!-- ELSE 0 -->
|
||||
<!-- END) ADRES_CHK -->
|
||||
<!-- </if> -->
|
||||
<!-- FROM GC_MEMBER_APPN GMA -->
|
||||
<!-- WHERE (GMA.SOPMAL_CD = 'CM' OR GMA.SOPMAL_CD = #{sopmalCd}) -->
|
||||
<!-- AND GMA.APPN_DV_CD = #{appnDvCd}) A -->
|
||||
<!-- </select> -->
|
||||
|
||||
<!--주문시 부정 판매 조회-->
|
||||
<select id = "checkInstcSle" parameterType="com.wb.domainserver.domain.admin.instcSle.mtng.vo.BOInstcSleVO"
|
||||
resultType="com.wb.domainserver.domain.admin.instcSle.mtng.vo.BOInstcSleVO">
|
||||
SELECT CASE
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbrInnb) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbrDvCd)">
|
||||
WHEN MBR_INNB_CHK <![CDATA[>]]> 0 THEN 'Y'
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(agentId)">
|
||||
WHEN AGENT_CHK <![CDATA[>]]> 0 THEN 'Y'
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ordrrMbtlnb)">
|
||||
WHEN MBTLNB_CHK <![CDATA[>]]> 0 THEN 'Y'
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(recpntMbtlnbArr)">
|
||||
WHEN RECPNT_MBTLNB_CHK <![CDATA[>]]> 0 THEN 'Y'
|
||||
</if>
|
||||
<choose>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(ordrTyCd, '01')
|
||||
or @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(ordrTyCd, '03')
|
||||
or @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(ordrTyCd, '06')">
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(adres)">
|
||||
WHEN ADRES_CHK <![CDATA[>]]> 0 THEN 'Y'
|
||||
</if>
|
||||
</when>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(ordrTyCd, '05')">
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(adresMulti)">
|
||||
WHEN ADRES_CHK <![CDATA[>]]> 0 THEN 'Y'
|
||||
</if>
|
||||
</when>
|
||||
</choose>
|
||||
ELSE 'N'
|
||||
END AS IS_INSTC_SLE
|
||||
FROM (SELECT 1
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbrInnb) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbrDvCd)">
|
||||
,SUM(CASE
|
||||
WHEN GMA.IDNTFC_STDR_CD = 'mbr_innb' AND GMA.IDNTFC_INFO = #{mbrInnb} AND MBR_DV_CD = #{mbrDvCd} THEN 1
|
||||
ELSE 0
|
||||
END)MBR_INNB_CHK
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(agentId)">
|
||||
,SUM(CASE
|
||||
WHEN GMA.IDNTFC_STDR_CD = 'agent_id' AND GMA.IDNTFC_INFO = #{agentId} THEN 1
|
||||
ELSE 0
|
||||
END) AGENT_CHK
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ordrrMbtlnb)">
|
||||
,SUM(CASE
|
||||
WHEN GMA.IDNTFC_STDR_CD = 'order_mbtlnb' AND GMA.IDNTFC_INFO = HEX(AES_ENCRYPT( #{ordrrMbtlnb} , #{secretKey})) THEN 1
|
||||
ELSE 0
|
||||
END) MBTLNB_CHK
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(recpntMbtlnbArr)">
|
||||
,SUM(CASE
|
||||
<foreach collection="recpntMbtlnbArr" item="recpntMbtlnb">
|
||||
WHEN GMA.IDNTFC_STDR_CD = 'order_mbtlnb' AND GMA.IDNTFC_INFO = HEX(AES_ENCRYPT( #{recpntMbtlnb} , #{secretKey})) THEN 1
|
||||
</foreach>
|
||||
ELSE 0
|
||||
END) RECPNT_MBTLNB_CHK
|
||||
</if>
|
||||
<choose>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(ordrTyCd, '01')
|
||||
or @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(ordrTyCd, '03')
|
||||
or @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(ordrTyCd, '06')">
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(adres)">
|
||||
,SUM(CASE
|
||||
WHEN GMA.IDNTFC_STDR_CD = 'adres' AND GMA.IDNTFC_INFO = #{adres} THEN 1
|
||||
ELSE 0
|
||||
END) ADRES_CHK
|
||||
</if>
|
||||
</when>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(ordrTyCd, '05')">
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(adresMulti)">
|
||||
,SUM(
|
||||
CASE
|
||||
<foreach collection="adresMulti" item="adres">
|
||||
WHEN GMA.IDNTFC_STDR_CD = 'adres' AND GMA.IDNTFC_INFO = #{adres} THEN 1
|
||||
</foreach>
|
||||
ELSE 0
|
||||
END) ADRES_CHK
|
||||
</if>
|
||||
</when>
|
||||
</choose>
|
||||
FROM GC_MEMBER_APPN GMA
|
||||
WHERE (GMA.SOPMAL_CD = 'CM' OR GMA.SOPMAL_CD = #{sopmalCd})
|
||||
AND GMA.APPN_DV_CD = #{appnDvCd}) A
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 주문 전 주문정보 재확인 -->
|
||||
<select id="selectBOPreOrderValidation" parameterType="com.wb.domainserver.domain.admin.instcSle.mtng.vo.BOPreOrderValidVO" resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT CASE WHEN GOODS.GOODS_STTUS_CD = '01' THEN 0 ELSE 1 END AS GOODS_STTUS -- 상품상태 정상 확인
|
||||
, CASE
|
||||
WHEN GOODS.PURCHS_QY_LMTT_DV_CD = '01'
|
||||
THEN 0
|
||||
ELSE CASE WHEN #{goodsTotalQy} BETWEEN GOODS.MUMM_PURCHS_QY AND GOODS.MXMM_PURCHS_QY THEN 0 ELSE 1 END
|
||||
END AS PURCHS_QY_LMTT -- 상품별 최소 최대 구매수량제한여부
|
||||
, CASE
|
||||
WHEN GOODS.INVNTRY_POLICY_CD = '02' THEN 0
|
||||
ELSE CASE
|
||||
WHEN (OPTN.INVNTRY_QY - IFNULL(OPTN.USEFUL_INVNTRY_QY, 0)) >= #{qy} THEN 0
|
||||
ELSE 1 END
|
||||
END AS INVNTRY -- 각 옵션별 재고 유무
|
||||
, CASE
|
||||
WHEN GOODS.INVNTRY_POLICY_CD = '02' THEN 0
|
||||
ELSE CASE
|
||||
WHEN (IFNULL(GOODS.REST_INVNTRY_QY, 0) - IFNULL(GOODS.AVLINV_LMTT_QY, 0)) >= #{goodsTotalQy} THEN 0
|
||||
ELSE 1 END
|
||||
END AS INVNTRY_POLICY -- 상품별 옵션 수량합산 재고유무
|
||||
, CASE WHEN IFNULL(OPTN.SLEPRIC, 0) = #{slepric} THEN 0 ELSE 1 END AS SELPRIC -- 판매가 변경여부
|
||||
, CASE
|
||||
WHEN OPTN.COMPNB_DSCNT_AT = #{compnbDscntAt} AND OPTN.SCTN_DSCNT_AT = #{sctnDscntAt} THEN 0
|
||||
ELSE 1 END AS DSCNT_AT -- 구간,복수할인 정보 변경 여부
|
||||
, CASE WHEN GOODS.DLVY_GROUP_INNB = #{dlvyGroupInnb} THEN 0 ELSE 1 END AS DLVY_GROUP -- 배송그룹 변경여부
|
||||
, CASE
|
||||
WHEN GOODS.PURCHS_TRGTER_LMTT_DV_CD = '01' THEN 0
|
||||
ELSE
|
||||
CASE
|
||||
WHEN IFNULL(#{mbrInnb}, 0) = 0 AND GGTL.GOODS_TRGTER_DV_CD = '02' AND (GGTL.BUTTON_RPLC_WORDS_USE_AT = 'Y' OR GGTL.PRIC_RPLC_WORDS_USE_AT = 'Y') THEN 1 -- 비회원 제한 여부
|
||||
WHEN IFNULL(#{mbrInnb}, 0) != 0 AND GGTL.GOODS_TRGTER_DV_CD = '01' AND GGTL.MBR_GRAD_INNB = 0 AND (GGTL.BUTTON_RPLC_WORDS_USE_AT = 'Y' OR GGTL.PRIC_RPLC_WORDS_USE_AT = 'Y') THEN 1 -- 회원 전체 제한
|
||||
WHEN IFNULL(#{mbrInnb}, 0) != 0 AND GGTL.GOODS_TRGTER_DV_CD = '01' AND GGTL.MBR_GRAD_INNB = MBR.MBR_GRAD_INNB AND (GGTL.BUTTON_RPLC_WORDS_USE_AT = 'Y' OR GGTL.PRIC_RPLC_WORDS_USE_AT = 'Y') THEN 1 -- 회원 등급별 제한
|
||||
ELSE 0 END
|
||||
END AS PURCHS_TRGTER_LMTT -- 구매대상자 제한
|
||||
, IFNULL(COUPON.COUPON_STTUS, 0) AS COUPON_STTUS -- 쿠폰 상태 확인
|
||||
, IFNULL(COUPON.COUPON_USE_AT, 0) AS COUPON_USE_AT -- 쿠폰 회수여부 확인
|
||||
, IFNULL(COUPON.COUPON_VALIDPD_DT, 0) AS COUPON_VALIDPD_DT -- 쿠폰 유효기간 확인
|
||||
, CASE
|
||||
WHEN IFNULL(#{evtInnb}, 0) = 0 THEN 0 -- 입력한 이벤트고유번호가 0 or null로 들어올경우 패스
|
||||
ELSE CASE WHEN IFNULL(EVT.EVT_TRGET_AT, 0) = 1
|
||||
THEN -- 이벤트 패스되었으나 이벤트구분과 옵션의 할인구분 체크
|
||||
CASE WHEN (EVT.DSCNT_BNEF_DV_CD = '01' AND OPTN.COMPNB_DSCNT_AT = 'N') OR (EVT.DSCNT_BNEF_DV_CD = '02' AND OPTN.SCTN_DSCNT_AT = 'N') THEN 1 ELSE 0 END
|
||||
ELSE 1
|
||||
END
|
||||
END AS EVT_TRGET_AT -- 이벤트 진행여부 이벤트 대상일경우 1을 반환함 = 정상 처리 0 이벤트 대상 아닐경우 1
|
||||
, IFNULL(EVT_DUPL_COUPON.DPLCT_LMTT_COUPON, 0) AS DPLCT_LMTT_COUPON -- 이벤트 중복제한 쿠폰 존재여부
|
||||
, CASE WHEN OPTN.OPTN_EXPSR_AT = 'Y' THEN 0 ELSE 1 END AS OPTN_EXPSR_AT
|
||||
FROM (SELECT GG.GOODS_INNB -- 상품 고유번호
|
||||
, GG.SOPMAL_CD -- 쇼핑몰코드
|
||||
, GG.DLVY_GROUP_INNB -- 배송그룹고유번호
|
||||
, GG.GOODS_KND_CD -- 상품구분 01 상품
|
||||
, GG.GOODS_STTUS_CD -- 상품상태 01 정상
|
||||
, GG.PURCHS_QY_LMTT_DV_CD -- 구매수량제한여부 02 제한
|
||||
,GG.MUMM_PURCHS_QY -- 최소구매수량
|
||||
,GG.MXMM_PURCHS_QY -- 최대구매수량
|
||||
,GG.INVNTRY_POLICY_CD -- 재고정책 01 재고가 있으면 판매 02 재고없어도 판매
|
||||
,GG.AVLINV_LMTT_QY -- 가용재고제한수량
|
||||
,GG.PURCHS_TRGTER_LMTT_DV_CD -- 구매 대상자 제한 02 제한
|
||||
,SUM(IFNULL(GGO.INVNTRY_QY, 0)) AS INVNTRY_QY -- 상품 재고수량 합계
|
||||
,SUM(IFNULL(GGO.USEFUL_INVNTRY_QY, 0)) AS USEFUL_INVNTRY_QY -- 상품 사용 재고수량 합계
|
||||
,SUM(IFNULL(GGO.INVNTRY_QY, 0)) - SUM(IFNULL(GGO.USEFUL_INVNTRY_QY, 0)) AS REST_INVNTRY_QY -- 잔여 재고수량 합계
|
||||
FROM GC_GOODS GG
|
||||
INNER JOIN GC_GOODS_OPTION GGO
|
||||
ON GG.SOPMAL_CD = GGO.SOPMAL_CD
|
||||
AND GG.GOODS_INNB = GGO.GOODS_INNB
|
||||
AND GG.USE_AT = 'Y'
|
||||
AND GGO.USE_AT = 'Y'
|
||||
AND GGO.OPTN_TY IN('01', '02')
|
||||
WHERE 1 = 1
|
||||
AND GG.SOPMAL_CD = #{sopmalCd}
|
||||
AND GG.GOODS_INNB = #{goodsInnb}
|
||||
) GOODS
|
||||
INNER JOIN GC_GOODS_OPTION OPTN
|
||||
ON GOODS.SOPMAL_CD = OPTN.SOPMAL_CD
|
||||
AND GOODS.GOODS_INNB = OPTN.GOODS_INNB
|
||||
AND OPTN.USE_AT = 'Y'
|
||||
AND OPTN.GOODS_OPTN_INNB = #{goodsOptnInnb}
|
||||
LEFT JOIN GC_GOODS_TRGTER_LMTT GGTL
|
||||
ON GOODS.SOPMAL_CD = GGTL.SOPMAL_CD
|
||||
AND GOODS.GOODS_INNB = GGTL.GOODS_INNB
|
||||
AND CASE
|
||||
WHEN GOODS.PURCHS_TRGTER_LMTT_DV_CD = '01' THEN 1
|
||||
ELSE
|
||||
CASE
|
||||
WHEN IFNULL(#{mbrInnb}, 0) = 0 THEN GGTL.GOODS_TRGTER_DV_CD = '02'
|
||||
ELSE GGTL.GOODS_TRGTER_DV_CD = '01'
|
||||
END
|
||||
END
|
||||
LEFT JOIN (
|
||||
SELECT GM.MBR_INNB
|
||||
, GM.MBR_DV_CD
|
||||
, GMGM.SOPMAL_CD
|
||||
, GMG.MBR_GRAD_INNB
|
||||
FROM GC_MEMBER GM
|
||||
INNER JOIN GC_MEMBER_GRAD_MAPPING GMGM
|
||||
ON GM.MBR_INNB = GMGM.MBR_INNB
|
||||
AND GM.MBR_DV_CD = GMGM.MBR_DV_CD
|
||||
AND GM.USE_AT = 'Y'
|
||||
INNER JOIN GC_MEMBER_GRAD GMG
|
||||
ON GMGM.MBR_GRAD_INNB = GMG.MBR_GRAD_INNB
|
||||
AND GMGM.SOPMAL_CD = GMG.SOPMAL_CD
|
||||
AND GMG.USE_AT = 'Y'
|
||||
WHERE 1 = 1
|
||||
AND GMGM.SOPMAL_CD = #{sopmalCd}
|
||||
AND GM.MBR_INNB = #{mbrInnb}) MBR
|
||||
ON MBR.SOPMAL_CD = GOODS.SOPMAL_CD
|
||||
LEFT JOIN (SELECT GG.GOODS_INNB
|
||||
, GGO.SLEPRIC AS EVT_SLEPRIC
|
||||
, FE.EVT_INNB
|
||||
, FE.SOPMAL_CD
|
||||
, FE.EVT_DV
|
||||
, FE.EVTNM
|
||||
, FE.EVT_BGN_DT
|
||||
, FE.EVT_END_DT
|
||||
, FE.EVT_TME_EXPSR_AT
|
||||
, FE.DPLCT_LMTT_COUPON
|
||||
, FE.DSCNT_BNEF_DV_CD
|
||||
, FEB.MLG_ACCML_CD
|
||||
, CASE
|
||||
WHEN FEB.ADIT_DSCNT_CD = '01'
|
||||
THEN CASE
|
||||
WHEN IFNULL(GGO.SLEPRIC, 0) * (FEB.ADIT_DSCNT_AMT / 100) >
|
||||
IFNULL(FEB.DSCNT_MXMM_AMT, 0) AND IFNULL(FEB.DSCNT_MXMM_AMT, 0) > 0
|
||||
THEN IFNULL(FEB.DSCNT_MXMM_AMT, 0)
|
||||
ELSE IFNULL(GGO.SLEPRIC, 0) * (FEB.ADIT_DSCNT_AMT / 100) END
|
||||
ELSE ADIT_DSCNT_AMT
|
||||
END AS ADIT_DSCNT_AMT
|
||||
, CASE
|
||||
WHEN FEB.MLG_ACCML_CD = '02'
|
||||
THEN FEB.MLG_ACCML_AMT
|
||||
ELSE IFNULL(GGO.SLEPRIC, 0) * (FEB.MLG_ACCML_AMT / 100)
|
||||
END AS MLG_ACCML_AMT
|
||||
, CASE
|
||||
WHEN FE.EVT_TRGET_DV_CD = '01' THEN 1 --
|
||||
WHEN FE.EVT_TRGET_DV_CD = '02'
|
||||
THEN CASE WHEN IFNULL(#{mbrInnb}, 0) <> 0 THEN 1 ELSE 0 END -- 로그인했으면 통과
|
||||
WHEN FE.EVT_TRGET_DV_CD = '03' THEN CASE
|
||||
WHEN 0 < ( -- 등급제한시
|
||||
SELECT COUNT(*)
|
||||
FROM GC_EVENT_GRAD FEG
|
||||
WHERE FEG.EVT_INNB = FE.EVT_INNB
|
||||
AND FEG.SOPMAL_CD = FE.SOPMAL_CD
|
||||
AND FEG.MBR_GRAD_INNB IN
|
||||
(SELECT FMG.MBR_GRAD_INNB
|
||||
FROM GC_MEMBER_GRAD FMG
|
||||
LEFT JOIN GC_MEMBER_GRAD_MAPPING FMGM
|
||||
ON FMGM.SOPMAL_CD =
|
||||
FMG.SOPMAL_CD
|
||||
AND
|
||||
FMGM.MBR_GRAD_INNB =
|
||||
FMG.MBR_GRAD_INNB
|
||||
WHERE FMG.SOPMAL_CD = FE.SOPMAL_CD
|
||||
AND FMGM.MBR_INNB = #{mbrInnb} -- 1325385
|
||||
))
|
||||
THEN 1
|
||||
ELSE 0
|
||||
END
|
||||
ELSE 0
|
||||
END EVT_TRGET_AT
|
||||
FROM GC_GOODS GG
|
||||
INNER JOIN GC_GOODS_OPTION GGO
|
||||
ON GG.SOPMAL_CD = GGO.SOPMAL_CD
|
||||
AND GG.GOODS_INNB = GGO.GOODS_INNB
|
||||
AND GGO.STDR_DV_AT = 'Y'
|
||||
INNER JOIN GC_EVENT FE
|
||||
ON GG.SOPMAL_CD = FE.SOPMAL_CD
|
||||
INNER JOIN GC_EVENT_BENEFITS FEB
|
||||
ON FE.EVT_INNB = FEB.EVT_INNB
|
||||
AND FE.SOPMAL_CD = FEB.SOPMAL_CD
|
||||
AND FEB.USE_AT = 'Y'
|
||||
WHERE 1 = 1
|
||||
AND FE.USE_AT = 'Y'
|
||||
AND FE.EVT_DV = 01
|
||||
AND FE.SOPMAL_CD = #{sopmalCd} -- 'NC'
|
||||
AND FE.EVT_INNB = #{evtInnb}
|
||||
AND SYSDATE() BETWEEN FE.EVT_BGN_DT AND FE.EVT_END_DT
|
||||
-- AND FE.EVT_TME_EXPSR_AT = 'Y'
|
||||
AND CASE
|
||||
WHEN IFNULL(FE.APPLC_DAY, '') = '' THEN 1
|
||||
ELSE FE.APPLC_DAY LIKE CONCAT('%', CONCAT('0', DAYOFWEEK(SYSDATE())), '%')
|
||||
END
|
||||
AND CASE
|
||||
WHEN IFNULL(FE.LMTT_BGNTME, '') = '' OR IFNULL(FE.LMTT_ENDTME, '') = '' THEN 1
|
||||
ELSE DATE_FORMAT(NOW(), '%H%i') BETWEEN FE.LMTT_BGNTME AND FE.LMTT_ENDTME
|
||||
END
|
||||
AND CASE
|
||||
WHEN FE.GOODS_APPLC_DV_CD = '01' THEN 1 -- 전체
|
||||
WHEN FE.GOODS_APPLC_DV_CD = '02' -- 카테고리 포함
|
||||
THEN CASE
|
||||
WHEN 0 < (WITH RECURSIVE CATEGORY_INCLD AS (SELECT C1.CTGRY_ID
|
||||
, C1.UPPER_CTGRY_ID
|
||||
, C1.SOPMAL_CD
|
||||
FROM GC_CATEGORY C1
|
||||
WHERE C1.USE_AT = 'Y'
|
||||
AND C1.SOPMAL_CD = FE.SOPMAL_CD
|
||||
AND C1.CTGRY_ID IN
|
||||
(SELECT CTGRY_ID
|
||||
FROM GC_CATEGORY_LINK FCL
|
||||
WHERE FCL.GOODS_INNB = GG.GOODS_INNB -- 728
|
||||
AND FCL.SOPMAL_CD = C1.SOPMAL_CD)
|
||||
UNION
|
||||
SELECT C3.CTGRY_ID
|
||||
, C3.UPPER_CTGRY_ID
|
||||
, C3.SOPMAL_CD
|
||||
FROM GC_CATEGORY AS C3
|
||||
INNER JOIN CATEGORY_INCLD
|
||||
ON C3.CTGRY_ID =
|
||||
CATEGORY_INCLD.UPPER_CTGRY_ID AND
|
||||
C3.SOPMAL_CD =
|
||||
CATEGORY_INCLD.SOPMAL_CD
|
||||
WHERE C3.USE_AT = 'Y')
|
||||
SELECT COUNT(*)
|
||||
FROM GC_EVENT_CHOICE FEC
|
||||
WHERE FEC.SOPMAL_CD = FE.SOPMAL_CD
|
||||
AND FEC.EVT_INNB = FE.EVT_INNB
|
||||
AND FEC.CTGRY_ID IN (SELECT CTGRY_ID
|
||||
FROM CATEGORY_INCLD))
|
||||
THEN 1
|
||||
ELSE 0
|
||||
END
|
||||
WHEN FE.GOODS_APPLC_DV_CD = '03' -- 상품 포함
|
||||
THEN CASE
|
||||
WHEN 0 < (SELECT COUNT(*)
|
||||
FROM GC_EVENT_CHOICE FEC
|
||||
WHERE FEC.SOPMAL_CD = FE.SOPMAL_CD
|
||||
AND FEC.EVT_INNB = FE.EVT_INNB
|
||||
AND FEC.GOODS_INNB = GG.GOODS_INNB -- 728
|
||||
)
|
||||
THEN 1
|
||||
ELSE 0
|
||||
END
|
||||
WHEN FE.GOODS_APPLC_DV_CD = '04' -- 카테고리 제외
|
||||
THEN CASE
|
||||
WHEN 0 < (WITH RECURSIVE CATEGORY_INCLD AS (SELECT C1.CTGRY_ID
|
||||
, C1.UPPER_CTGRY_ID
|
||||
, C1.SOPMAL_CD
|
||||
FROM GC_CATEGORY C1
|
||||
WHERE C1.USE_AT = 'Y'
|
||||
AND C1.SOPMAL_CD = FE.SOPMAL_CD
|
||||
AND C1.CTGRY_ID IN
|
||||
(SELECT CTGRY_ID
|
||||
FROM GC_CATEGORY_LINK FCL
|
||||
WHERE FCL.GOODS_INNB = GG.GOODS_INNB -- 728
|
||||
AND FCL.SOPMAL_CD = C1.SOPMAL_CD)
|
||||
UNION
|
||||
SELECT C3.CTGRY_ID
|
||||
, C3.UPPER_CTGRY_ID
|
||||
, C3.SOPMAL_CD
|
||||
FROM GC_CATEGORY AS C3
|
||||
INNER JOIN CATEGORY_INCLD
|
||||
ON C3.CTGRY_ID =
|
||||
CATEGORY_INCLD.UPPER_CTGRY_ID AND
|
||||
C3.SOPMAL_CD =
|
||||
CATEGORY_INCLD.SOPMAL_CD
|
||||
WHERE C3.USE_AT = 'Y')
|
||||
SELECT COUNT(*)
|
||||
FROM GC_EVENT_CHOICE FEC
|
||||
WHERE FEC.SOPMAL_CD = FE.SOPMAL_CD
|
||||
AND FEC.EVT_INNB = FE.EVT_INNB
|
||||
AND FEC.CTGRY_ID IN (SELECT CTGRY_ID
|
||||
FROM CATEGORY_INCLD))
|
||||
THEN 0
|
||||
ELSE 1
|
||||
END
|
||||
WHEN FE.GOODS_APPLC_DV_CD = '05' -- 상품 제외
|
||||
THEN CASE
|
||||
WHEN 0 < (SELECT COUNT(*)
|
||||
FROM GC_EVENT_CHOICE FEC
|
||||
WHERE FEC.SOPMAL_CD = FE.SOPMAL_CD
|
||||
AND FEC.EVT_INNB = FE.EVT_INNB
|
||||
AND FEC.GOODS_INNB = GG.GOODS_INNB -- 728
|
||||
)
|
||||
THEN 0
|
||||
ELSE 1
|
||||
END
|
||||
END) EVT
|
||||
ON GOODS.GOODS_INNB = EVT.GOODS_INNB
|
||||
AND GOODS.SOPMAL_CD = EVT.SOPMAL_CD
|
||||
]]>
|
||||
LEFT JOIN(
|
||||
WITH COUPON_STTUS_TB AS
|
||||
(SELECT DWLD_COUPON_INNB
|
||||
, CASE WHEN COUPON_STTUS_CD = '02' THEN 0 ELSE 1 END AS COUPON_STTUS -- 쿠폰 상태 확인
|
||||
, CASE WHEN USE_AT = 'Y' THEN 0 ELSE 1 END AS COUPON_USE_AT -- 쿠폰 회수여부 확인
|
||||
, CASE WHEN NOW() BETWEEN VALIDPD_BGN_DT AND VALIDPD_END_DT THEN 0 ELSE 1 END AS COUPON_VALIDPD_DT -- 쿠폰 유효기간 확인
|
||||
, GD.SOPMAL_CD
|
||||
, GD.MBR_INNB
|
||||
, GD.MBR_DV_CD
|
||||
FROM GC_DOWNLOAD GD
|
||||
WHERE 1 = 1
|
||||
AND GD.SOPMAL_CD = #{sopmalCd}
|
||||
AND GD.MBR_INNB = #{mbrInnb}
|
||||
AND GD.MBR_DV_CD = #{mbrDvCd}
|
||||
AND DWLD_COUPON_INNB IN
|
||||
<foreach collection="usedDwladCouponInnbList" item="usedDwladCouponInnb" separator="," open="(" close=")">
|
||||
#{usedDwladCouponInnb}
|
||||
</foreach>
|
||||
)
|
||||
SELECT COUPON_STTUS
|
||||
, COUPON_USE_AT
|
||||
, COUPON_VALIDPD_DT
|
||||
, SOPMAL_CD
|
||||
, MBR_INNB
|
||||
, MBR_DV_CD
|
||||
FROM COUPON_STTUS_TB
|
||||
GROUP BY COUPON_STTUS
|
||||
, COUPON_USE_AT
|
||||
, COUPON_VALIDPD_DT
|
||||
, SOPMAL_CD
|
||||
, MBR_INNB
|
||||
, MBR_DV_CD
|
||||
UNION
|
||||
SELECT 0 AS COUPON_STTUS, 0 AS COUPON_USE_AT, 0 AS COUPON_VALIDPD_DT, #{sopmalCd} AS SOPMAL_CD, #{mbrInnb} AS MBR_INNB, #{mbrDvCd} AS MBR_DV_CD FROM DUAL
|
||||
) COUPON
|
||||
ON MBR.SOPMAL_CD = COUPON.SOPMAL_CD
|
||||
AND MBR.MBR_INNB = COUPON.MBR_INNB
|
||||
AND MBR.MBR_DV_CD = COUPON.MBR_DV_CD
|
||||
LEFT JOIN (
|
||||
WITH RECURSIVE EVT_DUPLE_CP AS (SELECT DWLD_COUPON_INNB
|
||||
, BNEF_DV_CD
|
||||
, SOPMAL_CD
|
||||
, MBR_INNB
|
||||
, MBR_DV_CD
|
||||
FROM GC_DOWNLOAD GD
|
||||
WHERE 1 = 1
|
||||
AND GD.SOPMAL_CD = #{sopmalCd}
|
||||
AND GD.MBR_INNB = #{mbrInnb}
|
||||
AND GD.MBR_DV_CD = #{mbrDvCd}
|
||||
AND DWLD_COUPON_INNB IN
|
||||
<foreach collection="usedDwladCouponInnbList" item="usedDwladCouponInnb" separator="," open="(" close=")">
|
||||
#{usedDwladCouponInnb}
|
||||
</foreach>
|
||||
)
|
||||
SELECT CASE WHEN IFNULL(GE.DPLCT_LMTT_COUPON, '') = ''
|
||||
THEN 0
|
||||
ELSE CASE WHEN GE.DPLCT_LMTT_COUPON LIKE CONCAT('%', BNEF_DV_CD, '%') THEN 1 -- 조회한 쿠폰의 혜택구분이 이벤트에 중복제한 쿠폰대상인지 확인 없으면 0
|
||||
ELSE 0 END
|
||||
END AS DPLCT_LMTT_COUPON
|
||||
, EDC.SOPMAL_CD
|
||||
, EDC.MBR_INNB
|
||||
, EDC.MBR_DV_CD
|
||||
FROM EVT_DUPLE_CP EDC
|
||||
LEFT JOIN GC_EVENT GE ON EDC.SOPMAL_CD = GE.SOPMAL_CD
|
||||
WHERE 1 = 1
|
||||
AND GE.EVT_INNB = IFNULL(#{evtInnb}, 0)
|
||||
UNION
|
||||
SELECT 0 AS DPLCT_LMTT_COUPON, #{sopmalCd} AS SOPMAL_CD, #{mbrInnb} AS MBR_INNB, #{mbrDvCd} AS MBR_DV_CD FROM DUAL
|
||||
) EVT_DUPL_COUPON
|
||||
ON GOODS.SOPMAL_CD = EVT_DUPL_COUPON.SOPMAL_CD
|
||||
AND MBR.MBR_INNB = EVT_DUPL_COUPON.MBR_INNB
|
||||
AND MBR.MBR_DV_CD = EVT_DUPL_COUPON.MBR_DV_CD
|
||||
WHERE 1 = 1
|
||||
GROUP BY
|
||||
GOODS_STTUS
|
||||
, PURCHS_QY_LMTT
|
||||
, INVNTRY
|
||||
, INVNTRY_POLICY
|
||||
, SELPRIC
|
||||
, DSCNT_AT
|
||||
, DLVY_GROUP
|
||||
, PURCHS_TRGTER_LMTT
|
||||
, COUPON_STTUS
|
||||
, COUPON_USE_AT
|
||||
, COUPON_VALIDPD_DT
|
||||
, EVT_TRGET_AT
|
||||
, DPLCT_LMTT_COUPON
|
||||
, EVT.DSCNT_BNEF_DV_CD
|
||||
, OPTN.COMPNB_DSCNT_AT
|
||||
, OPTN.SCTN_DSCNT_AT
|
||||
, OPTN.OPTN_EXPSR_AT
|
||||
</select>
|
||||
|
||||
<!--주문 전 쿠폰번호 재확인-->
|
||||
<select id="selectBOPreOrderValidationCouponList" parameterType="com.wb.domainserver.domain.admin.instcSle.mtng.vo.BOPreOrderValidVO">
|
||||
SELECT DWLD_COUPON_INNB
|
||||
FROM GC_DOWNLOAD GD
|
||||
WHERE 1 = 1
|
||||
AND GD.SOPMAL_CD = #{sopmalCd}
|
||||
AND GD.MBR_INNB = #{mbrInnb}
|
||||
AND GD.MBR_DV_CD = #{mbrDvCd}
|
||||
</select>
|
||||
|
||||
<!--쇼핑몰 구매요청 재검증 확인 여부-->
|
||||
<select id="selectPurchsValidUseAt">
|
||||
SELECT PURCHS_REVALID_AT FROM GC_SHOP WHERE 1=1 AND SOPMAL_CD = #{sopmalCd}
|
||||
</select>
|
||||
|
||||
<!-- 구독서비스 주문 전 주문정보 재확인 -->
|
||||
<select id="selectBOSubsvcPreOrderValidation" parameterType="com.wb.domainserver.domain.admin.instcSle.mtng.vo.BOPreOrderValidVO" resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
CASE
|
||||
WHEN GOODS.SUBSVC_STTUS_CD = '01' THEN 0
|
||||
ELSE 1
|
||||
END AS GOODS_STTUS, -- 상품상태 정상 확인
|
||||
CASE
|
||||
WHEN GOODS.PURCHS_QY_LMTT_DV_CD = '01' OR GOODS.PURCHS_QY_LMTT_DV_CD IS NULL THEN 0
|
||||
ELSE
|
||||
CASE
|
||||
WHEN #{goodsTotalQy} BETWEEN GOODS.MUMM_PURCHS_QY AND GOODS.MXMM_PURCHS_QY THEN 0
|
||||
ELSE 1
|
||||
END
|
||||
END AS PURCHS_QY_LMTT, -- 상품별 최소 최대 구매수량제한여부
|
||||
CASE
|
||||
WHEN GOODS.INVNTRY_POLICY_CD = '02' THEN 0
|
||||
ELSE
|
||||
CASE
|
||||
WHEN (GOODS.INVNTRY_QY - IFNULL(GOODS.USEFUL_INVNTRY_QY, 0)) >= #{qy} THEN 0
|
||||
ELSE 1
|
||||
END
|
||||
END AS INVNTRY, -- 각 옵션별 재고 유무
|
||||
CASE
|
||||
WHEN GOODS.INVNTRY_POLICY_CD = '02' THEN 0
|
||||
ELSE
|
||||
CASE
|
||||
WHEN (IFNULL(GOODS.REST_INVNTRY_QY, 0) - IFNULL(GOODS.AVLINV_LMTT_QY, 0)) >= #{goodsTotalQy} THEN 0
|
||||
ELSE 1
|
||||
END
|
||||
END AS INVNTRY_POLICY, -- 상품별 옵션 수량합산 재고유무
|
||||
CASE
|
||||
WHEN IFNULL(GOODS.SUBSVC_CT, 0) = #{slepric} THEN 0
|
||||
ELSE 1
|
||||
END AS SELPRIC, -- 판매가 변경여부
|
||||
0 AS DSCNT_AT, -- 구간,복수할인 정보 변경 여부
|
||||
0 AS DLVY_GROUP, -- 배송그룹 변경여부
|
||||
0 AS PURCHS_TRGTER_LMTT, -- 구매대상자 제한
|
||||
0 AS COUPON_STTUS, -- 쿠폰 상태 확인
|
||||
0 AS COUPON_USE_AT, -- 쿠폰 회수여부 확인
|
||||
0 AS COUPON_VALIDPD_DT, -- 쿠폰 유효기간 확인
|
||||
0 AS EVT_TRGET_AT, -- 이벤트 진행여부 이벤트 대상일경우 1을 반환함 = 정상 처리 0 이벤트 대상 아닐경우 1
|
||||
0 AS DPLCT_LMTT_COUPON, -- 이벤트 중복제한 쿠폰 존재여부
|
||||
0 AS OPTN_EXPSR_AT -- 상품옵션 노출여부
|
||||
FROM (
|
||||
SELECT
|
||||
GS.SUBSVC_INNB, -- 구독서비스 고유번호
|
||||
GG.GOODS_INNB, -- 상품 고유번호
|
||||
GS.SOPMAL_CD, -- 쇼핑몰코드
|
||||
GS.SUBSVC_CT, -- 구독료
|
||||
GG.DLVY_GROUP_INNB, -- 배송그룹고유번호
|
||||
GG.GOODS_KND_CD, -- 상품구분 01 상품
|
||||
GS.SUBSVC_STTUS_CD, -- 상품상태 01 정상
|
||||
GS.PURCHS_QY_LMTT_DV_CD, -- 구매수량제한여부 02 제한
|
||||
GS.MUMM_PURCHS_QY, -- 최소구매수량
|
||||
GS.MXMM_PURCHS_QY, -- 최대구매수량
|
||||
GS.INVNTRY_POLICY_CD, -- 재고정책 01 재고가 있으면 판매 02 재고없어도 판매
|
||||
GS.AVLINV_LMTT_QY, -- 가용재고제한수량
|
||||
GG.PURCHS_TRGTER_LMTT_DV_CD, -- 구매 대상자 제한 02 제한
|
||||
SUM(IFNULL(GS.INVNTRY_QY, 0)) AS INVNTRY_QY, -- 상품 재고수량 합계
|
||||
SUM(IFNULL(GS.USEFUL_INVNTRY_QY, 0)) AS USEFUL_INVNTRY_QY, -- 상품 사용 재고수량 합계
|
||||
SUM(IFNULL(GS.INVNTRY_QY, 0)) - SUM(IFNULL(GS.USEFUL_INVNTRY_QY, 0)) AS REST_INVNTRY_QY -- 잔여 재고수량 합계
|
||||
FROM GC_SUBSVC GS
|
||||
INNER JOIN GC_GOODS_OPTION GGO
|
||||
ON GS.SOPMAL_CD = GGO.SOPMAL_CD
|
||||
AND GS.DFT_GOODS_OPTN_INNB = GGO.GOODS_OPTN_INNB
|
||||
AND GS.USE_AT = 'Y'
|
||||
AND GGO.USE_AT = 'Y'
|
||||
INNER JOIN GC_GOODS GG
|
||||
ON GS.SOPMAL_CD = GG.SOPMAL_CD
|
||||
AND GGO.GOODS_INNB = GG.GOODS_INNB
|
||||
AND GG.USE_AT = 'Y'
|
||||
WHERE 1 = 1
|
||||
AND GS.SOPMAL_CD = #{sopmalCd}
|
||||
AND GS.SUBSVC_INNB = #{subsvcInnb}
|
||||
GROUP BY
|
||||
GG.GOODS_INNB
|
||||
) GOODS
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
GM.MBR_INNB,
|
||||
GM.MBR_DV_CD,
|
||||
GMGM.SOPMAL_CD,
|
||||
GMG.MBR_GRAD_INNB
|
||||
FROM
|
||||
GC_MEMBER GM
|
||||
INNER JOIN GC_MEMBER_GRAD_MAPPING GMGM
|
||||
ON GM.MBR_INNB = GMGM.MBR_INNB
|
||||
AND GM.MBR_DV_CD = GMGM.MBR_DV_CD
|
||||
AND GM.USE_AT = 'Y'
|
||||
INNER JOIN GC_MEMBER_GRAD GMG
|
||||
ON GMGM.MBR_GRAD_INNB = GMG.MBR_GRAD_INNB
|
||||
AND GMGM.SOPMAL_CD = GMG.SOPMAL_CD
|
||||
AND GMG.USE_AT = 'Y'
|
||||
WHERE 1 = 1
|
||||
AND GMGM.SOPMAL_CD = #{sopmalCd}
|
||||
AND GM.MBR_INNB = #{mbrInnb}
|
||||
) MBR
|
||||
ON MBR.SOPMAL_CD = GOODS.SOPMAL_CD
|
||||
WHERE 1 = 1
|
||||
GROUP BY
|
||||
GOODS_STTUS,
|
||||
PURCHS_QY_LMTT,
|
||||
INVNTRY,
|
||||
INVNTRY_POLICY,
|
||||
SELPRIC,
|
||||
DSCNT_AT,
|
||||
DLVY_GROUP,
|
||||
PURCHS_TRGTER_LMTT,
|
||||
COUPON_STTUS,
|
||||
COUPON_USE_AT,
|
||||
COUPON_VALIDPD_DT,
|
||||
EVT_TRGET_AT,
|
||||
DPLCT_LMTT_COUPON
|
||||
]]>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user