Files
sake/build/resources/main/mybatis/xml/mapper/itrnt/mbr/BOItrntMbrMapper.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>