merge master into develop - CscListRForm.jsp FAQ 아코디언 버그 수정

This commit is contained in:
jilee4unity
2026-05-28 23:34:06 +09:00
7250 changed files with 570509 additions and 25 deletions

View File

@@ -0,0 +1,348 @@
<?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.bbs.cnslt.mapper.BOCnsltMapper">
<!-- 상담 목록 조회 WHERE 절 -->
<sql id="cnsltListInqireWhere">
WHERE 1=1
AND CNSLT.SOPMAL_CD = #{sopmalCd}
<!-- 검색어 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchKeyword)">
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchKeywordDv, 'keywordName')">
AND MBR.MBR_NM LIKE CONCAT('%', #{srchKeyword}, '%')
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchKeywordDv, 'keywordId')">
AND MBR.MBR_ID LIKE CONCAT('%', #{srchKeyword}, '%')
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchKeywordDv, 'keywordPhone')">
AND CNSLT.TELNB = HEX(AES_ENCRYPT(REPLACE(#{srchKeyword},'-',''), #{secretKey}))
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchKeywordDv)">
AND (
MBR.MBR_NM LIKE CONCAT('%', #{srchKeyword}, '%')
OR MBR.MBR_ID LIKE CONCAT('%', #{srchKeyword}, '%')
OR CNSLT.TELNB = HEX(AES_ENCRYPT(REPLACE(#{srchKeyword},'-',''), #{secretKey}))
OR MBR.EMAIL LIKE CONCAT('%', #{srchKeyword}, '%')
)
</when>
</choose>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchMngrNm)">
AND CNSLT.MNGR_NM LIKE CONCAT('%', #{srchMngrNm}, '%')
</if>
<!-- 처리 상태 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchProcsSttusCd)">
AND CNSLT.PROCS_STTUS_CD IN
<foreach collection="srchProcsSttusCd" item="srchProcsSttusCd" open="(" close=")" separator=",">
#{srchProcsSttusCd}
</foreach>
</if>
<!-- 등록일 -->
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDtDv, 'cnstlDt')">
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStartDate)">
AND CNSLT.REGIST_DT <![CDATA[>=]]> #{srchStartDate} ' 00:00:00'
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndDate)">
AND CNSLT.REGIST_DT <![CDATA[<=]]> #{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)">
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)">
AND CNSLT.PROCS_DT <![CDATA[<]]> #{srchEndDate} ' 23:59:59'
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStartDate)
and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndDate)">
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(srchRelateNm)">
<choose>
<!-- 주문코드 -->
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchRelateDv, 'relateOrdrnb')">
AND CNSLT.ORDR_INNB = #{srchRelateNm}
</when>
<!-- 출고코드 -->
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchRelateDv, 'dlivyCd')">
AND CNSLT.DLIVY_CD_NB = #{srchRelateNm}
</when>
<!-- 환불코드 -->
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchRelateDv, 'refndCd')">
AND CNSLT.REFUND_CD_NB = #{srchRelateNm}
</when>
<!-- 상품문의 -->
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchRelateDv, 'relateGoodsInqry')">
AND CNSLT.GOODS_INQRY_BBSCTT_NB = #{srchRelateNm}
</when>
<!-- 컬럼추가후 '상품후기' 코드로 변경 -->
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchRelateDv, 'goodsRvwBbscttNb')">
AND CNSLT.GOODS_RVW_BBSCTT_NB = #{srchRelateNm}
</when>
</choose>
</if>
<!-- 상담내용 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchCnsltCn)">
AND CNSLT.CNSLT_CN LIKE CONCAT('%', #{srchCnsltCn}, '%')
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbrInnb)">
AND (CNSLT.MBR_DV_CD = #{mbrDvCd} AND CNSLT.MBR_INNB = #{mbrInnb} || CNSLT.TELNB = HEX(AES_ENCRYPT(REPLACE(
#{mbtlnb},'-',''), #{secretKey})))
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbtlnb) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(mbrTyCd, '02')">
AND CNSLT.TELNB = HEX(AES_ENCRYPT(REPLACE(#{mbtlnb},'-',''), #{secretKey}))
AND CNSLT.MBR_INNB = 0
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(cnsltDtlsInnb)">
<![CDATA[
AND CNSLT.CNSLT_DTLS_INNB = #{cnsltDtlsInnb}
]]>
</if>
</sql>
<!-- 상담 목록 조회 FROM 절 -->
<sql id="cnsltListInqireFrom">
FROM GC_COUNSEL CNSLT
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(crmAt)">
LEFT JOIN GC_MEMBER MBR
ON CNSLT.MBR_INNB = MBR.MBR_INNB
AND CNSLT.MBR_DV_CD = MBR.MBR_DV_CD
LEFT JOIN GC_MEMBER_GRAD_MAPPING FMGM
ON FMGM.MBR_DV_CD = CNSLT.MBR_DV_CD
AND FMGM.SOPMAL_CD = CNSLT.SOPMAL_CD
AND FMGM.MBR_INNB = CNSLT.MBR_INNB
LEFT JOIN GC_MEMBER_GRAD FMG
ON FMG.SOPMAL_CD = CNSLT.SOPMAL_CD
AND FMGM.MBR_GRAD_INNB = FMG.MBR_GRAD_INNB
</if>
</sql>
<!-- 상담 목록 건수 조회 -->
<select id="selectBOCnsltListCnt"
parameterType="com.wb.domainserver.domain.gcone.bbs.cnslt.vo.BOCnsltVO"
resultType="java.lang.Integer">
<![CDATA[
SELECT COUNT(1)
]]>
<include refid="cnsltListInqireFrom"/>
<include refid="cnsltListInqireWhere"/>
</select>
<!-- 상담 목록 조회 with Pagination -->
<select id="selectBOCnsltListInqire"
parameterType="com.wb.domainserver.domain.gcone.bbs.cnslt.vo.BOCnsltVO"
resultType="dataMap">
SELECT *
FROM (
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM
,TB.*
,IF(TB.DLIVY_INFO IS NOT NULL,SUBSTRING_INDEX(TB.DLIVY_INFO,',',1),NULL) AS DLIVY_ORDR_INNB
,IF(TB.DLIVY_INFO IS NOT NULL,SUBSTRING_INDEX(TB.DLIVY_INFO,',',-1),NULL) AS DLIVY_INNB
,IF(TB.RETURN_REFUND_INFO IS NOT NULL,SUBSTRING_INDEX(TB.RETURN_REFUND_INFO,',',1),NULL) AS REFUND_ORDR_INNB
,IF(TB.RETURN_REFUND_INFO IS NOT NULL,SUBSTRING_INDEX(TB.RETURN_REFUND_INFO,',',-1),NULL) AS ORDER_REFUND_INNB
FROM (
SELECT
CNSLT.CNSLT_DTLS_INNB
,CNSLT.MBR_INNB
,CNSLT.MBR_DV_CD
,CNSLT.MNGR_INNB
,CNSLT.MNGR_NM
,CNSLT.ORDR_INNB
,CNSLT.DLIVY_CD_NB
,CNSLT.RETURN_CD_NB
,CNSLT.REFUND_CD_NB
,CNSLT.GOODS_INQRY_BBSCTT_NB
,CNSLT.GOODS_RVW_BBSCTT_NB
,CNSLT.PROCS_STTUS_CD
,CNSLT.CNSLT_CN
,CNSLT.TELNB_DV_CD
,CNSLT.LRGE_CL_CD
,CNSLT.MIDDL_CL_CD
,CNSLT.RECRD_KY
,CAST(AES_DECRYPT(UNHEX(CNSLT.TELNB) , #{secretKey}) AS CHAR(50)) AS TELNB
,CNSLT.REGUSR
,CNSLT.UPDUSR
,CNSLT.UPDT_DT
,DATE_FORMAT(CNSLT.PROCS_DT, '%Y-%m-%d %H:%i:%s') AS PROCS_DT
,DATE_FORMAT(CNSLT.REGIST_DT, '%Y-%m-%d %H:%i:%s') AS REGIST_DT
,fn_get_commcode_name('COUNSEL_PROCS_STTUS', PROCS_STTUS_CD) AS PROCS_STTUS_CD_NM
,fn_get_commcode_name('LRGE_CL', LRGE_CL_CD) AS LRGE_CL_NM
,fn_get_commcode_name(CONCAT('MIDDL_CL_',REPLACE(LRGE_CL_CD,'0','')), MIDDL_CL_CD) AS MIDDL_CL_NM
,CASE
WHEN IFNULL(CNSLT.DLIVY_CD_NB,'') <![CDATA[<>]]> ''
THEN (SELECT
CONCAT(GGE.ORDR_INNB, ',', GGE.DLIVY_INNB)
FROM
GC_GOODS_EXPORT GGE
WHERE GGE.SOPMAL_CD = CNSLT.SOPMAL_CD
AND GGE.DLIVY_CD_NB = CNSLT.DLIVY_CD_NB)
END DLIVY_INFO
,CASE
WHEN IFNULL(CNSLT.REFUND_CD_NB,'') <![CDATA[<>]]> ''
THEN (SELECT
CONCAT(GOR.ORDR_INNB,',',GOR.ORDER_REFUND_INNB)
FROM
GC_ORDER_REFUND GOR
WHERE
GOR.SOPMAL_CD = CNSLT.SOPMAL_CD
AND (GOR.REFUND_CD = CNSLT.REFUND_CD_NB
OR GOR.RETURN_CD = CNSLT.RETURN_CD_NB))
END RETURN_REFUND_INFO
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(crmAt)">
,MBR.MBR_ID
,MBR.MBR_NM
,MBR.JOIN_MTH_CD
,FMG.MBR_GRAD_NM AS GRAD_NM
</if>
<include refid="cnsltListInqireFrom"/>
<include refid="cnsltListInqireWhere"/>
ORDER BY CNSLT.REGIST_DT DESC
) TB
WHERE (@rownum:=0)=0
) PV
WHERE 1=1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<!-- 상담 상세 내역 조회 -->
<select id="selectBOCnsltDtlUpdtInqirePopup"
parameterType="com.wb.domainserver.domain.gcone.bbs.cnslt.vo.BOCnsltVO"
resultType="dataMap">
<![CDATA[
SELECT CNSLT.CNSLT_DTLS_INNB
, CNSLT.MBR_INNB
, CNSLT.MNGR_INNB
, CNSLT.MNGR_NM
, CNSLT.ORDR_INNB
, CNSLT.DLIVY_CD_NB
, CNSLT.RETURN_CD_NB
, CNSLT.REFUND_CD_NB
, CNSLT.GOODS_INQRY_BBSCTT_NB
, CNSLT.GOODS_RVW_BBSCTT_NB
, CNSLT.PROCS_STTUS_CD
, CNSLT.PROCS_DT
, CNSLT.CNSLT_CN
, CNSLT.TELNB_DV_CD
, CNSLT.LRGE_CL_CD
, CNSLT.MIDDL_CL_CD
, CNSLT.RECRD_KY
, CAST(AES_DECRYPT(UNHEX(CNSLT.TELNB), #{secretKey}) AS CHAR(50)) AS MBTLNB
, CNSLT.REGUSR
, DATE_FORMAT(CNSLT.REGIST_DT, '%Y-%m-%d') AS REGIST_DT
, CNSLT.UPDUSR
, CNSLT.UPDT_DT
FROM GC_COUNSEL CNSLT
WHERE CNSLT.CNSLT_DTLS_INNB = #{cnsltDtlsInnb}
AND CNSLT.SOPMAL_CD = #{sopmalCd}
]]>
</select>
<!-- 상담 수정 -->
<update id="updateBOCnsltUpdt">
<![CDATA[
UPDATE GC_COUNSEL SET
ORDR_INNB = #{ordrNb}
,DLIVY_CD_NB = #{dlivyInnb}
,RETURN_CD_NB = #{rtngudCdNb}
,REFUND_CD_NB = #{refndCdNb}
,GOODS_INQRY_BBSCTT_NB = #{goodsInqryBbscttNb}
,GOODS_RVW_BBSCTT_NB = #{goodsRvwBbscttNb}
]]>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(procsSttusCd, '03')">
<![CDATA[
,PROCS_DT = SYSDATE()
]]>
</if>
<![CDATA[
,PROCS_STTUS_CD = #{procsSttusCd}
,CNSLT_CN = #{cnsltCn}
,UPDUSR = #{updusr}
,UPDT_DT = SYSDATE()
WHERE 1=1
AND CNSLT_DTLS_INNB = #{cnsltDtlsInnb} AND SOPMAL_CD = #{sopmalCd}
]]>
</update>
<!-- 상담 등록 -->
<insert id="insertBOCnsltRegist">
INSERT INTO GC_COUNSEL (
SOPMAL_CD,
MBR_INNB,
MBR_DV_CD,
MNGR_INNB,
MNGR_NM,
ORDR_INNB,
DLIVY_CD_NB,
RETURN_CD_NB,
REFUND_CD_NB,
GOODS_INQRY_BBSCTT_NB,
GOODS_RVW_BBSCTT_NB,
PROCS_STTUS_CD,
PROCS_DT,
CNSLT_CN,
TELNB_DV_CD,
LRGE_CL_CD,
MIDDL_CL_CD,
RECRD_KY,
TELNB,
REGUSR,
REGIST_DT,
UPDUSR,
UPDT_DT
)
SELECT #{sopmalCd},
IFNULL(#{mbrInnb}, 0),
IFNULL(#{mbrDvCd}, ''),
#{mngrInnb},
GM.MNGR_NM,
#{ordrNb},
#{dlivyInnb},
#{rtngudCdNb},
#{refndCdNb},
#{goodsInqryBbscttNb},
#{goodsRvwBbscttNb},
#{procsSttusCd},
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(procsSttusCd, '03')">
<![CDATA[
SYSDATE(),
]]>
</when>
<otherwise>
<![CDATA[
#{procsDt},
]]>
</otherwise>
</choose>
#{cnsltCn},
#{telnbDvCd},
#{lrgeCl},
#{middlCl},
#{customer_record_key},
HEX(AES_ENCRYPT(REPLACE(#{telnb},'-',''), #{secretKey})),
#{regusr},
SYSDATE(),
#{updusr},
SYSDATE()
FROM GC_MANAGER GM
WHERE MNGR_INNB = #{regusr}
</insert>
</mapper>