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,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>

View File

@@ -0,0 +1,15 @@
<?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.main.mapper.BOMaMainMapper">
<select id="selectBOMaMainAccessInqire"
resultType="dataMap">
SELECT
GM.MNGR_NM
, GM.MNGR_ID
, DATE_FORMAT(GM.LAST_CONECT_DT, '%Y-%m-%d %H:%i:%s') AS LAST_CONECT_DT
FROM
GC_MANAGER GM
WHERE 1=1
AND GM.MNGR_INNB = #{mngrInnb}
</select>
</mapper>

View File

@@ -0,0 +1,122 @@
<?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.ntcn.atmcsndng.mapper.BOMaAtmcSndngMapper">
<!-- 자동 발송 관리 목록 -->
<select id="selectBOAtmcSndngManageListInqire"
parameterType="com.wb.domainserver.domain.admin.ntcn.atmcsndng.vo.BOMaAtmcSndngVO"
resultType="dataMap">
<![CDATA[
SELECT *
FROM GC_MESSAGE_SNDNG SNDNG
JOIN (
SELECT GROUPCODE.CD_NM AS GROUP_CD_NM, CODE.GROUP_CD, CODE.CD, CODE.CD_NM
FROM (
SELECT CD, CD_NM, USE_AT
FROM GC_CODE
WHERE GROUP_CD LIKE 'FORM_DV%'
) GROUPCODE
JOIN GC_CODE CODE
ON REPLACE(CODE.GROUP_CD, #{formDvCd}, '') = GROUPCODE.CD
AND CODE.USE_AT = 'Y'
) CODE
ON CODE.GROUP_CD = SNDNG.FORM_DV_CD
AND CODE.CD = SNDNG.FORM_DTL_DV_CD
WHERE 1=1
]]>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sopmalCd)">
AND SNDNG.SOPMAL_CD = #{sopmalCd}
</if>
<![CDATA[
AND SNDNG.EXPSR_AT = 'Y'
AND SNDNG.MNGR_DV = #{mngrDv}
ORDER BY SNDNG.FORM_DV_CD, SNDNG.FORM_DTL_DV_CD
]]>
</select>
<!-- 자동 발송 관리 수정 -->
<update id="updateBOAtmcSndngManageUpdt"
parameterType="com.wb.domainserver.domain.admin.ntcn.atmcsndng.vo.BOMaAtmcSndngVO">
<foreach collection="list" item="dto" separator=";">
<![CDATA[
UPDATE GC_MESSAGE_SNDNG
SET
USE_AT = #{dto.useAt}
, EMAIL_USE_AT = #{dto.emailUseAt}
, SMS_USE_AT = #{dto.smsUseAt}
, NTCNTALK_USE_AT = #{dto.ntcntalkUseAt}
, MARKT_AT = #{dto.marktAt}
, SNDNG_STDR_DE = #{dto.sndngStdrDe}
, SNDNG_STDR_TME = #{dto.sndngStdrTme}
, UPDUSR = #{dto.updusr}
, UPDT_DT = SYSDATE()
WHERE SOPMAL_CD = #{dto.sopmalCd}
AND FORM_DV_CD = #{dto.formDvCd}
AND FORM_DTL_DV_CD = #{dto.formDtlDvCd}
]]>
</foreach>
</update>
<!-- 이메일 템플릿 사용여부 수정 -->
<update id="updateBOEmailTmplatUseAt"
parameterType="com.wb.domainserver.domain.admin.ntcn.atmcsndng.vo.BOMaAtmcSndngVO">
<foreach collection="list" item="dto" separator=";">
<![CDATA[
UPDATE GC_EMAIL_FORM
SET
USE_AT = #{dto.emailUseAt}
WHERE SOPMAL_CD = #{dto.sopmalCd}
AND FORM_DV_CD = #{dto.formDvCd}
AND FORM_DTL_DV_CD = #{dto.formDtlDvCd}
]]>
</foreach>
</update>
<!-- 메시지 템플릿 사용여부 수정 -->
<update id="updateBOMssageTmplatUseAt"
parameterType="com.wb.domainserver.domain.admin.ntcn.atmcsndng.vo.BOMaAtmcSndngVO">
<foreach collection="list" item="dto" separator=";">
<![CDATA[
UPDATE GC_SMS_FORM
SET
USE_AT = #{dto.smsUseAt}
WHERE SOPMAL_CD = #{dto.sopmalCd}
AND FORM_DV_CD = #{dto.formDvCd}
AND FORM_DTL_DV_CD = #{dto.formDtlDvCd}
]]>
</foreach>
</update>
<!-- 알림톡 템플릿 사용여부 수정 -->
<update id="updateBOKakaoTmplatUseAt"
parameterType="com.wb.domainserver.domain.admin.ntcn.atmcsndng.vo.BOMaAtmcSndngVO">
<foreach collection="list" item="dto" separator=";">
<![CDATA[
UPDATE GC_KAKAO_FORM
SET
USE_AT = #{dto.ntcntalkUseAt}
WHERE SOPMAL_CD = #{dto.sopmalCd}
AND FORM_DV_CD = #{dto.formDvCd}
AND FORM_DTL_DV_CD = #{dto.formDtlDvCd}
]]>
</foreach>
</update>
<!-- 자동발송 가능 시간 조회 -->
<select id="selectBOShopAtmcSndngTme">
SELECT
LEFT(SMS_ATMC_SNDNG_LMTT_BGNTME, 2) AS SMS_ATMC_SNDNG_LMTT_BGNTME
, LEFT(SMS_ATMC_SNDNG_LMTT_ENDTME, 2) AS SMS_ATMC_SNDNG_LMTT_ENDTME
FROM GC_SHOP
WHERE 1=1
AND SOPMAL_CD = #{sopmalCd}
</select>
<!-- 통합관리자 자동발송관리 쇼핑몰 조회 -->
<select id="selectBOSopmalAtmcSndng">
SELECT
GMS.SOPMAL_CD
, GS.SOPMAL_NM
FROM GC_MESSAGE_SNDNG GMS
INNER JOIN GC_SHOP GS
ON GMS.SOPMAL_CD = GS.SOPMAL_CD
GROUP BY SOPMAL_CD
</select>
</mapper>

View File

@@ -0,0 +1,177 @@
<?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.ntcn.email.mapper.BOMaEmailMapper">
<sql id="emailSndngDtlsListFrom">
<![CDATA[
FROM GC_EMAIL_LOG FEL
]]>
</sql>
<sql id="emailSndngDtlsListWhere">
<![CDATA[
WHERE 1=1
]]>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStr)">
<choose>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchType, 'SJ')">
<![CDATA[
AND FEL.SJ LIKE CONCAT('%',#{srchStr},'%')
]]>
</when>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchType, 'sndEml')">
<![CDATA[
AND AES_DECRYPT(UNHEX(FEL.SNDER), #{secretKey}) LIKE CONCAT('%',#{srchStr},'%')
]]>
</when>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchType, 'rcvEml')">
<![CDATA[
AND AES_DECRYPT(UNHEX(FEL.RCVER), #{secretKey}) LIKE CONCAT('%',#{srchStr},'%')
]]>
</when>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchType)">
<![CDATA[
AND (
FEL.SJ LIKE CONCAT('%',#{srchStr},'%')
OR AES_DECRYPT(UNHEX(FEL.SNDER), #{secretKey}) LIKE CONCAT('%',#{srchStr},'%')
OR AES_DECRYPT(UNHEX(FEL.RCVER), #{secretKey}) LIKE CONCAT('%',#{srchStr},'%')
)
]]>
</when>
</choose>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchShop)">
<![CDATA[
AND FEL.SOPMAL_CD = #{srchShop}
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(atmcAt)">
<![CDATA[
AND FEL.ATMC_SNDNG_AT = #{atmcAt}
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtSndngDt)
and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndSndngDt)">
<![CDATA[
AND FEL.REGIST_DT BETWEEN #{srchStrtSndngDt} ' 00:00:00' AND #{srchEndSndngDt} ' 23:59:59'
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtSndngDt)">
<![CDATA[
AND FEL.REGIST_DT >= #{srchStrtSndngDt} ' 00:00:00'
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndSndngDt)">
<![CDATA[
AND DATE(FEL.REGIST_DT) <= #{srchEndSndngDt} ' 23:59:59'
]]>
</if>
<![CDATA[
ORDER BY FEL.REGIST_DT DESC
]]>
</sql>
<!-- 이메일 발송 내역 조회 -->
<select id="selectBOMaEmailSndngDtlsListInqire"
parameterType="com.wb.domainserver.domain.admin.ntcn.email.vo.BOMaEmailSrchVO"
resultType="dataMap">
<![CDATA[
SELECT *
FROM (
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM
, TB.*
FROM (
SELECT FEL.EMAIL_LOG_INNB
, FEL.SJ
, CAST(AES_DECRYPT(UNHEX(FEL.SNDER) , #{secretKey}) AS CHAR(50)) AS EMAIL
, CAST(AES_DECRYPT(UNHEX(FEL.RCVER) , #{secretKey}) AS CHAR(50)) AS SNDNG_EMAIL
, FEL.STTUS AS STTUS
, FN_GET_SOPMAL_NAME(FEL.SOPMAL_CD) AS SOPMAL_NM
, DATE_FORMAT(FEL.REGIST_DT,'%Y-%m-%d %H:%i:%S')AS REGIST_DT
]]>
<include refid="emailSndngDtlsListFrom"/>
<include refid="emailSndngDtlsListWhere"/>
<![CDATA[
) TB
WHERE (@rownum:=0)=0
) PV
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
]]>
</select>
<!-- 이메일 발송 내역 건수 조회 (통합관리자) -->
<select id="selectBOMaEmailSndngDtlsListTotCnt"
parameterType="com.wb.domainserver.domain.admin.ntcn.email.vo.BOMaEmailSrchVO"
resultType="java.lang.Integer">
<![CDATA[
SELECT COUNT(1)
]]>
<include refid="emailSndngDtlsListFrom"/>
<include refid="emailSndngDtlsListWhere"/>
</select>
<!-- 이메일 발송 상세 조회 (수신 정보) -->
<select id = "selectBOMaEmailSndngDtlInfo"
parameterType="com.wb.domainserver.domain.admin.ntcn.email.vo.BOMaEmailSrchVO"
resultType="dataMap">
<![CDATA[
SELECT CAST(AES_DECRYPT(UNHEX(FEL.SNDER) , #{secretKey}) AS CHAR(50)) AS SNDER
, DATE_FORMAT(FEL.REGIST_DT,'%Y-%m-%d %H:%i:%S')AS REGIST_DT
, FEL.SJ
, FEL.CN
]]>
<include refid="emailSndngDtlsListFrom"/>
<![CDATA[
WHERE 1=1
AND FEL.EMAIL_LOG_INNB = #{emailLogInnb}
]]>
</select>
<!-- 이메일 발송로그 등록 -->
<insert id="insertBOMaEmailSndngLog"
parameterType="java.util.List"
useGeneratedKeys="true"
keyProperty="emailLogInnb">
INSERT INTO GC_EMAIL_LOG (
SOPMAL_CD
, MBR_INNB
, ATMC_SNDNG_AT
, SNDNG_CNT
, SNDER
, RCVER
, SJ
, CN
, EMAIL_SNDNG_FORM_INNB
, ORDR_INNB
, STTUS
, REGIST_DT
)
VALUES
<foreach collection="list" item="dto" separator=",">
(
#{dto.sopmalCd}
, #{dto.mbrInnb}
, #{dto.atmcSndngAt}
, #{dto.sndngCnt}
, HEX(AES_ENCRYPT(#{dto.snder}, #{dto.secretKey}))
, HEX(AES_ENCRYPT(#{dto.rcver}, #{dto.secretKey}))
, #{dto.sj}
, #{dto.cn}
, #{dto.emailSndngFormInnb}
, #{dto.ordrInnb}
, #{dto.sttus}
, SYSDATE()
)
</foreach>
</insert>
<!-- 이메일 로그 상태 수정 -->
<update id="updateEmailLog">
<foreach collection="list" item="dto" index="index" separator=",">
UPDATE
GC_EMAIL_LOG
SET
STTUS = #{dto.sttus}
WHERE 1=1
AND EMAIL_LOG_INNB = #{dto.emailLogInnb}
</foreach>
</update>
</mapper>

View File

@@ -0,0 +1,211 @@
<?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.ntcn.mssage.mapper.BOMaMssageMapper">
<!-- sms 발송 관리 목록 조회 FROM 절 -->
<sql id = "SmsSndngDtlsListFrom">
FROM GC_SMS_TO SMSTO
INNER JOIN GC_SMS SMS
ON SMSTO.SOPMAL_CD = SMS.SOPMAL_CD
AND SMSTO.SMS_INNB = SMS.SMS_INNB
</sql>
<!-- sms 발송 관리 목록 조회 WHERE 절 -->
<sql id = "SmsSndngDtlsListWhere">
WHERE 1=1
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSmsInnb)">
<![CDATA[
AND SMS.SMS_INNB = #{srchSmsInnb}
]]>
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSmsToInnb)">
<![CDATA[
AND SMSTO.SMS_TO_INNB = #{srchSmsToInnb}
]]>
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchRecptnNb)">
<![CDATA[
AND CAST(AES_DECRYPT(UNHEX(SMSTO.RECPTN_NB), '1df5be2f7e90ae36') AS CHAR(50)) LIKE CONCAT('%', REPLACE(#{srchRecptnNb},'-',''), '%')
]]>
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSopmalCd)
and !@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchSopmalCd, 'ALL')">
<![CDATA[
AND SMS.SOPMAL_CD = #{srchSopmalCd}
AND SMSTO.SOPMAL_CD = #{srchSopmalCd}
]]>
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStr)">
<choose>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchType, 'cn')">
<![CDATA[
AND (
SMS.CN LIKE CONCAT('%', #{srchStr}, '%')
OR SMSTO.SUBST_DATA LIKE CONCAT('%', #{srchStr}, '%')
)
]]>
</when>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchType, 'recpntNb')">
<![CDATA[
AND CAST(AES_DECRYPT(UNHEX(SMSTO.RECPTN_NB), '1df5be2f7e90ae36') AS CHAR(50)) LIKE CONCAT('%', REPLACE(#{srchStr},'-',''), '%')
]]>
</when>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchType, 'sndngNb')">
<![CDATA[
AND SMS.SNDNG_NB LIKE CONCAT('%', #{srchStr}, '%')
]]>
</when>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchType, 'cstmrIdnb')">
<![CDATA[
AND SMSTO.CSTMR_IDNB LIKE CONCAT('%', #{srchStr}, '%')
]]>
</when>
</choose>
</if>
<!-- 발송일 -->
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDtDv, 'sndngDt')">
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtSndngDt)
and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndSndngDt)">
<![CDATA[
AND SMS.SNDNG_DT BETWEEN #{srchStrtSndngDt} ' 00:00:00' AND #{srchEndSndngDt} ' 23:59:59'
]]>
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtSndngDt)">
<![CDATA[
AND SMS.SNDNG_DT >= #{srchStrtSndngDt} ' 00:00:00'
]]>
</when>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndSndngDt)">
<![CDATA[
AND SMS.SNDNG_DT <= #{srchEndSndngDt} ' 00:00:00'
]]>
</when>
</choose>
</if>
<!-- 등록일 -->
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDtDv, 'registDt')">
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtSndngDt)
and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndSndngDt)">
<![CDATA[
AND SMS.REGIST_DT BETWEEN #{srchStrtSndngDt} ' 00:00:00' AND #{srchEndSndngDt} ' 23:59:59'
]]>
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtSndngDt)">
<![CDATA[
AND SMS.REGIST_DT >= #{srchStrtSndngDt} ' 00:00:00'
]]>
</when>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndSndngDt)">
<![CDATA[
AND SMS.REGIST_DT <= #{srchEndSndngDt} ' 00:00:00'
]]>
</when>
</choose>
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchDv)">
<![CDATA[
AND SMSTO.DV IN
]]>
<foreach collection="srchDv" item="dv" open="(" separator="," close=")">
<![CDATA[
#{dv}
]]>
</foreach>
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSttus)">
<![CDATA[
AND SMSTO.STTUS IN
]]>
<foreach collection="srchSttus" item="sttus" open="(" separator="," close=")">
<![CDATA[
#{sttus}
]]>
</foreach>
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sndngNb)">
<![CDATA[
AND SMS.SNDNG_NB = #{sndngNb}
AND SMSTO.RECPTN_NB = REPLACE(#{recptnNb},'-','')
]]>
</if>
</sql>
<select id = "selectBOSmsSndngDtlsListInqire"
parameterType="com.wb.domainserver.domain.admin.ntcn.mssage.vo.BOMaMssageSrchVO"
resultType="dataMap">
<![CDATA[
SELECT
ROW_NUMBER() OVER (ORDER BY SMS.SNDNG_DT ASC) AS RNUM
, SMS.SNDNG_NB
, SMSTO.DV
, DATE_FORMAT(SMS.REGIST_DT,'%Y-%m-%d %H:%i:%S')AS REGIST_DT
, DATE_FORMAT(SMS.SNDNG_DT ,'%Y-%m-%d %H:%i:%S')AS SNDNG_DT
, CAST(AES_DECRYPT(UNHEX(SMSTO.RECPTN_NB) , #{secretKey}) AS CHAR(50)) AS RECPTN_NB
, SMS.HEAD
, SMS.CN
, SMS.TAIL
, SMS.SMS_INNB
, SMSTO.SMS_TO_INNB
, SMSTO.STTUS
, SMS.SUCCES_CNT
, SMS.FAILR_CNT
, SMS.CHR_STTUS
, SMS.SOPMAL_CD AS SOPMAL_CD
, SHOP.SOPMAL_NM
, SMSTO.SUBST_DATA
, SMSTO.RSLT_CD
]]>
<include refid="SmsSndngDtlsListFrom"/>
INNER JOIN GC_SHOP SHOP
ON SHOP.SOPMAL_CD = SMSTO.SOPMAL_CD
<include refid="SmsSndngDtlsListWhere"/>
<![CDATA[
ORDER BY ROW_NUMBER() OVER (ORDER BY SMS.SNDNG_DT ASC) DESC
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
]]>
</select>
<!--sms 발송 관리 건수 조회 -->
<select id = "selectBOSmsSndngDtlsListTotCnt"
parameterType="com.wb.domainserver.domain.admin.ntcn.mssage.vo.BOMaMssageSrchVO"
resultType="Integer">
SELECT
COUNT(1)
<include refid="SmsSndngDtlsListFrom"/>
<include refid="SmsSndngDtlsListWhere"/>
</select>
<!--sms 발송 관리 발신 목록 성공, 실패 건수 -->
<select id = "selectBOSmsSndngresultSttusCnt"
parameterType="com.wb.domainserver.domain.admin.ntcn.mssage.vo.BOMaMssageSrchVO"
resultType="dataMap">
SELECT
<!-- SMSTO.STTUS -->
COUNT(CASE WHEN SMSTO.STTUS = 'OK' THEN 1 END) AS OKCNT
, COUNT(CASE WHEN SMSTO.STTUS = 'FAIL' THEN 1 END) AS FAILCNT
<include refid="SmsSndngDtlsListFrom"/>
<include refid="SmsSndngDtlsListWhere"/>
</select>
<!--sms 발송 상세 조회 -->
<select id = "selectBOSmsSndngDtlInfo"
parameterType="com.wb.domainserver.domain.admin.ntcn.mssage.vo.BOMaMssageSrchVO"
resultType="dataMap">
SELECT
SMS.SNDNG_NB
, SMSTO.DV
, DATE_FORMAT(SMS.REGIST_DT,'%Y-%m-%d %H:%i:%S')AS REGIST_DT
, DATE_FORMAT(SMS.SNDNG_DT ,'%Y-%m-%d %H:%i:%S')AS SNDNG_DT
, SMSTO.RSLT_CD
, CAST(AES_DECRYPT(UNHEX(SMSTO.RECPTN_NB) , '1df5be2f7e90ae36') AS CHAR(50)) AS RECPTN_NB
, SMS.HEAD
, SMS.CN
, SMS.TAIL
, SMS.SMS_INNB
, SMSTO.SMS_TO_INNB
, SMSTO.STTUS
, SMS.SUCCES_CNT
, SMS.FAILR_CNT
, SMS.CHR_STTUS
, SMSTO.SUBST_DATA
<include refid="SmsSndngDtlsListFrom"/>
<include refid="SmsSndngDtlsListWhere"/>
</select>
</mapper>

View File

@@ -0,0 +1,33 @@
<?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.ntcn.stl.mapper.BOMaStlMssageMapper">
<!-- 매장 목록 조회 -->
<select id="selectBOMaStoreList"
resultType="dataMap">
SELECT
GS.STR_INNB
, GS.TENTCPN_ID
, GS.STR_OPER_DV
, CASE
WHEN GS.STR_INNB = 33 THEN '참다한홍삼 영등포점'
ELSE GS.TENTCPN_NM
END AS TENTCPN_NM
FROM GC_STORE GS
WHERE 1=1
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(strInnb)">
AND GS.STR_INNB = #{strInnb}
</if>
AND GS.TENTCPN_ID != 'base'
AND GS.MRHST_AT = 'Y'
AND GS.REPRSNT_MNGR_AT = 'Y'
ORDER BY GS.STR_INNB DESC
</select>
<!-- <select id="selectBOMaStlMssageList"-->
<!-- resultType="dataMap">-->
<!-- SELECT-->
<!-- *-->
<!-- FROM -->
<!-- </select>-->
</mapper>

View File

@@ -0,0 +1,481 @@
<?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.ntcn.tmplt.mapper.BOMaTmpltMapper">
<!-- 이메일 템플릿 조회 조건 -->
<sql id="tmpltEmailListInqireWhere">
<![CDATA[
WHERE 1 = 1
]]>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sopmalCd)">
<![CDATA[
AND SOPMAL_CD = #{sopmalCd}
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(formDvCd)">
<![CDATA[
AND FORM_DV_CD = #{formDvCd}
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(formDtlDvCd)">
<![CDATA[
AND FORM_DTL_DV_CD = #{formDtlDvCd}
]]>
</if>
</sql>
<!-- 메시지 템플릿 조회 조건 -->
<sql id="tmpltMssageListInqireWhere">
<![CDATA[
WHERE 1=1
]]>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sopmalCd)">
<![CDATA[
AND SOPMAL_CD = #{sopmalCd}
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(formDvCd)">
<![CDATA[
AND FORM_DV_CD = #{formDvCd}
]]>
</if>
</sql>
<!-- 알림톡 템플릿 조회 조건 -->
<sql id="tmpltNtcntalkListInqireWhere">
<![CDATA[
WHERE 1=1
]]>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sopmalCd)">
<![CDATA[
AND SOPMAL_CD = #{sopmalCd}
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(formDvCd)">
<![CDATA[
AND FORM_DV_CD = #{formDvCd}
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(formDtlDvCd)">
<![CDATA[
AND FORM_DTL_DV_CD = #{formDtlDvCd}
]]>
</if>
</sql>
<!-- 공통코드 -->
<!-- 그룹코드, 양식구분 조회 -->
<select id="selectBOTmplatGroupCd"
parameterType="java.lang.String"
resultType="dataMap">
<![CDATA[
SELECT *
FROM GC_CODE
WHERE 1 = 1
AND GROUP_CD LIKE #{param}
]]>
</select>
<!-- 이메일 자동발송 발신주소 조회 -->
<select id="selectBOEmailAtmcSndngDsptchAdres"
parameterType="com.wb.domainserver.domain.admin.ntcn.tmplt.vo.BOMaTmpltVO"
resultType="String">
<![CDATA[
SELECT
EMAIL_ATMC_SNDNG_DSPTCH_ADRES
FROM GC_SHOP
WHERE SOPMAL_CD = #{sopmalCd}
]]>
</select>
<!-- 이메일 템플릿 -->
<!-- 이메일 템플릿 조회 -->
<select id="selectBOEmailAtmcSndngTmplatInqireForm"
parameterType="com.wb.domainserver.domain.admin.ntcn.tmplt.vo.BOMaTmpltVO"
resultType="dataMap">
<![CDATA[
SELECT
EMAIL_SNDNG_FORM_INNB
, SOPMAL_CD
, FORM_DV_CD
, FORM_DTL_DV_CD
, EMAIL_SJ
FROM GC_EMAIL_FORM
]]>
<include refid = "tmpltEmailListInqireWhere"/>
<![CDATA[
ORDER BY FORM_DTL_DV_CD;
]]>
</select>
<!-- 이메일 템플릿 단건 조회 -->
<select id="selectBOEmailAtmcSndngTmplatOneInqireForm"
parameterType="com.wb.domainserver.domain.admin.ntcn.tmplt.vo.BOMaTmpltVO"
resultType="dataMap">
<![CDATA[
SELECT
EMAIL_SNDNG_FORM_INNB
, SOPMAL_CD
, EMAIL_SJ
, EMAIL_CN
FROM GC_EMAIL_FORM
]]>
<include refid = "tmpltEmailListInqireWhere"/>
</select>
<!-- 이메일 템플릿 등록(사용안함) -->
<insert id="insertBOEmailTmplat"
parameterType="com.wb.domainserver.domain.admin.ntcn.tmplt.vo.BOMaTmpltVO">
<selectKey order="BEFORE" keyProperty="//////////////" resultType="java.lang.Integer">
<![CDATA[
SELECT IFNULL(MAX(EMAIL_SNDNG_FORM_INNB), 0)+1
FROM GC_EMAIL_FORM
]]>
</selectKey>
INSERT INTO GC_EMAIL_FORM (
EMAIL_SNDNG_FORM_INNB
, SOPMAL_CD
, EMAIL_FORM_DV
, EMAIL_SJ
, EMAIL_CN
, USE_AT
, REGUSR
, REGIST_DT
, UPDUSR
, UPDT_DT
)
VALUES (
#{popupInnb}
, #{popupNm}
, #{popupExpsrBgnDt}
, #{popupExpsrEndDt}
, #{cnncUrl}
, #{popupMgWth}
, 'Y'
, #{regusr}
, NOW()
, #{updusr}
, NOW()
)
</insert>
<!-- 이메일 템플릿 수정 -->
<update id="updateBOEmailTmplat" parameterType="com.wb.domainserver.domain.admin.ntcn.tmplt.vo.BOMaTmpltVO">
<![CDATA[
UPDATE GC_EMAIL_FORM
SET
EMAIL_SJ = #{emailSj}
, EMAIL_CN = #{emailCn}
, UPDUSR = #{updusr}
, UPDT_DT = SYSDATE()
]]>
<include refid = "tmpltEmailListInqireWhere"/>
</update>
<!-- 메시지 템플릿 -->
<!-- 메시지(SMS) 템플릿 조회 -->
<select id="selectBOMssageAtmcSndngTmplatInqireForm"
parameterType="com.wb.domainserver.domain.admin.ntcn.tmplt.vo.BOMaTmpltVO"
resultType="dataMap">
<![CDATA[
SELECT
FORM.SMS_SNDNG_FORM_INNB
, FORM.FORM_DV_CD
, FORM.FORM_DTL_DV_CD
, CODE.CD_NM
, FORM.SMS_CN
, FORM.SOPMAL_CD
FROM GC_SMS_FORM FORM
JOIN GC_CODE CODE
ON FORM.FORM_DV_CD = CODE.GROUP_CD
AND FORM.FORM_DTL_DV_CD = CODE.CD
]]>
<include refid = "tmpltMssageListInqireWhere"/>
<![CDATA[
ORDER BY FORM_DTL_DV_CD;
]]>
</select>
<!-- 메시지 템플릿 등록(사용안함) -->
<insert id="insertBOMssageTmplat"
parameterType="com.wb.domainserver.domain.admin.ntcn.tmplt.vo.BOMaTmpltVO">
<selectKey order="BEFORE" keyProperty="//////////////" resultType="java.lang.Integer">
<![CDATA[
SELECT IFNULL(MAX(SMS_SNDNG_FORM_INNB), 0)+1
FROM GC_SMS_FORM
]]>
</selectKey>
INSERT INTO GC_SMS_FORM (
SMS_SNDNG_FORM_INNB
, SOPMAL_CD
, FORM_DV
, SMS_CN
, USE_AT
, REGUSR
, REGIST_DT
, UPDUSR
, UPDT_DT
)
VALUES (
#{popupInnb}
, #{popupNm}
, #{popupExpsrBgnDt}
, #{popupExpsrEndDt}
, 'Y'
, #{regusr}
, SYSDATE()
, #{updusr}
, SYSDATE()
)
</insert>
<!-- 메시지 템플릿 수정 -->
<update id="updateBOMssageTmplat" parameterType="com.wb.domainserver.domain.admin.ntcn.tmplt.vo.BOMaTmpltVO">
<foreach collection="list" item="dto" separator=";">
<![CDATA[
UPDATE GC_SMS_FORM
SET
SMS_CN = #{dto.smsCn}
, UPDUSR = #{dto.updusr}
, UPDT_DT = SYSDATE()
WHERE SOPMAL_CD = #{dto.sopmalCd}
AND FORM_DV_CD = #{dto.formDvCd}
AND FORM_DTL_DV_CD = #{dto.formDtlDvCd}
]]>
</foreach>
</update>
<!-- 알림톡 템플릿 조회 -->
<select id="selectBONtcntalkAtmcSndngTmplatInqireForm"
parameterType="com.wb.domainserver.domain.admin.ntcn.tmplt.vo.BOMaTmpltVO"
resultType="dataMap">
<![CDATA[
SELECT
FORM.NTCNTALK_SNDNG_FORM_INNB
, FORM.FORM_DV_CD
, FORM.FORM_DTL_DV_CD
, CODE.CD_NM
, FORM.MSG
, FORM.SMS_RPLC_AT
, FORM.SMS_CN
FROM GC_KAKAO_FORM FORM
JOIN GC_CODE CODE
ON FORM.FORM_DV_CD = CODE.GROUP_CD
AND FORM.FORM_DTL_DV_CD = CODE.CD
]]>
<include refid = "tmpltNtcntalkListInqireWhere"/>
<![CDATA[
ORDER BY FORM_DTL_DV_CD;
]]>
</select>
<!-- 알림톡 템플릿 조회_팝업 -->
<select id="selectBONtcntalkAtmcSndngTmplatUpdtPopupForm"
parameterType="com.wb.domainserver.domain.admin.ntcn.tmplt.vo.BOMaTmpltVO"
resultType="dataMap">
<![CDATA[
SELECT
CODE.CD_NM
, FORM.MSG
, FORM.BTN_TYPE_01
, FORM.BTN_NM_01
, FORM.BTN_01_URL_01
, FORM.BTN_01_URL_02
, FORM.BTN_TYPE_02
, FORM.BTN_NM_02
, FORM.BTN_02_URL_01
, FORM.BTN_02_URL_02
, FORM.BTN_TYPE_03
, FORM.BTN_NM_03
, FORM.BTN_03_URL_01
, FORM.BTN_03_URL_02
, FORM.BTN_TYPE_04
, FORM.BTN_NM_04
, FORM.BTN_04_URL_01
, FORM.BTN_04_URL_02
, FORM.BTN_TYPE_05
, FORM.BTN_NM_05
, FORM.BTN_05_URL_01
, FORM.BTN_05_URL_02
, FORM.SMS_RPLC_AT
, FORM.SMS_CN
FROM GC_KAKAO_FORM FORM
JOIN GC_CODE CODE
ON FORM.FORM_DV_CD = CODE.GROUP_CD
AND FORM.FORM_DTL_DV_CD = CODE.CD
]]>
<include refid = "tmpltNtcntalkListInqireWhere"/>
</select>
<!-- 알림톡 템플릿 등록(사용안함) -->
<insert id="insertBOKakaoForm"
parameterType="com.wb.domainserver.domain.admin.ntcn.tmplt.vo.BOMaTmpltVO">
<selectKey order="BEFORE" keyProperty="//////////////" resultType="java.lang.Integer">
<![CDATA[
SELECT IFNULL(MAX(NTCNTALK_SNDNG_FORM_INNB), 0)+1
FROM GC_KAKAO_FORM
]]>
</selectKey>
INSERT INTO GC_KAKAO_FORM (
NTCNTALK_SNDNG_FORM_INNB
, SOPMAL_CD
, KAKAO_CD
, FORM_DV
, SMS_RPLC_AT
, SMS_RPLC_CN
, USE_AT
, REGUSR
, REGIST_DT
, UPDUSR
, UPDT_DT
)
VALUES (
#{popupInnb}
, #{popupNm}
, #{popupExpsrBgnDt}
, #{popupExpsrEndDt}
, 'Y'
, #{regusr}
, SYSDATE()
, #{updusr}
, SYSDATE()
)
</insert>
<!-- 알림톡 템플릿 등록_버튼(사용안함) -->
<insert id="insertBOKakaoFormButton"
parameterType="com.wb.domainserver.domain.admin.ntcn.tmplt.vo.BOMaTmpltVO">
<selectKey order="BEFORE" keyProperty="//////////////" resultType="java.lang.Integer">
<![CDATA[
SELECT IFNULL(MAX(NTCNTALK_SNDNG_FORM_INNB), 0)+1
FROM GC_KAKAO_FORM_BUTTON
]]>
</selectKey>
INSERT INTO GC_KAKAO_FORM_BUTTON (
NTCNTALK_SNDNG_FORM_INNB
, BUTTON_INNB
, BUTTON_NM
, BUTTON_URL
, USE_AT
, REGUSR
, REGIST_DT
, UPDUSR
, UPDT_DT
)
VALUES (
#{popupInnb}
, #{popupNm}
, #{popupExpsrBgnDt}
, #{popupExpsrEndDt}
, 'Y'
, #{regusr}
, SYSDATE()
, #{updusr}
, SYSDATE()
)
</insert>
<!-- 알림톡 템플릿 수정 -->
<update id="updateBOKakaoForm" parameterType="com.wb.domainserver.domain.admin.ntcn.tmplt.vo.BOMaTmpltVO">
<foreach collection="list" item="dto" separator=";">
<![CDATA[
UPDATE GC_KAKAO_FORM
SET
MSG = #{dto.msg}
, SMS_CN = #{dto.smsCn}
, SMS_RPLC_AT = #{dto.smsRplcAt}
, UPDUSR = #{dto.updusr}
, UPDT_DT = SYSDATE()
WHERE FORM_DV_CD = #{dto.formDvCd}
AND FORM_DTL_DV_CD = #{dto.formDtlDvCd}
]]>
</foreach>
</update>
<!-- 알림톡 템플릿 수정_팝업 -->
<update id="updateBOKakaoFormPopup" parameterType="com.wb.domainserver.domain.admin.ntcn.tmplt.vo.BOMaTmpltVO">
<![CDATA[
UPDATE GC_KAKAO_FORM
SET
MSG = #{msg}
, BTN_TYPE_01 = #{btnType01}
, BTN_NM_01 = #{btnNm01}
, BTN_01_URL_01 = #{btn01Url01}
, BTN_01_URL_02 = #{btn01Url02}
, BTN_TYPE_02 = #{btnType02}
, BTN_NM_02 = #{btnNm02}
, BTN_02_URL_01 = #{btn02Url01}
, BTN_02_URL_02 = #{btn02Url02}
, BTN_TYPE_03 = #{btnType03}
, BTN_NM_03 = #{btnNm03}
, BTN_03_URL_01 = #{btn03Url01}
, BTN_03_URL_02 = #{btn03Url02}
, BTN_TYPE_04 = #{btnType04}
, BTN_NM_04 = #{btnNm04}
, BTN_04_URL_01 = #{btn04Url01}
, BTN_04_URL_02 = #{btn04Url02}
, BTN_TYPE_05 = #{btnType05}
, BTN_NM_05 = #{btnNm05}
, BTN_05_URL_01 = #{btn05Url01}
, BTN_05_URL_02 = #{btn05Url02}
, SMS_RPLC_AT = #{smsRplcAt}
, SMS_CN = #{smsCn}
, UPDUSR = #{updusr}
, UPDT_DT = SYSDATE()
WHERE FORM_DV_CD = #{formDvCd}
AND FORM_DTL_DV_CD = #{formDtlDvCd}
AND SOPMAL_CD = #{sopmalCd}
]]>
</update>
<!-- 통합관리자 자동발송관리 쇼핑몰 조회 -->
<select id="selectBOSopmalAtmcSndng">
SELECT
GMS.SOPMAL_CD
, GS.SOPMAL_NM
FROM GC_MESSAGE_SNDNG GMS
INNER JOIN GC_SHOP GS
ON GMS.SOPMAL_CD = GS.SOPMAL_CD
GROUP BY SOPMAL_CD
</select>
<!-- 템플릿 사용 그룹 조회 -->
<select id="selectBOTmplatGroup"
resultType="dataMap">
<![CDATA[
SELECT
*
FROM GC_CODE GC
INNER JOIN (
SELECT
SUBSTRING_INDEX(GMS.FORM_DV_CD, '_', 2) AS GROUP_CD
, SUBSTRING_INDEX(GMS.FORM_DV_CD, '_', -1) AS CD
FROM GC_MESSAGE_SNDNG GMS
WHERE 1=1
AND GMS.EXPSR_AT = 'Y'
AND GMS.MNGR_DV = '02'
AND GMS.SOPMAL_CD = #{sopmalCd}
GROUP BY GMS.FORM_DV_CD
) TB
ON GC.GROUP_CD = TB.GROUP_CD
AND GC.CD = TB.CD
]]>
</select>
<!-- 템플릿 사용 그룹 폼 조회 -->
<select id="selectBOTmplatFormGroup"
resultType="dataMap">
<![CDATA[
SELECT
*
FROM GC_CODE GC
INNER JOIN GC_MESSAGE_SNDNG GMS
ON GC.GROUP_CD = GMS.FORM_DV_CD
AND GC.CD = GMS.FORM_DTL_DV_CD
WHERE 1=1
AND GMS.SOPMAL_CD = #{sopmalCd}
AND GMS.EXPSR_AT = 'Y'
AND GMS.MNGR_DV = '02'
]]>
</select>
</mapper>

View File

@@ -0,0 +1,250 @@
<?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.stats.marktAnals.mapper.BOMaAdminStatsMapper">
<!--
회원 및 마일리지 표 건수 조회
-->
<select id="selectBOAdminMbrNdMlgTableCntInqire"
parameterType = "com.wb.domainserver.domain.gcone.stats.marktAnals.vo.BOMarktAnalsVO"
resultType="java.lang.Integer">
<![CDATA[
SELECT
COUNT(*)
FROM (
-- 1. 총 회원수
SELECT '1. 총 회원수' gubun, count(*) AS union_cust_cnt
, sum(CASE WHEN main_sopmal_cd = 'NC' THEN 1 ELSE 0 END ) AS NC_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'CH' THEN 1 ELSE 0 END ) AS CH_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'TZ' THEN 1 ELSE 0 END ) AS TZ_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'PL' THEN 1 ELSE 0 END ) AS PL_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'NB' THEN 1 ELSE 0 END ) AS NB_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'DT' THEN 1 ELSE 0 END ) AS DT_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'DL' THEN 1 ELSE 0 END ) AS DL_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'AF' THEN 1 ELSE 0 END ) AS AF_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'BD' THEN 1 ELSE 0 END ) AS BD_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'LF' THEN 1 ELSE 0 END ) AS LF_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'JM' THEN 1 ELSE 0 END ) AS JM_CU_CNT
FROM GC_MEMBER
WHERE 1=1
AND MBR_DV_CD = 'GC'
-- AND MAIN_SOPMAL_CD = 'NC'
AND USE_AT = 'Y'
UNION all
-- 2. 가입한 회원수(조회기간 가입회원수 기준 구매회원수 비율)
SELECT '2. 가입한 회원수(조회기간 가입회원수 기준 구매회원수 비율)' gubun, count(*) AS union_cust_cnt
, sum(CASE WHEN main_sopmal_cd = 'NC' THEN 1 ELSE 0 END ) AS NC_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'CH' THEN 1 ELSE 0 END ) AS CH_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'TZ' THEN 1 ELSE 0 END ) AS TZ_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'PL' THEN 1 ELSE 0 END ) AS PL_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'NB' THEN 1 ELSE 0 END ) AS NB_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'DT' THEN 1 ELSE 0 END ) AS DT_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'DL' THEN 1 ELSE 0 END ) AS DL_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'AF' THEN 1 ELSE 0 END ) AS AF_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'BD' THEN 1 ELSE 0 END ) AS BD_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'LF' THEN 1 ELSE 0 END ) AS LF_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'JM' THEN 1 ELSE 0 END ) AS JM_CU_CNT
FROM GC_MEMBER
WHERE 1=1
AND MBR_DV_CD = 'GC'
AND USE_AT = 'Y'
AND REGIST_DT BETWEEN '2025-04-01 00:00:00' AND '2025-04-30 23:59:59' /* 가입 기간 설정 */
UNION all
-- 3. 구매한 회원수(1회)
SELECT '3. 구매한 회원수(1회) ' gubun, count(*) AS union_cust_cnt
, sum(CASE WHEN main_sopmal_cd = 'NC' THEN 1 ELSE 0 END ) AS NC_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'CH' THEN 1 ELSE 0 END ) AS CH_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'TZ' THEN 1 ELSE 0 END ) AS TZ_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'PL' THEN 1 ELSE 0 END ) AS PL_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'NB' THEN 1 ELSE 0 END ) AS NB_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'DT' THEN 1 ELSE 0 END ) AS DT_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'DL' THEN 1 ELSE 0 END ) AS DL_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'AF' THEN 1 ELSE 0 END ) AS AF_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'BD' THEN 1 ELSE 0 END ) AS BD_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'LF' THEN 1 ELSE 0 END ) AS LF_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'JM' THEN 1 ELSE 0 END ) AS JM_CU_CNT
FROM GC_MEMBER MEM
JOIN (
#주문
SELECT MBR_INNB , MBR_DV_CD , SOPMAL_CD
, COUNT(*) AS ORD_CNT
, SUM(RL_SETLE_AMT) SUM_RL_SETLE_AMT
FROM GC_ORDER
WHERE 1=1
AND MBR_DV_CD = 'GC'
-- AND SOPMAL_CD = 'AF'
AND USE_AT = 'Y'
AND ordr_sttus_cd BETWEEN '25' AND '75'
AND SETLE_COMPT_DT BETWEEN '2025-04-01 00:00:00' AND '2025-05-31 23:59:59' /* 구매 기간 설정 */
GROUP BY 1,2,3 ) ORD
ON MEM.MBR_INNB = ORD.MBR_INNB
AND MEM.MAIN_SOPMAL_CD = ORD.SOPMAL_CD
WHERE 1=1
AND MEM.MBR_DV_CD = 'GC'
AND MEM.USE_AT = 'Y'
AND MEM.REGIST_DT BETWEEN '2025-04-01 00:00:00' AND '2025-04-30 23:59:59' /* 가입 기간 설정 */
) AS TEMP
]]>
</select>
<!--
회원 및 마일리지 표 조회
-->
<select id="selectBOAdminMbrNdMlgTableInqire"
parameterType = "com.wb.domainserver.domain.gcone.stats.marktAnals.vo.BOMarktAnalsVO"
resultType="DataMap">
<![CDATA[
SELECT
*
FROM (
SELECT
CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM, TB.*
FROM (
-- 1. 총 회원수
SELECT '1. 총 회원수' gubun, count(*) AS union_cust_cnt
, sum(CASE WHEN main_sopmal_cd = 'NC' THEN 1 ELSE 0 END ) AS NC_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'CH' THEN 1 ELSE 0 END ) AS CH_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'TZ' THEN 1 ELSE 0 END ) AS TZ_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'PL' THEN 1 ELSE 0 END ) AS PL_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'NB' THEN 1 ELSE 0 END ) AS NB_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'DT' THEN 1 ELSE 0 END ) AS DT_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'DL' THEN 1 ELSE 0 END ) AS DL_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'AF' THEN 1 ELSE 0 END ) AS AF_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'BD' THEN 1 ELSE 0 END ) AS BD_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'LF' THEN 1 ELSE 0 END ) AS LF_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'JM' THEN 1 ELSE 0 END ) AS JM_CU_CNT
FROM GC_MEMBER
WHERE 1=1
AND MBR_DV_CD = 'GC'
-- AND MAIN_SOPMAL_CD = 'NC'
AND USE_AT = 'Y'
UNION all
-- 2. 가입한 회원수(조회기간 가입회원수 기준 구매회원수 비율)
SELECT '2. 가입한 회원수(조회기간 가입회원수 기준 구매회원수 비율)' gubun, count(*) AS union_cust_cnt
, sum(CASE WHEN main_sopmal_cd = 'NC' THEN 1 ELSE 0 END ) AS NC_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'CH' THEN 1 ELSE 0 END ) AS CH_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'TZ' THEN 1 ELSE 0 END ) AS TZ_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'PL' THEN 1 ELSE 0 END ) AS PL_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'NB' THEN 1 ELSE 0 END ) AS NB_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'DT' THEN 1 ELSE 0 END ) AS DT_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'DL' THEN 1 ELSE 0 END ) AS DL_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'AF' THEN 1 ELSE 0 END ) AS AF_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'BD' THEN 1 ELSE 0 END ) AS BD_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'LF' THEN 1 ELSE 0 END ) AS LF_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'JM' THEN 1 ELSE 0 END ) AS JM_CU_CNT
FROM GC_MEMBER
WHERE 1=1
AND MBR_DV_CD = 'GC'
AND USE_AT = 'Y'
AND REGIST_DT BETWEEN '2025-04-01 00:00:00' AND '2025-04-30 23:59:59' /* 가입 기간 설정 */
UNION all
-- 3. 구매한 회원수(1회)
SELECT '3. 구매한 회원수(1회) ' gubun, count(*) AS union_cust_cnt
, sum(CASE WHEN main_sopmal_cd = 'NC' THEN 1 ELSE 0 END ) AS NC_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'CH' THEN 1 ELSE 0 END ) AS CH_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'TZ' THEN 1 ELSE 0 END ) AS TZ_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'PL' THEN 1 ELSE 0 END ) AS PL_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'NB' THEN 1 ELSE 0 END ) AS NB_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'DT' THEN 1 ELSE 0 END ) AS DT_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'DL' THEN 1 ELSE 0 END ) AS DL_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'AF' THEN 1 ELSE 0 END ) AS AF_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'BD' THEN 1 ELSE 0 END ) AS BD_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'LF' THEN 1 ELSE 0 END ) AS LF_CU_CNT
, sum(CASE WHEN main_sopmal_cd = 'JM' THEN 1 ELSE 0 END ) AS JM_CU_CNT
FROM GC_MEMBER MEM
JOIN (
#주문
SELECT MBR_INNB , MBR_DV_CD , SOPMAL_CD
, COUNT(*) AS ORD_CNT
, SUM(RL_SETLE_AMT) SUM_RL_SETLE_AMT
FROM GC_ORDER
WHERE 1=1
AND MBR_DV_CD = 'GC'
-- AND SOPMAL_CD = 'AF'
AND USE_AT = 'Y'
AND ordr_sttus_cd BETWEEN '25' AND '75'
AND SETLE_COMPT_DT BETWEEN '2025-04-01 00:00:00' AND '2025-05-31 23:59:59' /* 구매 기간 설정 */
GROUP BY 1,2,3 ) ORD
ON MEM.MBR_INNB = ORD.MBR_INNB
AND MEM.MAIN_SOPMAL_CD = ORD.SOPMAL_CD
WHERE 1=1
AND MEM.MBR_DV_CD = 'GC'
AND MEM.USE_AT = 'Y'
AND MEM.REGIST_DT BETWEEN '2025-04-01 00:00:00' AND '2025-04-30 23:59:59' /* 가입 기간 설정 */
) TB
WHERE (@rownum:=0)=0
) PV
WHERE 1=1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
]]>
</select>
<!-- &lt;!&ndash; 마일리지 통계 &ndash;&gt;-->
<!-- <select id="selectBOMaMlgStatList"-->
<!-- resultType="dataMap">-->
<!-- SELECT-->
<!-- *-->
<!-- FROM GC_MBR_MLG_MCLOS-->
<!-- WHERE 1=1-->
<!-- AND (( MTH = DATE_FORMAT(DATE_SUB(CONCAT(#{srchDt},'01')-->
<!-- , INTERVAL 1 MONTH), '%Y%m') AND S_GROUP = 'month balance' )-->
<!-- OR ( MTH = #{srchDt} ) )-->
<!-- ORDER BY 1,2,3,4,5,6-->
<!-- </select>-->
<!-- &lt;!&ndash; 마일리지 정산 목록 &ndash;&gt;-->
<!-- <select id="selectBOMaMlgStlList"-->
<!-- resultType="dataMap">-->
<!-- SELECT-->
<!-- '정산내역(사용 - 취소)' L_GROUP-->
<!-- , S_SEQ, S_GROUP-->
<!-- , SUM(SUM_CH) * -1 CH-->
<!-- , SUM(SUM_TZ) * -1 TZ-->
<!-- , SUM(SUM_NC) * -1 NC-->
<!-- , SUM(SUM_PL) * -1 PL-->
<!-- , SUM(SUM_NB) * -1 NB-->
<!-- , SUM(SUM_OY) * -1 OY-->
<!-- , SUM(SUM_KL) * -1 KL-->
<!-- , SUM(SUM_DT) * -1 DT-->
<!-- , SUM(SUM_CB) * -1 CB-->
<!-- , SUM(SUM_AP) * -1 AP-->
<!-- , SUM(SUM_LF) * -1 LF-->
<!-- , SUM(SUM_GC) * -1 GC-->
<!-- FROM GC_MBR_MLG_MCLOS-->
<!-- WHERE MTH = #{srchDt}-->
<!-- AND (L_SEQ, L_GROUP, M_SEQ) in ( (1, 'add_group', 2), (2, 'minus_group', 1) )-->
<!-- GROUP BY 1,2,3-->
<!-- ORDER BY 1,2,3-->
<!-- </select>-->
<!--
쇼핑몰 코드, 이름 조회
-->
<select id="selectBOAdminMbrNdMlgStats"
resultType="DataMap">
<![CDATA[
SELECT
SOPMAL_CD,
SOPMAL_NM
FROM (
SELECT
'GC' AS SOPMAL_CD,
'통합몰' AS SOPMAL_NM,
NULL AS SOPMAL_TY_CD
UNION ALL
SELECT
SOPMAL_CD,
IF(SOPMAL_TY_CD = '01', CONCAT('통합몰 ', SOPMAL_NM), CONCAT('독립몰 ', SOPMAL_NM)) AS SOPMAL_NM,
SOPMAL_TY_CD
FROM GC_SHOP
ORDER BY SOPMAL_TY_CD ASC
) A
]]>
</select>
</mapper>

View File

@@ -0,0 +1,253 @@
<?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.store.bsnm.mapper.BOBsnmMapper">
<!-- 검색어 -->
<sql id="srchStr">
<![CDATA[
LIKE CONCAT('%', #{srchStr}, '%')
]]>
</sql>
<sql id="selectBOBsnmListInqireWhere">
<![CDATA[
AND 1=1
]]>
<!-- 검색조건 별 검색 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStr)">
<choose>
<when test="srchType=='BSNM_NM'">
AND BSNM_NM <include refid ="srchStr"/>
</when>
<when test="srchType=='BIZRNB'">
AND BIZRNB <include refid ="srchStr"/>
</when>
<when test="srchType=='REPRSNTVNM'">
AND REPRSNTVNM <include refid ="srchStr"/>
</when>
<when test="srchType=='MOB_DCL_NB'">
AND MOB_DCL_NB <include refid ="srchStr"/>
</when>
</choose>
</if>
</sql>
<!-- 사업자 목록조회 조건절 -->
<sql id="selectBOBsnmListWhere">
<![CDATA[
WHERE 1=1
AND USE_AT = 'Y'
]]>
</sql>
<!-- 사업자 상세조회, 수정, 삭제 조건절-->
<sql id="selectBOBsnmKeyWhere">
<![CDATA[
WHERE 1=1
AND BSNM_INNB = #{bsnmInnb}
]]>
</sql>
<!-- 사업자 목록조회 From절 -->
<sql id="selectBOBsnmListFrom">
<![CDATA[
FROM GC_COMPANY
]]>
</sql>
<!-- 사업자 목록건수조회 -->
<select id="selectBOBsnmListCnt"
parameterType="com.wb.domainserver.domain.admin.store.bsnm.vo.BOBsnmVO"
resultType="java.lang.Integer">
<![CDATA[
SELECT COUNT(1)
]]>
<include refid="selectBOBsnmListFrom"/>
<include refid="selectBOBsnmListWhere"/>
<include refid="selectBOBsnmListInqireWhere"/>
</select>
<!-- 사업자 목록 -->
<select id="selectBOBsnmList"
parameterType="com.wb.domainserver.domain.admin.store.bsnm.vo.BOBsnmVO"
resultType="datamap">
<![CDATA[
/*SET @ROWNUM = 0;*/
SELECT *
FROM (
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM
,TB.*
FROM (
SELECT BSNM_INNB
, BSNM_NM
, BIZCND_CN
, ITEM_CN
, BIZRNB
, REPRSNTVNM
, TELNB
, MOB_DCL_NB
, BSN_DCL_NB
, REGIST_DT
, DATE_FORMAT(REGIST_DT, '%Y-%m-%d') AS REGIST_DE
, UPDT_DT
, DATE_FORMAT(UPDT_DT, '%Y-%m-%d') AS UPDT_DE
]]>
<include refid="selectBOBsnmListFrom"/>
<include refid="selectBOBsnmListWhere"/>
<include refid="selectBOBsnmListInqireWhere"/>
<![CDATA[
ORDER BY REGIST_DT DESC , UPDT_DT DESC
) TB
WHERE (@ROWNUM:=0)=0
) PV
WHERE 1=1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
]]>
</select>
<!-- 사업자 등록 -->
<insert id="insertBOBsnm"
parameterType="com.wb.domainserver.domain.admin.store.bsnm.vo.BOBsnmVO">
<selectKey order="BEFORE" keyProperty="bsnmInnb" resultType="java.lang.String">
<![CDATA[
SELECT IFNULL(MAX(BSNM_INNB), 0)+1
FROM GC_COMPANY
]]>
</selectKey>
INSERT INTO GC_COMPANY (
BSNM_INNB
, BSNM_NM
, BIZCND_CN
, ITEM_CN
, BIZRNB
, MOB_DCL_NB
, REPRSNTVNM
, INDVDLINFO_PRTC_RSPNBER_NM
, TELNB
, FXNB
, EMAIL
, BSN_DCL_NB
, ZIP
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(lnbAdres)">
, LNB_ADRES
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(rnmAdres)">
, RNM_ADRES
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(dtlAdres)">
, DTL_ADRES
</if>
, USE_AT
, REGUSR
, REGIST_DT
, UPDUSR
, UPDT_DT
)
VALUES (
#{bsnmInnb}
, #{bsnmNm}
, #{bizcndCn}
, #{itemCn}
, #{bizrnb}
, #{mobDclNb}
, #{reprsntvnm}
, #{indvdlinfoPrtcRspnberNm}
, #{telnb}
, #{fxnb}
, #{email}
, #{bsnDclNb}
, #{zip}
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(lnbAdres)">
, #{lnbAdres}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(rnmAdres)">
, #{rnmAdres}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(dtlAdres)">
, #{dtlAdres}
</if>
, 'Y'
, #{regusr}
, SYSDATE()
, #{updusr}
, SYSDATE()
)
</insert>
<!-- 사업자 정보 상세 조회 -->
<select id="selectBOBsnmDtl"
parameterType="com.wb.domainserver.domain.admin.store.bsnm.vo.BOBsnmVO"
resultType="com.wb.domainserver.domain.admin.store.bsnm.vo.BOBsnmVO">
<![CDATA[
SELECT BSNM_INNB
, BSNM_NM
, BIZCND_CN
, ITEM_CN
, BIZRNB
, MOB_DCL_NB
, REPRSNTVNM
, INDVDLINFO_PRTC_RSPNBER_NM
, TELNB
, FXNB
, EMAIL
, BSN_DCL_NB
, ZIP
, LNB_ADRES
, RNM_ADRES
, DTL_ADRES
, USE_AT
-- , REGUSR
-- , REGIST_DT
-- , UPDUSR
-- , UPDT_DT
]]>
<include refid="selectBOBsnmListFrom"/>
<include refid="selectBOBsnmKeyWhere"/>
</select>
<!-- 사업자 수정 -->
<update id="updateBOBsnmUpdt" parameterType="com.wb.domainserver.domain.admin.store.bsnm.vo.BOBsnmVO">
<![CDATA[
UPDATE GC_COMPANY
SET
BSNM_NM = #{bsnmNm}
, BIZCND_CN = #{bizcndCn}
, ITEM_CN = #{itemCn}
, MOB_DCL_NB = #{mobDclNb}
, REPRSNTVNM = #{reprsntvnm}
, INDVDLINFO_PRTC_RSPNBER_NM = #{indvdlinfoPrtcRspnberNm}
, TELNB = #{telnb}
, FXNB = #{fxnb}
, EMAIL = #{email}
, BSN_DCL_NB = #{bsnDclNb}
, ZIP = #{zip}
, LNB_ADRES = #{lnbAdres}
, RNM_ADRES = #{rnmAdres}
, DTL_ADRES = #{dtlAdres}
, USE_AT = 'Y'
, UPDUSR = #{updusr}
, UPDT_DT = SYSDATE()
]]>
<include refid="selectBOBsnmKeyWhere"/>
</update>
<!-- 사업자 삭제 -->
<update id="deleteBOBsnm" parameterType="String">
<![CDATA[
UPDATE GC_COMPANY
SET USE_AT = 'N'
,UPDUSR = #{updusr}
,UPDT_DT = SYSDATE()
]]>
<include refid="selectBOBsnmKeyWhere"/>
</update>
<!-- 사업자번호 중복 조회 -->
<select id="selectBOBizrnbDplct" resultType="Integer">
SELECT COUNT(*)
<include refid="selectBOBsnmListFrom"/>
WHERE 1=1
AND BIZRNB = #{bizrnb}
</select>
</mapper>

View File

@@ -0,0 +1,261 @@
<?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.store.extlink.mapper.BOMaExtlinkMapper">
<!-- where절 -->
<sql id="srchExtrlNmwhere">
WHERE
1=1
AND
USE_AT = 'Y'
<if test="srchExtrlNm != null and srchExtrlNm != ''">
AND
UPPER(EXTRL_NM) LIKE CONCAT('%', UPPER(#{srchExtrlNm}), '%')
</if>
<if test="srchExtrlSystem != null and srchExtrlSystem != ''">
AND
EXTRL_SYSTEM = #{srchExtrlSystem}
</if>
</sql>
<!-- orderBy절 -->
<sql id="registDtorderby">
ORDER BY REGIST_DT ASC
</sql>
<!-- 페이징처리를 위한 연동목록 목록 총 개수 -->
<select id="selectBOextlinkTotCnt"
parameterType="com.wb.domainserver.domain.admin.store.extlink.vo.BOMaExtlinkVO"
resultType="Integer">
SELECT
COUNT(1)
FROM (
SELECT
EXTRL_INNB,
EXTRL_NM,
EXTRL_SYSTEM,
DATE_FORMAT(REGIST_DT, '%Y-%m-%d') AS REGIST_DT
FROM
GC_EXTRL_KEY GEK
<include refid="srchExtrlNmwhere" />
) TOTAL
</select>
<!-- 외부연동 조회 -->
<select id="selectBOextlinkList"
parameterType="com.wb.domainserver.domain.admin.store.extlink.vo.BOMaExtlinkVO"
resultType="DataMap">
SELECT *
FROM (
SELECT
CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM, BM.*
FROM (
SELECT
EXTRL_INNB,
EXTRL_NM,
EXTRL_SYSTEM,
EXTRL_FUNCTION_LOGIN,
EXTRL_FUNCTION_BUY,
FN_GET_COMMCODE_NAME('EXTRL_SYSTEM_DV', EXTRL_SYSTEM) AS EXTRL_SYSTEM_NM,
DATE_FORMAT(REGIST_DT, '%Y-%m-%d') AS REGIST_DT
FROM
GC_EXTRL_KEY GEK
<include refid="srchExtrlNmwhere" />
ORDER BY
EXTRL_INNB DESC
) BM
WHERE
(@ROWNUM:=0)=0
) PV
WHERE 1=1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<!-- 회원 등급 등록 -->
<insert id="insertBOExtLinkRegist"
parameterType="com.wb.domainserver.domain.admin.store.extlink.vo.BOMaExtlinkVO">
<selectKey order="BEFORE" keyProperty="extrlInnb" resultType="java.lang.Integer">
SELECT
IFNULL(MAX(EXTRL_INNB), 0) + 1
FROM
GC_EXTRL_KEY GEK
</selectKey>
INSERT
INTO GC_EXTRL_KEY
(
EXTRL_INNB,
EXTRL_NM,
EXTRL_SYSTEM,
EXTRL_FUNCTION_LOGIN,
EXTRL_FUNCTION_BUY,
EXTRL_CLIENT_ID,
EXTRL_CLIENT_SECRET,
EXTRL_CLIENT_SECRET_KEY,
USE_AT,
REGUSR,
REGIST_DT,
UPDUSR,
UPDT_DT
)
VALUES
(
#{extrlInnb},
#{extrlNm},
#{extrlSystem},
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(extrlFunctionLogin)">
#{extrlFunctionLogin},
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(extrlFunctionLogin)">
null,
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(extrlFunctionBuy)">
#{extrlFunctionBuy},
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(extrlFunctionBuy)">
null,
</if>
#{extrlClientId},
#{extrlClientSecret},
#{extrlClientSecretKey},
'Y',
#{regusr},
NOW(),
#{regusr},
NOW()
)
</insert>
<!-- 외부연동 수정 조회 -->
<select id="selectBOExtLinkUpdtForm"
parameterType="java.lang.String"
resultType="DataMap">
SELECT
EXTRL_INNB,
EXTRL_NM,
EXTRL_SYSTEM,
EXTRL_FUNCTION_LOGIN,
EXTRL_FUNCTION_BUY,
EXTRL_CLIENT_ID,
EXTRL_CLIENT_SECRET,
EXTRL_CLIENT_SECRET_KEY
FROM
GC_EXTRL_KEY
WHERE
1=1
AND
EXTRL_INNB = #{extrlInnb}
</select>
<!-- 외부연동 수정 -->
<update id="updateBOExtLinkUpdt"
parameterType="com.wb.domainserver.domain.admin.store.extlink.vo.BOMaExtlinkVO">
UPDATE
GC_EXTRL_KEY
SET
EXTRL_NM = #{extrlNm},
EXTRL_SYSTEM = #{extrlSystem},
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(extrlFunctionLogin)">
EXTRL_FUNCTION_LOGIN = #{extrlFunctionLogin},
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(extrlFunctionLogin)">
EXTRL_FUNCTION_LOGIN = null,
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(extrlFunctionBuy)">
EXTRL_FUNCTION_BUY = #{extrlFunctionBuy},
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(extrlFunctionBuy)">
EXTRL_FUNCTION_BUY = null,
</if>
EXTRL_CLIENT_ID = #{extrlClientId},
EXTRL_CLIENT_SECRET = #{extrlClientSecret},
EXTRL_CLIENT_SECRET_KEY = #{extrlClientSecretKey},
UPDUSR = #{updusr},
UPDT_DT = NOW()
WHERE
1=1
AND
EXTRL_INNB = #{extrlInnb}
</update>
<!-- 엑셀다운로드용 조회 -->
<select id="selectBOexcelFileDownload"
parameterType="com.wb.domainserver.domain.admin.store.extlink.vo.BOMaExtlinkVO"
resultType="DataMap">
SELECT
EXTRL_INNB,
EXTRL_NM,
EXTRL_SYSTEM,
FN_GET_COMMCODE_NAME('EXTRL_SYSTEM_DV', EXTRL_SYSTEM) AS EXTRL_SYSTEM_NM,
DATE_FORMAT(REGIST_DT, '%Y-%m-%d') AS REGIST_DT
FROM
GC_EXTRL_KEY GEK
<include refid="srchExtrlNmwhere" />
ORDER BY
EXTRL_INNB DESC
</select>
<!-- 외부연동 삭제 -->
<update id="deleteBOExtLinkDel"
parameterType="com.wb.domainserver.domain.admin.store.extlink.vo.BOMaExtlinkVO">
UPDATE
GC_EXTRL_KEY
SET
USE_AT = 'N',
UPDUSR = #{updusr},
UPDT_DT = NOW()
WHERE
1=1
AND
EXTRL_INNB = #{extrlInnb}
</update>
<!-- system 목록 조회 -->
<select id="selectBOextlinkSystemList" resultType="DataMap">
SELECT
CD AS extlinkSystemCd,
CD_NM AS extlinkSystemNm
FROM
GC_CODE
WHERE
GROUP_CD = 'EXTRL_SYSTEM_DV'
ORDER BY
SORT_ORDR ASC
</select>
<!-- 회원 등급 조회 제한없음 -->
<select id="selectBOextlinkListNotLimit"
parameterType="com.wb.domainserver.domain.admin.store.extlink.vo.BOMaExtlinkVO"
resultType="DataMap">
SELECT *
FROM (
SELECT
CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM, BM.*
FROM (
SELECT
EXTRL_INNB,
EXTRL_NM,
EXTRL_SYSTEM,
FN_GET_COMMCODE_NAME('EXTRL_SYSTEM_DV', EXTRL_SYSTEM) AS EXTRL_SYSTEM_NM,
DATE_FORMAT(REGIST_DT, '%Y-%m-%d') AS REGIST_DT
FROM
GC_EXTRL_KEY GEK
<include refid="srchExtrlNmwhere" />
ORDER BY
EXTRL_INNB DESC
) BM
WHERE
(@ROWNUM:=0)=0
) PV
WHERE 1=1
</select>
<select id="selectBOextlinkShopCnt"
parameterType="java.lang.Integer"
resultType="java.lang.Integer">
SELECT COUNT(*)
FROM GC_SHOP_EXTRL
WHERE EXTRL_INNB = #{extrlInnb}
</select>
</mapper>

View File

@@ -0,0 +1,300 @@
<?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.store.mbrgrad.mapper.BOMaMbrgradMapper">
<!-- where절 -->
<sql id="srchMbrGradNmwhere">
WHERE 1=1
AND USE_AT = 'Y'
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchMbrGradNm)">
AND MBR_GRAD_GROUP_NM LIKE CONCAT('%',#{srchMbrGradNm},'%') /* 회원등급 그룹명 */
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSopmalCd)">
AND SOPMAL_CD = #{srchSopmalCd} /* 쇼핑몰 코드 */
</if>
</sql>
<!--****************************************************************
회원 등급 그룹 관련
********************************************************************-->
<!-- 회원 등급 건수 (페이징 관련) -->
<select id="selectBOMbrGradTotCnt"
parameterType="com.wb.domainserver.domain.admin.store.mbrgrad.vo.BOMaMbrgradVO"
resultType="Integer">
SELECT
COUNT(1)
FROM (
SELECT
MBR_GRAD_GROUP_INNB,
MBR_GRAD_GROUP_NM,
CALC_PD_MT_CNT,
GRAD_MDAT_STDR_MT,
GRAD_MDAT_STDR_DE,
GRAD_MDAT_CYCLE_MT_CNT
FROM
GC_MEMBER_GRAD_GROUP MGG
<include refid="srchMbrGradNmwhere" />
) TOTAL
</select>
<!-- 회원 등급 그룹 조회 -->
<select id="selectBOMbrGradDtl"
parameterType="com.wb.domainserver.domain.admin.store.mbrgrad.vo.BOMaMbrgradVO"
resultType="com.wb.domainserver.domain.admin.store.mbrgrad.vo.BOMaMbrgradVO">
SELECT
MBR_GRAD_GROUP_INNB,
FN_GET_SOPMAL_NAME(SOPMAL_CD)SOPMAL_NM,
SOPMAL_CD,
MBR_GRAD_GROUP_NM,
<choose>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(serverDv)">
CONVERT(CALC_PD_MT_CNT, UNSIGNED) AS CALC_PD_MT_CNT,
</when>
<otherwise>
CALC_PD_MT_CNT,
</otherwise>
</choose>
GRAD_MDAT_STDR_MT,
GRAD_MDAT_STDR_DE,
GRAD_MDAT_CYCLE_MT_CNT
FROM
GC_MEMBER_GRAD_GROUP
where 1=1
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbrGradGroupInnb)">
AND MBR_GRAD_GROUP_INNB = #{mbrGradGroupInnb}
</if>
AND SOPMAL_CD = #{sopmalCd}
</select>
<!-- 회원 등급 그룹 상세 조회 -->
<select id="selectBOMbrGradList"
parameterType="com.wb.domainserver.domain.admin.store.mbrgrad.vo.BOMaMbrgradVO"
resultType="DataMap">
SELECT *
FROM
(
SELECT
CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM,
BM.*
FROM (
SELECT
MBR_GRAD_GROUP_INNB,
MBR_GRAD_GROUP_NM,
FN_GET_SOPMAL_NAME(SOPMAL_CD)SOPMAL_NM,
SOPMAL_CD,
CALC_PD_MT_CNT,
FN_GET_COMMCODE_NAME('MT_CD', CALC_PD_MT_CNT) AS CALC_PD_MT_CNT_NM,
GRAD_MDAT_STDR_MT,
GRAD_MDAT_STDR_DE,
GRAD_MDAT_CYCLE_MT_CNT,
FN_GET_COMMCODE_NAME('MT_CD', GRAD_MDAT_CYCLE_MT_CNT) AS GRAD_MDAT_CYCLE_MT_CNT_NM,
DATE_FORMAT(REGIST_DT, '%Y-%m-%d') AS REGIST_DT
FROM
GC_MEMBER_GRAD_GROUP MGG
<include refid="srchMbrGradNmwhere" />
ORDER BY
MBR_GRAD_GROUP_INNB DESC
) BM
WHERE
(@ROWNUM:=0)=0
) PV
WHERE 1=1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<!-- 회원등급 그룹 수정 -->
<update id="updateMbrGrad"
parameterType="com.wb.domainserver.domain.admin.store.mbrgrad.vo.BOMaMbrgradVO">
UPDATE
GC_MEMBER_GRAD_GROUP
SET
MBR_GRAD_GROUP_NM = #{mbrGradGroupNm},
CALC_PD_MT_CNT = #{calcPdMtCnt},
GRAD_MDAT_STDR_MT = #{gradMdatStdrMt},
GRAD_MDAT_STDR_DE = #{gradMdatStdrDe},
GRAD_MDAT_CYCLE_MT_CNT = #{gradMdatCycleMtCnt},
UPDUSR = #{updusr},
UPDT_DT = NOW()
WHERE
MBR_GRAD_GROUP_INNB = #{mbrGradGroupInnb}
AND SOPMAL_CD = #{sopmalCd}
</update>
<!-- 회원등급 그룹 등록 -->
<insert id="insertBOMbrGradGroup"
parameterType="com.wb.domainserver.domain.admin.store.mbrgrad.vo.BOMaMbrgradVO">
<selectKey order="BEFORE" keyProperty="mbrGradGroupInnb" resultType="String">
SELECT
IFNULL(MAX(MBR_GRAD_GROUP_INNB), 0) + 1
FROM
GC_MEMBER_GRAD_GROUP
</selectKey>
INSERT INTO GC_MEMBER_GRAD_GROUP
(
MBR_GRAD_GROUP_INNB,
SOPMAL_CD,
MBR_GRAD_GROUP_NM,
REGUSR,
REGIST_DT,
UPDUSR,
UPDT_DT
)
VALUES
(
#{mbrGradGroupInnb},
#{sopmalCd},
#{mbrGradGroupNm},
#{regusr},
NOW(),
#{updusr},
NOW()
)
</insert>
<!--****************************************************************
회원 등급 관련
********************************************************************-->
<!-- 그룹별 회원 등급 조회 -->
<select id="selectBOMbrGradStdrList"
parameterType="com.wb.domainserver.domain.admin.store.mbrgrad.vo.BOMbrGradVO"
resultType="DataMap">
WITH SUBQUERY AS (
SELECT
GMG.MBR_GRAD_INNB,
GMG.MBR_GRAD_GROUP_INNB,
GMG.MBR_GRAD_NM,
GMG.MBR_GRAD_CND_CD,
GMG.MBR_GRAD_AMT,
GMG.MBR_GRAD_ORDR,
GMG.MBR_GRAD_ICON_COURS,
DATE_FORMAT(GMG.REGIST_DT, '%Y-%m-%d %H:%i:%s') AS REGIST_DT,
DATE_FORMAT(GMG.UPDT_DT, '%Y-%m-%d %H:%i:%s') AS UPDT_DT,
COUNT(GMGM.MBR_GRAD_INNB) AS MBR_GRAD_CNT,
GMG.USE_AT
FROM
GC_MEMBER_GRAD GMG
LEFT JOIN GC_MEMBER_GRAD_MAPPING GMGM
ON GMG.MBR_GRAD_INNB = GMGM.MBR_GRAD_INNB
AND GMG.SOPMAL_CD = GMGM.SOPMAL_CD
WHERE
GMG.MBR_GRAD_GROUP_INNB = #{mbrGradGroupInnb}
AND GMG.SOPMAL_CD = #{sopmalCd}
AND GMG.USE_AT = 'Y'
GROUP BY
GMG.MBR_GRAD_INNB,
GMG.MBR_GRAD_GROUP_INNB,
GMG.MBR_GRAD_NM,
GMG.MBR_GRAD_CND_CD,
GMG.MBR_GRAD_AMT,
GMG.MBR_GRAD_ORDR,
GMG.MBR_GRAD_ICON_COURS,
REGIST_DT,
UPDT_DT
),
TOTCOUNT AS (
SELECT
SUM(MBR_GRAD_CNT) AS TOTAL_CNT
FROM
SUBQUERY
)
SELECT
A.*,
IFNULL(ROUND((A.MBR_GRAD_CNT / T.TOTAL_CNT) * 100, 2),0) AS MBR_GRAD_INNB_PER
FROM
SUBQUERY A,
TOTCOUNT T
ORDER BY
A.MBR_GRAD_ORDR ASC
</select>
<!--회원등급 등록 -->
<insert id="insertBOMbrGradStdr"
parameterType="com.wb.domainserver.domain.admin.store.mbrgrad.vo.BOMbrGradVO">
<selectKey order="BEFORE" keyProperty="mbrGradInnb" resultType="String">
SELECT
IFNULL(MAX(MBR_GRAD_INNB), 0) + 1
FROM
GC_MEMBER_GRAD
</selectKey>
INSERT
INTO GC_MEMBER_GRAD
(
MBR_GRAD_INNB,
MBR_GRAD_GROUP_INNB,
SOPMAL_CD,
MBR_GRAD_NM,
MBR_GRAD_CND_CD,
MBR_GRAD_AMT,
MBR_GRAD_ORDR,
MBR_GRAD_ICON_COURS,
USE_AT,
REGUSR,
REGIST_DT,
UPDUSR,
UPDT_DT
)
VALUES
(
#{mbrGradInnb},
#{mbrGradGroupInnb},
#{sopmalCd},
#{mbrGradNm},
#{mbrGradCndCd},
REPLACE(#{mbrGradAmt},',',''),
#{mbrGradOrdr},
#{mbrGradIconCours},
'Y',
#{regusr},
SYSDATE(),
#{updusr},
SYSDATE()
)
</insert>
<!-- 회원등급 수정-->
<update id="updateBOMbrGradCnd" parameterType="com.wb.domainserver.domain.admin.store.mbrgrad.vo.BOMbrGradVO">
UPDATE GC_MEMBER_GRAD
SET MBR_GRAD_NM = #{mbrGradNm},
MBR_GRAD_CND_CD = #{mbrGradCndCd},
MBR_GRAD_AMT = REPLACE(#{mbrGradAmt},',',''),
MBR_GRAD_ORDR = #{mbrGradOrdr},
MBR_GRAD_ICON_COURS = #{mbrGradIconCours},
USE_AT = #{useAt},
UPDUSR = #{updusr},
UPDT_DT = SYSDATE()
WHERE MBR_GRAD_INNB = #{mbrGradInnb}
</update>
<!-- 회원등급 삭제-->
<delete id="deleteBOMbrGradCnd" parameterType="com.wb.domainserver.domain.admin.store.mbrgrad.vo.BOMbrGradVO">
DELETE FROM GC_MEMBER_GRAD WHERE MBR_GRAD_INNB = #{mbrGradInnb}
</delete>
<!-- 회원등급 권한 등록-->
<insert id="insertBOGradAuth" parameterType="com.wb.domainserver.domain.admin.store.mbrgrad.vo.BOMbrGradVO">
<selectKey order="BEFORE" keyProperty="gradAuthorInnb" resultType="String">
SELECT
IFNULL(MAX(GRAD_AUTHOR_INNB), 0) + 1
FROM
GC_GRAD_AUTH
</selectKey>
INSERT INTO GC_GRAD_AUTH
(
GRAD_AUTHOR_INNB,
SOPMAL_CD ,
MBR_GRAD_INNB ,
AUTHOR_ID ,
REGUSR ,
REGIST_DT
)
SELECT
#{gradAuthorInnb},
#{sopmalCd},
#{mbrGradInnb},
MIN(AUTHOR_ID)AUTHOR_ID,
0,
NOW()
FROM GC_AUTH
WHERE SYS_DV_CD = '01'
</insert>
</mapper>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,201 @@
<?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.store.sopthema.mapper.BOSopthemaMapper">
<!-- 검색어 -->
<sql id="selectBOSopThemaListInqireWhere">
AND 1=1
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchThemaNm)">
AND GT.THEMA_NM LIKE CONCAT('%', #{srchThemaNm}, '%')
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSopmalCd)">
AND GS.SOPMAL_CD = #{srchSopmalCd}
</if>
</sql>
<!-- 쇼핑몰 테마 상세조회, 수정, 삭제 조건절-->
<sql id="selectBOSopThemaKeyWhere">
<![CDATA[
WHERE 1=1
AND USE_AT = 'Y'
AND THEMA_INNB = #{themaInnb}
]]>
</sql>
<!-- 쇼핑몰 테마 목록조회 From절 -->
<sql id="selectBOSopThemaListFrom">
FROM GC_THEME GT
LEFT JOIN GC_SHOP GS ON GT.THEMA_INNB = GS.THEMA_INNB
WHERE 1=1
AND GT.USE_AT = 'Y'
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(themaInnb)">
AND GT.THEMA_INNB = #{themaInnb}
</if>
</sql>
<!-- 쇼핑몰 테마 목록건수조회 -->
<select id="selectBOSopThemaTotCnt"
parameterType="com.wb.domainserver.domain.admin.store.sopthema.vo.BOSopThemaVO"
resultType="java.lang.Integer">
<![CDATA[
SELECT COUNT(1)
FROM GC_THEME GT
WHERE 1=1
AND GT.USE_AT = 'Y'
]]>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSopmalCd)">
AND EXISTS ( SELECT 'X'
FROM GC_SHOP GS
WHERE 1 = 1
AND GS.THEMA_INNB = GT.THEMA_INNB
AND GS.SOPMAL_CD = #{srchSopmalCd})
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchThemaNm)">
AND GT.THEMA_NM LIKE CONCAT('%', #{srchThemaNm}, '%')
</if>
</select>
<!-- 쇼핑몰 테마 목록 -->
<select id="selectBOSopThemaList"
parameterType="com.wb.domainserver.domain.admin.store.sopthema.vo.BOSopThemaVO"
resultType="dataMap">
<![CDATA[
/*SET @ROWNUM = 0;*/
SELECT *
FROM (
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM
,TB.*
FROM (
SELECT GT.THEMA_INNB
, GT.THEMA_NM
, GT.CSS_COURS
, GT.DC_CN
, GT.USE_AT
, GT.REGIST_DT
, DATE_FORMAT(GT.REGIST_DT, '%Y-%m-%d') AS REGIST_DE
, GT.UPDT_DT
, DATE_FORMAT(GT.UPDT_DT, '%Y-%m-%d') AS UPDT_DE
, GROUP_CONCAT(GS.SOPMAL_NM ORDER BY GS.SOPMAL_NM SEPARATOR ', ') AS SOPMAL_NM
]]>
<include refid="selectBOSopThemaListFrom"/>
<include refid="selectBOSopThemaListInqireWhere"/>
GROUP BY GT.THEMA_INNB, GT.THEMA_NM, GT.CSS_COURS, GT.DC_CN, GT.USE_AT, GT.REGIST_DT, GT.UPDT_DT
<![CDATA[
ORDER BY GT.UPDT_DT DESC
) TB
WHERE (@ROWNUM:=0)=0
) PV
WHERE 1=1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
]]>
</select>
<!-- 쇼핑몰 테마 등록 -->
<insert id="insertBOSopThema"
parameterType="com.wb.domainserver.domain.admin.store.sopthema.vo.BOSopThemaVO">
<selectKey order="BEFORE" keyProperty="themaInnb" resultType="java.lang.Integer">
<![CDATA[
SELECT IFNULL(MAX(THEMA_INNB), 0)+1
FROM GC_THEME
]]>
</selectKey>
INSERT INTO GC_THEME (
THEMA_INNB
, THEMA_NM
, CSS_COURS
, DC_CN
, USE_AT
, REGUSR
, REGIST_DT
, UPDUSR
, UPDT_DT
)
VALUES (
#{themaInnb}
, #{themaNm}
, #{cssCours}
, #{dcCn}
, 'Y'
, #{regusr}
, SYSDATE()
, #{updusr}
, SYSDATE()
)
</insert>
<!-- 쇼핑몰 테마 정보 상세 조회 -->
<select id="selectBOSopThemaDtl"
parameterType="com.wb.domainserver.domain.admin.store.sopthema.vo.BOSopThemaVO"
resultType="com.wb.domainserver.domain.admin.store.sopthema.vo.BOSopThemaVO">
<![CDATA[
SELECT GT.THEMA_INNB
, GT.THEMA_NM
, GT.CSS_COURS
, GT.DC_CN
, GT.USE_AT
, GT.REGIST_DT
, GT.UPDT_DT
, GROUP_CONCAT(GS.SOPMAL_NM ORDER BY GS.SOPMAL_NM SEPARATOR ', ') AS SOPMAL_NM
]]>
<include refid="selectBOSopThemaListFrom"/>
GROUP BY GT.THEMA_INNB, GT.THEMA_NM, GT.CSS_COURS, GT.DC_CN, GT.USE_AT, GT.REGIST_DT, GT.UPDT_DT
</select>
<!-- 쇼핑몰 테마 수정 -->
<update id="updateBOSopThema" parameterType="com.wb.domainserver.domain.admin.store.sopthema.vo.BOSopThemaVO">
<![CDATA[
UPDATE GC_THEME
SET
THEMA_NM = #{themaNm}
, CSS_COURS = #{cssCours}
, DC_CN = #{dcCn}
, USE_AT = 'Y'
, UPDUSR = #{updusr}
, UPDT_DT = SYSDATE()
]]>
<include refid="selectBOSopThemaKeyWhere"/>
</update>
<!-- 쇼핑몰 테마 삭제 -->
<update id="deleteBOSopThema" parameterType="Integer">
<![CDATA[
UPDATE GC_THEME
SET USE_AT = 'N'
, UPDUSR = #{updusr}
, UPDT_DT = SYSDATE()
]]>
<include refid="selectBOSopThemaKeyWhere"/>
</update>
<!-- 쇼핑몰 테마 목록건수조회 -->
<select id="selectBOSopThemaReferCnt"
parameterType="com.wb.domainserver.domain.admin.store.sopthema.vo.BOSopThemaVO"
resultType="java.lang.Integer">
SELECT COUNT(1)
FROM GC_THEME GT
WHERE 1=1
AND GT.USE_AT = 'Y'
AND EXISTS ( SELECT 'X'
FROM GC_SHOP GS
WHERE 1 = 1
AND GS.THEMA_INNB = GT.THEMA_INNB )
AND GT.THEMA_INNB = #{themaInnb}
</select>
<!--사용자 > 쇼핑몰테마 상세조회-->
<select id="selectBOSopThemaDtlInfo" parameterType="com.wb.domainserver.domain.admin.store.sopthema.vo.BOSopThemaVO" resultType="dataMap">
SELECT
GS.SOPMAL_CD
,GS.THEMA_INNB
,GT.CSS_COURS
FROM
GC_SHOP GS
LEFT JOIN
GC_THEME GT
ON GS.THEMA_INNB = GT.THEMA_INNB
WHERE
1 = 1
AND SOPMAL_CD = #{sopmalCd}
</select>
</mapper>

View File

@@ -0,0 +1,378 @@
<?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.store.stplat.mapper.BOStplatMapper">
<resultMap id="BOStplatMap" type="dataMap">
<result property="sopmalNm" column="SOPMAL_NM"/>
</resultMap>
<sql id="selectBOStplatTotCntWhere">
<![CDATA[
WHERE (@rownum:=0)=0
]]>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStplatNm)">
<![CDATA[
AND UPPER(STPLAT_NM) LIKE CONCAT('%', UPPER(#{srchStplatNm}), '%')
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStplatDvCd)">
<![CDATA[
AND STPLAT_DV_CD = #{srchStplatDvCd}
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(nmbrPurchsAt)">
<![CDATA[
AND NMBR_PURCHS_AT = 'Y'
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSopmalCd)">
<![CDATA[
AND EXISTS (
SELECT 'X'
FROM GC_SHOP_CLAUSE
WHERE 1=1
AND GC_CLAUSE.STPLAT_INNB = GC_SHOP_CLAUSE.STPLAT_INNB
AND GC_SHOP_CLAUSE.SOPMAL_CD = #{srchSopmalCd}
)
]]>
</if>
</sql>
<!-- 약관 건수 조회 -->
<select id="selectBOStplatTotCnt"
parameterType="com.wb.domainserver.domain.admin.store.stplat.vo.BOStplatVO"
resultType="java.lang.Integer">
<![CDATA[
SELECT COUNT(1)
FROM GC_CLAUSE
]]>
<include refid = "selectBOStplatTotCntWhere"/>
</select>
<!-- 약관 변경이력 건수 조회
<select id="selectBOStplatHistTotCnt"
parameterType="com.wb.domainserver.domain.admin.store.stplat.vo.BOStplatVO"
resultType="java.lang.Integer">
<![CDATA[
SELECT COUNT(1)
FROM FM_CLAUSE_LOG
WHERE 1=1
AND STPLAT_INNB = #{stplatInnb}
]]>
</select>
-->
<!-- 약관 목록을 paging 처리하여 조회 -->
<select id="selectBOStplatList"
parameterType="com.wb.domainserver.domain.admin.store.stplat.vo.BOStplatVO"
resultType="dataMap">
<![CDATA[
SELECT *
FROM (
SELECT @ROWNUM:=@ROWNUM+1 AS RNUM, TB1.*
FROM (
SELECT
STPLAT_INNB,
STPLAT_NM,
STPLAT_DV_CD,
(
SELECT GROUP_CONCAT(SOPMAL_NM ORDER BY SOPMAL_NM SEPARATOR ', ')
FROM GC_SHOP_CLAUSE A
INNER JOIN GC_SHOP B ON B.SOPMAL_CD = A.SOPMAL_CD
WHERE A.STPLAT_INNB = GC_CLAUSE.STPLAT_INNB
)
AS SOPMAL_NM,
FN_GET_COMMCODE_NAME('STPLAT_DV',STPLAT_DV_CD) AS STPLAT_DV_NM,
DATE_FORMAT(REGIST_DT, '%Y-%m-%d') AS REGIST_DT,
DATE_FORMAT(UPDT_DT, '%Y-%m-%d') AS UPDT_DE,
ESSNTL_AT,
CN_WRITNG_AT,
USE_AT
FROM GC_CLAUSE
]]>
<include refid = "selectBOStplatTotCntWhere"/>
<![CDATA[
ORDER BY UPDT_DT DESC
) TB1
) TB2
WHERE 1=1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
]]>
</select>
<select id="selectBOStplatListExcelDwld"
parameterType="com.wb.domainserver.domain.admin.store.stplat.vo.BOStplatVO"
resultType="dataMap">
<![CDATA[
SELECT @ROWNUM:=@ROWNUM+1 AS RNUM, TB1.*
FROM (
SELECT
STPLAT_INNB,
STPLAT_NM,
STPLAT_DV_CD,
(SELECT CD_NM
FROM GC_CODE
WHERE 1=1
AND GROUP_CD = 'STPLAT_DV'
AND CD = GC_CLAUSE.STPLAT_DV_CD
)
AS STPLAT_DV_CD_NM,
(
SELECT GROUP_CONCAT(SOPMAL_NM ORDER BY SOPMAL_NM SEPARATOR ', ')
FROM GC_SHOP_CLAUSE A
INNER JOIN GC_SHOP B ON B.SOPMAL_CD = A.SOPMAL_CD
WHERE A.STPLAT_INNB = GC_CLAUSE.STPLAT_INNB
)
AS SOPMAL_NM,
FN_GET_COMMCODE_NAME('STPLAT_DV',STPLAT_DV_CD) AS STPLAT_DV_NM,
DATE_FORMAT(REGIST_DT, '%Y-%m-%d') AS REGIST_DT,
DATE_FORMAT(UPDT_DT, '%Y-%m-%d') AS UPDT_DE
FROM GC_CLAUSE
]]>
<include refid = "selectBOStplatTotCntWhere"/>
<![CDATA[
ORDER BY UPDT_DT DESC
) TB1
]]>
</select>
<!-- 약관 검색 폼 - 등록 쇼핑몰 리스트 조회 -->
<select id="selectBOStplatSopmalListInqire">
SELECT
SC.SOPMAL_CD
, SHOP.SOPMAL_NM
FROM GC_SHOP_CLAUSE SC
INNER JOIN GC_SHOP SHOP
ON SC.SOPMAL_CD = SHOP.SOPMAL_CD
WHERE 1=1
GROUP BY
SC.SOPMAL_CD
</select>
<!-- 약관 등록 -->
<insert id="insertBOStplat">
<selectKey keyProperty="stplatInnb" resultType="java.lang.Integer" order="BEFORE">
SELECT IFNULL(MAX(STPLAT_INNB), 0) + 1
FROM GC_CLAUSE
</selectKey>
<![CDATA[
INSERT INTO GC_CLAUSE
(
STPLAT_INNB,
STPLAT_NM,
STPLAT_DV_CD,
STPLAT_CN,
IMPRTNC_STPLAT_CN,
ESSNTL_AT,
CN_WRITNG_AT,
JOIN_USE_AT,
NMBR_PURCHS_AT,
USE_AT,
REGUSR,
REGIST_DT,
UPDUSR,
UPDT_DT
)
VALUES
(
#{stplatInnb},
#{stplatNm},
#{stplatDvCd},
#{stplatCn},
#{imprtncStplatCn},
#{essntlAt},
#{cnWritngAt},
#{nmbrPurchsAt},
#{joinUseAt},
'Y',
#{regusr},
SYSDATE(),
#{regusr},
SYSDATE()
)
]]>
</insert>
<!-- 약관 변경이력 등록 -->
<insert id="insertBOStplatHist">
<selectKey keyProperty="chngSnb" resultType="java.lang.Integer" order="BEFORE">
SELECT IFNULL(MAX(CHNG_SNB), 0) + 1
FROM GC_CLAUSE_LOG
WHERE STPLAT_INNB = #{stplatInnb}
</selectKey>
<![CDATA[
INSERT INTO GC_CLAUSE_LOG
(
CHNG_SNB,
STPLAT_INNB,
STPLAT_NM,
STPLAT_DV_CD,
STPLAT_CN,
IMPRTNC_STPLAT_CN,
CHNG_RESN_CN,
ESSNTL_AT,
CN_WRITNG_AT,
NMBR_PURCHS_AT,
JOIN_USE_AT,
REGUSR,
REGIST_DT
)
VALUES
(
#{chngSnb},
#{stplatInnb},
#{stplatNm},
#{stplatDvCd},
#{stplatCn},
#{imprtncStplatCn},
#{chngResnCn},
#{essntlAt},
#{cnWritngAt},
#{nmbrPurchsAt},
#{joinUseAt},
#{updusr},
SYSDATE()
)
]]>
</insert>
<!-- 약관 수정 -->
<update id="updateBOStplat"
parameterType="com.wb.domainserver.domain.admin.store.stplat.vo.BOStplatVO">
UPDATE
GC_CLAUSE
SET
STPLAT_NM = #{stplatNm}
, STPLAT_DV_CD = #{stplatDvCd}
, STPLAT_CN = #{stplatCn}
, IMPRTNC_STPLAT_CN =#{imprtncStplatCn}
, UPDUSR = #{updusr}
, UPDT_DT = SYSDATE()
, ESSNTL_AT = #{essntlAt}
, CN_WRITNG_AT = #{cnWritngAt}
, JOIN_USE_AT = #{joinUseAt}
, NMBR_PURCHS_AT = #{nmbrPurchsAt}
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(useAt)">
, USE_AT = #{useAt}
</if>
WHERE 1=1
AND STPLAT_INNB = #{stplatInnb}
</update>
<!-- 약관 상세 조회 -->
<select id="selectBOStplatDtl"
parameterType="com.wb.domainserver.domain.admin.store.stplat.vo.BOStplatVO">
<![CDATA[
SELECT
STPLAT_INNB,
STPLAT_NM,
STPLAT_DV_CD,
STPLAT_CN,
IMPRTNC_STPLAT_CN,
UPDUSR,
(
SELECT CD_NM
FROM GC_CODE
WHERE GROUP_CD = 'STPLAT_DV' AND CD = CL.STPLAT_DV_CD
)
AS STPLAT_DV_CD_NM,
(
SELECT GROUP_CONCAT(SOPMAL_NM ORDER BY SOPMAL_NM SEPARATOR ', ')
FROM GC_SHOP_CLAUSE A
INNER JOIN GC_SHOP B ON B.SOPMAL_CD = A.SOPMAL_CD
WHERE A.STPLAT_INNB = CL.STPLAT_INNB
)
AS SOPMAL_NM
, (
SELECT
GROUP_CONCAT(SC.SOPMAL_CD ORDER BY SC.SOPMAL_CD SEPARATOR ', ')
FROM
GC_SHOP_CLAUSE SC
INNER JOIN GC_SHOP B
ON B.SOPMAL_CD = SC.SOPMAL_CD
WHERE
SC.STPLAT_INNB = CL.STPLAT_INNB
) AS SRCH_SOPMAL_CD
, FN_GET_COMMCODE_NAME('STPLAT_DV', STPLAT_DV_CD) AS STPLAT_DV_NM
, DATE_FORMAT(UPDT_DT, '%Y-%m-%d') AS UPDT_DT
, CL.USE_AT
, CL.ESSNTL_AT
, CL.CN_WRITNG_AT
, CL.JOIN_USE_AT
, CL.NMBR_PURCHS_AT
FROM GC_CLAUSE CL
WHERE 1=1
AND STPLAT_INNB = #{stplatInnb}
ORDER BY UPDT_DT DESC
]]>
</select>
<!-- 약관 변경이력 상세 조회 -->
<select id="selectBOStplatHistDtl"
parameterType="com.wb.domainserver.domain.admin.store.stplat.vo.BOStplatVO"
resultType="com.wb.domainserver.domain.admin.store.stplat.vo.BOStplatVO">
<![CDATA[
SELECT CHNG_RESN_CN,
STPLAT_NM,
STPLAT_CN,
IMPRTNC_STPLAT_CN,
FN_GET_COMMCODE_NAME('STPLAT_DV',STPLAT_DV_CD) AS STPLAT_DV_NM
FROM GC_CLAUSE_LOG
WHERE 1=1
AND STPLAT_INNB = #{stplatInnb}
AND CHNG_SNB = #{chngSnb}
]]>
</select>
<!-- 약관 변경이력 목록 조회 -->
<select id="selectBOStplatHistList"
parameterType="com.wb.domainserver.domain.admin.store.stplat.vo.BOStplatVO"
resultType="com.wb.domainserver.domain.admin.store.stplat.vo.BOStplatVO">
<![CDATA[
SELECT
CHNG_SNB
, CHNG_RESN_CN
, STPLAT_INNB
, STPLAT_NM
, STPLAT_DV_CD
, STPLAT_CN
, FN_GET_COMMCODE_NAME('STPLAT_DV',STPLAT_DV_CD) AS STPLAT_DV_NM
, DATE_FORMAT(REGIST_DT, '%Y-%m-%d') AS REGIST_DT
, IMPRTNC_STPLAT_CN
, (SELECT MNGR_NM FROM GC_MANAGER WHERE MNGR_INNB = CL.REGUSR) AS MNGR_NM
FROM GC_CLAUSE_LOG CL
WHERE 1=1
AND STPLAT_INNB = #{stplatInnb}
ORDER BY CHNG_SNB DESC
]]>
</select>
<!-- 쇼핑몰 목록 조회 -->
<select id="selectBOStplatShopList" resultType="dataMap">
<![CDATA[
SELECT DISTINCT B.SOPMAL_NM as CD_NM, B.SOPMAL_CD as CD
FROM GC_SHOP_CLAUSE A
INNER JOIN GC_SHOP B ON B.SOPMAL_CD = A.SOPMAL_CD where B.OPER_AT='Y';
]]>
</select>
<!-- 약관 쇼핑몰관리 사용 여부 -->
<select id="selectBOStplatSopmalUse">
SELECT
*
FROM
GC_SHOP_CLAUSE
WHERE 1=1
AND SOPMAL_CD = #{srchSopmalCd}
AND STPLAT_INNB = #{stplatInnb}
</select>
<!-- 약관 사용여부 수정 -->
<update id="updateBOStplatUseAtUpd">
UPDATE
GC_CLAUSE
SET USE_AT = 'N'
, UPDUSR = #{updusr}
, UPDT_DT = SYSDATE()
WHERE STPLAT_INNB = #{stplatInnb}
</update>
</mapper>

View File

@@ -0,0 +1,159 @@
<?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.sys.authFnctMenu.mapper.BOMaAuthFnctMenuMapper">
<!-- 권한그룹메뉴 등록 -->
<insert id="insertBOAuthFnctMenu" parameterType="DataMap">
<selectKey order="BEFORE" keyProperty="authorMenuFnctInnb" resultType="String">
SELECT IFNULL(MAX(AUTHOR_MENU_FNCT_INNB),0) + 1
FROM GC_AUTH_FNCT_MENU
</selectKey>
INSERT
INTO GC_AUTH_FNCT_MENU
(
AUTHOR_MENU_FNCT_INNB,
<if test="authorGroupCd != null || authorGroupCd != ''">
AUTHOR_GROUP_CD,
</if>
<if test="url != null || url != ''">
URL,
</if>
<if test="fnctCd != null || fnctCd != ''">
FNCT_CD,
</if>
<if test="menuCd != null || menuCd != ''">
MENU_CD,
</if>
<if test="sopmalCd != null || sopmalCd != ''">
SOPMAL_CD,
</if>
REGUSR,
REGIST_DT
)
VALUES
(
#{authorMenuFnctInnb},
<if test="authorGroupCd != null || authorGroupCd != ''">
#{authorGroupCd},
</if>
<if test="url != null || url != ''">
#{url},
</if>
<if test="fnctCd != null || fnctCd != ''">
#{fnctCd},
</if>
<if test="menuCd != null || menuCd != ''">
#{menuCd},
</if>
<if test="sopmalCd != null || sopmalCd != ''">
#{sopmalCd},
</if>
#{regusr},
NOW()
)
</insert>
<!-- 권한그룹메뉴 변경 이력 등록 -->
<insert id="insertBOAuthFnctMenuLog" parameterType="DataMap">
<selectKey order="BEFORE" keyProperty="logSnb" resultType="String">
SELECT IFNULL(MAX(LOG_SNB),0) + 1
FROM GC_AUTH_FNCT_MENU_LOG
</selectKey>
INSERT
INTO GC_AUTH_FNCT_MENU_LOG
(
LOG_SNB,
AUTHOR_MENU_FNCT_INNB,
<if test="authorGroupCd != null || authorGroupCd != ''">
AUTHOR_GROUP_CD,
</if>
<if test="url != null || url != ''">
URL,
</if>
<if test="fnctCd != null || fnctCd != ''">
FNCT_CD,
</if>
<if test="menuCd != null || menuCd != ''">
MENU_CD,
</if>
<if test="sopmalCd != null || sopmalCd != ''">
SOPMAL_CD,
</if>
CHNG_DV_CD,
REGUSR,
REGIST_DT
)
VALUES
(
#{logSnb},
#{authorMenuFnctInnb},
<if test="authorGroupCd != null || authorGroupCd != ''">
#{authorGroupCd},
</if>
<if test="url != null || url != ''">
#{url},
</if>
<if test="fnctCd != null || fnctCd != ''">
#{fnctCd},
</if>
<if test="menuCd != null || menuCd != ''">
#{menuCd},
</if>
<if test="sopmalCd != null || sopmalCd != ''">
#{sopmalCd},
</if>
#{chngDvCd},
#{regusr},
NOW()
)
</insert>
<!-- 권한그룹메뉴 기능 삭제 -->
<delete id="deleteBOAuthFnctMenu" parameterType="Object">
DELETE
FROM
GC_AUTH_FNCT_MENU
WHERE
1=1
AND
AUTHOR_MENU_FNCT_INNB = #{authorMenuFnctInnb}
</delete>
<!-- 권한그룹메뉴 기능 조회 -->
<select id="selectBOAuthGrpFnctList" parameterType="dataMap" resultType="dataMap">
SELECT
AUTHOR_MENU_FNCT_INNB, FNCT_CD, MENU_CD, SOPMAL_CD, URL, AUTHOR_GROUP_CD
FROM
GC_AUTH_FNCT_MENU
WHERE
1=1
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(authorGroupCd)">
AND
AUTHOR_GROUP_CD = #{authorGroupCd}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(fnctCd)">
AND
FNCT_CD = #{fnctCd}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(menuCd)">
AND
MENU_CD = #{menuCd}
AND
URL IS NOT NULL
</if>
</select>
<!-- 기능 URL 중복여부 조회 -->
<select id="selectBOFnctUrlDplct"
parameterType = "com.wb.domainserver.domain.admin.sys.fnct.vo.BOFnctVO"
resultType = "Integer">
SELECT
COUNT(1)
FROM
GC_AUTH_FNCT_MENU GAFM
WHERE
1=1
AND
GAFM.URL = #{fnctUrl}
</select>
</mapper>

View File

@@ -0,0 +1,320 @@
<?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.sys.authgrp.mapper.BOMaAuthgrpMapper">
<sql id="srchWords">
WHERE 1=1
AND GA.USE_AT = 'Y'
<if test="srchAuthorNm != null and srchAuthorNm != ''">
AND UPPER(GA.AUTHOR_NM) LIKE CONCAT('%', UPPER(#{srchAuthorNm}), '%')
</if>
<if test="srchSysDvCd != null and srchSysDvCd != ''">
AND GA.SYS_DV_CD = #{srchSysDvCd}
</if>
</sql>
<!-- 페이징처리를 위한 권한그룹 목록 총 개수 -->
<select id="selectBOAuthGrpListCnt"
parameterType="com.wb.domainserver.domain.admin.sys.authgrp.vo.BOMaAuthgrpVO"
resultType="Integer">
SELECT COUNT(*)
FROM (
SELECT GA.AUTHOR_ID, /*권한ID*/
GA.AUTHOR_NM, /*권한명*/
GA.AUTHOR_DC, /*권한설명*/
DATE_FORMAT(GA.REGIST_DT, '%Y-%m-%d') AS REGIST_DT, /*등록일자*/
FN_GET_COMMCODE_NAME('SYS_DV', GA.SYS_DV_CD) AS SYS_DV_NM, /*시스템자구분명*/
SUM(CASE WHEN GF.FNCT_DV_CD = '01' THEN 1 ELSE 0 END) AS R, /*조회*/
SUM(CASE WHEN GF.FNCT_DV_CD = '02' THEN 1 ELSE 0 END) AS F, /*화면이동*/
SUM(CASE WHEN GF.FNCT_DV_CD = '03' THEN 1 ELSE 0 END) AS I, /*등록*/
SUM(CASE WHEN GF.FNCT_DV_CD = '04' THEN 1 ELSE 0 END) AS U, /*수정*/
SUM(CASE WHEN GF.FNCT_DV_CD = '05' THEN 1 ELSE 0 END) AS D /*삭제*/
FROM GC_AUTH GA
LEFT OUTER JOIN GC_AUTH_FNCT GAF ON GA.AUTHOR_ID = GAF.AUTHOR_ID
LEFT OUTER JOIN GC_FNCT GF ON GAF.FNCT_ID = GF.FNCT_ID AND GF.USE_AT = 'Y'
<include refid="srchWords"/>
GROUP BY GA.AUTHOR_ID, GA.AUTHOR_NM, GA.AUTHOR_DC, GA.REGIST_DT
) A
</select>
<!-- 권한그룹 목록 조회 -->
<select id="selectBOAuthGrpListInqire"
parameterType="com.wb.domainserver.domain.admin.sys.authgrp.vo.BOMaAuthgrpVO"
resultType="DataMap">
SELECT *
FROM (
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM, BM.*
FROM (
SELECT GA.AUTHOR_ID, /*권한ID*/
GA.AUTHOR_NM, /*권한명*/
GA.AUTHOR_DC, /*권한설명*/
DATE_FORMAT(GA.REGIST_DT, '%Y-%m-%d') AS REGIST_DT, /*등록일자*/
FN_GET_COMMCODE_NAME('SYS_DV', GA.SYS_DV_CD) AS SYS_DV_NM, /*시스템자구분명*/
SUM(CASE WHEN GF.FNCT_DV_CD = '01' THEN 1 ELSE 0 END) AS R, /*조회*/
SUM(CASE WHEN GF.FNCT_DV_CD = '02' THEN 1 ELSE 0 END) AS F, /*화면이동*/
SUM(CASE WHEN GF.FNCT_DV_CD = '03' THEN 1 ELSE 0 END) AS I, /*등록*/
SUM(CASE WHEN GF.FNCT_DV_CD = '04' THEN 1 ELSE 0 END) AS U, /*수정*/
SUM(CASE WHEN GF.FNCT_DV_CD = '05' THEN 1 ELSE 0 END) AS D /*삭제*/
FROM GC_AUTH GA
LEFT OUTER JOIN GC_AUTH_FNCT GAF ON GA.AUTHOR_ID = GAF.AUTHOR_ID
LEFT OUTER JOIN GC_FNCT GF ON GAF.FNCT_ID = GF.FNCT_ID AND GF.USE_AT = 'Y'
<include refid="srchWords" />
GROUP BY GA.AUTHOR_ID, GA.AUTHOR_NM, GA.AUTHOR_DC, GA.REGIST_DT
order by GA.REGIST_DT desc
) BM
WHERE (@ROWNUM:=0)=0
) PV
WHERE 1=1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<!-- 페이징처리를 위한 게시판 목록 총 개수 -->
<select id="selectBOAuthFnctPopTotCnt"
parameterType="com.wb.domainserver.domain.admin.sys.authgrp.vo.BOMaAuthgrpVO" resultType="Integer">
SELECT count(*)
FROM (
SELECT GF.FNCT_ID,
GF.SYS_DV_CD,
FN_GET_COMMCODE_NAME('SYS_DV', GF.SYS_DV_CD) AS SYS_DV_NM,
GF.FNCT_NM,
GF.FNCT_DV_CD,
FN_GET_COMMCODE_NAME('FNCT_DV', GF.FNCT_DV_CD) AS FNCT_DV_NM,
GF.FNCT_URI,
GF.REGIST_DT
FROM GC_FNCT GF
<include refid="selectBOAuthFnctPopListInqireWhere" />
) BM
</select>
<!-- 권한그룹 기능 팝업 리스트 조회 -->
<select id="selectBOAuthFnctPopListInqire"
parameterType="com.wb.domainserver.domain.admin.sys.authgrp.vo.BOMaAuthgrpVO"
resultType="DataMap">
SELECT *
FROM (
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM, BM.*
FROM (
SELECT GF.FNCT_ID,
GF.SYS_DV_CD,
FN_GET_COMMCODE_NAME('SYS_DV', GF.SYS_DV_CD) AS SYS_DV_NM,
GF.FNCT_NM,
GF.FNCT_DV_CD,
FN_GET_COMMCODE_NAME('FNCT_DV', GF.FNCT_DV_CD) AS FNCT_DV_NM,
GF.FNCT_URI,
GF.REGIST_DT
FROM GC_FNCT GF
<include refid="selectBOAuthFnctPopListInqireWhere" />
ORDER BY REGIST_DT DESC
) BM
WHERE (@ROWNUM:=0)=0
) PV
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<sql id="selectBOAuthFnctPopListInqireWhere">
WHERE
1=1
AND
GF.USE_AT = 'Y'
<if test="srchFnctNm != null and srchFnctNm != ''">
AND
UPPER(GF.FNCT_NM) LIKE CONCAT('%', UPPER(#{srchFnctNm}), '%')
</if>
<if test="srchFnctUri != null and srchFnctUri != ''">
AND
UPPER(GF.FNCT_URI) LIKE CONCAT('%', UPPER(#{srchFnctUri}), '%')
</if>
<if test="srchFnctDv != null and srchFnctDv != ''">
AND
GF.FNCT_DV_CD = #{srchFnctDv}
</if>
<if test="srchSysDvCd != null and srchSysDvCd != ''">
AND
GF.SYS_DV_CD = #{srchSysDvCd}
</if>
</sql>
<!-- 권한그룹 등록 -->
<insert id="insertAuthGrp"
parameterType="com.wb.domainserver.domain.admin.sys.authgrp.vo.BOMaAuthgrpVO">
<selectKey order="BEFORE" keyProperty="authorId" resultType="String">
SELECT MAX(AUTHOR_ID)+1 FROM GC_AUTH
</selectKey>
INSERT INTO GC_AUTH (
AUTHOR_ID /*권한그룹ID*/
,SYS_DV_CD /*시스템자구분*/
,AUTHOR_NM /*권한그룹명 - 화면*/
,AUTHOR_DC /*권한그룹 설명 - 화면*/
,USE_AT
,REGUSR
,REGIST_DT
,UPDUSR
,UPDT_DT
)VALUES (
#{authorId}
,#{sysDvCd}
,#{authorNm}
,#{authorDc}
,'Y'
,#{regusr}
,SYSDATE()
,NULL
,NULL
);
</insert>
<!-- 권한그룹 목록 엑셀용 -->
<select id="selectBOAuthGrpExcelList"
parameterType="com.wb.domainserver.domain.admin.sys.authgrp.vo.BOMaAuthgrpVO"
resultType="DataMap">
SELECT *
FROM (
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM, BM.*
FROM (
SELECT GA.AUTHOR_ID, /*권한ID*/
GA.AUTHOR_NM, /*권한명*/
GA.AUTHOR_DC, /*권한설명*/
DATE_FORMAT(GA.REGIST_DT, '%Y-%m-%d') AS REGIST_DT, /*등록일자*/
FN_GET_COMMCODE_NAME('SYS_DV', GA.SYS_DV_CD) AS SYS_DV_NM, /*시스템자구분명*/
SUM(CASE WHEN GF.FNCT_DV_CD = '01' THEN 1 ELSE 0 END) AS R, /*조회*/
SUM(CASE WHEN GF.FNCT_DV_CD = '02' THEN 1 ELSE 0 END) AS F, /*화면이동*/
SUM(CASE WHEN GF.FNCT_DV_CD = '03' THEN 1 ELSE 0 END) AS I, /*등록*/
SUM(CASE WHEN GF.FNCT_DV_CD = '04' THEN 1 ELSE 0 END) AS U, /*수정*/
SUM(CASE WHEN GF.FNCT_DV_CD = '05' THEN 1 ELSE 0 END) AS D /*삭제*/
FROM GC_AUTH GA
LEFT OUTER JOIN GC_AUTH_FNCT GAF ON GA.AUTHOR_ID = GAF.AUTHOR_ID
LEFT OUTER JOIN GC_FNCT GF ON GAF.FNCT_ID = GF.FNCT_ID AND GF.USE_AT = 'Y'
<include refid="srchWords" />
GROUP BY GA.AUTHOR_ID, GA.AUTHOR_NM, GA.AUTHOR_DC, GA.REGIST_DT
order by GA.REGIST_DT desc
) BM
WHERE (@ROWNUM:=0)=0
) PV
WHERE 1=1
</select>
<!-- 권한그룹 상세 조회 -->
<select id="selectBOAuthGrpUpdtForm"
parameterType="com.wb.domainserver.domain.admin.sys.authgrp.vo.BOMaAuthgrpVO"
resultType="DataMap">
SELECT GA.AUTHOR_ID, /*권한ID*/
GA.AUTHOR_NM, /*권한명*/
GA.AUTHOR_DC, /*권한설명*/
DATE_FORMAT(GA.REGIST_DT, '%Y-%m-%d') AS REGIST_DT, /*등록일자*/
GA.SYS_DV_CD, /*시스템구분 코드*/
GROUP_CONCAT(GAF.FNCT_ID SEPARATOR '$') AS FNCT_IDS_ARR /*등록된 권한기능 배열*/
FROM GC_AUTH GA
LEFT OUTER JOIN GC_AUTH_FNCT GAF ON GA.AUTHOR_ID = GAF.AUTHOR_ID
LEFT OUTER JOIN GC_FNCT GF ON GAF.FNCT_ID = GF.FNCT_ID AND GF.USE_AT = 'Y'
WHERE 1=1
AND GA.USE_AT = 'Y'
AND GA.AUTHOR_ID = #{authorId}
GROUP BY GA.AUTHOR_ID, GA.AUTHOR_NM, GA.AUTHOR_DC, GA.REGIST_DT
ORDER BY GA.REGIST_DT DESC
</select>
<!-- 권한그룹 기능 상세 조회 -->
<select id="selectBOAuthGrpFnctUpdtForm" resultType="DataMap">
SELECT FNCT_ID /*기능ID*/
, SYS_DV_CD /*시스템자구분코드*/
, FNCT_DV_CD /*기능구분코드*/
, FN_GET_COMMCODE_NAME('FNCT_DV', FNCT_DV_CD) AS FNCT_DV_NM
, FNCT_URI /*url*/
, FNCT_NM /*기능명*/
, FNCT_DC /*기능설명*/
FROM GC_FNCT
WHERE FNCT_ID IN(
SELECT FNCT_ID
FROM GC_AUTH_FNCT
WHERE AUTHOR_ID = #{authorId}
AND USE_AT = 'Y'
)
AND USE_AT = 'Y'
</select>
<!-- 권한그룹 수정 -->
<update id="updateBOAuthGrpUpdt" parameterType="com.wb.domainserver.domain.admin.sys.authgrp.vo.BOMaAuthgrpVO">
UPDATE GC_AUTH
SET SYS_DV_CD = #{sysDvCd}
,AUTHOR_NM = #{authorNm}
,AUTHOR_DC = #{authorDc}
,UPDUSR = #{updusr}
,UPDT_DT = NOW()
WHERE AUTHOR_ID = #{authorId};
</update>
<!--삭제log쿼리-->
<insert id="insertDelAuthFnctLog" parameterType="com.wb.domainserver.domain.admin.sys.authgrp.vo.BOMaAuthgrpVO">
INSERT INTO GC_AUTH_FNCT_LOG (LOG_SNB, AUTHOR_FNCT_INNB, AUTHOR_ID, FNCT_ID, LOG_CHNG_DV_CD, REGUSR, REGIST_DT)
SELECT (SELECT COALESCE(MAX(LOG_SNB),0) FROM GC_AUTH_FNCT_LOG) + @ROWNUM := @ROWNUM + 1,
GAF.AUTHOR_FNCT_INNB,
GAF.AUTHOR_ID,
GAF.FNCT_ID,
'D' AS LOG_CHNG_DV_CD,
#{updusr} AS REGUSR,
NOW() AS REGIST_DT
FROM GC_AUTH_FNCT GAF
WHERE GAF.AUTHOR_ID = #{authorId}
<if test="arrFnctId != null and arrFnctId.size() > 0">
AND FNCT_ID NOT IN
<foreach collection="arrFnctId" item="fnctId" index="idx" open="(" separator=", " close=")">
#{fnctId}
</foreach>
</if>
AND (@ROWNUM := 0) = 0
</insert>
<!--GC_AUTH_FNCT 삭제쿼리-->
<delete id="deleteAuthFnct">
DELETE
FROM GC_AUTH_FNCT GAF
WHERE GAF.AUTHOR_ID = #{authorId}
<if test="arrFnctId != null and arrFnctId.size() > 0">
AND FNCT_ID NOT IN
<foreach collection="arrFnctId" item="fnctId" index="idx" open="(" separator=", " close=")">
#{fnctId}
</foreach>
</if>
</delete>
<!--GC_AUTH_FNCT insert-->
<insert id="insertAuthFnct" parameterType="DataMap">
<selectKey order="BEFORE" keyProperty="authorFnctInnb" resultType="String">
<![CDATA[
SELECT IFNULL(MAX(AUTHOR_FNCT_INNB), 0) + 1
FROM GC_AUTH_FNCT
]]>
</selectKey>
INSERT INTO GC_AUTH_FNCT (AUTHOR_FNCT_INNB, AUTHOR_ID, FNCT_ID, REGUSR, REGIST_DT)
SELECT #{authorFnctInnb}, #{authorId}, #{fnctId}, #{updusr}, NOW()
WHERE NOT EXISTS (SELECT 1 FROM GC_AUTH_FNCT WHERE AUTHOR_ID = #{authorId} AND FNCT_ID = #{fnctId})
</insert>
<!--log insert-->
<insert id="insertInsAuthFnctLog" parameterType="java.util.List">
INSERT INTO GC_AUTH_FNCT_LOG (LOG_SNB, AUTHOR_FNCT_INNB, AUTHOR_ID, FNCT_ID, LOG_CHNG_DV_CD, REGUSR, REGIST_DT)
SELECT (SELECT COALESCE(MAX(LOG_SNB),0) FROM GC_AUTH_FNCT_LOG) + @ROWNUM := @ROWNUM + 1,
AUTHOR_FNCT_INNB,
AUTHOR_ID,
FNCT_ID,
'I' AS LOG_CHNG_DV_CD,
REGUSR,
REGIST_DT
FROM GC_AUTH_FNCT GMA
WHERE AUTHOR_FNCT_INNB IN
<foreach collection="arrAuthorFnctInnb" item="authorFnctInnb" index="idx" open="(" separator=", " close=")">
#{authorFnctInnb}
</foreach>
AND (@ROWNUM := 0) = 0
</insert>
<!-- 권한그룹 삭제 -->
<update id="updateBOAuthGrpDel"
parameterType = "com.wb.domainserver.domain.admin.sys.authgrp.vo.BOMaAuthgrpVO">
UPDATE GC_AUTH
SET USE_AT = 'N'
,UPDUSR = #{updusr}
,UPDT_DT = SYSDATE()
WHERE 1=1
AND AUTHOR_ID = #{authorId}
</update>
</mapper>

View File

@@ -0,0 +1,509 @@
<?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.sys.author.mapper.BOMaAuthorMapper">
<!-- 페이징처리를 위한 권한그룹 목록 총 개수 -->
<select id="selectBOAuthorListCnt"
parameterType="com.wb.domainserver.domain.admin.sys.author.vo.BOMaAuthorVO"
resultType="Integer">
SELECT COUNT(*)
FROM (
SELECT
M.MNGR_INNB
FROM GC_MANAGER M
LEFT JOIN GC_MANAGER_AUTH MA
ON M.MNGR_INNB = MA.MNGR_INNB
LEFT JOIN GC_MANAGER MM
ON MM.MNGR_INNB = coalesce(M.UPDUSR, M.UPDUSR)
LEFT JOIN GC_AUTH GAG
ON MA.AUTHOR_ID = GAG.AUTHOR_ID
<include refid="selectBOAuthorListWhere" />
group by M.MNGR_INNB,M.MNGR_NM,M.MNGR_ID,M.PARTNM,M.MNGR_DV, MM.MNGR_NM
) BM
</select>
<!-- 권한 목록 조회 -->
<select id="selectBOAuthorListInqire"
parameterType="com.wb.domainserver.domain.admin.sys.author.vo.BOMaAuthorVO"
resultType="DataMap">
SELECT *
FROM (
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM, BM.*
FROM (
SELECT
M.MNGR_INNB,
M.MNGR_NM,
M.MNGR_ID,
M.PARTNM,
M.MNGR_DV,
FN_GET_COMMCODE_NAME('MNGR_DV', M.MNGR_DV) AS MNGR_DV_NM,
MM.MNGR_NM AS UPD_MNGR_NM,
ROW_NUMBER() OVER (PARTITION BY M.MNGR_INNB) as AUTH_RN,
CASE
WHEN COUNT(MA.AUTHOR_ID) = 1 THEN MAX(GAG.AUTHOR_NM)
WHEN COUNT(MA.AUTHOR_ID) > 1 THEN CONCAT(MAX(GAG.AUTHOR_NM) , ' 외 ', COUNT(MA.AUTHOR_ID) - 1 , '개 ')
ELSE '권한 없음' END AS AUTH_GRP_MAIN_TITLE,
DATE_FORMAT(MAX(coalesce(M.UPDT_DT, M.REGIST_DT)), '%Y-%m-%d %H:%i:%S') AS MA_REGIST_DT
FROM GC_MANAGER M
LEFT JOIN GC_MANAGER_AUTH MA
ON M.MNGR_INNB = MA.MNGR_INNB
LEFT JOIN GC_MANAGER MM
ON MM.MNGR_INNB = coalesce(M.UPDUSR, M.UPDUSR)
LEFT JOIN GC_AUTH GAG
ON MA.AUTHOR_ID = GAG.AUTHOR_ID
<include refid="selectBOAuthorListWhere" />
group by M.MNGR_INNB,M.MNGR_NM,M.MNGR_ID,M.PARTNM,M.MNGR_DV, MM.MNGR_NM
ORDER BY MA_REGIST_DT DESC
) BM
WHERE (@ROWNUM:=0)=0
) PV
WHERE 1=1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<sql id="selectBOAuthorListWhere">
WHERE M.MNGR_STTUS_CD != '03'
<!-- 검색타입별 검색 -->
<if test="srchStr != null and srchStr != ''">
<choose>
<when test="srchType eq 'MNGR_NM'.toString()">
AND UPPER(M.MNGR_NM) LIKE CONCAT('%', UPPER(#{srchStr}), '%')
</when>
<when test="srchType eq 'MNGR_ID'.toString()">
AND UPPER(M.MNGR_ID) LIKE CONCAT('%', UPPER(#{srchStr}), '%')
</when>
<when test="srchType eq 'EMAIL'.toString()">
AND UPPER(M.EMAIL) LIKE CONCAT('%', UPPER(#{srchStr}), '%')
</when>
<when test="srchType eq 'MBTLNB'.toString()">
AND UPPER(M.MBTLNB) LIKE CONCAT('%', UPPER(#{srchStr}), '%')
</when>
<when test="srchType eq 'PARTNM'.toString()">
AND UPPER(M.PARTNM) LIKE CONCAT('%', UPPER(#{srchStr}), '%')
</when>
<when test="srchType eq 'ALL'.toString()">
AND(
UPPER(M.MNGR_NM) LIKE CONCAT('%', UPPER(#{srchStr}), '%') OR
UPPER(M.MNGR_ID) LIKE CONCAT('%', UPPER(#{srchStr}), '%') OR
UPPER(M.EMAIL) LIKE CONCAT('%', UPPER(#{srchStr}), '%') OR
UPPER(M.MBTLNB) LIKE CONCAT('%', UPPER(#{srchStr}), '%') OR
UPPER(M.PARTNM) LIKE CONCAT('%', UPPER(#{srchStr}), '%')
)
</when>
</choose>
</if>
<!-- 사용자 구분 -->
<if test="srchMngrDv != null and srchMngrDv != ''">
AND M.MNGR_DV = #{srchMngrDv}
</if>
</sql>
<!-- 권한 상세 조회 -->
<select id="selectBOAuthorUpdtForm"
parameterType="com.wb.domainserver.domain.admin.sys.author.vo.BOMaAuthorVO" resultType="DataMap">
SELECT
MNGR_INNB,
MNGR_NM,
MNGR_ID,
PARTNM,
MNGR_DV,
FN_GET_COMMCODE_NAME('MNGR_DV', MNGR_DV) AS MNGR_DV_NM
FROM
GC_MANAGER
WHERE
1=1
AND
MNGR_INNB = #{mngrInnb}
</select>
<!-- 권한 상세 기능 조회 -->
<select id="selectBOAuthorUpdtFormFnctList"
parameterType="com.wb.domainserver.domain.admin.sys.author.vo.BOMaAuthorVO" resultType="DataMap">
SELECT
BB.AUTHOR_ID
,BB.AUTHOR_NM
,BB.AUTHOR_DC
,GROUP_CONCAT(CONCAT(BB.SOPMAL_CD, ',',BB.SOPMAL_NM,',',BB.CHK ) ORDER BY AUTHOR_ID, SOPMAL_NM SEPARATOR '|') AS SOPMAL_INFO
FROM
(
SELECT
GA.AUTHOR_ID,
GA.AUTHOR_NM,
GA.AUTHOR_DC,
GS.SOPMAL_CD,
GS.SOPMAL_NM,
CASE
WHEN GMA.MNGR_AUTHOR_INNB IS NULL THEN FALSE
ELSE TRUE
END AS CHK
FROM
GC_AUTH GA
INNER JOIN GC_SHOP GS
LEFT OUTER JOIN GC_MANAGER_AUTH GMA
ON GMA.SOPMAL_CD = GS.SOPMAL_CD
AND GMA.AUTHOR_ID = GA.AUTHOR_ID
AND GMA.MNGR_INNB = #{mngrInnb}
WHERE
GA.USE_AT = 'Y'
AND GA.SYS_DV_CD NOT IN ('01', '02')
) BB
GROUP BY
1, 2, 3
UNION ALL
SELECT
AA.AUTHOR_ID
,AA.AUTHOR_NM
,AA.AUTHOR_DC
,GROUP_CONCAT(CONCAT(AA.SOPMAL_CD, ',',AA.SOPMAL_NM,',',AA.CHK ) ORDER BY AUTHOR_ID, SOPMAL_NM SEPARATOR '|') AS SOPMAL_INFO
FROM (
SELECT
GA.AUTHOR_ID,
GA.AUTHOR_NM,
GA.AUTHOR_DC,
GS.SOPMAL_CD,
GS.SOPMAL_NM,
CASE
WHEN GMA.MNGR_AUTHOR_INNB IS NULL THEN FALSE
ELSE TRUE
END AS CHK
FROM
GC_AUTH GA
INNER JOIN (
SELECT
'SYS' AS SOPMAL_CD,
'통합관리자시스템' AS SOPMAL_NM) GS
LEFT OUTER JOIN GC_MANAGER_AUTH GMA
ON
GMA.AUTHOR_ID = GA.AUTHOR_ID
AND GMA.SOPMAL_CD = GS.SOPMAL_CD
AND GMA.MNGR_INNB = #{mngrInnb}
WHERE
GA.USE_AT = 'Y'
AND GA.SYS_DV_CD = #{mngrDv}
AND '02' = #{mngrDv}
ORDER BY
AUTHOR_ID,
SOPMAL_NM
) AA
GROUP BY
1, 2, 3
</select>
<!-- 권한별 기능 조회 -->
<select id="selectBOMenuFnctListInqire"
parameterType="com.wb.domainserver.domain.admin.sys.author.vo.BOMaAuthorVO" resultType="DataMap">
SELECT GF.FNCT_ID,
GF.FNCT_NM,
GF.FNCT_DV_CD,
FN_GET_COMMCODE_NAME('FNCT_DV', GF.FNCT_DV_CD) AS FNCT_DV_NM,
GF.FNCT_URI
FROM GC_FNCT GF
INNER JOIN GC_AUTH_FNCT GAF ON GF.FNCT_ID = GAF.FNCT_ID
WHERE GF.USE_AT = 'Y'
AND GAF.AUTHOR_ID = #{authorId}
ORDER BY GF.FNCT_NM ASC
</select>
<!-- 관리 쇼핑몰 등록 -->
<insert id="insertBOMngrMall" parameterType="com.wb.domainserver.domain.admin.sys.author.vo.BOMaAuthorVO">
<selectKey order="BEFORE" keyProperty="logSnb" resultType="String">
<![CDATA[
SELECT IFNULL(MAX(LOG_SNB), 0) + 1
FROM GC_MANAGER_MALL
]]>
</selectKey>
INSERT
INTO
GC_MANAGER_MALL (
LOG_SNB,
MNGR_INNB,
SOPMAL_CD,
USE_AT,
REGUSR,
REGIST_DT,
UPDUSR,
UPDT_DT
)
VALUES (
#{logSnb},
#{mngrInnb},
#{sopmalCd},
'Y',
#{regusr},
SYSDATE(),
#{regusr},
SYSDATE()
)
</insert>
<!-- 관리 쇼핑몰 N 처리 -->
<update id="updateBOMngrMallDel" parameterType="DataMap">
UPDATE
GC_MANAGER_MALL
SET
<if test="mngrInnb != null and mngrInnb != ''">
MNGR_INNB = #{mngrInnb},
</if>
<if test="sopmalCd != null and sopmalCd != ''">
SOPMAL_CD = #{sopmalCd},
</if>
USE_AT = #{useAt},
UPDUSR = #{updusr},
UPDT_DT = SYSDATE()
WHERE
1=1
AND
MNGR_INNB = #{mngrInnb}
AND
SOPMAL_CD = #{sopmalCd}
</update>
<!-- 관리 쇼핑몰 수정 -->
<update id="updateBOMngrMall" parameterType="DataMap">
UPDATE
GC_MANAGER_MALL
SET
MNGR_INNB = #{mngrInnb},
SOPMAL_CD = #{sopmalCd},
USE_AT = #{useAt},
UPDUSR = #{updusr},
UPDT_DT = SYSDATE()
WHERE
1=1
AND
MNGR_INNB = #{mngrInnb}
AND
SOPMAL_CD = #{sopmalCd}
</update>
<!-- 관리자별 권한 등록-->
<insert id="insertBOMngrAuthor" parameterType="com.wb.domainserver.domain.admin.sys.author.vo.BOMaAuthorVO">
<selectKey order="BEFORE" keyProperty="mngrAuthorInnb" resultType="String">
<![CDATA[
SELECT IFNULL(MAX(MNGR_AUTHOR_INNB), 0) + 1
FROM GC_MANAGER_AUTH
]]>
</selectKey>
INSERT
INTO
GC_MANAGER_AUTH (
MNGR_AUTHOR_INNB,
MNGR_INNB,
AUTHOR_GROUP_CD,
REGUSR,
REGIST_DT
)
VALUES (
#{mngrAuthorInnb},
#{mngrInnb},
#{authorGroupCd},
#{regusr},
SYSDATE()
)
</insert>
<!-- 관리자별 변경 이력 등록 -->
<insert id="insertBOMngrAuthLog" parameterType="com.wb.domainserver.domain.admin.sys.author.vo.BOMaAuthorVO">
<selectKey order="BEFORE" keyProperty="logSnb" resultType="String">
<![CDATA[
SELECT IFNULL(MAX(LOG_SNB), 0) + 1
FROM GC_MANAGER_AUTH_LOG
]]>
</selectKey>
INSERT
INTO
GC_MANAGER_AUTH_LOG (
LOG_SNB,
MNGR_AUTHOR_INNB,
MNGR_INNB,
AUTHOR_GROUP_CD,
CHNG_DV_CD,
REGUSR,
REGIST_DT
)
VALUES (
#{logSnb},
#{mngrAuthorInnb},
#{mngrInnb},
#{authorGroupCd},
#{chngDvCd},
#{regusr},
SYSDATE()
)
</insert>
<!-- 쇼핑몰 목록 조회 -->
<select id="selectBOShopListInqire" resultType="DataMap">
SELECT
SOPMAL_CD,
SOPMAL_NM
FROM
GC_SHOP
WHERE
1=1
AND
OPER_AT = 'Y'
</select>
<!-- 권한 삭제 로그 INSERT -->
<insert id="insertDelMngrAuthorLog" parameterType="com.wb.domainserver.domain.admin.sys.author.vo.BOMaAuthorVO">
INSERT INTO GC_MANAGER_AUTH_LOG (LOG_SNB, MNGR_AUTHOR_INNB, SOPMAL_CD, MNGR_INNB, AUTHOR_ID, LOG_CHNG_DV_CD, REGUSR, REGIST_DT)
SELECT (SELECT COALESCE(MAX(LOG_SNB),0) FROM GC_MANAGER_AUTH_LOG) + @ROWNUM := @ROWNUM + 1,
MNGR_AUTHOR_INNB,
SOPMAL_CD,
MNGR_INNB,
AUTHOR_ID,
'D',
#{updusr},
now()
FROM GC_MANAGER_AUTH GMA
WHERE MNGR_INNB = #{mngrInnb}
<if test="arrAuthSpomal != null and arrAuthSpomal.length > 0">
AND CONCAT(AUTHOR_ID,'_',SOPMAL_CD) NOT IN
<foreach collection="arrAuthSpomal" item="authSpomal" index="idx" open="(" separator=", " close=")">
#{authSpomal}
</foreach>
</if>
AND (@ROWNUM := 0) = 0
</insert>
<!-- 권한 등록 로그 INSERT -->
<insert id="insertInsMngrAuthorLog" parameterType="java.util.List">
INSERT INTO GC_MANAGER_AUTH_LOG (LOG_SNB, MNGR_AUTHOR_INNB, SOPMAL_CD, MNGR_INNB, AUTHOR_ID, LOG_CHNG_DV_CD, REGUSR, REGIST_DT)
SELECT (SELECT COALESCE(MAX(LOG_SNB),0) FROM GC_MANAGER_AUTH_LOG) + @ROWNUM := @ROWNUM + 1,
MNGR_AUTHOR_INNB,
SOPMAL_CD,
MNGR_INNB,
AUTHOR_ID,
'I',
REGUSR,
REGIST_DT
FROM GC_MANAGER_AUTH GMA
WHERE MNGR_AUTHOR_INNB IN
<foreach collection="arrMngrAuthorInnb" item="mngrAuthorInnb" index="idx" open="(" separator=", " close=")">
#{mngrAuthorInnb}
</foreach>
AND (@ROWNUM := 0) = 0
</insert>
<!-- 권한 삭제 -->
<delete id="deteteBOAuthGrp" parameterType="com.wb.domainserver.domain.admin.sys.author.vo.BOMaAuthorVO">
DELETE
FROM GC_MANAGER_AUTH
WHERE MNGR_INNB = #{mngrInnb}
<if test="arrAuthSpomal != null and arrAuthSpomal.length > 0">
AND CONCAT(AUTHOR_ID,'_',SOPMAL_CD) NOT IN
<foreach collection="arrAuthSpomal" item="authSpomal" index="idx" open="(" separator=", " close=")">
#{authSpomal}
</foreach>
</if>
</delete>
<!-- 권한 등록 -->
<insert id="insertMngrauth" parameterType="DataMap">
<selectKey order="BEFORE" keyProperty="mngrAuthorInnb" resultType="String">
<![CDATA[
SELECT IFNULL(MAX(MNGR_AUTHOR_INNB), 0) + 1
FROM GC_MANAGER_AUTH
]]>
</selectKey>
INSERT INTO GC_MANAGER_AUTH (MNGR_AUTHOR_INNB, SOPMAL_CD, MNGR_INNB, AUTHOR_ID, REGUSR, REGIST_DT)
SELECT #{mngrAuthorInnb},
A.SOPMAL_CD,
#{mngrInnb} AS MNGR_INNB,
A.AUTHOR_ID,
#{updusr} AS REGUSR,
NOW() AS REGIST_DT
FROM (SELECT GS.SOPMAL_CD, GA.AUTHOR_ID, GMA.AUTHOR_ID CHK
FROM (SELECT G.SOPMAL_CD
FROM GC_SHOP G
UNION ALL
SELECT 'SYS' AS SOPMAL_CD) GS
INNER JOIN GC_AUTH GA
LEFT OUTER JOIN GC_MANAGER_AUTH GMA ON GMA.MNGR_INNB = #{mngrInnb} AND GMA.AUTHOR_ID = GA.AUTHOR_ID AND GMA.SOPMAL_CD = GS.SOPMAL_CD
) A
WHERE CHK IS NULL
AND CONCAT(AUTHOR_ID,'_',SOPMAL_CD) = #{authSopmal}
</insert>
<!-- 사용자별 권한조회 엑셀다운로드-->
<select id="selectBOAuthorExcelList"
parameterType="com.wb.domainserver.domain.admin.sys.author.vo.BOMaAuthorVO"
resultType="DataMap">
SELECT *
FROM (
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM, BM.*
FROM (
SELECT
M.MNGR_INNB,
M.MNGR_NM,
M.MNGR_ID,
M.PARTNM,
M.MNGR_DV,
FN_GET_COMMCODE_NAME('MNGR_DV', M.MNGR_DV) AS MNGR_DV_NM,
MM.MNGR_NM AS UPD_MNGR_NM,
ROW_NUMBER() OVER (PARTITION BY M.MNGR_INNB) as AUTH_RN,
CASE
WHEN SUM(CASE WHEN MA.AUTHOR_ID IS NOT NULL AND GAG.USE_AT = 'Y' THEN 1 ELSE 0 END) = 0 THEN '권한 없음'
WHEN SUM(CASE WHEN MA.AUTHOR_ID IS NOT NULL AND GAG.USE_AT = 'Y' THEN 1 ELSE 0 END) = 1 THEN MAX(CASE WHEN MA.AUTHOR_ID IS NOT NULL AND GAG.USE_AT = 'Y' THEN GAG.AUTHOR_NM ELSE NULL END)
WHEN SUM(CASE WHEN MA.AUTHOR_ID IS NOT NULL AND GAG.USE_AT = 'Y' THEN 1 ELSE 0 END) > 1 THEN CONCAT(MAX(CASE WHEN MA.AUTHOR_ID IS NOT NULL AND GAG.USE_AT = 'Y' THEN GAG.AUTHOR_NM ELSE NULL END), ' 외 ', (SUM(CASE WHEN MA.AUTHOR_ID IS NOT NULL AND GAG.USE_AT = 'Y' THEN 1 ELSE 0 END) -1), '개')
END AS AUTH_GRP_MAIN_TITLE,
DATE_FORMAT(MAX(coalesce(M.UPDT_DT, M.REGIST_DT)), '%Y-%m-%d %H:%i:%S') AS MA_REGIST_DT
FROM GC_MANAGER M
LEFT JOIN GC_MANAGER_AUTH MA
ON M.MNGR_INNB = MA.MNGR_INNB
LEFT JOIN GC_MANAGER MM
ON MM.MNGR_INNB = coalesce(M.UPDUSR, M.UPDUSR)
LEFT JOIN GC_AUTH GAG
ON MA.AUTHOR_ID = GAG.AUTHOR_ID
<include refid="selectBOAuthorListWhere" />
group by M.MNGR_INNB,M.MNGR_NM,M.MNGR_ID,M.PARTNM,M.MNGR_DV, MM.MNGR_NM
ORDER BY MA_REGIST_DT DESC
) BM
WHERE (@ROWNUM:=0)=0
AND
AUTH_RN = 1
) PV
</select>
<select id="selectAuthInfo" parameterType="com.wb.domainserver.domain.admin.sys.author.vo.BOMaAuthorVO" resultType="DataMap">
SELECT GA.AUTHOR_ID,
FN_GET_COMMCODE_NAME('SYS_DV', GA.SYS_DV_CD) AS SYS_DV_NM,
GA.SYS_DV_CD,
GA.AUTHOR_NM,
GA.AUTHOR_DC
FROM GC_AUTH GA
WHERE GA.AUTHOR_ID = #{authorId}
</select>
<!--관리자 > 권한 있는 사이트 조회-->
<select id="selectBOAuthorSiteList" parameterType="com.wb.domainserver.domain.admin.sys.author.vo.BOMaAuthorVO" resultType="DataMap">
SELECT DISTINCT GMA.SOPMAL_CD, GS.SOPMAL_NM, GD.TOP_FIL_COURS ,GD.TOP_SYS_FIL_NM
FROM GC_MANAGER GM
INNER JOIN GC_MANAGER_AUTH GMA
ON GM.MNGR_INNB = GMA.MNGR_INNB
INNER JOIN GC_SHOP GS
ON GMA.SOPMAL_CD = GS.SOPMAL_CD
LEFT JOIN GC_DESIGN GD
ON GS.SOPMAL_CD = GD.SOPMAL_CD
AND GD.SETUP_DV_CD = '01'
AND GD.USE_AT = 'Y'
WHERE GM.MNGR_INNB = #{mngrInnb}
AND GM.MNGR_STTUS_CD = '01'
</select>
<!--관리자 > 권한 있는 사이트 조회 1개만 조회-->
<select id="selectBOAuthorSite" parameterType="com.wb.domainserver.domain.admin.sys.author.vo.BOMaAuthorVO" resultType="DataMap">
SELECT DISTINCT GMA.SOPMAL_CD, SOPMAL_NM
FROM GC_MANAGER GM
INNER JOIN GC_MANAGER_AUTH GMA
ON GM.MNGR_INNB = GMA.MNGR_INNB
INNER JOIN GC_SHOP GS
ON GMA.SOPMAL_CD = GS.SOPMAL_CD
WHERE GM.MNGR_INNB = #{mngrInnb}
AND GM.MNGR_STTUS_CD = '01'
LIMIT 1
</select>
</mapper>

View File

@@ -0,0 +1,275 @@
<?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.sys.comncd.mapper.BOMaComncdMapper">
<!-- 검색어 -->
<sql id="srchStr">
<![CDATA[
LIKE CONCAT('%', #{srchStr}, '%')
]]>
</sql>
<sql id="selectBOCommcdListInqireWhere">
<![CDATA[
AND 1=1
]]>
<!-- 검색조건 별 검색 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStr)">
<choose>
<when test="srchType=='GROUP_CD_NM'">
AND GRP.GROUP_CD_NM <include refid ="srchStr"/>
</when>
<when test="srchType=='GROUP_CD'">
AND GRP.GROUP_CD <include refid ="srchStr"/>
</when>
<when test="srchType=='CD_NM'">
AND GCD.CD_NM <include refid ="srchStr"/>
</when>
<when test="srchType=='CD'">
AND GCD.CD <include refid ="srchStr"/>
</when>
</choose>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchUseAt)">
AND GCD.USE_AT = #{srchUseAt}
</if>
</sql>
<!-- 상세코드 목록 조회 -->
<select id="selectBOCommcdDetailList"
parameterType="com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO"
resultType="dataMap">
SELECT GROUP_CD
, CD
, CD_NM
, CD_DC
, CD_DV
, REGUSR
, REGIST_DT
, UPDUSR
, UPDT_DT
FROM GC_CODE
WHERE 1=1
AND USE_AT = 'Y'
AND GROUP_CD = #{groupCd}
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(cdDv)">
AND CD_DV = #{cdDv}
</if>
ORDER BY SORT_ORDR ASC
</select>
<!-- 상세코드 조회 -->
<select id="selectBOCommcdDetail"
parameterType="com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdDetailVO"
resultType="dataMap">
<![CDATA[
SELECT GROUP_CD
, CD
, CD_NM
, CD_DC
, CD_DV
, REGUSR
, REGIST_DT
, UPDUSR
, UPDT_DT
FROM GC_CODE
WHERE 1=1
AND USE_AT = 'Y'
AND GROUP_CD = #{groupCd}
AND CD = #{cd}
]]>
</select>
<!-- 공통코드 목록 조회 -->
<select id="selectBOCmmnCodeList"
parameterType="com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO"
resultType="dataMap">
<![CDATA[
/*SET @ROWNUM = 0;*/
SELECT *
FROM (
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM
,TB.*
FROM (
SELECT GRP.GROUP_CD_NM
, GRP.GROUP_CD
, GRP.GROUP_CD_DC
, GCD.CD
, GCD.CD_NM
, GCD.CD_DC
, GCD.USE_AT
, GCD.REGUSR
, GCD.REGIST_DT
, DATE_FORMAT(GCD.REGIST_DT, '%Y-%m-%d') AS REGIST_DE
, GCD.UPDUSR
, GCD.UPDT_DT
, DATE_FORMAT(GCD.UPDT_DT, '%Y-%m-%d') AS UPDT_DE
FROM GC_CODE_GROUP GRP
INNER JOIN GC_CODE GCD
ON GCD.GROUP_CD = GRP.GROUP_CD
WHERE 1=1
AND GRP.GROUP_CD = GCD.GROUP_CD
]]>
<include refid="selectBOCommcdListInqireWhere"/>
<![CDATA[
) TB
WHERE (@ROWNUM:=0)=0
) PV
WHERE 1=1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
]]>
</select>
<!-- 공통코드 목록 건수 -->
<select id="selectBOCmmnCodeTotCnt"
parameterType="com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO"
resultType="java.lang.Integer">
<![CDATA[
SELECT COUNT(1)
FROM GC_CODE_GROUP GRP
INNER JOIN GC_CODE GCD
ON GCD.GROUP_CD = GRP.GROUP_CD
WHERE 1=1
AND GRP.GROUP_CD = GCD.GROUP_CD
]]>
<include refid="selectBOCommcdListInqireWhere"/>
</select>
<!-- 코드그룹 저장 -->
<update id="saveBOCmmnCodeGroup"
parameterType="com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO">
INSERT INTO GC_CODE_GROUP (
GROUP_CD
, GROUP_CD_NM
, GROUP_CD_DC
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(groupUseAt)">
, USE_AT
</if>
, REGUSR
, REGIST_DT
, UPDUSR
, UPDT_DT
) VALUES (
#{groupCd}
, #{groupCdNm}
, #{groupCdDc}
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(groupUseAt)">
, #{groupUseAt}
</if>
, #{regusr}
, SYSDATE()
, #{updusr}
, SYSDATE()
) ON DUPLICATE KEY UPDATE
GROUP_CD_NM = VALUES(GROUP_CD_NM)
, GROUP_CD_DC = VALUES(GROUP_CD_DC)
, USE_AT = VALUES(USE_AT)
, UPDUSR = VALUES(UPDUSR)
, UPDT_DT = VALUES(UPDT_DT)
</update>
<!-- 코드 저장 -->
<update id="saveBOCmmnCode"
parameterType="com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO">
INSERT INTO GC_CODE (
GROUP_CD
, CD
, CD_NM
, CD_DC
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(useAt)">
, USE_AT
</if>
, REGUSR
, REGIST_DT
, UPDUSR
, UPDT_DT
, SORT_ORDR
) VALUES (
#{groupCd}
, #{cd}
, #{cdNm}
, #{cdDc}
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(useAt)">
, #{useAt}
</if>
, #{regusr}
, SYSDATE()
, #{updusr}
, SYSDATE()
, #{sortOrdr}
) ON DUPLICATE KEY UPDATE
CD_NM = VALUES(CD_NM)
, CD_DC = VALUES(CD_DC)
, USE_AT = VALUES(USE_AT)
, UPDUSR = VALUES(UPDUSR)
, UPDT_DT = VALUES(UPDT_DT)
, SORT_ORDR = VALUES(SORT_ORDR)
</update>
<!-- 코드그룹 ID 중복 조회-->
<select id="selectBOCmmnCodeGrpIdDplctInqire" resultType="Integer">
SELECT COUNT(*)
FROM GC_CODE_GROUP
WHERE 1=1
AND GROUP_CD = #{groupCd}
</select>
<!-- 상세코드 목록 조회 -->
<select id="selectBOCmmnCodeGroupDetail"
parameterType="com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO"
resultType="dataMap">
<![CDATA[
SELECT GROUP_CD
, GROUP_CD_NM
, GROUP_CD_DC
, USE_AT
FROM GC_CODE_GROUP
WHERE GROUP_CD = #{groupCd}
]]>
</select>
<!--모든 코드 조회-->
<select id="selectBOCommcdDetailAllList"
parameterType="com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO"
resultType="dataMap">
<![CDATA[
SELECT GROUP_CD
, CD
, CD_NM
, CD_DC
, USE_AT
FROM GC_CODE
WHERE 1=1
AND GROUP_CD = #{groupCd}
ORDER BY SORT_ORDR ASC
]]>
</select>
<!-- 코드그룹 삭제 -->
<update id="deleteBOCmmnCodeGroup" parameterType="com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO">
<![CDATA[
UPDATE GC_CODE_GROUP
SET USE_AT = 'N'
,UPDUSR = #{updusr}
,UPDT_DT = SYSDATE()
WHERE 1=1
AND GROUP_CD = #{groupCd}
]]>
</update>
<!-- 코드 삭제 -->
<update id="deleteBOCmmnCode" parameterType="com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO">
<![CDATA[
UPDATE GC_CODE
SET USE_AT = 'N'
,UPDUSR = #{updusr}
,UPDT_DT = SYSDATE()
WHERE 1=1
AND GROUP_CD = #{groupCd}
]]>
</update>
</mapper>

View File

@@ -0,0 +1,426 @@
<?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.sys.ctgry.mapper.BOMaCtgryMapper">
<!-- 카테고리 목록 조회-->
<select id="selectBOCtgryManage"
parameterType="com.wb.domainserver.domain.admin.sys.ctgry.vo.BOMaCtgryVO"
resultType="dataMap">
SELECT
CTGRY_ID
, UPPER_CTGRY_ID
, SOPMAL_CD
, CTGRY_NM
, CTGRY_DEPTH AS DEPTH
, SORT_ORDR
, CTGRY_DV_CD
, GOODS_CTGRY_EXPSR_AT
, MENU_EXPSR_AT
, GNB_EXPSR_AT
, PGE_EXPSR_AT
, EXPSR_CD
, DATE_FORMAT(EXPSR_BGN_DT, '%Y-%m-%d') AS EXPSR_BGN_DT
, DATE_FORMAT(EXPSR_END_DT, '%Y-%m-%d') AS EXPSR_END_DT
, URL_DV_CD
, URL
, ORGINL_FIL_NM
, SYS_FIL_NM
, FIL_MG
, FIL_TY
, FIL_COURS
, USE_AT
, CONCAT(SOPMAL_CD,'_',CTGRY_ID) AS ID
, CTGRY_NM AS TEXT
, (CASE WHEN CTGRY_DEPTH = 1 THEN '#'
ELSE CONCAT(SOPMAL_CD,'_',UPPER_CTGRY_ID)
END) AS PARENT
, BANNER_URL
, MENU_CHR_COLOR
FROM GC_CATEGORY GC
WHERE USE_AT = 'Y'
AND (
GC.UPPER_CTGRY_ID IS NULL OR
(
SELECT PARENT.USE_AT
FROM GC_CATEGORY PARENT
WHERE CONCAT(PARENT.SOPMAL_CD,'_',PARENT.CTGRY_ID) = CONCAT(GC.SOPMAL_CD,'_',GC.UPPER_CTGRY_ID)
) = 'Y')
ORDER BY SORT_ORDR ASC
</select>
<!-- 카테고리 상세 조회-->
<select id="selectBOCtgry"
parameterType="com.wb.domainserver.domain.admin.sys.ctgry.vo.BOMaCtgryVO"
resultType="dataMap">
<![CDATA[
SELECT *
FROM GC_CATEGORY
WHERE 1=1
]]>
</select>
<!-- 카테고리 저장-->
<insert id="insertBOCtgryManage"
parameterType="com.wb.domainserver.domain.admin.sys.ctgry.vo.BOMaCtgryVO">
INSERT INTO GC_CATEGORY (
CTGRY_ID
, UPPER_CTGRY_ID
, SOPMAL_CD
, CTGRY_NM
, CTGRY_DEPTH
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sortOrdr)">
, SORT_ORDR
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ctgryDvCd)">
, CTGRY_DV_CD
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(goodsCtgryExpsrAt)">
, GOODS_CTGRY_EXPSR_AT
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(menuExpsrAt)">
, MENU_EXPSR_AT
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(gnbExpsrAt)">
, GNB_EXPSR_AT
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(pgeExpsrAt)">
, PGE_EXPSR_AT
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrCd)">
, EXPSR_CD
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrBgnDt)">
, EXPSR_BGN_DT
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrEndDt)">
, EXPSR_END_DT
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(urlDvCd)">
, URL_DV_CD
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(url)">
, URL
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(orginlFilNm)">
, ORGINL_FIL_NM /*원본파일명*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sysFilNm)">
, SYS_FIL_NM /*시스템파일명*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(filMg)">
, FIL_MG /*파일크기*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(filTy)">
, FIL_TY /*파일타입*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(filCours)">
, FIL_COURS /*파일경로*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(bannerUrl)">
, BANNER_URL
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(menuChrColor)">
,MENU_CHR_COLOR
</if>
, USE_AT
, REGUSR
, REGIST_DT
, UPDUSR
, UPDT_DT
) VALUES (
#{ctgryId}
, #{upperCtgryId}
, #{sopmalCd}
, #{ctgryNm}
, #{ctgryDepth}
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sortOrdr)">
, #{sortOrdr}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ctgryDvCd)">
, #{ctgryDvCd}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(goodsCtgryExpsrAt)">
, #{goodsCtgryExpsrAt}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(menuExpsrAt)">
, #{menuExpsrAt}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(gnbExpsrAt)">
, #{gnbExpsrAt}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(pgeExpsrAt)">
, #{pgeExpsrAt}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrCd)">
, #{expsrCd}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrBgnDt)">
, #{expsrBgnDt}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrEndDt)">
, #{expsrEndDt}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(urlDvCd)">
, #{urlDvCd}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(url)">
, #{url}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(orginlFilNm)">
, #{orginlFilNm} /*원본파일명*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sysFilNm)">
, #{sysFilNm} /*시스템파일명*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(filMg)">
, #{filMg} /*파일크기*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(filTy)">
, #{filTy} /*파일타입*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(filCours)">
, #{filCours} /*파일경로*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(bannerUrl)">
, #{bannerUrl}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(menuChrColor)">
, #{menuChrColor} /*메뉴 글자색*/
</if>
, 'Y'
, #{regusr}
, NOW()
, #{regusr}
, NOW()
)
</insert>
<!-- 카테고리 저장-->
<update id="updateBOCtgryManage"
parameterType="com.wb.domainserver.domain.admin.sys.ctgry.vo.BOMaCtgryVO">
UPDATE GC_CATEGORY
SET
CTGRY_NM = #{ctgryNm}, /*카테고리명*/
SORT_ORDR = #{sortOrdr}, /*순서*/
CTGRY_DV_CD = #{ctgryDvCd}, /*카테고리구분코드*/
GOODS_CTGRY_EXPSR_AT = #{goodsCtgryExpsrAt}, /*상품카테고리노출여부*/
MENU_EXPSR_AT = #{menuExpsrAt}, /*메뉴노출여부*/
GNB_EXPSR_AT = #{gnbExpsrAt}, /*GNB 노출여부*/
PGE_EXPSR_AT = #{pgeExpsrAt}, /*페이지 노출여부*/
EXPSR_CD = #{expsrCd}, /*노출구분*/
MENU_CHR_COLOR = #{menuChrColor},
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrBgnDt)">
EXPSR_BGN_DT = #{expsrBgnDt}, /*노출구분 시작일자*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrEndDt)">
EXPSR_END_DT = #{expsrEndDt}, /*노출구분 종료자*/
</if>
<choose>
<when test="fileUse == 'new'">
ORGINL_FIL_NM = #{orginlFilNm},
SYS_FIL_NM = #{sysFilNm},
FIL_MG = #{filMg},
FIL_TY = #{filTy},
FIL_COURS = #{filCours},
</when>
<when test="fileUse == 'none'">
ORGINL_FIL_NM = NULL,
SYS_FIL_NM = NULL,
FIL_MG = NULL,
FIL_TY = NULL,
FIL_COURS = NULL,
</when>
<otherwise>
</otherwise>
</choose>
BANNER_URL = #{bannerUrl},
URL_DV_CD = #{urlDvCd},
URL = #{url}, /*URL*/
UPDUSR = #{updusr},
UPDT_DT = NOW()
WHERE CTGRY_ID = #{ctgryId}
AND SOPMAL_CD = #{sopmalCd}
</update>
<!-- 정렬순서 업데이트 -->
<update id="updateBOCtgrySortOrdr" parameterType="com.wb.domainserver.domain.admin.sys.ctgry.vo.BOMaCtgryVO">
UPDATE GC_CATEGORY
SET SORT_ORDR = #{sortOrdr},
UPDUSR = #{updusr},
UPDT_DT = NOW()
WHERE CTGRY_ID = #{ctgryId}
AND SOPMAL_CD = #{sopmalCd}
</update>
<!-- 카테고리 삭제 -->
<update id="deleteBOCtgryManage" parameterType="com.wb.domainserver.domain.admin.sys.ctgry.vo.BOMaCtgryVO">
<![CDATA[
UPDATE GC_CATEGORY
SET USE_AT = 'N'
, UPDUSR = #{updusr}
, UPDT_DT = NOW()
WHERE 1=1
AND CTGRY_ID = #{ctgryId}
AND SOPMAL_CD = #{sopmalCd}
]]>
</update>
<select id="selectCtgryId" parameterType="com.wb.domainserver.domain.admin.sys.ctgry.vo.BOMaCtgryVO" resultType="java.lang.Integer">
SELECT IFNULL(MAX(CTGRY_ID), 0)+1
FROM GC_CATEGORY
WHERE SOPMAL_CD = #{sopmalCd}
</select>
<!--관리자 > 카테고리 조회-->
<select id="selectGoodsCategoryList" parameterType="com.wb.domainserver.domain.gcone.goods.goods.vo.BOGoodsVO" resultType="dataMap">
SELECT GC.CTGRY_ID
, IFNULL(GC.UPPER_CTGRY_ID, 0) AS UPPER_CTGRY_ID
, GC.CTGRY_DEPTH
, GC.CTGRY_NM
FROM GC_CATEGORY GC
WHERE 1=1
AND GC.USE_AT = 'Y'
AND GC.GOODS_CTGRY_EXPSR_AT = 'Y'
AND GC.SOPMAL_CD = #{sopmalCd}
AND IFNULL(GC.UPPER_CTGRY_ID, 0) = #{upperCtgryId}
ORDER BY GC.CTGRY_ID
, GC.CTGRY_DEPTH
, GC.UPPER_CTGRY_ID
, GC.SORT_ORDR
</select>
<!--사용자 > 카테고리 상품 목록조회-->
<select id="selectGoodsSopmalCatgryList" parameterType="com.wb.domainserver.domain.gcone.goods.goods.vo.BOGoodsVO" resultType="dataMap">
WITH RECURSIVE CATEGORY_PATH AS (
SELECT
FC.CTGRY_DEPTH,
FC.CTGRY_ID AS BASE_CTGRY_ID,
FC.CTGRY_NM AS BASE_CTGRY_NM,
FC.CTGRY_ID,
FC.UPPER_CTGRY_ID,
FC.CTGRY_NM,
FC.SOPMAL_CD,
FC.SORT_ORDR
FROM GC_CATEGORY FC
WHERE
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ctgryId)">
FC.CTGRY_ID = #{ctgryId}
</when>
<otherwise>
FC.CTGRY_CD = #{code}
</otherwise>
</choose>
AND FC.SOPMAL_CD = #{sopmalCd}
AND FC.USE_AT = 'Y'
AND FC.PGE_EXPSR_AT = 'Y'
UNION ALL
SELECT
C.CTGRY_DEPTH,
P.BASE_CTGRY_ID,
P.BASE_CTGRY_NM,
C.CTGRY_ID,
C.UPPER_CTGRY_ID,
C.CTGRY_NM,
C.SOPMAL_CD,
C.SORT_ORDR
FROM GC_CATEGORY C
INNER JOIN CATEGORY_PATH P
ON C.UPPER_CTGRY_ID = P.CTGRY_ID
AND C.SOPMAL_CD = P.SOPMAL_CD
WHERE C.SOPMAL_CD = #{sopmalCd}
AND C.PGE_EXPSR_AT = 'Y'
AND C.USE_AT = 'Y'
)
SELECT
P.CTGRY_DEPTH,
P.CTGRY_ID,
P.UPPER_CTGRY_ID,
P.CTGRY_NM,
P.SOPMAL_CD,
P.BASE_CTGRY_NM,
P.BASE_CTGRY_ID,
P.SORT_ORDR
FROM
CATEGORY_PATH P
WHERE 1=1
AND P.CTGRY_ID != '2'
AND P.UPPER_CTGRY_ID = 2 OR P.UPPER_CTGRY_ID = #{ctgryId} OR P.CTGRY_ID = #{ctgryId}
ORDER BY
CTGRY_DEPTH, SORT_ORDR ASC
</select>
<!--사용자 > 상품 목록 > 카테고리 배너 조회-->
<select id="selectGoodsSopmalCatgryBanner" parameterType="com.wb.domainserver.domain.gcone.goods.goods.vo.BOGoodsVO" resultType="dataMap">
SELECT
GC.SOPMAL_CD
,GC.FIL_COURS
,GC.ORGINL_FIL_NM
,GC.SYS_FIL_NM
,BANNER_URL
FROM
GC_CATEGORY GC
WHERE
1 = 1
AND GC.USE_AT = 'Y'
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ctgryId)">
AND GC.CTGRY_ID = #{ctgryId}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(code)">
AND GC.CTGRY_CD = #{code}
</if>
AND GC.SOPMAL_CD = #{sopmalCd}
</select>
<select id="selectBOCtgryOrdrCnt" parameterType="com.wb.domainserver.domain.admin.sys.ctgry.vo.BOMaCtgryVO" resultType="java.lang.Integer">
SELECT CTGRY_ID
FROM GC_CATEGORY
WHERE SOPMAL_CD = #{sopmalCd}
AND USE_AT = 'Y'
AND UPPER_CTGRY_ID = #{upperCtgryId}
AND SORT_ORDR = #{sortOrdr};
</select>
<update id="updateBOCtgryOrdr" parameterType="dataMap">
<selectKey keyProperty="sortOrdr" resultType="java.lang.Integer" order="BEFORE">
SELECT IFNULL(MAX(SORT_ORDR),0) + 1
FROM GC_CATEGORY
WHERE SOPMAL_CD = #{sopmalCd}
AND USE_AT = 'Y'
AND UPPER_CTGRY_ID = #{upperCtgryId}
</selectKey>
UPDATE GC_CATEGORY
SET SORT_ORDR = #{sortOrdr}
WHERE SOPMAL_CD = #{sopmalCd}
AND CTGRY_ID = #{ctgryId}
</update>
<select id="selectBOCtgryGoodsListInqurePopup" parameterType="com.wb.domainserver.domain.admin.sys.ctgry.vo.BOMaCtgryVO" resultType="dataMap">
SELECT GCL.GOODS_INNB, GCL.GOODS_ORDR, GG.GOODS_NM, GCL.CTGRY_GOODS_ESNTL_NB
FROM GC_CATEGORY_LINK GCL
LEFT JOIN GC_GOODS GG
ON GCL.GOODS_INNB = GG.GOODS_INNB AND GCL.SOPMAL_CD = GG.SOPMAL_CD
WHERE GCL.SOPMAL_CD = #{sopmalCd}
AND GCL.CTGRY_ID = #{ctgryId}
ORDER BY GOODS_ORDR ASC
</select>
<!-- 카테고리 상품 조회 -->
<update id="updateBOCtgryGoodsOrdr" parameterType="com.wb.domainserver.domain.admin.sys.ctgry.vo.BOMaCtgryVO">
UPDATE GC_CATEGORY_LINK
SET GOODS_ORDR = #{goodsOrdr}
WHERE 1=1
AND CTGRY_GOODS_ESNTL_NB = #{ctgryGoodsEsntlNb}
</update>
<!-- 쇼핑몰 카테고리 리스트 -->
<select id="selectBOSopmalCtgry" parameterType="com.wb.domainserver.domain.admin.sys.menu.vo.BOMaMenuVO" resultType="dataMap">
SELECT
CTGRY_ID, SOPMAL_CD, CTGRY_NM
FROM GC_CATEGORY
WHERE USE_AT = 'Y'
AND CTGRY_DEPTH = '2'
AND SOPMAL_CD = #{sopmalCd}
</select>
</mapper>

View File

@@ -0,0 +1,210 @@
<?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.sys.fnct.mapper.BOFnctMapper">
<sql id="srchFnctNmAsrchfnctDvAsrchFnctUrlWhere">
WHERE
1=1
AND
MF.USE_AT = 'Y'
<if test="srchFnctNm != null and srchFnctNm != ''">
AND
UPPER(MF.FNCT_NM) LIKE CONCAT('%', UPPER(#{srchFnctNm}), '%')
</if>
<if test="srchFnctDv != null and srchFnctDv != ''">
AND
MF.FNCT_DV_CD= #{srchFnctDv}
</if>
<if test="srchFnctUrl != null and srchFnctUrl != ''">
AND
UPPER(MF.FNCT_URI) LIKE CONCAT('%', UPPER(#{srchFnctUrl}), '%')
</if>
<if test="srchSysDvCd != null and srchSysDvCd != ''">
AND
MF.SYS_DV_CD = #{srchSysDvCd}
</if>
</sql>
<!-- 페이징처리를 위한 게시판 목록 총 개수 -->
<select id="selectBOFnctTotCnt"
parameterType = "com.wb.domainserver.domain.admin.sys.fnct.vo.BOFnctVO"
resultType = "Integer">
SELECT COUNT(*)
FROM (
SELECT
CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM, BM.*
FROM (
SELECT
MF.FNCT_ID,
MF.REGIST_DT AS REGIST_ORD
FROM GC_FNCT MF
<include refid="srchFnctNmAsrchfnctDvAsrchFnctUrlWhere" />
and MF.FNCT_URI IS NOT NULL
ORDER BY
REGIST_ORD DESC
) BM
WHERE
(@ROWNUM:=0)=0
) PV
WHERE 1=1
</select>
<!-- 기능 목록 조회 -->
<select id="selectBOFnctList"
parameterType = "com.wb.domainserver.domain.admin.sys.fnct.vo.BOFnctVO"
resultType = "DataMap">
SELECT *
FROM (
SELECT
CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM, BM.*
FROM (
SELECT
MF.FNCT_ID,
MF.SYS_DV_CD,
FN_GET_COMMCODE_NAME('SYS_DV', MF.SYS_DV_CD) AS SYS_DV_CD_NM,
MF.FNCT_NM,
MF.FNCT_DV_CD,
FN_GET_COMMCODE_NAME('FNCT_DV', MF.FNCT_DV_CD) AS FNCT_DV_NM,
MF.FNCT_URI,
MF.FNCT_DC,
MF.USE_AT,
MF.REGUSR,
DATE_FORMAT(MF.REGIST_DT, '%Y-%m-%d') AS REGIST_DT,
MF.UPDUSR,
DATE_FORMAT(MF.UPDT_DT, '%Y-%m-%d') AS UPDT_DT,
MF.REGIST_DT AS REGIST_ORD
FROM GC_FNCT MF
<include refid="srchFnctNmAsrchfnctDvAsrchFnctUrlWhere" />
AND MF.FNCT_URI IS NOT NULL
ORDER BY REGIST_ORD DESC
) BM
WHERE (@ROWNUM:=0)=0
) PV
WHERE 1=1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<!-- 기능 상세 조회 -->
<select id="selectBOFnctDetail"
parameterType = "com.wb.domainserver.domain.admin.sys.fnct.vo.BOFnctVO"
resultType = "com.wb.domainserver.domain.admin.sys.fnct.vo.BOFnctVO">
SELECT
FNCT_ID,
SYS_DV_CD,
FN_GET_COMMCODE_NAME('MNGR_DV', SYS_DV_CD) AS SYS_DV_CD_NM,
FNCT_NM,
FNCT_DV_CD,
FNCT_URI,
FNCT_DC,
USE_AT,
REGUSR,
DATE_FORMAT(REGIST_DT, '%Y-%m-%d') AS REGIST_DT,
UPDUSR,
DATE_FORMAT(UPDT_DT, '%Y-%m-%d') AS UPDT_DT
FROM GC_FNCT MF
WHERE 1=1
AND USE_AT = 'Y'
AND FNCT_ID = #{fnctId}
</select>
<!-- 기능 URL 중복여부 조회 -->
<select id="selectBOFnctUrlDplct"
parameterType = "com.wb.domainserver.domain.admin.sys.fnct.vo.BOFnctVO"
resultType = "Integer">
SELECT COUNT(1)
FROM GC_FNCT
WHERE 1=1
AND FNCT_URI = #{fnctUri}
AND SYS_DV_CD = #{sysDvCd}
AND USE_AT = 'Y'
</select>
<!-- 기능 등록 -->
<insert id="insertBOFnct"
parameterType = "com.wb.domainserver.domain.admin.sys.fnct.vo.BOFnctVO">
<selectKey order="BEFORE" keyProperty="fnctId" resultType="java.lang.String">
SELECT CAST(IFNULL(COUNT(FNCT_ID), 0) AS UNSIGNED)+1
FROM GC_FNCT
</selectKey>
INSERT INTO GC_FNCT
(
FNCT_ID,
SYS_DV_CD,
FNCT_DV_CD,
FNCT_URI,
FNCT_NM,
FNCT_DC,
USE_AT,
REGUSR,
REGIST_DT,
UPDUSR,
UPDT_DT
)
VALUES
(
#{fnctId},
#{sysDvCd},
#{fnctDvCd},
#{fnctUri},
#{fnctNm},
#{fnctDc},
#{useAt},
#{regusr},
NOW(),
null,
null
)
</insert>
<!-- 기능 수정 -->
<update id="updateBOFnct"
parameterType = "com.wb.domainserver.domain.admin.sys.fnct.vo.BOFnctVO">
UPDATE GC_FNCT
SET SYS_DV_CD = #{sysDvCd},
FNCT_NM = #{fnctNm},
FNCT_DV_CD = #{fnctDvCd},
FNCT_DC = #{fnctDc},
UPDUSR = #{updusr},
UPDT_DT = NOW()
WHERE 1=1
AND FNCT_ID = #{fnctId}
</update>
<!-- 기능 삭제 -->
<update id="deleteBOFnct"
parameterType = "com.wb.domainserver.domain.admin.sys.fnct.vo.BOFnctVO">
UPDATE GC_FNCT
SET USE_AT = 'N',
UPDUSR = #{updusr},
UPDT_DT = NOW()
WHERE FNCT_ID = #{fnctId}
</update>
<!-- 기능 목록 엑셀 -->
<select id="selectBOFnctExcelList"
parameterType = "com.wb.domainserver.domain.admin.sys.fnct.vo.BOFnctVO"
resultType = "DataMap">
SELECT
MF.FNCT_ID,
MF.SYS_DV_CD,
FN_GET_COMMCODE_NAME('SYS_DV', MF.SYS_DV_CD) AS SYS_DV_CD_NM,
MF.FNCT_NM,
MF.FNCT_DV_CD,
FN_GET_COMMCODE_NAME('FNCT_DV', MF.FNCT_DV_CD) AS FNCT_DV_NM,
MF.FNCT_URI,
MF.FNCT_DC,
MF.USE_AT,
MF.REGUSR,
DATE_FORMAT(MF.REGIST_DT, '%Y-%m-%d') AS REGIST_DT,
MF.UPDUSR,
DATE_FORMAT(MF.UPDT_DT, '%Y-%m-%d') AS UPDT_DT,
MF.REGIST_DT AS REGIST_ORD
FROM GC_FNCT MF
<include refid="srchFnctNmAsrchfnctDvAsrchFnctUrlWhere" />
AND MF.FNCT_URI IS NOT NULL
ORDER BY REGIST_ORD DESC
</select>
</mapper>

View File

@@ -0,0 +1,459 @@
<?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.sys.menu.mapper.BOMaMenuMapper">
<!-- 메뉴 목록 조회-->
<select id="selectBOMenuManage"
parameterType="com.wb.domainserver.domain.admin.sys.menu.vo.BOMaMenuVO"
resultType="dataMap">
SELECT
MENU_CD
, SOPMAL_CD
, UPPER_MENU_CD
, UPMOST_MENU_CD
, MENU_NM
, MENU_DC
, MENU_DEPTH AS DEPTH
, SORT_ORDR
, URL
, EXPSR_LC_DV_CD
, MENU_CD AS ID
, MENU_NM AS TEXT
, (CASE WHEN MENU_DEPTH = 0 THEN '#'
ELSE UPPER_MENU_CD
END) AS PARENT
FROM GC_MANAGER_MENU MM
WHERE USE_AT = 'Y'
AND (
MM.UPPER_MENU_CD IS NULL OR
(
SELECT PARENT.USE_AT
FROM GC_MANAGER_MENU PARENT
WHERE PARENT.MENU_CD = MM.UPPER_MENU_CD
) = 'Y')
ORDER BY SORT_ORDR ASC
</select>
<!-- 메뉴 상세 조회-->
<select id="selectBOMenu"
parameterType="com.wb.domainserver.domain.admin.sys.menu.vo.BOMaMenuVO"
resultType="dataMap">
<![CDATA[
SELECT *
FROM GC_MANAGER_MENU
WHERE 1=1
]]>
</select>
<!-- 메뉴 저장-->
<update id="updateBOMenuManage" parameterType="com.wb.domainserver.domain.admin.sys.menu.vo.BOMaMenuVO">
UPDATE GC_MANAGER_MENU
SET MENU_NM = #{menuNm}, /*메뉴명*/
EXPSR_LC_DV_CD = #{expsrLcDvCd}, /*노출 여부*/
URL = #{url}, /*URL*/
MENU_DC = #{menuDc}, /*메뉴 설명*/
UPDUSR = #{updusr}, /*수정자*/
UPDT_DT = NOW() /*수정일시*/
WHERE MENU_CD = #{menuCd}
AND SOPMAL_CD = #{sopmalCd}
</update>
<insert id="insertBOMenuManage" parameterType="com.wb.domainserver.domain.admin.sys.menu.vo.BOMaMenuVO">
<selectKey order="BEFORE" keyProperty="menuCd" resultType="String">
SELECT CONCAT(#{upmostMenuCd}, '_', MAX(CAST(REGEXP_REPLACE(MENU_CD, '[^0-9]', '') AS UNSIGNED))+1) AS MENU_CD
FROM GC_MANAGER_MENU
WHERE UPMOST_MENU_CD = #{upmostMenuCd}
</selectKey>
INSERT
INTO GC_MANAGER_MENU
(
MENU_CD,
SOPMAL_CD,
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(upperMenuCd)">
UPPER_MENU_CD,
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(upmostMenuCd)">
UPMOST_MENU_CD,
</if>
MENU_NM,
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(menuDc)">
MENU_DC,
</if>
MENU_DEPTH,
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sortOrdr)">
SORT_ORDR,
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(url)">
URL,
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrLcDvCd)">
EXPSR_LC_DV_CD,
</if>
USE_AT,
REGUSR,
REGIST_DT,
UPDUSR,
UPDT_DT
)
VALUES
(
#{menuCd},
#{sopmalCd},
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(upperMenuCd)">
#{upperMenuCd},
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(upmostMenuCd)">
#{upmostMenuCd},
</if>
#{menuNm},
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(menuDc)">
#{menuDc},
</if>
#{menuDepth},
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sortOrdr)">
#{sortOrdr},
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(url)">
#{url},
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrLcDvCd)">
#{expsrLcDvCd},
</if>
'Y',
#{regusr},
NOW(),
#{regusr},
NOW()
)
</insert>
<!-- 메뉴 삭제 -->
<update id="deleteBOMenuManage" parameterType="com.wb.domainserver.domain.admin.sys.menu.vo.BOMaMenuVO">
UPDATE GC_MANAGER_MENU
SET USE_AT = 'N',
UPDUSR = #{updusr},
UPDT_DT = NOW()
WHERE MENU_CD = #{menuCd}
AND SOPMAL_CD = #{sopmalCd}
</update>
<!-- 기능 팝업 셀렉트박스 상위메뉴 조회 -->
<select id="selectTopMenuList" resultType="DataMap">
SELECT
MENU_CD,
UPPER_MENU_CD,
MENU_NM,
MENU_DEPTH AS LEVEL,
UPMOST_MENU_CD,
MENU_DC
FROM
GC_MANAGER_MENU
WHERE
1=1
AND
USE_AT = 'Y'
AND
UPPER_MENU_CD IS NULL
ORDER BY
SORT_ORDR
</select>
<!-- 기능 팝업 셀렉트박스 하위메뉴 조회 -->
<select id="selectSubMenuList" parameterType="String" resultType="DataMap">
SELECT
MENU_CD,
UPPER_MENU_CD,
MENU_NM,
MENU_DEPTH AS LEVEL,
UPMOST_MENU_CD,
MENU_DC
FROM
GC_MANAGER_MENU
WHERE
1=1
AND
USE_AT = 'Y'
AND
UPPER_MENU_CD = #{upperMenuCd}
ORDER BY
SORT_ORDR
</select>
<!-- 쇼핑몰 목록 조회 -->
<select id="selectBOsopmalList" parameterType="String" resultType="DataMap">
SELECT
MENU_CD,
MENU_NM,
SOPMAL_CD
FROM
GC_MANAGER_MENU
WHERE
MENU_DEPTH = '1'
AND
UPPER_MENU_CD = 'adm'
AND
USE_AT = 'Y'
</select>
<!-- 선택된 메뉴리스트 조회 -->
<select id="selectBOMenuListInqire" parameterType="String" resultType="DataMap">
SELECT
AFM.MENU_CD,
MM.MENU_NM
FROM
GC_AUTH_FNCT_MENU AFM
INNER JOIN
GC_MANAGER_MENU MM
ON
AFM.MENU_CD = MM.MENU_CD
AND
AFM.AUTHOR_GROUP_CD = #{authorGroupCd}
</select>
<!-- 정렬순서 중복 조회 -->
<select id="selectBOMenuSortOrdrCheck"
parameterType="com.wb.domainserver.domain.admin.sys.menu.vo.BOMaMenuVO" resultType="int">
SELECT
COUNT(MENU_CD)
FROM
GC_MANAGER_MENU MM
WHERE
1=1
AND
MENU_DEPTH = #{menuDepth}
AND
UPPER_MENU_CD = #{upperMenuCd}
AND
SORT_ORDR = #{sortOrdr}
AND
USE_AT = 'Y'
</select>
<select id="selectBOSortOrdrByMenuCd"
parameterType="com.wb.domainserver.domain.admin.sys.menu.vo.BOMaMenuVO" resultType="String">
SELECT
MENU_CD
FROM
GC_MANAGER_MENU MM
WHERE
1=1
AND
MENU_DEPTH = #{menuDepth}
AND
UPPER_MENU_CD = #{upperMenuCd}
AND
SORT_ORDR = #{sortOrdr}
AND
USE_AT = 'Y'
</select>
<!-- 정렬순서 업데이트 -->
<update id="updateBOMenuSortOrdr" parameterType="com.wb.domainserver.domain.admin.sys.menu.vo.BOMaMenuVO">
<foreach collection="moveMenuCd" item="menuCd" index="index" separator=";">
UPDATE GC_MANAGER_MENU
SET SORT_ORDR = #{index} +1
WHERE MENU_CD = #{menuCd}
AND SOPMAL_CD = #{sopmalCd}
</foreach>
</update>
<!-- 쇼핑몰별 등급 조회 -->
<select id="selectBOSopmalGrad"
parameterType="com.wb.domainserver.domain.admin.sys.menu.vo.BOMaMenuVO"
resultType="dataMap">
SELECT GMG.MBR_GRAD_INNB, GMG.MBR_GRAD_NM
FROM GC_SHOP_MEMBER_GRAD_GROUP GSMGG
LEFT JOIN GC_MEMBER_GRAD GMG
ON GSMGG.MBR_GRAD_GROUP_INNB = GMG.MBR_GRAD_GROUP_INNB
WHERE GSMGG.SOPMAL_CD = ${sopmalCd}
</select>
<!-- 통합관리자/관리자 TOP 메뉴 조회 -->
<select id="selectBOTopMenuListInqire" parameterType="com.wb.domainserver.domain.admin.sys.menu.vo.BOMaMenuVO" resultType="DataMap">
<![CDATA[
WITH RECURSIVE MENU_INCLD AS
(
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM
, M1.MENU_CD
, M1.SOPMAL_CD
, M1.UPPER_MENU_CD
, M1.MENU_NM
, M1.MENU_DEPTH
, M1.SORT_ORDR
, M1.URL
, CONCAT(IF(LENGTH(M1.SORT_ORDR)=1,'0',''), M1.SORT_ORDR, M1.MENU_NM) FULL_PATH
FROM GC_MANAGER_MENU M1
WHERE (@ROWNUM:=0)=0
AND M1.USE_AT = 'Y'
AND M1.SOPMAL_CD = #{sopmalCd}
AND M1.UPMOST_MENU_CD = #{upmostMenuCd}
AND CASE WHEN IFNULL(#{upperMenuCd},'') <> '' THEN M1.UPPER_MENU_CD = #{upperMenuCd}
ELSE M1.UPPER_MENU_CD = #{upmostMenuCd}
END
UNION
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM
, M2.MENU_CD
, M2.SOPMAL_CD
, M2.UPPER_MENU_CD
, M2.MENU_NM
, M2.MENU_DEPTH
, M2.SORT_ORDR
, M2.URL
, CONCAT(MENU_INCLD.FULL_PATH , ' > ', M2.SORT_ORDR, M2.MENU_NM ) AS FULL_PATH
FROM GC_MANAGER_MENU M2
INNER JOIN MENU_INCLD ON M2.UPPER_MENU_CD = MENU_INCLD.MENU_CD AND M2.SOPMAL_CD = MENU_INCLD.SOPMAL_CD
WHERE (@ROWNUM:=0)=0
AND M2.USE_AT = 'Y'
)
SELECT RNUM,MENU_CD
, SOPMAL_CD
, UPPER_MENU_CD
, MENU_NM
, MENU_DEPTH
, SORT_ORDR
, URL
, FULL_PATH
, CASE
WHEN MENU_DEPTH = #{nextDeptCd2} AND LEAD(MENU_DEPTH) OVER (ORDER BY FULL_PATH) = #{nextDeptCd1} THEN 1
ELSE 0
END AS NEXT_DEPTH_2
, CASE
WHEN MENU_DEPTH = #{nextDeptCd1} AND LEAD(MENU_DEPTH) OVER (ORDER BY FULL_PATH) = #{nextDeptCd2} THEN 1
ELSE 0
END AS NEXT_DEPTH_3
FROM MENU_INCLD
WHERE 1 = 1
AND CASE WHEN IFNULL(#{upperMenuCd},'') = '' THEN MENU_DEPTH = #{topMenuCd}
ELSE 1
END
ORDER BY FULL_PATH
]]>
</select>
<!-- 쇼핑몰 메뉴 조회 -->
<select id="selectBOSopmalTopMenuListInqire" parameterType="com.wb.domainserver.domain.admin.sys.menu.vo.BOMaMenuVO" resultType="DataMap">
<![CDATA[
WITH RECURSIVE CTGRY_INCLD AS
(
SELECT 1 AS RNUM
, C1.CTGRY_ID
, C1.SOPMAL_CD
, C1.UPPER_CTGRY_ID
, C1.CTGRY_NM
, C1.CTGRY_DEPTH
, C1.SORT_ORDR
, C1.CTGRY_DV_CD
, C1.URL
, C1.MENU_EXPSR_AT
, C1.GNB_EXPSR_AT
, CONCAT(C1.SOPMAL_CD, ' > ', C1.SORT_ORDR, C1.CTGRY_NM) FULL_PATH
, C1.MENU_CHR_COLOR
FROM GC_CATEGORY C1
WHERE 1=1
AND C1.USE_AT = 'Y'
AND C1.SOPMAL_CD = #{sopmalCd}
AND C1.UPPER_CTGRY_ID = 1
UNION
SELECT RNUM+1
, C2.CTGRY_ID
, C2.SOPMAL_CD
, C2.UPPER_CTGRY_ID
, C2.CTGRY_NM
, C2.CTGRY_DEPTH
, C2.SORT_ORDR
, C2.CTGRY_DV_CD
, CASE WHEN C2.URL_DV_CD = '01' THEN CONCAT('/sopmal/goods/selectGoodsListForm?ctgryId=',C2.CTGRY_ID)
ELSE C2.URL
END URL
, C2.MENU_EXPSR_AT
, C2.GNB_EXPSR_AT
, CONCAT(CTGRY_INCLD.FULL_PATH, ' > ', LPAD(IFNULL(C2.SORT_ORDR, '0'), 3, '0'), C2.CTGRY_NM) AS FULL_PATH
, C2.MENU_CHR_COLOR
FROM GC_CATEGORY C2
INNER JOIN CTGRY_INCLD ON C2.UPPER_CTGRY_ID = CTGRY_INCLD.CTGRY_ID AND C2.SOPMAL_CD = CTGRY_INCLD.SOPMAL_CD
WHERE 1 = 1
AND C2.USE_AT = 'Y'
AND C2.CTGRY_DEPTH < 5
AND CASE WHEN C2.EXPSR_CD = '01' THEN 1
WHEN EXPSR_CD = '03' AND DATE_FORMAT(SYSDATE(), '%Y-%m-%d') BETWEEN DATE_FORMAT(EXPSR_BGN_DT, '%Y-%m-%d') AND DATE_FORMAT(EXPSR_END_DT, '%Y-%m-%d') THEN 1
ELSE 0
END
)
SELECT FULL_PATH
, RNUM
, MENU_EXPSR_AT
, GNB_EXPSR_AT
, SORT_ORDR
, CTGRY_DV_CD
, CTGRY_ID
, SOPMAL_CD
, UPPER_CTGRY_ID
, CTGRY_NM
, CTGRY_DEPTH
, URL
, MENU_CHR_COLOR
, IF(LOCATE('bbsId=', url) > 0, SUBSTRING_INDEX(SUBSTRING(url, LOCATE('bbsId=', url) + 6), '&', 1), '') AS BBS_ID
, CASE WHEN RNUM IN ('2','3') AND LEAD(RNUM) OVER (ORDER BY FULL_PATH) = '3' THEN 1
ELSE 0
END AS NEXT_DEPTH_2
, CASE WHEN RNUM IN ('3','4') AND LEAD(RNUM) OVER (ORDER BY FULL_PATH) = '4' THEN 1
ELSE 0
END AS NEXT_DEPTH_3
FROM CTGRY_INCLD
WHERE RNUM > 1
ORDER BY FULL_PATH
]]>
</select>
<!--crm header left menu 조회-->
<select id="selectBOCrmMenuListInqire" parameterType="com.wb.domainserver.domain.admin.sys.menu.vo.BOMaMenuVO" resultType="DataMap">
WITH RECURSIVE MENU_INCLD AS
(
SELECT 1 AS RNUM
, M1.MENU_CD
, M1.SOPMAL_CD
, M1.UPPER_MENU_CD
, M1.MENU_NM
, M1.MENU_DEPTH
, M1.SORT_ORDR
, M1.URL
, M1.EXPSR_LC_DV_CD
, CONCAT(M1.SORT_ORDR, M1.MENU_NM) FULL_PATH
FROM GC_MANAGER_MENU M1
WHERE 1 = 1
AND M1.USE_AT = 'Y'
AND M1.SOPMAL_CD = #{sopmalCd}
AND M1.UPMOST_MENU_CD = #{upmostMenuCd}
AND CASE WHEN IFNULL(#{upmostMenuCd},'') <![CDATA[<>]]> '' THEN M1.UPPER_MENU_CD = 'crm'
ELSE M1.UPPER_MENU_CD = 'crm'
END
UNION
SELECT RNUM+1
, M2.MENU_CD
, M2.SOPMAL_CD
, M2.UPPER_MENU_CD
, M2.MENU_NM
, M2.MENU_DEPTH
, M2.SORT_ORDR
, M2.URL
, M2.EXPSR_LC_DV_CD
, CONCAT(MENU_INCLD.FULL_PATH , ' > ', M2.SORT_ORDR, M2.MENU_NM ) AS FULL_PATH
FROM GC_MANAGER_MENU M2
INNER JOIN MENU_INCLD ON M2.UPPER_MENU_CD = MENU_INCLD.MENU_CD AND M2.SOPMAL_CD = MENU_INCLD.SOPMAL_CD
WHERE 1 = 1
AND M2.USE_AT = 'Y'
)
SELECT RNUM
,MENU_CD
, SOPMAL_CD
, UPPER_MENU_CD
, MENU_NM
, MENU_DEPTH
, SORT_ORDR
, URL
, EXPSR_LC_DV_CD
, FULL_PATH
FROM MENU_INCLD
WHERE 1 = 1
ORDER BY SORT_ORDR
</select>
</mapper>

View File

@@ -0,0 +1,541 @@
<?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.user.mngr.mapper.BOJobUserMapper">
<!-- 목록 조회 WHERE(검색조건) -->
<!-- 검색어 -->
<sql id="selectBOJobUserListInqireWhere">
WHERE
1=1
AND
MNGR_STTUS_CD != '03'
<!-- 검색타입별 검색 -->
<if test="srchStr != null and srchStr != ''">
<choose>
<when test="srchType eq 'MNGR_NM'.toString()">
AND MNGR_NM LIKE CONCAT('%', #{srchStr}, '%')
</when>
<when test="srchType eq 'MNGR_ID'.toString()">
AND MNGR_ID LIKE CONCAT('%', #{srchStr}, '%')
</when>
<when test="srchType eq 'EMAIL'.toString()">
AND CAST(AES_DECRYPT(UNHEX(EMAIL) , #{secretKey}) AS CHAR(50)) LIKE CONCAT('%', #{srchStr}, '%')
</when>
<when test="srchType eq 'MBTLNB'.toString()">
AND CAST(AES_DECRYPT(UNHEX(MBTLNB) , #{secretKey}) AS CHAR(50)) LIKE CONCAT('%', #{srchStr}, '%')
</when>
<when test="srchType eq 'PARTNM'.toString()">
AND PARTNM LIKE CONCAT('%', #{srchStr}, '%')
</when>
<when test="srchType eq 'ALL'.toString()">
AND(
MNGR_NM LIKE CONCAT('%', #{srchStr}, '%') OR
MNGR_ID LIKE CONCAT('%', #{srchStr}, '%') OR
CAST(AES_DECRYPT(UNHEX(EMAIL) , #{secretKey}) AS CHAR(50)) LIKE CONCAT('%', #{srchStr}, '%') OR
CAST(AES_DECRYPT(UNHEX(MBTLNB) , #{secretKey}) AS CHAR(50)) LIKE CONCAT('%', #{srchStr}, '%') OR
PARTNM LIKE CONCAT('%', #{srchStr}, '%')
)
</when>
</choose>
</if>
<!-- 사용자타입검색 -->
<if test="srchMngrDv != null and srchMngrDv != ''">
AND MNGR_DV = #{srchMngrDv}
</if>
<!-- 최근접속날자검색 -->
<if test="srchStartDate != null and srchStartDate != '' and srchEndDate != null and srchEndDate != ''">
AND
LAST_CONECT_DT BETWEEN CONCAT(#{srchStartDate}, ' 00:00:00') AND CONCAT(#{srchEndDate}, ' 23:59:59')
</if>
</sql>
<!-- 업무 사용자 목록 건수 조회 -->
<select id="selectBOJobUserTotCnt"
parameterType = "com.wb.domainserver.domain.admin.user.mngr.vo.BOJobUserVO"
resultType = "java.lang.Integer">
SELECT
COUNT(1)
FROM
GC_MANAGER JOBUSER
<include refid = "selectBOJobUserListInqireWhere"/>
</select>
<!-- 업무 사용자 목록 조회 -->
<select id="selectBOJobUserList"
parameterType = "com.wb.domainserver.domain.admin.user.mngr.vo.BOJobUserVO"
resultType = "dataMap">
SELECT *
FROM (
SELECT
CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM, TB.*
FROM (
SELECT
MNGR_INNB,
MNGR_NM,
PARTNM,
MNGR_ID,
CAST(AES_DECRYPT(UNHEX(EMAIL) , #{secretKey}) AS CHAR(50)) AS EMAIL,
CAST(AES_DECRYPT(UNHEX(TELNB) , #{secretKey}) AS CHAR(50)) AS TELNB,
CAST(AES_DECRYPT(UNHEX(MBTLNB) , #{secretKey}) AS CHAR(50)) AS MBTLNB,
MNGR_DV,
FN_GET_COMMCODE_NAME('MNGR_DV', MNGR_DV) AS MNGR_DV_NM,
MBLPHON_CRTFC_AT,
LMTT_IP,
DATE_FORMAT(LAST_CONECT_DT, '%Y-%m-%d %H:%i:%s') AS LAST_CONECT_DT,
MNGR_STTUS_CD
FROM
GC_MANAGER
<include refid = "selectBOJobUserListInqireWhere"/>
ORDER BY
LAST_CONECT_DT DESC
) TB
WHERE
(@ROWNUM:=0)=0
) PV
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<!-- 업무사용자 등록 -->
<insert id="insertBOJobUser" parameterType = "com.wb.domainserver.domain.admin.user.mngr.vo.BOJobUserVO">
<selectKey order="BEFORE" keyProperty="mngrInnb" resultType="java.math.BigInteger">
<![CDATA[
SELECT IFNULL(MAX(MNGR_INNB), 0)+1
FROM GC_MANAGER
]]>
</selectKey>
INSERT INTO GC_MANAGER (
MNGR_INNB,
MNGR_NM,
MNGR_ID,
PASSWORD,
PARTNM,
EMAIL,
TELNB,
MBTLNB,
MNGR_DV,
LAST_CONECT_DT,
<if test="lmttIp != null and lmttIp != ''">
LMTT_IP,
</if>
MBLPHON_CRTFC_AT,
MNGR_STTUS_CD,
REGUSR,
REGIST_DT,
UPDUSR,
UPDT_DT
)
VALUES (
#{mngrInnb},
#{mngrNm},
#{mngrId},
#{password},
#{partnm},
HEX(AES_ENCRYPT(#{email}, #{secretKey})),
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(telnb)">
HEX(AES_ENCRYPT(#{telnb}, #{secretKey})),
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(telnb)">
'',
</if>
HEX(AES_ENCRYPT(#{mbtlnb}, #{secretKey})),
#{mngrDv},
NOW(),
<if test="lmttIp != null and lmttIp != ''">
#{lmttIp},
</if>
#{mblphonCrtfcAt},
'01',
#{regusr},
NOW(),
#{regusr},
NOW()
)
</insert>
<!-- 로그 목록 조회 -->
<select id="selectBOLogVOList"
parameterType = "com.wb.domainserver.domain.admin.user.mngr.vo.BOJobUserVO"
resultType = "com.wb.domainserver.domain.admin.user.mngr.vo.LogVO">
SELECT *
FROM (
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM,
MPL.*
FROM (
SELECT
UPDT_RCODE_INNB,
MNGR_INNB,
CONECT_IP,
PROCS_CD,
FN_GET_COMMCODE_NAME('CGN041', PROCS_CD) AS PROCS_CD_NM,
PROCS_CN,
RM,
REGUSR,
DATE_FORMAT(REGIST_DT, '%Y-%m-%d %H:%i:%s') AS REGIST_DE
FROM
GC_MANAGER_PROCS_LOG
WHERE
MNGR_INNB = #{mngrInnb}
ORDER BY
REGIST_DT DESC
) MPL
WHERE
(@ROWNUM:=0)=0
) PV
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<!-- 업무사용자 상세조회 -->
<select id="selectBOJobUserDetail"
parameterType = "com.wb.domainserver.domain.admin.user.mngr.vo.BOJobUserVO"
resultType = "dataMap">
SELECT
MNGR_NM,
MNGR_ID,
PARTNM,
CAST(AES_DECRYPT(UNHEX(EMAIL) , #{secretKey}) AS CHAR(50)) AS EMAIL,
CAST(AES_DECRYPT(UNHEX(TELNB) , #{secretKey}) AS CHAR(50)) AS TELNB,
CAST(AES_DECRYPT(UNHEX(MBTLNB) , #{secretKey}) AS CHAR(50)) AS MBTLNB,
MNGR_DV,
LMTT_IP,
MBLPHON_CRTFC_AT,
DATE_FORMAT(LAST_CONECT_DT, '%Y-%m-%d %H:%i:%s') AS LAST_CONECT_DT,
MNGR_INNB,
UPDUSR,
MNGR_STTUS_CD
FROM
GC_MANAGER
WHERE
MNGR_INNB = #{mngrInnb}
</select>
<!-- 업무사용자 id 중복확인 -->
<select id="selectBOJobUserByMngrId" parameterType = "String" resultType = "Integer">
SELECT
COUNT(1)
FROM
GC_MANAGER
WHERE
MNGR_ID = #{mngrId}
</select>
<!-- 업무사용자 기록history where절 -->
<sql id="selectHistoryWhere">
WHERE
GMCL.MNGR_INNB = #{mngrInnb}
<if test="srchStartDate != null and srchStartDate != '' and srchEndDate != null and srchEndDate != ''">
AND
GMCL.CONECT_DT BETWEEN CONCAT(#{srchStartDate}, ' 00:00:00') AND CONCAT(#{srchEndDate}, ' 23:59:59')
</if>
</sql>
<!-- 업무사용자 활동log where절 -->
<sql id="selectLogWhere">
WHERE
GMPL.MNGR_INNB = #{mngrInnb}
<if test="srchStartDate != null and srchStartDate != '' and srchEndDate != null and srchEndDate != ''">
AND
GMPL.REGIST_DT BETWEEN CONCAT(#{srchStartDate}, ' 00:00:00') AND CONCAT(#{srchEndDate}, ' 23:59:59')
</if>
</sql>
<!-- 업무사용자 접속 내역목록 조회 -->
<select id="selectBOJobUserConnHistTotCnt"
parameterType = "com.wb.domainserver.domain.admin.user.mngr.vo.BOJobUserVO"
resultType = "java.lang.Integer">
SELECT
COUNT(1)
FROM
GC_MANAGER_CONECT_LOG GMCL
<include refid = "selectHistoryWhere"/>
</select>
<select id="selectBOJobUserConnHistList"
parameterType = "com.wb.domainserver.domain.admin.user.mngr.vo.BOJobUserVO"
resultType = "dataMap">
SELECT *
FROM (
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM,
TB.*
FROM (
SELECT
GMCL.CONECT_RCORD_SNB,
GMCL.MNGR_INNB,
JOBUSER.MNGR_NM,
GMCL.CONECT_IP,
GMCL.CONECT_BRWSR,
DATE_FORMAT(GMCL.CONECT_DT, '%Y-%m-%d %H:%i:%s') AS CONECT_DT
FROM GC_MANAGER_CONECT_LOG GMCL
LEFT JOIN
GC_MANAGER JOBUSER
ON JOBUSER.MNGR_INNB = GMCL.MNGR_INNB
<include refid = "selectHistoryWhere"/>
ORDER BY GMCL.CONECT_DT DESC
) TB
WHERE
(@ROWNUM:=0)=0
) PV
WHERE 1=1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<!-- 업무사용자 처리 내역목록 조회 -->
<select id="selectBOJobUserLogTotCnt"
parameterType = "com.wb.domainserver.domain.admin.user.mngr.vo.BOJobUserVO" resultType = "java.lang.Integer">
SELECT
COUNT(1)
FROM
GC_MANAGER_PROCS_LOG GMPL
<include refid = "selectLogWhere"/>
</select>
<!-- 업무사용자 처리 내역목록 수정폼 -->
<select id="selectBOJobUserLogTotUpdCnt"
parameterType = "com.wb.domainserver.domain.admin.user.mngr.vo.BOJobUserVO" resultType = "java.lang.Integer">
SELECT
COUNT(1)
FROM
GC_MANAGER_PROCS_LOG GMPL
WHERE
GMPL.MNGR_INNB = #{mngrInnb}
</select>
<!-- 로그 목록 조회 -->
<select id="selectBOLogVOUpdList"
parameterType = "com.wb.domainserver.domain.admin.user.mngr.vo.BOJobUserVO"
resultType = "com.wb.domainserver.domain.admin.user.mngr.vo.LogVO">
SELECT
UPDT_RCODE_INNB,
MNGR_INNB,
CONECT_IP,
PROCS_CD,
FN_GET_COMMCODE_NAME('MNGR_PROCS_CD', PROCS_CD) AS PROCS_CD_NM,
PROCS_CN,
RM,
REGUSR,
DATE_FORMAT(REGIST_DT, '%Y-%m-%d %H:%i:%s') AS REGIST_DE
FROM
GC_MANAGER_PROCS_LOG
WHERE
MNGR_INNB = #{mngrInnb}
ORDER BY
REGIST_DT DESC
</select>
<!-- 로그목록 조회 -->
<select id="selectBOJobUserLogList"
parameterType = "com.wb.domainserver.domain.admin.user.mngr.vo.BOJobUserVO" resultType = "dataMap">
SELECT *
FROM (
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM,
TB.*
FROM (
SELECT
GMPL.UPDT_RCODE_INNB,
GMPL.MNGR_INNB,
JOBUSER.MNGR_NM,
GMPL.CONECT_IP,
GMPL.PROCS_CD,
GMPL.PROCS_CN,
FN_GET_COMMCODE_NAME('CGN041', GMPL.PROCS_CD) AS PROCS_CD_NM,
GMPL.RM,
GMPL.REGUSR,
DATE_FORMAT(GMPL.REGIST_DT, '%Y-%m-%d %H:%i:%s') AS REGIST_DE
FROM GC_MANAGER_PROCS_LOG GMPL
LEFT JOIN GC_MANAGER JOBUSER ON JOBUSER.MNGR_INNB = GMPL.MNGR_INNB
<include refid = "selectLogWhere"/>
ORDER BY GMPL.REGIST_DT DESC
) TB
WHERE
(@ROWNUM:=0)=0
) PV
WHERE 1=1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<!-- 업무사용자 비밀번호 조회 -->
<select id="selectBOJobUserPasswordInqire"
parameterType = "com.wb.domainserver.domain.admin.user.mngr.vo.BOJobUserVO"
resultType="String">
SELECT PASSWORD
FROM GC_MANAGER
WHERE MNGR_INNB = #{mngrInnb}
</select>
<!-- 업무사용자 비밀번호 초기화 -->
<update id="updateBOJobUserPswdInitl"
parameterType = "com.wb.domainserver.domain.admin.user.mngr.vo.BOJobUserVO">
UPDATE GC_MANAGER
SET
PASSWORD = #{password},
UPDUSR = #{updusr},
UPDT_DT = NOW()
WHERE MNGR_INNB = #{mngrInnb}
</update>
<!-- 업무사용자 비밀번호 등록 -->
<update id="updateBOJobUserPw" parameterType="com.wb.domainserver.domain.admin.user.mngr.vo.BOJobUserVO">
UPDATE GC_MANAGER
SET PASSWORD = #{password},
UPDUSR = #{regusr},
UPDT_DT = NOW()
WHERE MNGR_INNB = #{mngrInnb}
</update>
<!-- 업무사용자 접속권한 비활성 -->
<update id="updateBOJobUserActvty"
parameterType = "com.wb.domainserver.domain.admin.user.mngr.vo.BOJobUserVO">
UPDATE GC_MANAGER
SET
MNGR_STTUS_CD = '01',
UPDUSR = #{updusr},
UPDT_DT = NOW()
WHERE MNGR_INNB = #{mngrInnb}
</update>
<!-- 업무사용자 접속권한 비활성 -->
<update id="updateBOJobUserInactvty"
parameterType = "com.wb.domainserver.domain.admin.user.mngr.vo.BOJobUserVO">
UPDATE GC_MANAGER
SET
MNGR_STTUS_CD = '02',
UPDUSR = #{updusr},
UPDT_DT = NOW()
WHERE MNGR_INNB = #{mngrInnb}
</update>
<!-- 업무사용자 수정 -->
<update id="updateBOJobUserUpdt">
UPDATE GC_MANAGER
SET
MNGR_NM = #{mngrNm},
PARTNM = #{partnm},
EMAIL = HEX(AES_ENCRYPT(#{email}, #{secretKey})),
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(telnb)">
TELNB = HEX(AES_ENCRYPT(#{telnb}, #{secretKey})),
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(telnb)">
TELNB = '',
</if>
MBTLNB = HEX(AES_ENCRYPT(#{mbtlnb}, #{secretKey})),
MNGR_DV = #{mngrDv},
<choose>
<when test="lmttIp != null and lmttIp != ''">
LMTT_IP = #{lmttIp},
</when>
<otherwise>
LMTT_IP = NULL,
</otherwise>
</choose>
MBLPHON_CRTFC_AT = #{mblphonCrtfcAt},
UPDUSR = #{updusr},
UPDT_DT = NOW()
WHERE MNGR_INNB = #{mngrInnb}
</update>
<!-- 업무사용자 퇴사처리 -->
<update id="updateBOJobUserResign"
parameterType = "com.wb.domainserver.domain.admin.user.mngr.vo.BOJobUserVO">
UPDATE GC_MANAGER
SET
MNGR_NM = #{mngrNm},
EMAIL = NULL,
PASSWORD = NULL,
TELNB = NULL,
MBTLNB = NULL,
MBLPHON_CRTFC_AT= 'N',
MNGR_STTUS_CD = '03',
UPDUSR = #{updusr},
UPDT_DT = NOW()
WHERE MNGR_INNB = #{mngrInnb}
</update>
<!-- 연관쇼핑몰 이름 리스트조회 -->
<select id="selectBOJabUserMallNmaeList" parameterType="String" resultType = "String">
SELECT
SOPMAL_NM
FROM
GC_MANAGER_MALL MMGRMALL
LEFT JOIN
GC_SHOP MALL
ON MMGRMALL.SOPMAL_CD = MALL.SOPMAL_CD
WHERE
MMGRMALL.MNGR_INNB = #{mngrInnb}
</select>
<!-- 연관쇼핑몰 이름 리스트조회 -->
<select id="selectBOJobUserMallTotCnt" parameterType="String" resultType = "Integer">
SELECT
COUNT(1)
FROM
GC_MANAGER_MALL MMGRMALL
LEFT JOIN GC_SHOP MALL ON MMGRMALL.SOPMAL_CD = MALL.SOPMAL_CD
WHERE
MMGRMALL.MNGR_INNB = #{mngrInnb}
</select>
<!-- 업무 사용자 목록 엑셀용 -->
<select id="selectBOJobUserExcelList"
parameterType = "com.wb.domainserver.domain.admin.user.mngr.vo.BOJobUserVO"
resultType = "dataMap">
SELECT *
FROM (
SELECT
CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM, TB.*
FROM (
SELECT
MNGR_INNB,
MNGR_NM,
PARTNM,
MNGR_ID,
CAST(AES_DECRYPT(UNHEX(EMAIL) , #{secretKey}) AS CHAR(50)) AS EMAIL,
CAST(AES_DECRYPT(UNHEX(TELNB) , #{secretKey}) AS CHAR(50)) AS TELNB,
CAST(AES_DECRYPT(UNHEX(MBTLNB) , #{secretKey}) AS CHAR(50)) AS MBTLNB,
MNGR_DV,
FN_GET_COMMCODE_NAME('MNGR_DV', MNGR_DV) AS MNGR_DV_NM,
MBLPHON_CRTFC_AT,
LMTT_IP,
DATE_FORMAT(LAST_CONECT_DT, '%Y-%m-%d %H:%i:%s') AS LAST_CONECT_DT
FROM
GC_MANAGER
<include refid = "selectBOJobUserListInqireWhere"/>
ORDER BY
LAST_CONECT_DT DESC
) TB
WHERE
(@ROWNUM:=0)=0
) PV
</select>
<!-- 인증테이블이 저장 -->
<insert id = "saveAuthentication"
parameterType="Map">
INSERT INTO OAUTH2_AUTHORIZATION_CONSENT (
REGISTERED_CLIENT_ID,
PRINCIPAL_NAME,
AUTHORITIES
)
VALUES (
'0d498299-3ab0-40d7-a8f4-70b3edb6add0',
#{principalName},
'SCOPE_openid,SCOPE_message.read,SCOPE_message.write,SCOPE_profile'
)
</insert>
<!-- 권한테이블에 저장 -->
<insert id = "saveAuthority"
parameterType="Map">
INSERT INTO AUTHORITY
(
NAME,
USER,
CODE
)
VALUES
(
#{name},
#{user},
'MM'
)
</insert>
<select id="selectBOJobUserCrtfcInfo"
parameterType = "com.wb.domainserver.domain.admin.user.mngr.vo.BOJobUserVO"
resultType = "dataMap">
SELECT LMTT_IP,
MBLPHON_CRTFC_AT,
MNGR_NM,
CAST(AES_DECRYPT(UNHEX(MBTLNB) , #{secretKey}) AS CHAR(50)) AS MBTLNB
FROM GC_MANAGER
WHERE MNGR_ID = #{mngrId}
</select>
</mapper>

View File

@@ -0,0 +1,21 @@
<?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.user.mngr.mapper.BOMaMngrMapper">
<!-- 관리자구분 조회 -->
<select id="selectBOMngrDvList" resultType="DataMap">
SELECT
MNGR_DV,
FN_GET_COMMCODE_NAME('MNGR_DV', MNGR_DV) AS MNGR_DV_NM
FROM
GC_MANAGER
WHERE
1=1
AND
MNGR_DV IS NOT NULL
GROUP BY
MNGR_DV
</select>
</mapper>