483 lines
28 KiB
XML
483 lines
28 KiB
XML
<?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.itrnt.mbr.mapper.BOItrntMbrMapper">
|
|
<sql id = "mbrSrchFrom">
|
|
FROM GC_MEMBER GM
|
|
<choose>
|
|
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchOtherMbr, 'Y')">
|
|
LEFT JOIN GC_EXTRL_MEMBER EM /* 타 매장회원 포함 */
|
|
</when>
|
|
<otherwise>
|
|
INNER JOIN GC_EXTRL_MEMBER EM /* 자기 매장만 */
|
|
</otherwise>
|
|
</choose>
|
|
ON GM.MBR_INNB = EM.MBR_INNB
|
|
AND GM.MBR_DV_CD = EM.MBR_DV_CD
|
|
AND EM.EXTRL_INTRLCK_DV_CD = '03'
|
|
INNER JOIN GC_MEMBER_SITE GMS
|
|
ON GM.MBR_INNB = GMS.MBR_INNB
|
|
AND GM.MBR_DV_CD = GMS.MBR_DV_CD
|
|
AND GMS.SOPMAL_CD = #{sopmalCd}
|
|
INNER JOIN GC_MEMBER_GRAD_MAPPING GMGM
|
|
ON GMS.MBR_INNB = GMGM.MBR_INNB
|
|
AND GMS.MBR_DV_CD = GMGM.MBR_DV_CD
|
|
AND GMS.SOPMAL_CD = GMGM.SOPMAL_CD
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchGrad)"> /* 특정 등급 */
|
|
AND GMGM.MBR_GRAD_INNB = #{srchGrad}
|
|
</if>
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchMarktRecptnAgreAt)">
|
|
LEFT JOIN GC_MARKETING_AGREE GMA -- 마케팅 수신여부 동의 체크 안할때는 JOIN 안함
|
|
ON GMS.MBR_INNB = GMA.MBR_INNB
|
|
AND GMS.MBR_DV_CD = GMA.MBR_DV_CD
|
|
AND GMS.SOPMAL_CD = GMA.SOPMAL_CD -- SOPMALL 기준 검색
|
|
AND GMA.MARKT_RECPTN_AGRE_AT = #{srchMarktRecptnAgreAt} -- 마케팅 수신여부 동의 체크 할때는 필수
|
|
</if>
|
|
LEFT JOIN LATERAL ( SELECT FMI.MBR_INNB , FMI.MBR_DV_CD ,
|
|
SUM( FMI.BLCE ) - SUM( IFNULL(FMI.LOSS,0) ) AS MILEAGE
|
|
FROM GC_MILEAGE FMI
|
|
WHERE 1 = 1
|
|
AND FMI.MBR_INNB = GM.MBR_INNB
|
|
AND FMI.MBR_DV_CD = GM.MBR_DV_CD
|
|
AND FMI.BLCE > 0
|
|
AND FMI.USE_POSBL_END_DT >= DATE_FORMAT(CURDATE(), '%Y-%m-%d')
|
|
AND FMI.MLG_ACCML_DV_CD IN ('add', 'up')
|
|
AND FMI.CANCL_AT = 'N'
|
|
) GMI
|
|
ON GM.MBR_INNB = GMI.MBR_INNB
|
|
AND GM.MBR_DV_CD = GMI.MBR_DV_CD
|
|
LEFT JOIN LATERAL ( SELECT O.MBR_INNB, O.MBR_DV_CD
|
|
, SUM(O.RL_SETLE_AMT) - SUM(IFNULL(GOR.REFUND_AMT, 0)) AS RL_SETLE_AMT
|
|
, COUNT(O.ORDR_INNB) ORDR_CNT
|
|
FROM GC_ORDER O
|
|
LEFT JOIN LATERAL(SELECT GOR2.ORDR_INNB, GOR2.SOPMAL_CD, SUM(GOR2.REFUND_AMT) REFUND_AMT
|
|
FROM GC_ORDER_REFUND GOR2
|
|
WHERE 1 = 1
|
|
AND GOR2.USE_AT = 'Y'
|
|
AND GOR2.REFUND_PROCS_STTUS_CD IN ('02','03') -- 추가됨...01 신청단계는 계산안해야함
|
|
AND O.ORDR_INNB = GOR2.ORDR_INNB
|
|
AND O.SOPMAL_CD = GOR2.SOPMAL_CD
|
|
GROUP BY GOR2.ORDR_INNB, GOR2.SOPMAL_CD
|
|
) GOR
|
|
ON O.ORDR_INNB = GOR.ORDR_INNB
|
|
AND O.SOPMAL_CD = GOR.SOPMAL_CD
|
|
WHERE 1 = 1
|
|
AND (O.ORDR_INNB, O.SOPMAL_CD) IN ( SELECT DISTINCT GOI.ORDR_INNB, GOI.SOPMAL_CD
|
|
FROM GC_ORDER_ITEM GOI
|
|
INNER JOIN GC_ORDER O1
|
|
ON GOI.ORDR_INNB = O1.ORDR_INNB
|
|
AND GOI.SOPMAL_CD = O1.SOPMAL_CD
|
|
WHERE 1 = 1
|
|
AND GOI.GOODS_KND_CD = '01'
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(stdrGoodsNm)">
|
|
AND GOI.GOODS_NM LIKE CONCAT('%',IFNULL(#{stdrGoodsNm},''),'%')
|
|
</if>
|
|
AND O1.SOPMAL_CD = O.SOPMAL_CD
|
|
AND O1.MBR_INNB = O.MBR_INNB
|
|
AND O1.MBR_DV_CD = O.MBR_DV_CD
|
|
)
|
|
AND O.SOPMAL_CD = #{sopmalCd}
|
|
AND O.USE_AT = 'Y'
|
|
AND O.ORDR_STTUS_CD BETWEEN '25' AND '75'
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(stdrStrtPurchsPd)">
|
|
AND O.ORDR_RCEPT_DT <![CDATA[>=]]> IFNULL(#{stdrStrtPurchsPd}, '1999-01-01')
|
|
</if>
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(stdrEndPurchsPd)">
|
|
AND O.ORDR_RCEPT_DT <![CDATA[<]]> IFNULL(DATE_ADD(#{stdrEndPurchsPd},INTERVAL 1 DAY), SYSDATE())
|
|
</if>
|
|
AND O.MBR_INNB = GM.MBR_INNB
|
|
AND O.MBR_DV_CD = GM.MBR_DV_CD
|
|
GROUP BY O.MBR_INNB, O.MBR_DV_CD
|
|
) GO2
|
|
ON GM.MBR_INNB = GO2.MBR_INNB
|
|
AND GM.MBR_DV_CD = GO2.MBR_DV_CD
|
|
LEFT JOIN LATERAL ( SELECT O.MBR_INNB, O.MBR_DV_CD
|
|
, SUM(O.RL_SETLE_AMT) - SUM(IFNULL(GOR.REFUND_AMT, 0)) AS RL_SETLE_AMT
|
|
, COUNT(O.ORDR_INNB) ORDR_CNT
|
|
FROM GC_ORDER O
|
|
LEFT JOIN LATERAL(SELECT GOR2.ORDR_INNB, GOR2.SOPMAL_CD, SUM(GOR2.REFUND_AMT) REFUND_AMT
|
|
FROM GC_ORDER_REFUND GOR2
|
|
WHERE 1 = 1
|
|
AND GOR2.USE_AT = 'Y'
|
|
AND GOR2.REFUND_PROCS_STTUS_CD IN ('02','03') -- 추가됨...01 신청단계는 계산안해야함
|
|
AND O.ORDR_INNB = GOR2.ORDR_INNB
|
|
AND O.SOPMAL_CD = GOR2.SOPMAL_CD
|
|
GROUP BY GOR2.ORDR_INNB, GOR2.SOPMAL_CD
|
|
) GOR
|
|
ON O.ORDR_INNB = GOR.ORDR_INNB
|
|
AND O.SOPMAL_CD = GOR.SOPMAL_CD
|
|
WHERE 1 = 1
|
|
AND (O.ORDR_INNB, O.SOPMAL_CD) IN ( SELECT DISTINCT GOI.ORDR_INNB, GOI.SOPMAL_CD
|
|
FROM GC_ORDER_ITEM GOI
|
|
INNER JOIN GC_ORDER O1
|
|
ON GOI.ORDR_INNB = O1.ORDR_INNB
|
|
AND GOI.SOPMAL_CD = O1.SOPMAL_CD
|
|
WHERE 1 = 1
|
|
AND GOI.GOODS_KND_CD = '01'
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(cmprGoodsNm)">
|
|
AND GOI.GOODS_NM LIKE CONCAT('%',IFNULL(#{cmprGoodsNm},''),'%')
|
|
</if>
|
|
AND O1.SOPMAL_CD = O.SOPMAL_CD
|
|
AND O1.MBR_INNB = O.MBR_INNB
|
|
AND O1.MBR_DV_CD = O.MBR_DV_CD
|
|
)
|
|
AND O.SOPMAL_CD = #{sopmalCd}
|
|
AND O.USE_AT = 'Y'
|
|
AND O.ORDR_STTUS_CD BETWEEN '25' AND '75'
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(cmprStrtPurchsPd)">
|
|
AND O.ORDR_RCEPT_DT <![CDATA[>=]]> IFNULL(#{cmprStrtPurchsPd}, '1999-01-01')
|
|
</if>
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(cmprEndPurchsPd)">
|
|
AND O.ORDR_RCEPT_DT <![CDATA[<]]> IFNULL(DATE_ADD(#{cmprEndPurchsPd},INTERVAL 1 DAY), SYSDATE())
|
|
</if>
|
|
AND O.MBR_INNB = GM.MBR_INNB
|
|
AND O.MBR_DV_CD = GM.MBR_DV_CD
|
|
GROUP BY O.MBR_INNB, O.MBR_DV_CD
|
|
) GO3
|
|
ON GM.MBR_INNB = GO3.MBR_INNB
|
|
AND GM.MBR_DV_CD = GO3.MBR_DV_CD
|
|
</sql>
|
|
<sql id="mbrSrchWhere">
|
|
WHERE 1 = 1
|
|
AND GM.USE_AT = 'Y'
|
|
AND GM.MBR_DV_CD = 'GC'
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchKeyword)">
|
|
<choose>
|
|
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, 'mbrNm')">
|
|
AND GM.MBR_NM = #{srchKeyword}
|
|
</when>
|
|
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, 'mbrId')">
|
|
AND GM.MBR_ID = #{srchKeyword}
|
|
</when>
|
|
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, 'email')">
|
|
AND GM.EMAIL = (SELECT HEX(AES_ENCRYPT(#{srchKeyword} , #{secretKey})))
|
|
</when>
|
|
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, 'mbtlnb')">
|
|
AND GM.MBTLNB = (SELECT HEX(AES_ENCRYPT(REPLACE(#{srchKeyword},'-',''), #{secretKey})))
|
|
</when>
|
|
</choose>
|
|
</if>
|
|
<if test = "!@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchOtherMbr, 'Y')">
|
|
AND EM.EXTRL_INTRLCK_DV_CD = '03' /* POS 회원이고(타매장 회원 체크 아닐때 필수) */
|
|
AND EM.STR_INNB = #{strInnb} /* 내매장이고 (타매장 회원 체크 아닐때 필수) */
|
|
</if>
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtRegistDt)">
|
|
AND GM.REGIST_DT <![CDATA[>=]]> IFNULL(#{srchStrtRegistDt}, '1999-01-01') /* 가입일 시작 */
|
|
</if>
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndRegistDt)">
|
|
AND GM.REGIST_DT <![CDATA[<]]> IFNULL(DATE_ADD(#{srchEndRegistDt},INTERVAL 1 DAY), SYSDATE()) /* 가입일 종료 */
|
|
</if>
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtLastPurchsDt)">
|
|
AND GMS.LAST_PURCHS_DT <![CDATA[>=]]> IFNULL(#{srchStrtLastPurchsDt}, '1999-01-01') /* 최종구매일 시작 */
|
|
</if>
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndLastPurchsDt)">
|
|
AND GMS.LAST_PURCHS_DT <![CDATA[<]]> IFNULL(DATE_ADD(#{srchEndLastPurchsDt},INTERVAL 1 DAY), SYSDATE()) /* 최종구매일 종료 */
|
|
</if>
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(stdrStrtPurchsAmt)">
|
|
AND IFNULL(GO2.RL_SETLE_AMT,0) <![CDATA[>=]]> IFNULL(#{stdrStrtPurchsAmt}, 0) /* 기준 구매금액 시작 */
|
|
</if>
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(stdrEndPurchsAmt)">
|
|
AND IFNULL(GO2.RL_SETLE_AMT,0) <![CDATA[<=]]> IFNULL(#{stdrEndPurchsAmt}, 9999999999) /* 기준 구매금액 종료 */
|
|
</if>
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(stdrStrtPurchsCnt)">
|
|
AND IFNULL(GO2.ORDR_CNT,0) <![CDATA[>=]]> IFNULL(#{stdrStrtPurchsCnt}, 0) /* 기준 구매횟수 시작 */
|
|
</if>
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(stdrEndPurchsCnt)">
|
|
AND IFNULL(GO2.ORDR_CNT,0) <![CDATA[<=]]> IFNULL(#{stdrEndPurchsCnt}, 9999999) /* 기준 구매횟수 종료 */
|
|
</if>
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(cmprStrtPurchsAmt)">
|
|
AND IFNULL(GO3.RL_SETLE_AMT,0) <![CDATA[>=]]> IFNULL(#{cmprStrtPurchsAmt}, 0) /* 비교 구매금액 시작 */
|
|
</if>
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(cmprEndPurchsAmt)">
|
|
AND IFNULL(GO3.RL_SETLE_AMT,0) <![CDATA[<=]]> IFNULL(#{cmprEndPurchsAmt}, 9999999999) /* 비교 구매금액 종료 */
|
|
</if>
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(cmprStrtPurchsAmt)">
|
|
AND IFNULL(GO3.ORDR_CNT,0) <![CDATA[>=]]> IFNULL(#{cmprStrtPurchsAmt}, 0) /* 비교 구매횟수 시작 */
|
|
</if>
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(cmprEndPurchsAmt)">
|
|
AND IFNULL(GO3.ORDR_CNT,0) <![CDATA[<=]]> IFNULL(#{cmprEndPurchsAmt}, 9999999) /* 비교 구매횟수 종료 */
|
|
</if>
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSex)"> /* 성별 */
|
|
AND GM.SEX = #{srchSex}
|
|
</if>
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtBrthYear)"> /* 생년 시작 */
|
|
AND GM.BRTH_DE <![CDATA[>=]]> DATE_FORMAT(CONCAT(IFNULL(#{srchStrtBrthYear}, '1999'),'0101'),'%Y0101')
|
|
</if>
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndBrthYear)"> /* 생년 종료 */
|
|
AND GM.BRTH_DE <![CDATA[<=]]> DATE_FORMAT(CONCAT(IFNULL(#{srchEndBrthYear}, '9999'),'1231'),'%Y1231')
|
|
</if>
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtBrthMonth)"> /* 출생 월 시작*/
|
|
AND SUBSTRING(GM.BRTH_DE,5,2) <![CDATA[>=]]> #{srchStrtBrthMonth}
|
|
</if>
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndBrthMonth)"> /* 출생 윌 종료 */
|
|
AND SUBSTRING(GM.BRTH_DE,5,2) <![CDATA[<=]]> #{srchEndBrthMonth}
|
|
</if>
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtMlg)"> /* 마일리지 시작 */
|
|
AND GMI.MILEAGE <![CDATA[>=]]> #{srchStrtMlg}
|
|
</if>
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndMlg)"> /* 마일리지 종료 */
|
|
AND GMI.MILEAGE <![CDATA[<=]]> #{srchEndMlg}
|
|
</if>
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchMarktRecptnAgreAt)"> /* 마케팅 수신여부 동의 */
|
|
AND GMA.MARKT_RECPTN_AGRE_AT = #{srchMarktRecptnAgreAt}
|
|
</if>
|
|
</sql>
|
|
<!--매장별 회원건수조회-->
|
|
<select id="selectBOItrntMbrCnt" resultType="int">
|
|
SELECT COUNT(1)
|
|
<include refid="mbrSrchFrom"/>
|
|
<include refid="mbrSrchWhere"/>
|
|
</select>
|
|
|
|
<!--매장별 회원리스트조회-->
|
|
<select id="selectBOItrntMbrList" resultType="DataMap">
|
|
SELECT *
|
|
FROM (
|
|
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED ) AS RNUM
|
|
,TB.*
|
|
FROM (
|
|
SELECT (SELECT TENTCPN_NM FROM GC_STORE GS WHERE GS.STR_INNB = EM.STR_INNB) TENTCPN_NM
|
|
, GM.MBR_INNB
|
|
, GM.MBR_DV_CD
|
|
, REPLACE(GM.MBR_ID,SUBSTRING(GM.MBR_ID,4,5),'*****') MBR_ID
|
|
, GM.MBR_NM
|
|
, GM.JOIN_MTH_CD
|
|
, CAST(AES_DECRYPT(UNHEX(GM.MBTLNB) , #{secretKey}) AS CHAR(50)) AS MBTLNB
|
|
, FN_GET_MEMBER_GRAD_NAME(GMGM.SOPMAL_CD,GMGM.MBR_DV_CD,GMGM.MBR_INNB) MBR_GRAD_NM
|
|
, DATE_FORMAT(GM.REGIST_DT, '%Y-%m-%d %H:%i:%s') REGIST_DT
|
|
, DATE_FORMAT( GMS.LAST_PURCHS_DT, '%Y-%m-%d %H:%i:%s') LAST_PURCHS_DT
|
|
, GMS.TOT_ORDR_AMT
|
|
, IFNULL(GMI.MILEAGE,0) AS MILEAGE
|
|
, IFNULL((SELECT FORMAT(IFNULL(BLCE, 0), 0) AS BLCE
|
|
FROM GC_CASH GC
|
|
WHERE 1 = 1
|
|
AND GC.MBR_DV_CD = GM.MBR_DV_CD
|
|
AND GC.MBR_INNB = GM.MBR_INNB
|
|
AND GC.USE_AT = 'Y'
|
|
ORDER BY CASH_INNB DESC
|
|
LIMIT 1),0) AS MBR_CASH_AMT /*회원 CASH(충전형마일리지) 금액*/
|
|
<include refid="mbrSrchFrom"/>
|
|
<include refid="mbrSrchWhere"/>
|
|
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(orderCnd)">
|
|
ORDER BY
|
|
<choose>
|
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(orderCnd, 'recent')">
|
|
GM.REGIST_DT DESC
|
|
</when>
|
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(orderCnd, 'mlgUp')">
|
|
GMI.MILEAGE DESC
|
|
</when>
|
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(orderCnd, 'mlgDn')">
|
|
GMI.MILEAGE ASC
|
|
</when>
|
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(orderCnd, 'amtUp')">
|
|
IFNULL(GMS.TOT_ORDR_AMT,0) DESC
|
|
</when>
|
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(orderCnd, 'amtDn')">
|
|
IFNULL(GMS.TOT_ORDR_AMT,0) ASC
|
|
</when>
|
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(orderCnd, 'cntUp')">
|
|
IFNULL(GMS.TOT_ORDR_CNT,0) DESC
|
|
</when>
|
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(orderCnd, 'cntDn')">
|
|
IFNULL(GMS.TOT_ORDR_CNT,0) ASC
|
|
</when>
|
|
</choose>
|
|
</if>
|
|
)TB
|
|
WHERE (@ROWNUM:=0)=0
|
|
) PV
|
|
WHERE 1=1
|
|
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
|
</select>
|
|
|
|
<!--매장별 회원리스트조회-->
|
|
<select id="selectBOItrntsmsMbrList" resultType="DataMap">
|
|
SELECT GM.MBR_INNB
|
|
, GM.MBR_DV_CD
|
|
, GM.MBR_NM AS RECPNT_NM
|
|
, CAST(AES_DECRYPT(UNHEX(GM.MBTLNB) , #{secretKey}) AS CHAR(50)) AS SNDNG_MBTLNB
|
|
, CAST(AES_DECRYPT(UNHEX(GM.MBTLNB) , #{secretKey}) AS CHAR(50)) AS SNDNG_INFO
|
|
<include refid="mbrSrchFrom"/>
|
|
<include refid="mbrSrchWhere"/>
|
|
</select>
|
|
<!-- ************************************************************************************************************
|
|
상담 서비스 시작
|
|
************************************************************************************************************-->
|
|
<!-- 상담 목록 조회 WHERE 절 -->
|
|
<sql id="cnsltListInqireWhere">
|
|
<![CDATA[
|
|
WHERE 1=1
|
|
AND CNSLT.MBR_DV_CD = #{mbrDvCd} AND CNSLT.MBR_INNB = #{mbrInnb}
|
|
]]>
|
|
<!-- 상담내용 -->
|
|
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchCnsltCn)">
|
|
AND CNSLT.CNSLT_CN LIKE CONCAT('%', #{srchCnsltCn}, '%')
|
|
</if>
|
|
<!-- 등록일 OR 처리일-->
|
|
<choose>
|
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDtDv, 'cnstlDt')">
|
|
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStartDate)">
|
|
<![CDATA[
|
|
AND CNSLT.REGIST_DT >= #{srchStartDate} ' 00:00:00'
|
|
]]>
|
|
</if>
|
|
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndDate)">
|
|
<![CDATA[
|
|
AND CNSLT.REGIST_DT <= #{srchEndDate} ' 23:59:59'
|
|
]]>
|
|
</if>
|
|
</when>
|
|
|
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDtDv, 'procsDt')">
|
|
<![CDATA[
|
|
AND CNSLT.PROCS_DT IS NOT NULL
|
|
]]>
|
|
<choose>
|
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStartDate)
|
|
and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchEndDate)">
|
|
<![CDATA[
|
|
AND CNSLT.PROCS_DT BETWEEN #{srchStartDate} ' 00:00:00' AND SYSDATE()
|
|
]]>
|
|
</when>
|
|
|
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchStartDate)
|
|
and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndDate)">
|
|
<![CDATA[
|
|
AND CNSLT.PROCS_DT < #{srchEndDate} ' 23:59:59'
|
|
]]>
|
|
</when>
|
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStartDate)
|
|
and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndDate)">
|
|
<![CDATA[
|
|
AND CNSLT.PROCS_DT BETWEEN #{srchStartDate} ' 00:00:00' AND #{srchEndDate} ' 23:59:59'
|
|
]]>
|
|
</when>
|
|
</choose>
|
|
</when>
|
|
</choose>
|
|
<!-- 처리 상태 -->
|
|
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchProcsSttusCd)">
|
|
<![CDATA[
|
|
AND CNSLT.PROCS_STTUS IN
|
|
]]>
|
|
<foreach collection="srchProcsSttusCd" item="srchProcsSttusCd" open="(" close=")" separator=",">
|
|
#{srchProcsSttusCd}
|
|
</foreach>
|
|
</if>
|
|
</sql>
|
|
|
|
<!--상담 목록 건수-->
|
|
<select id="selectBOCnsltListCnt" resultType="Integer">
|
|
SELECT COUNT(1)
|
|
FROM GC_STORE_COUNSEL CNSLT
|
|
<include refid = "cnsltListInqireWhere"/>
|
|
</select>
|
|
|
|
<!--상담 목록 조회-->
|
|
<select id="selectBOCnsltListInqire" resultType="DataMap">
|
|
SELECT *
|
|
FROM (SELECT CAST(@ROWNUM := @ROWNUM + 1 AS UNSIGNED) AS RNUM
|
|
, TB.*
|
|
FROM (SELECT STR_CNSLT_DTLS_INNB,
|
|
REGUSRNM,
|
|
FN_GET_COMMCODE_NAME('COUNSEL_PROCS_STTUS', PROCS_STTUS) AS PROCS_STTUS_CD,
|
|
PROCS_STTUS,
|
|
DATE_FORMAT(PROCS_DE_CTY,'%Y-%m-%d %H:%i:%s') PROCS_DE_CTY,
|
|
CNSLT_CN,
|
|
DATE_FORMAT(REGIST_DT,'%Y-%m-%d %H:%i:%s')REGIST_DT
|
|
FROM GC_STORE_COUNSEL CNSLT
|
|
<include refid = "cnsltListInqireWhere"/>) TB
|
|
WHERE (@rownum := 0) = 0) PV
|
|
WHERE 1 = 1
|
|
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
|
</select>
|
|
|
|
<!--상담 상세 조회-->
|
|
<select id="selectBOCnsltDtlUpdtInqirePopup" resultType="DataMap">
|
|
/* 상담번호, 상담자, 처리여부, 상담내용 */
|
|
SELECT STR_CNSLT_DTLS_INNB,
|
|
REGUSRNM,
|
|
FN_GET_COMMCODE_NAME('PROCS_STTUS', PROCS_STTUS) AS PROCS_STTUS_CD,
|
|
CNSLT_CN
|
|
FROM GC_STORE_COUNSEL
|
|
WHERE STR_CNSLT_DTLS_INNB = #{strCnsltDtlsInnb}
|
|
</select>
|
|
|
|
<!--상담 등록-->
|
|
<insert id="insertBOCnsltRegist">
|
|
<selectKey order="BEFORE" keyProperty="strCnsltDtlsInnb" resultType="String">
|
|
<![CDATA[
|
|
SELECT IFNULL(MAX(STR_CNSLT_DTLS_INNB), 0)+1
|
|
FROM GC_STORE_COUNSEL
|
|
]]>
|
|
</selectKey>
|
|
INSERT INTO GC_STORE_COUNSEL
|
|
(STR_CNSLT_DTLS_INNB,
|
|
STR_INNB,
|
|
MNGR_INNB,
|
|
MBR_INNB,
|
|
MBR_DV_CD,
|
|
CNSLT_CN,
|
|
PROCS_STTUS,
|
|
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(procsSttus, '03')">
|
|
PROCS_DE_CTY,
|
|
</if>
|
|
REGUSR,
|
|
REGUSRNM,
|
|
REGIST_DT,
|
|
UPDUSR,
|
|
UPDT_DT)
|
|
VALUES (
|
|
#{strCnsltDtlsInnb},
|
|
#{strInnb},
|
|
#{mngrInnb},
|
|
#{mbrInnb},
|
|
#{mbrDvCd},
|
|
#{cnsltCn},
|
|
#{procsSttus},
|
|
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(procsSttus, '03')">
|
|
NOW()
|
|
</if>
|
|
#{regusr},
|
|
#{regusrnm},
|
|
NOW(),
|
|
#{updusr},
|
|
NOW());
|
|
</insert>
|
|
|
|
<!--상담 수정-->
|
|
<update id="updateBOCnsltUpdt">
|
|
/* 처리여부, 내용*/
|
|
UPDATE GC_STORE_COUNSEL
|
|
SET
|
|
CNSLT_CN = #{cnsltCn},
|
|
PROCS_STTUS = #{procsSttus},
|
|
UPDUSR = #{updusr},
|
|
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(procsSttus, '03')">
|
|
<![CDATA[
|
|
PROCS_DE_CTY = NOW(),
|
|
]]>
|
|
</if>
|
|
UPDT_DT = NOW()
|
|
WHERE STR_CNSLT_DTLS_INNB = #{strCnsltDtlsInnb}
|
|
</update>
|
|
|
|
<!--상담 삭제-->
|
|
<delete id="deleteBOCnsltDel">
|
|
DELETE
|
|
FROM GC_STORE_COUNSEL
|
|
WHERE STR_CNSLT_DTLS_INNB = #{strCnsltDtlsInnb}
|
|
</delete>
|
|
|
|
<!-- 매장명 조회 -->
|
|
<select id="selectBoStrNm"
|
|
resultType="dataMap">
|
|
SELECT
|
|
*
|
|
FROM GC_STORE
|
|
WHERE 1=1
|
|
AND POS_CD_DV_VAL = #{posCdDvVal}
|
|
AND POS_CD_PASSIV_INPUT_VAL = #{posCdPassiveInputVal}
|
|
</select>
|
|
</mapper>
|