초기소스
This commit is contained in:
81
src/main/resources/mybatis/xml/mapper/AuthMapper.xml
Normal file
81
src/main/resources/mybatis/xml/mapper/AuthMapper.xml
Normal file
@@ -0,0 +1,81 @@
|
||||
<?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.auth.mapper.AuthMapper">
|
||||
|
||||
|
||||
<select id="selectUserAuthor" parameterType="com.wb.domainserver.domain.auth.vo.AuthVO">
|
||||
|
||||
SELECT COUNT(*)
|
||||
FROM GC_AUTH GA
|
||||
INNER JOIN GC_AUTH_FNCT GAF
|
||||
ON GA.AUTHOR_ID = GAF.AUTHOR_ID
|
||||
INNER JOIN GC_FNCT GF
|
||||
ON GAF.FNCT_ID = GF.FNCT_ID
|
||||
AND GF.USE_AT = 'Y'
|
||||
AND GF.SYS_DV_CD = '01'
|
||||
AND GF.FNCT_URI = #{uri}
|
||||
WHERE 1 = 1
|
||||
AND GA.SYS_DV_CD = '01'
|
||||
AND GA.USE_AT = 'Y'
|
||||
AND GA.AUTHOR_ID = 1 -- 사용자 권한 고정 셋팅 값
|
||||
</select>
|
||||
|
||||
<!--관리자 > 접근 가능한 쇼핑몰 리스트 조회-->
|
||||
<select id="selectAuthorSopmalList" parameterType="com.wb.domainserver.domain.auth.vo.AuthVO" resultType="java.lang.String">
|
||||
SELECT DISTINCT GMA.SOPMAL_CD
|
||||
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'
|
||||
ORDER BY GMA.SOPMAL_CD ASC
|
||||
</select>
|
||||
|
||||
<!--관리자 > 쇼핑몰 페이지 권한 여부-->
|
||||
<select id="selectAuthorSiteAt" parameterType="com.wb.domainserver.domain.auth.vo.AuthVO" resultType="java.lang.Integer">
|
||||
SELECT COUNT(*)
|
||||
FROM GC_MANAGER GM
|
||||
INNER JOIN GC_MANAGER_AUTH GMA
|
||||
ON GM.MNGR_INNB = GMA.MNGR_INNB
|
||||
AND GMA.SOPMAL_CD = #{sopmalCd}
|
||||
INNER JOIN GC_AUTH GA
|
||||
ON GMA.AUTHOR_ID = GA.AUTHOR_ID
|
||||
AND GA.USE_AT = 'Y'
|
||||
INNER JOIN GC_AUTH_FNCT GAF
|
||||
ON GA.AUTHOR_ID = GAF.AUTHOR_ID
|
||||
INNER JOIN GC_FNCT GF
|
||||
ON GAF.FNCT_ID = GF.FNCT_ID
|
||||
AND GF.USE_AT = 'Y'
|
||||
AND GF.SYS_DV_CD = #{sysDvCd}
|
||||
AND GF.FNCT_URI = #{fnctUri}
|
||||
WHERE GM.MNGR_INNB = #{mngrInnb}
|
||||
AND GM.MNGR_STTUS_CD = '01'
|
||||
</select>
|
||||
|
||||
<!--인트라넷 > 인트라넷 페이지 권한 여부-->
|
||||
<select id="selectItrntAuthorSiteAt" parameterType="com.wb.domainserver.domain.auth.vo.AuthVO" resultType="java.lang.Integer">
|
||||
SELECT COUNT(*)
|
||||
FROM GC_STORE GS
|
||||
INNER JOIN GC_STR_AUTH GSA
|
||||
ON GS.STR_INNB = GSA.STR_INNB
|
||||
INNER JOIN GC_AUTH GA
|
||||
ON GSA.AUTHOR_ID = GA.AUTHOR_ID
|
||||
AND GA.USE_AT = 'Y'
|
||||
INNER JOIN GC_AUTH_FNCT GAF
|
||||
ON GA.AUTHOR_ID = GAF.AUTHOR_ID
|
||||
INNER JOIN GC_FNCT GF
|
||||
ON GAF.FNCT_ID = GF.FNCT_ID
|
||||
AND GF.USE_AT = 'Y'
|
||||
AND GF.SYS_DV_CD = #{sysDvCd}
|
||||
AND GF.FNCT_URI = #{fnctUri}
|
||||
WHERE 1=1
|
||||
AND GS.STR_INNB = #{mngrInnb}
|
||||
AND GS.REPRSNT_BRAND = #{reprsntBrand} -- 대표브랜드명
|
||||
<if test="tentGroup == '02'">
|
||||
AND GS.STR_OPER_DV = #{strOperDv} -- 매장운영구분
|
||||
</if>
|
||||
AND GS.TENT_GROUP = #{tentGroup} -- 본사(01) 입점사(02)구분
|
||||
</select>
|
||||
</mapper>
|
||||
220
src/main/resources/mybatis/xml/mapper/FrstLoginMapper.xml
Normal file
220
src/main/resources/mybatis/xml/mapper/FrstLoginMapper.xml
Normal file
@@ -0,0 +1,220 @@
|
||||
<?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.frstlogin.mapper.FrstLoginMapper">
|
||||
|
||||
<!--비회원 -> 회원 로그인시 장바구니 정보 조회-->
|
||||
<select id="selectSpbkSesionToMbr" parameterType="com.wb.domainserver.domain.frstlogin.vo.FrstLoginVO">
|
||||
SELECT
|
||||
CART_INNB,
|
||||
OPTN_TY,
|
||||
SOPMAL_CD,
|
||||
GOODS_OPTN_INNB,
|
||||
GOODS_INNB,
|
||||
MBR_INNB,
|
||||
SESION_ID,
|
||||
CART_DV_CD,
|
||||
AGENT_ID,
|
||||
IP,
|
||||
CNT,
|
||||
REGUSR,
|
||||
REGIST_DT,
|
||||
MBR_DV_CD,
|
||||
INPUT_OPTN_CN,
|
||||
INPUT_OPTN_RELATE_NB
|
||||
FROM
|
||||
GC_CART GC
|
||||
WHERE
|
||||
1 = 1
|
||||
AND GC.SOPMAL_CD = #{sopmalCd}
|
||||
AND GC.SESION_ID = #{sesionId}
|
||||
</select>
|
||||
|
||||
<!--회원 -> 장바구니 정보 조회-->
|
||||
<select id="selectSpbkMbr" parameterType="com.wb.domainserver.domain.frstlogin.vo.FrstLoginVO">
|
||||
SELECT
|
||||
CART_INNB,
|
||||
OPTN_TY,
|
||||
SOPMAL_CD,
|
||||
GOODS_OPTN_INNB,
|
||||
GOODS_INNB,
|
||||
MBR_INNB,
|
||||
SESION_ID,
|
||||
CART_DV_CD,
|
||||
AGENT_ID,
|
||||
IP,
|
||||
CNT,
|
||||
REGUSR,
|
||||
REGIST_DT,
|
||||
MBR_DV_CD,
|
||||
INPUT_OPTN_CN,
|
||||
INPUT_OPTN_RELATE_NB
|
||||
FROM
|
||||
GC_CART GC
|
||||
WHERE
|
||||
1 = 1
|
||||
AND GC.SOPMAL_CD = #{sopmalCd}
|
||||
AND GC.MBR_INNB = #{mbrInnb}
|
||||
AND GC.MBR_DV_CD = #{mbrDvCd}
|
||||
</select>
|
||||
|
||||
<!--비회원 -> 회원 로그인시 장바구니 정보 등록-->
|
||||
<insert id="insertSpbkSesionToMbr" parameterType="com.wb.domainserver.domain.frstlogin.vo.FrstLoginVO">
|
||||
<selectKey keyProperty="cartInnb" resultType="BigInteger" order="BEFORE">
|
||||
SELECT IFNULL(MAX(CART_INNB), 0) + 1
|
||||
FROM GC_CART
|
||||
</selectKey>
|
||||
INSERT INTO GC_CART
|
||||
(
|
||||
CART_INNB,
|
||||
OPTN_TY,
|
||||
SOPMAL_CD,
|
||||
GOODS_OPTN_INNB,
|
||||
GOODS_INNB,
|
||||
MBR_INNB,
|
||||
SESION_ID,
|
||||
CART_DV_CD,
|
||||
AGENT_ID,
|
||||
IP,
|
||||
CNT,
|
||||
REGUSR,
|
||||
REGIST_DT,
|
||||
MBR_DV_CD,
|
||||
INPUT_OPTN_CN,
|
||||
INPUT_OPTN_RELATE_NB
|
||||
)
|
||||
VALUES(
|
||||
#{cartInnb}
|
||||
, #{optnTy}
|
||||
, #{sopmalCd}
|
||||
, #{goodsOptnInnb}
|
||||
, #{goodsInnb}
|
||||
, #{mbrInnb}
|
||||
, ''
|
||||
, #{cartDvCd}
|
||||
, #{agentId}
|
||||
, #{ip}
|
||||
, #{cnt}
|
||||
, #{regusr}
|
||||
, SYSDATE()
|
||||
, #{mbrDvCd}
|
||||
, #{inputOptnCn}
|
||||
, #{inputOptnRelateNb}
|
||||
)
|
||||
ON DUPLICATE KEY UPDATE UPDT_DT = SYSDATE(), UPDUSR = #{regusr}
|
||||
</insert>
|
||||
|
||||
<!--비회원 -> 회원 로그인시 회원 선택구매상태 상품 장바구니로 변경-->
|
||||
<update id="updatePurchsSpbkMbr" parameterType="com.wb.domainserver.domain.frstlogin.vo.FrstLoginVO">
|
||||
UPDATE
|
||||
GC_CART GC
|
||||
SET
|
||||
GC.CART_DV_CD = '01'
|
||||
WHERE
|
||||
1 = 1
|
||||
AND GC.SOPMAL_CD = #{sopmalCd}
|
||||
AND GC.MBR_INNB = #{mbrInnb}
|
||||
AND GC.CART_DV_CD = '03'
|
||||
|
||||
</update>
|
||||
|
||||
<!--비회원 -> 회원 로그인시 세션 장바구니 상품 삭제-->
|
||||
<delete id="deletePurchsSpbkSesion" parameterType="com.wb.domainserver.domain.frstlogin.vo.FrstLoginVO">
|
||||
DELETE
|
||||
FROM
|
||||
GC_CART GC
|
||||
WHERE
|
||||
1 = 1
|
||||
AND GC.SOPMAL_CD = #{sopmalCd}
|
||||
AND GC.SESION_ID = #{sesionId}
|
||||
</delete>
|
||||
|
||||
<!--비회원 -> 회원 로그인시 장바구니 회원 구매하기 상태 상품 삭제-->
|
||||
<delete id="deletePurchsSpbkMbr" parameterType="com.wb.domainserver.domain.frstlogin.vo.FrstLoginVO">
|
||||
DELETE
|
||||
FROM
|
||||
GC_CART GC
|
||||
WHERE
|
||||
1 = 1
|
||||
AND GC.SOPMAL_CD = #{sopmalCd}
|
||||
AND GC.MBR_INNB = #{mbrInnb}
|
||||
<if test="@ com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(cartDvCd)">
|
||||
AND GC.CART_DV_CD = #{cartDvCd}
|
||||
</if>
|
||||
</delete>
|
||||
|
||||
<!--비회원 -> 회원 로그인시 비밀번호 변경일 기준 6개월 경과 회원 여부-->
|
||||
<select id="selectPasswordChngDeAt" parameterType="com.wb.domainserver.domain.frstlogin.vo.FrstLoginVO">
|
||||
SELECT
|
||||
COUNT(*)
|
||||
FROM
|
||||
GC_MEMBER GM
|
||||
LEFT JOIN GC_MEMBER_GRAD_MAPPING GMGM
|
||||
ON GM.MBR_INNB = GMGM.MBR_INNB
|
||||
AND GM.MBR_DV_CD = GMGM.MBR_DV_CD
|
||||
WHERE 1 = 1
|
||||
AND GMGM.SOPMAL_CD = #{sopmalCd}
|
||||
AND GM.MBR_INNB = #{mbrInnb}
|
||||
AND GM.MBR_DV_CD = #{mbrDvCd}
|
||||
AND GM.JOIN_MTH_CD = 'none' -- 일반회원가입 대상
|
||||
AND CASE WHEN IFNULL(PASSWORD_CNFIRM_DE, '') = '' THEN -- 비밀번호 재확인일지가 빈값이면
|
||||
CASE
|
||||
WHEN GM.PASSWORD_CHNG_DE <![CDATA[<=]]> DATE_SUB(NOW(), INTERVAL #{passwordChngDe} MONTH) THEN 'Y' -- 비밀번호 변경일이 지났으면 비밀번호 변경해야함
|
||||
ELSE 'N' END
|
||||
ELSE
|
||||
CASE
|
||||
WHEN GM.PASSWORD_CHNG_DE <![CDATA[<=]]> DATE_SUB(NOW(), INTERVAL #{passwordChngDe} MONTH) -- 비밀번호 변경일도 지나고 비밀번호 재확인일자도 지났으면 변경해야함
|
||||
AND PASSWORD_CNFIRM_DE <![CDATA[<=]]> NOW() THEN 'Y'
|
||||
ELSE 'N' END
|
||||
END = 'Y'
|
||||
</select>
|
||||
|
||||
<!--쇼핑몰명 조회-->
|
||||
<select id="selectshopmalName" parameterType="com.wb.domainserver.domain.frstlogin.vo.FrstLoginVO">
|
||||
SELECT
|
||||
SOPMAL_NM
|
||||
FROM
|
||||
GC_SHOP GS
|
||||
WHERE
|
||||
1 = 1
|
||||
AND GS.SOPMAL_CD = #{sopmalCd}
|
||||
</select>
|
||||
|
||||
<insert id="insertMemberLogin" parameterType="com.wb.domainserver.domain.frstlogin.vo.FrstLoginVO">
|
||||
INSERT INTO GC_MEMBER_LOGIN (
|
||||
CONECT_LOG_INNB,
|
||||
MBR_INNB,
|
||||
SOPMAL_CD,
|
||||
MBR_DV_CD,
|
||||
AGENT_ID,
|
||||
SESION_ID,
|
||||
IP,
|
||||
CONECT_ENVRN_DV,
|
||||
CONECT_DOMN,
|
||||
JOIN_MTH_CD,
|
||||
REGIST_DT
|
||||
)
|
||||
VALUES (
|
||||
#{conectLogInnb},
|
||||
#{mbrInnb},
|
||||
#{sopmalCd},
|
||||
#{mbrDvCd},
|
||||
#{agentId},
|
||||
#{sesionId},
|
||||
#{ip},
|
||||
#{conectEnvrnDv},
|
||||
#{conectDomn},
|
||||
#{joinMthCd},
|
||||
NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!--마케팅수신동의 여부 조회 -->
|
||||
<select id="selectMemMarktAgree" parameterType="com.wb.domainserver.domain.frstlogin.vo.FrstLoginVO">
|
||||
SELECT CASE WHEN COUNT(*) = 0 THEN 1 ELSE 0 END AS marktAgreAt
|
||||
FROM GC_MARKETING_AGREE
|
||||
WHERE 1 = 1
|
||||
AND MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
</select>
|
||||
</mapper>
|
||||
156
src/main/resources/mybatis/xml/mapper/LogMapper.xml
Normal file
156
src/main/resources/mybatis/xml/mapper/LogMapper.xml
Normal file
@@ -0,0 +1,156 @@
|
||||
<?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.log.mapper.LogMapper">
|
||||
|
||||
<!-- 사용자 접속로그 등록 -->
|
||||
<insert id="insertAccessLog" parameterType="com.wb.domainserver.domain.log.vo.AccessLogVO">
|
||||
INSERT INTO GC_ACCESS_LOG2
|
||||
(
|
||||
SOPMAL_CD,
|
||||
AGENT_ID,
|
||||
SESION_ID,
|
||||
MBR_INNB,
|
||||
MENU_GROUP,
|
||||
MENU,
|
||||
REQST_MTH,
|
||||
AD_TRACE_CD,
|
||||
IP,
|
||||
CONECT_ENVRN_DV,
|
||||
CONECT_DOMN,
|
||||
CONECT_URL,
|
||||
REQST_DATA,
|
||||
REFERER,
|
||||
REFERER_DOMN,
|
||||
CONECT_INTRCP,
|
||||
REGIST_DE,
|
||||
REGIST_HMS,
|
||||
TEMP_COL1
|
||||
)
|
||||
VALUES(
|
||||
#{sopmalCd}
|
||||
,#{agentId}
|
||||
,#{sesionId}
|
||||
,#{mbrInnb}
|
||||
,#{menuGroup}
|
||||
,#{menu}
|
||||
,#{reqstMth}
|
||||
,#{adTraceCd}
|
||||
,#{ip}
|
||||
,#{conectEnvrnDv}
|
||||
,#{conectDomn}
|
||||
,#{conectUrl}
|
||||
,#{reqstData}
|
||||
,#{referer}
|
||||
,#{refererDomn}
|
||||
,#{conectIntrcp}
|
||||
,CURDATE()
|
||||
,CURTIME()
|
||||
,#{userAgent}
|
||||
)
|
||||
|
||||
</insert>
|
||||
|
||||
<!--일일 상품 조회 로그 등록-->
|
||||
<insert id="insertGoodsInqireLog" parameterType="com.wb.domainserver.domain.log.vo.AccessLogVO">
|
||||
INSERT INTO GC_GOODS_INQIRE_LOG
|
||||
(
|
||||
SOPMAL_CD,
|
||||
GOODS_INNB,
|
||||
GOODS_NM,
|
||||
AGENT_ID,
|
||||
SESION_ID,
|
||||
IP,
|
||||
MBR_INNB,
|
||||
MBR_DV_CD,
|
||||
AD_TRACE_CD,
|
||||
REGIST_DT
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#{sopmalCd},
|
||||
#{goodsInnb},
|
||||
#{goodsNm},
|
||||
#{agentId},
|
||||
#{sesionId},
|
||||
#{ip},
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
#{adTraceCd},
|
||||
SYSDATE()
|
||||
)
|
||||
</insert>
|
||||
<!-- 관리자 접속로그 등록 -->
|
||||
<insert id="insertMngrAccessLog" parameterType="com.wb.domainserver.domain.log.vo.MngrAccessLogVo">
|
||||
INSERT INTO GC_MNGR_ACCESS_LOG
|
||||
(
|
||||
SOPMAL_CD,
|
||||
AGENT_ID,
|
||||
SESION_ID,
|
||||
MNGR_TY_CD,
|
||||
MNGR_INNB,
|
||||
CONECT_LOG_DV_CD,
|
||||
MENU_GROUP,
|
||||
MENU,
|
||||
REQST_MTH,
|
||||
IP,
|
||||
CONECT_ENVRN_DV,
|
||||
CONECT_DOMN,
|
||||
CONECT_URL,
|
||||
REQST_DATA,
|
||||
REGIST_DE,
|
||||
REGIST_HMS
|
||||
)
|
||||
VALUES(
|
||||
#{sopmalCd}
|
||||
,#{agentId}
|
||||
,#{sesionId}
|
||||
,#{mngrTyCd}
|
||||
,#{mngrInnb}
|
||||
,#{conectLogDvCd}
|
||||
,#{menuGroup}
|
||||
,#{menu}
|
||||
,#{reqstMth}
|
||||
,#{ip}
|
||||
,#{conectEnvrnDv}
|
||||
,#{conectDomn}
|
||||
,#{conectUrl}
|
||||
,#{reqstData}
|
||||
,CURDATE()
|
||||
,CURTIME()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- API 호출 로그 -->
|
||||
<insert id="insertMngrApiAccessLog">
|
||||
INSERT INTO GC_API_ACCESS_LOG
|
||||
(
|
||||
SOPMAL_CD,
|
||||
AGENT_ID,
|
||||
SESION_ID,
|
||||
REQST_MTH,
|
||||
IP,
|
||||
CONECT_ENVRN_DV,
|
||||
CONECT_URL,
|
||||
REQST_DATA,
|
||||
SUCCESS_YN,
|
||||
ERROR_CODE,
|
||||
RESPONSE_DATA,
|
||||
REGIST_DT
|
||||
)
|
||||
VALUES(
|
||||
#{sopmalCd}
|
||||
,#{agentId}
|
||||
,#{sesionId}
|
||||
,#{reqstMth}
|
||||
,#{ip}
|
||||
,#{conectEnvrnDv}
|
||||
,#{conectUrl}
|
||||
,#{reqstData}
|
||||
,#{successYn}
|
||||
,#{errorCode}
|
||||
,#{responseData}
|
||||
,NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
</mapper>
|
||||
23
src/main/resources/mybatis/xml/mapper/OauthMapper.xml
Normal file
23
src/main/resources/mybatis/xml/mapper/OauthMapper.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<?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.sopmal.oauth.mapper.UserMapper">
|
||||
<!--외부연동 조회-->
|
||||
<select id="findExtrlUser" resultType="com.wb.domainserver.domain.gcone.login.vo.LoginUser">
|
||||
SELECT GM.MBR_INNB AS USER_INNB
|
||||
, GM.MBR_ID AS USER_ID
|
||||
, GM.MBR_DV_CD
|
||||
, GM.MBR_NM AS USER_NAME
|
||||
, GM.MBTLNB
|
||||
, GM.MBR_PASSWORD AS PASSWORD
|
||||
, GM.MBR_DV_CD AS SOPMAL_CD
|
||||
, '01' AS SYS_DV_CD
|
||||
FROM GC_EXTRL_MEMBER GEM
|
||||
INNER JOIN GC_MEMBER GM
|
||||
ON GEM.MBR_INNB = GM.MBR_INNB
|
||||
AND GEM.MBR_DV_CD = GM.MBR_DV_CD
|
||||
WHERE GEM.EXTRL_INTRLCK_ID = #{id}
|
||||
AND GEM.MBR_NM = #{name}
|
||||
AND GEM.EXTRL_INTRLCK_DV_CD = #{extrlIntrlckDvCd}
|
||||
</select>
|
||||
</mapper>
|
||||
14
src/main/resources/mybatis/xml/mapper/OperMapper.xml
Normal file
14
src/main/resources/mybatis/xml/mapper/OperMapper.xml
Normal file
@@ -0,0 +1,14 @@
|
||||
<?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.oper.mapper.OperMapper">
|
||||
|
||||
<select id="selectMainOperAt" parameterType="com.wb.domainserver.domain.oper.vo.OperVO">
|
||||
SELECT
|
||||
OPER_AT,
|
||||
CSC_TELNB,
|
||||
RPLC_URL
|
||||
FROM GC_SHOP GS
|
||||
WHERE 1=1
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
</select>
|
||||
</mapper>
|
||||
106
src/main/resources/mybatis/xml/mapper/SecurityMapper.xml
Normal file
106
src/main/resources/mybatis/xml/mapper/SecurityMapper.xml
Normal file
@@ -0,0 +1,106 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!--
|
||||
|
||||
Copyright 2015-2022 the original author or authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
https://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
-->
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.security.user.SecurityUserMapper">
|
||||
|
||||
<!-- sopmal에 추가함-->
|
||||
<!-- <select id="loadUserByUsername" parameterType="String" resultType="Map">-->
|
||||
<!-- SELECT TB_USER.mbr_password as password, TB_AUTHORITY.role, TB_USER.mbr_innb as innb, TB_USER.MBR_NM as nm-->
|
||||
<!-- FROM GC_MEMBER AS TB_USER INNER JOIN (-->
|
||||
<!-- SELECT `user`, GROUP_CONCAT(name) AS 'role' FROM AUTHORITY GROUP BY user-->
|
||||
<!-- ) AS TB_AUTHORITY ON TB_USER.mbr_innb = TB_AUTHORITY.`user`-->
|
||||
<!-- WHERE TB_USER.mbr_id = #{username}-->
|
||||
<!-- AND TB_USER.mbr_dv_cd = #{mbrDvCd}-->
|
||||
<!-- </select>-->
|
||||
|
||||
|
||||
|
||||
<select id="loadUserByManagername" parameterType="String" resultType="Map">
|
||||
SELECT TB_USER.password, TB_AUTHORITY.role, TB_USER.mngr_innb as innb, TB_USER.MNGR_NM as nm
|
||||
FROM GC_MANAGER AS TB_USER INNER JOIN (
|
||||
SELECT `user`, GROUP_CONCAT(name) AS 'role' FROM AUTHORITY GROUP BY user
|
||||
) AS TB_AUTHORITY ON TB_USER.mngr_innb = TB_AUTHORITY.`user`
|
||||
WHERE TB_USER.mngr_id = #{username}
|
||||
</select>
|
||||
|
||||
<select id="getGrantType" parameterType="String" resultType="String">
|
||||
SELECT authorization_grant_type, oidc_id_token_value
|
||||
FROM OAUTH2_AUTHORIZATION
|
||||
WHERE ACCESS_TOKEN_VALUE = #{token}
|
||||
</select>
|
||||
|
||||
<select id="getAvailablePathList" parameterType="String" resultType="String">
|
||||
SELECT B.FNCT_URL
|
||||
FROM
|
||||
(
|
||||
SELECT FM.MNGR_ID ,FM.MNGR_INNB, FMA.MNGR_AUTHOR_INNB, FMA.AUTHOR_GROUP_CD
|
||||
FROM GC_MANAGER FM
|
||||
INNER JOIN GC_MANAGER_AUTH FMA
|
||||
ON FM.MNGR_INNB = FMA.MNGR_INNB
|
||||
INNER JOIN GC_AUTH_GROUP FAG
|
||||
ON FMA.AUTHOR_GROUP_CD = FAG.AUTHOR_GROUP_CD
|
||||
WHERE FAG.USE_AT = 'Y'
|
||||
) A
|
||||
INNER JOIN
|
||||
(
|
||||
SELECT FMF.FNCT_CD, FMF.FNCT_URL, FAF.AUTHOR_GROUP_CD
|
||||
FROM GC_MENU_FNCT FMF
|
||||
INNER JOIN GC_AUTH_FNCT FAF
|
||||
ON FMF.FNCT_CD = FAF.FNCT_CD
|
||||
INNER JOIN GC_AUTH_GROUP FAG
|
||||
ON FAF.AUTHOR_GROUP_CD = FAG.AUTHOR_GROUP_CD
|
||||
WHERE FAG.USE_AT = 'Y'
|
||||
AND FMF.USE_AT = 'Y'
|
||||
) B
|
||||
ON A.AUTHOR_GROUP_CD = B.AUTHOR_GROUP_CD
|
||||
WHERE A.MNGR_ID = #{username}
|
||||
</select>
|
||||
|
||||
<select id="loadUsernameByToken" parameterType="Map" resultType="String">
|
||||
SELECT MBR_ID
|
||||
FROM OAUTH2_SINGLE_SGIN_ON
|
||||
WHERE ACCESS_TOKEN_VALUE = #{token}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
</select>
|
||||
|
||||
<!-- sopmall 추가 시작-->
|
||||
<select id="loadUserByUsername" parameterType="Map" resultType="Map">
|
||||
SELECT TB_USER.MBR_PASSWORD AS PASSWORD
|
||||
, TB_AUTHORITY.ROLE
|
||||
FROM GC_MEMBER AS TB_USER
|
||||
INNER JOIN (SELECT `user`, GROUP_CONCAT(NAME) AS 'role'
|
||||
FROM authority
|
||||
GROUP BY USER) AS TB_AUTHORITY
|
||||
ON TB_USER.MBR_INNB = TB_AUTHORITY.`user`
|
||||
WHERE TB_USER.MBR_ID = #{username}
|
||||
AND TB_USER.MBR_DV_CD = #{mbrDvCd}
|
||||
</select>
|
||||
|
||||
<select id="validateAccessToken" parameterType="com.wb.domainserver.security.jwt.vo.TokenInfo" resultType="java.lang.Boolean">
|
||||
SELECT IF(COUNT(*) > 0, 0, 1) AS VALID_AT
|
||||
FROM TOKEN
|
||||
WHERE ACCESS_TOKEN = #{accessToken}
|
||||
AND REALM = #{realm}
|
||||
AND USER_INNB = #{userInnb}
|
||||
</select>
|
||||
<!-- sopmall 추가 종료-->
|
||||
|
||||
</mapper>
|
||||
81
src/main/resources/mybatis/xml/mapper/TokenMapper.xml
Normal file
81
src/main/resources/mybatis/xml/mapper/TokenMapper.xml
Normal file
@@ -0,0 +1,81 @@
|
||||
<?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.security.jwt.mapper.TokenMapper">
|
||||
|
||||
|
||||
<!--토큰정보조회-->
|
||||
<select id="selectToken" parameterType="com.wb.domainserver.domain.gcone.login.vo.LoginUser"
|
||||
resultType="com.wb.domainserver.security.jwt.vo.TokenInfo">
|
||||
<![CDATA[
|
||||
SELECT REALM
|
||||
, USER_INNB
|
||||
, ACCESS_TOKEN
|
||||
, REFRESH_TOKEN
|
||||
, CREATED_AT
|
||||
, EXPIRES_AT AS REFRESH_EXPIRES_AT
|
||||
, IF(EXPIRES_AT >= NOW(), 'N' , 'Y') AS EXPIRED_AT
|
||||
, LAST_ACCESSED_TIME
|
||||
FROM TOKEN
|
||||
WHERE 1 = 1
|
||||
AND USER_INNB = #{userInnb}
|
||||
AND REALM = #{realm}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!--refresh token 유효 여부 조회-->
|
||||
<select id="selectRefreshToken" parameterType="com.wb.domainserver.security.jwt.vo.TokenInfo"
|
||||
resultType="com.wb.domainserver.security.jwt.vo.TokenInfo">
|
||||
<![CDATA[
|
||||
SELECT REALM
|
||||
, USER_INNB
|
||||
, ACCESS_TOKEN
|
||||
, REFRESH_TOKEN
|
||||
, CREATED_AT
|
||||
, EXPIRES_AT AS REFRESH_EXPIRES_AT
|
||||
, IF(EXPIRES_AT >= NOW(), 'N' , 'Y') AS EXPIRED_AT
|
||||
, LAST_ACCESSED_TIME
|
||||
FROM TOKEN
|
||||
WHERE 1 = 1
|
||||
AND USER_INNB = #{userInnb}
|
||||
AND REALM = #{realm}
|
||||
AND REFRESH_TOKEN = #{refreshToken}
|
||||
AND EXPIRES_AT >= NOW()
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!--토큰정보저장-->
|
||||
<select id="insertToken" parameterType="com.wb.domainserver.security.jwt.vo.TokenInfo">
|
||||
INSERT INTO TOKEN (
|
||||
USER_INNB
|
||||
, REALM
|
||||
, ACCESS_TOKEN
|
||||
, REFRESH_TOKEN
|
||||
, CREATED_AT
|
||||
, EXPIRES_AT
|
||||
, LAST_ACCESSED_TIME
|
||||
)
|
||||
VALUES (
|
||||
#{userInnb}
|
||||
, #{realm}
|
||||
, #{accessToken}
|
||||
, #{refreshToken}
|
||||
, NOW()
|
||||
, #{refreshExpiresAt}
|
||||
, NOW()
|
||||
)
|
||||
</select>
|
||||
|
||||
<!--토큰정보수정-->
|
||||
<select id="updateToken" parameterType="com.wb.domainserver.security.jwt.vo.TokenInfo">
|
||||
UPDATE TOKEN SET
|
||||
ACCESS_TOKEN = #{accessToken}
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(refreshToken)">
|
||||
, REFRESH_TOKEN = #{refreshToken}
|
||||
</if>
|
||||
, EXPIRES_AT = #{refreshExpiresAt}
|
||||
, LAST_ACCESSED_TIME = NOW()
|
||||
WHERE 1=1
|
||||
AND USER_INNB = #{userInnb}
|
||||
AND REALM = #{realm}
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,770 @@
|
||||
<?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 -- 이벤트 중복제한 쿠폰 존재여부
|
||||
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
|
||||
</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>
|
||||
|
||||
</mapper>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
|
||||
<!-- <!– 마일리지 통계 –>-->
|
||||
<!-- <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>-->
|
||||
<!-- <!– 마일리지 정산 목록 –>-->
|
||||
<!-- <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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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.extra.ntcn.agree.mapper.BONmbrAgreeMapper">
|
||||
<!--1. SEND TO 정보 조회-->
|
||||
<select id = "selectNmbrInfoFromSendTo" parameterType="com.wb.domainserver.domain.extra.ntcn.agree.vo.BONmbrAgreeVO" resultType="com.wb.domainserver.domain.extra.ntcn.agree.vo.BONmbrAgreeVO">
|
||||
SELECT
|
||||
SMS_TO_INNB,
|
||||
SOPMAL_CD,
|
||||
RECPTN_NB,
|
||||
CAST(AES_DECRYPT(UNHEX(RECPTN_NB), #{secretKey}) AS CHAR(50)) AS MBTLNB,
|
||||
SMS_INNB,
|
||||
FN_GET_SOPMAL_NAME(SOPMAL_CD) AS BRAND,
|
||||
#{registIp} AS REGIST_IP,
|
||||
#{secretKey} AS SECRET_KEY,
|
||||
NOW() AS SYS_AGRE_DT,
|
||||
DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s') AS AGRE_DT,
|
||||
CSTMR_NM AS NM
|
||||
FROM GC_SEND_TO
|
||||
WHERE SMS_TO_INNB = #{smsToInnb}
|
||||
</select>
|
||||
|
||||
<!--2. 비회원 수신 동의 존재 여부 체크-->
|
||||
<select id="selectBONmbrMarketingAgree" parameterType="com.wb.domainserver.domain.extra.ntcn.agree.vo.BONmbrAgreeVO" resultType="Integer">
|
||||
SELECT COUNT(1)
|
||||
FROM GC_NMBR_AGREE
|
||||
WHERE SOPMAL_CD = #{sopmalCd}
|
||||
AND MBTLNB = HEX(AES_ENCRYPT(REPLACE(#{mbtlnb}, '-', ''), #{secretKey}))
|
||||
</select>
|
||||
|
||||
<!--3.정보 없으면(send_to 사용)-->
|
||||
<insert id = "insertBONmbrMarketingAgree" parameterType="com.wb.domainserver.domain.extra.ntcn.agree.vo.BONmbrAgreeVO">
|
||||
INSERT INTO GC_NMBR_AGREE
|
||||
(SOPMAL_CD,
|
||||
MBTLNB,
|
||||
AGREE_DV_CD,
|
||||
NM,
|
||||
MEMO,
|
||||
LOG,
|
||||
SMS_SEND_DT,
|
||||
REGIST_DT,
|
||||
UPDT_DT
|
||||
)
|
||||
SELECT SOPMAL_CD,
|
||||
RECPTN_NB,
|
||||
'01',
|
||||
CSTMR_NM,
|
||||
NULL,
|
||||
CONCAT('[',#{agreDt},']', #{registIp} '(send:',#{smsToInnb},')'),
|
||||
SNDNG_DT,
|
||||
#{sysAgreDt},
|
||||
#{sysAgreDt}
|
||||
FROM GC_SEND_TO
|
||||
WHERE SMS_TO_INNB = #{smsToInnb}
|
||||
</insert>
|
||||
|
||||
<!--정보 없으면 (api)-->
|
||||
<insert id ="insertBONmbrMarketingAgreeApi" parameterType="com.wb.domainserver.domain.extra.ntcn.agree.vo.BONmbrAgreeVO">
|
||||
INSERT INTO GC_NMBR_AGREE
|
||||
(SOPMAL_CD,
|
||||
MBTLNB,
|
||||
AGREE_DV_CD,
|
||||
NM,
|
||||
ADRES,
|
||||
MEMO,
|
||||
LOG,
|
||||
SMS_SEND_DT,
|
||||
REGIST_DT,
|
||||
UPDT_DT
|
||||
)
|
||||
VALUES
|
||||
(#{sopmalCd},
|
||||
HEX(AES_ENCRYPT(REPLACE(#{mbtlnb},'-',''), #{secretKey})),
|
||||
'02',
|
||||
#{nm},
|
||||
#{adres},
|
||||
NULL,
|
||||
CONCAT('[',DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s'),']', #{registIp} '(send:'')'),
|
||||
NULL,
|
||||
NOW(),
|
||||
NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!--정보 있으면-->
|
||||
<update id = "updateBONmbrMarketingAgree" parameterType="com.wb.domainserver.domain.extra.ntcn.agree.vo.BONmbrAgreeVO">
|
||||
UPDATE GC_NMBR_AGREE
|
||||
SET UPDT_DT = <choose><when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sysAgreDt)">#{sysAgreDt}</when><otherwise>NOW()</otherwise></choose>,
|
||||
LOG = CONCAT(LOG,#{registIp}<choose><when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(smsToInnb)">,'[',#{agreDt},']','send:',#{smsToInnb}</when><otherwise>,DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s')</otherwise></choose>)
|
||||
WHERE SOPMAL_CD = #{sopmalCd}
|
||||
AND MBTLNB = HEX(AES_ENCRYPT(REPLACE(#{mbtlnb},'-',''), #{secretKey}))
|
||||
</update>
|
||||
|
||||
<!--비회원 수신 동의 로그 등록-->
|
||||
<insert id = "insertBONmbrMarketingAgreeLog" parameterType="com.wb.domainserver.domain.extra.ntcn.agree.vo.BONmbrAgreeVO">
|
||||
<selectKey order="BEFORE" keyProperty="nmbrAgreeLogInnb" resultType="String">
|
||||
SELECT IFNULL(MAX(NMBR_AGREE_LOG_INNB), 0)+1
|
||||
FROM GC_NMBR_AGREE_LOG
|
||||
</selectKey>
|
||||
INSERT INTO GC_NMBR_AGREE_LOG
|
||||
(NMBR_AGREE_LOG_INNB,
|
||||
SOPMAL_CD,
|
||||
MBTLNB,
|
||||
AGREE_DV_CD,
|
||||
NM,
|
||||
ADRES,
|
||||
MEMO,
|
||||
LOG_CHNG_DV_CD,
|
||||
LOG,
|
||||
SMS_SEND_DT,
|
||||
REGIST_DT,
|
||||
REGIST_IP)
|
||||
SELECT #{nmbrAgreeLogInnb},
|
||||
SOPMAL_CD,
|
||||
MBTLNB,
|
||||
AGREE_DV_CD,
|
||||
NM,
|
||||
ADRES,
|
||||
MEMO,
|
||||
#{logChngDvCd},
|
||||
LOG,
|
||||
SMS_SEND_DT,
|
||||
NOW(),
|
||||
#{registIp}
|
||||
FROM GC_NMBR_AGREE
|
||||
WHERE MBTLNB = HEX(AES_ENCRYPT(REPLACE(#{mbtlnb},'-',''), #{secretKey}))
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
</insert>
|
||||
|
||||
<!--SEND TO 상태 변경-->
|
||||
<update id="updateSentToSttus" parameterType="com.wb.domainserver.domain.extra.ntcn.agree.vo.BONmbrAgreeVO">
|
||||
UPDATE GC_SEND_TO
|
||||
SET AGRE_STTUS = 'Y',
|
||||
AGRE_DT = NOW()
|
||||
WHERE 1=1
|
||||
AND SMS_TO_INNB = #{smsToInnb}
|
||||
AND AGRE_STTUS != 'Y'
|
||||
</update>
|
||||
|
||||
<!--SEND 수량 변경-->
|
||||
<update id="updateSendCnt" parameterType="com.wb.domainserver.domain.extra.ntcn.agree.vo.BONmbrAgreeVO">
|
||||
UPDATE GC_SEND GNS , (SELECT COUNT(1) AS AGREE_CNT FROM GC_SEND_TO WHERE SMS_INNB = #{smsInnb} AND AGRE_STTUS = 'Y') B
|
||||
SET GNS.AGRE_CNT = B.AGREE_CNT
|
||||
WHERE GNS.SMS_INNB = #{smsInnb}
|
||||
</update>
|
||||
|
||||
<!-- 비회원 수신 동의 삭제 -->
|
||||
<delete id="deleteBONmbrMarketingAgree" parameterType="com.wb.domainserver.domain.extra.ntcn.agree.vo.BONmbrAgreeVO">
|
||||
DELETE FROM GC_NMBR_AGREE
|
||||
WHERE MBTLNB = HEX(AES_ENCRYPT(REPLACE(#{mbtlnb},'-',''), #{secretKey}))
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
</delete>
|
||||
|
||||
<!--POS 가입 회원(SEND TO) 정보 조회-->
|
||||
<select id = "selectBOPosJoinMbrInfo" parameterType="com.wb.domainserver.domain.extra.ntcn.agree.vo.BONmbrAgreeVO" resultType="com.wb.domainserver.domain.extra.ntcn.agree.vo.BONmbrAgreeVO">
|
||||
SELECT CAST(AES_DECRYPT(UNHEX(RECPTN_NB) , #{secretKey}) AS CHAR(50)) AS MBTLNB,
|
||||
CSTMR_NM AS NM,
|
||||
REPLACE(JSON_EXTRACT(SUBST_DATA, '$.sex'), '"', '') AS SEX ,
|
||||
REPLACE(JSON_EXTRACT(SUBST_DATA, '$.birthYear'), '"', '') AS BIRTH_YEAR,
|
||||
REPLACE(JSON_EXTRACT(SUBST_DATA, '$.birthMonth'), '"', '') AS BIRTH_MONTH
|
||||
FROM GC_SEND_TO
|
||||
WHERE SMS_TO_INNB = #{smsToInnb}
|
||||
</select>
|
||||
|
||||
<!--관리자 POS 가입 회원(SEND TO) Url 조회 -->
|
||||
<select id="selectBOPosJoinMbrUrl" parameterType="com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrVO" resultType="dataMap">
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT TB.*
|
||||
, CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
|
||||
FROM (
|
||||
SELECT
|
||||
GST.CSTMR_NM AS MBR_NM
|
||||
,REPLACE(CONCAT(JSON_EXTRACT(GST.SUBST_DATA, '$.mbrjoin_short_url'), '?storeCode=',JSON_EXTRACT(GST.SUBST_DATA, '$.storeCode'), '&code=', GST.CODE,''), '"','') AS MBR_JOIN_URL
|
||||
,FN_GET_COMMCODE_NAME('CHR_STTUS',GST.STTUS) AS STTUS
|
||||
,DATE_FORMAT(GS.REGIST_DT, '%Y-%m-%d %H:%i:%s') AS REGIST_DT
|
||||
FROM GC_SEND GS
|
||||
INNER JOIN GC_SEND_TO GST
|
||||
ON GS.SOPMAL_CD = GST.SOPMAL_CD
|
||||
AND GS.SMS_INNB = GST.SMS_INNB
|
||||
WHERE 1=1
|
||||
<include refid="BOPosJoinMbrUrlWhere"/>
|
||||
) TB
|
||||
WHERE (@ROWNUM:=0)=0
|
||||
) PV
|
||||
WHERE 1=1
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
</select>
|
||||
|
||||
<!--관리자 POS 가입 회원(SEND TO) Url 갯수 조회 -->
|
||||
<select id="selectBOPosJoinMbrUrlCnt" parameterType="com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrVO" resultType="java.lang.Integer">
|
||||
SELECT
|
||||
COUNT(*)
|
||||
FROM GC_SEND GS
|
||||
INNER JOIN GC_SEND_TO GST
|
||||
ON GS.SOPMAL_CD = GST.SOPMAL_CD
|
||||
AND GS.SMS_INNB = GST.SMS_INNB
|
||||
WHERE 1=1
|
||||
<include refid="BOPosJoinMbrUrlWhere"/>
|
||||
</select>
|
||||
|
||||
<!--관리자 POS 가입 회원(SEND TO) Url 조건 -->
|
||||
<sql id="BOPosJoinMbrUrlWhere">
|
||||
AND GS.SOPMAL_CD = #{sopmalCd}
|
||||
AND GST.CSTMR_NM = REPLACE(#{mbrNm}, ' ','')
|
||||
AND GST.RECPTN_NB = HEX(AES_ENCRYPT(REPLACE(#{telnb}, '-',''), #{secretKey}))
|
||||
AND GST.SEND_TYPE_CD = 'POS'
|
||||
AND GST.CODE <![CDATA[<>]]> ''
|
||||
ORDER BY GST.SMS_TO_INNB DESC
|
||||
</sql>
|
||||
</mapper>
|
||||
@@ -0,0 +1,117 @@
|
||||
<?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.extra.ntcn.smsDeny.mapper.BOSmsDenyMapper">
|
||||
<!--수신거부 조회-->
|
||||
<select id = "selectBOSmsDenyCnt" parameterType="com.wb.domainserver.domain.extra.ntcn.smsDeny.vo.BOSmsDenyVO">
|
||||
SELECT COUNT(1)
|
||||
FROM GC_SMS_DENY
|
||||
WHERE SOPMAL_CD = #{sopmalCd}
|
||||
AND MBTLNB = HEX(AES_ENCRYPT(REPLACE(#{mbtlnb},'-',''), #{secretKey}))
|
||||
</select>
|
||||
|
||||
<!--수신거부 등록-->
|
||||
<insert id="insertBOSmsDeny" parameterType="com.wb.domainserver.domain.extra.ntcn.smsDeny.vo.BOSmsDenyVO">
|
||||
INSERT INTO GC_SMS_DENY
|
||||
(
|
||||
SOPMAL_CD,
|
||||
MBTLNB,
|
||||
REJECT_TELNB,
|
||||
MEMO,
|
||||
REGUSR,
|
||||
REGIST_DT
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#{sopmalCd},
|
||||
HEX(AES_ENCRYPT(REPLACE(#{mbtlnb},'-',''), #{secretKey})),
|
||||
REPLACE(#{rejectTelnb},'-',''),
|
||||
#{memo, jdbcType=VARCHAR},
|
||||
0,
|
||||
NOW()
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
REGIST_DT = SYSDATE()
|
||||
</insert>
|
||||
|
||||
<!--수신거부 해제-->
|
||||
<delete id="deleteBOSmsDeny">
|
||||
DELETE FROM GC_SMS_DENY
|
||||
WHERE 1=1
|
||||
AND MBTLNB = HEX(AES_ENCRYPT(REPLACE(#{mbtlnb},'-',''), #{secretKey}))
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
</delete>
|
||||
|
||||
<!--수신거부 로그 등록-->
|
||||
<insert id="insertBOSmsDenyLog">
|
||||
<selectKey order="BEFORE" keyProperty="smsDenyLogInnb" resultType="String">
|
||||
SELECT IFNULL(MAX(SMS_DENY_LOG_INNB), 0)+1
|
||||
FROM GC_SMS_DENY_LOG
|
||||
</selectKey>
|
||||
INSERT INTO GC_SMS_DENY_LOG
|
||||
(SMS_DENY_LOG_INNB,
|
||||
SOPMAL_CD,
|
||||
MBTLNB,
|
||||
REJECT_TELNB,
|
||||
MEMO,
|
||||
LOG_CHNG_DV_CD,
|
||||
REGUSR,
|
||||
REGIST_DT
|
||||
)
|
||||
SELECT
|
||||
#{smsDenyLogInnb},
|
||||
SOPMAL_CD,
|
||||
MBTLNB,
|
||||
REJECT_TELNB,
|
||||
MEMO,
|
||||
#{logChngDvCd},
|
||||
0,
|
||||
NOW()
|
||||
FROM GC_SMS_DENY
|
||||
WHERE 1=1
|
||||
AND MBTLNB = HEX(AES_ENCRYPT(REPLACE(#{mbtlnb},'-',''), #{secretKey}))
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
</insert>
|
||||
|
||||
|
||||
<!--회원 광고수신동의 거부 혹은 동의 수정-->
|
||||
<update id = "updateBOSmsDenyMbrMarketingAgree">
|
||||
UPDATE GC_MARKETING_AGREE GMA
|
||||
JOIN (SELECT MBR_INNB, MBR_DV_CD FROM GC_MEMBER WHERE MBTLNB = HEX(AES_ENCRYPT(REPLACE(#{mbtlnb},'-',''), #{secretKey}))) AS GM
|
||||
ON GMA.MBR_INNB = GM.MBR_INNB
|
||||
AND GMA.MBR_DV_CD = GM.MBR_DV_CD
|
||||
SET
|
||||
GMA.MARKT_RECPTN_AGRE_AT = #{marktRecptnAgreAt},
|
||||
GMA.SMS_RECPTN_AT = #{marktRecptnAgreAt},
|
||||
GMA.EMAIL_RECPTN_AT = #{marktRecptnAgreAt}
|
||||
WHERE GMA.SOPMAL_CD = #{sopmalCd}
|
||||
</update>
|
||||
|
||||
<!--회원 광고수신동의 로그 등록-->
|
||||
<insert id = "insertBOSmsDenyMbrMarketingAgree">
|
||||
INSERT INTO GC_MARKETING_AGREE_LOG
|
||||
(MARKT_AGREE_INNB,
|
||||
MBR_INNB,
|
||||
MBR_DV_CD,
|
||||
SOPMAL_CD,
|
||||
MARKT_RECPTN_AGRE_AT,
|
||||
MARKT_RECPTN_AGRE_UPDT_DT,
|
||||
REGUSR,
|
||||
REGIST_DT)
|
||||
SELECT
|
||||
CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS MARKT_AGREE_INNB ,
|
||||
MA.MBR_INNB,
|
||||
MA.MBR_DV_CD,
|
||||
MA.SOPMAL_CD,
|
||||
MA.MARKT_RECPTN_AGRE_AT,
|
||||
MA.MARKT_RECPTN_AGRE_UPDT_DT,
|
||||
0,
|
||||
NOW()
|
||||
FROM
|
||||
GC_MARKETING_AGREE MA
|
||||
INNER JOIN GC_MEMBER GM
|
||||
ON GM.MBR_INNB = MA.MBR_INNB
|
||||
AND GM.MBR_DV_CD = MA.MBR_DV_CD
|
||||
WHERE (@ROWNUM:=(SELECT IFNULL(MAX(S.MARKT_AGREE_INNB), 0) FROM GC_MARKETING_AGREE_LOG S)) >= 0
|
||||
AND MA.SOPMAL_CD = #{sopmalCd}
|
||||
AND GM.MBTLNB = HEX(AES_ENCRYPT(REPLACE(#{mbtlnb},'-',''), #{secretKey}))
|
||||
</insert>
|
||||
</mapper>
|
||||
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.alarm.mapper.BOAlarmMapper">
|
||||
|
||||
|
||||
<select id="selectAnswerCount">
|
||||
|
||||
SELECT
|
||||
'게시판' as menuName,
|
||||
T1.BBS_ID,
|
||||
COUNT(T1.BBSCTT_INNB) AS cnt
|
||||
FROM GC_BOARDDATA T1
|
||||
LEFT JOIN GC_BOARDDATA T2 ON (T2.SOPMAL_CD = T1.SOPMAL_CD AND T2.BBS_ID = T1.BBS_ID AND T2.PARNTS_BBSCTT_INNB = T1.BBSCTT_INNB)
|
||||
WHERE T1.SOPMAL_CD = #{sopmalCd}
|
||||
AND T1.BBS_ID IN ('goods_qna','propose_bbs')
|
||||
AND T1.REGIST_DT >= DATE_ADD(NOW(),INTERVAL - 30 DAY)
|
||||
AND T1.USE_AT = 'Y'
|
||||
AND T1.EXPSR_AT = 'Y'
|
||||
AND T1.PARNTS_BBSCTT_INNB IS NULL
|
||||
AND T2.BBSCTT_INNB IS NULL
|
||||
GROUP BY T1.BBS_ID
|
||||
|
||||
</select>
|
||||
|
||||
<select id = "selectRefundCount">
|
||||
|
||||
SELECT
|
||||
'주문' as menuName,
|
||||
COUNT(ORDR_INNB) AS cnt
|
||||
FROM GC_ORDER_REFUND
|
||||
WHERE SOPMAL_CD = #{sopmalCd}
|
||||
AND REFUND_REQST_DT >= DATE_ADD(NOW(),INTERVAL - 30 DAY)
|
||||
AND (REFUND_PROCS_STTUS_CD = '01' OR RETURN_PROCS_STTUS_CD = '01')
|
||||
AND USE_AT = 'Y'
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
|
||||
@@ -0,0 +1,208 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.analytics.mapper.BOAnalyticsMapper">
|
||||
|
||||
|
||||
<!-- ERP 제상품 조회 WHERE 절 -->
|
||||
<sql id="selectErpGoodsListWhere">
|
||||
<![CDATA[
|
||||
WHERE 1=1
|
||||
AND analysis_order_history_innb BETWEEN #{firstIndex} AND #{lastIndex}
|
||||
]]>
|
||||
<if test="brandCd != null and brandCd != ''">
|
||||
<![CDATA[
|
||||
AND sopmal_cd = #{brandCd}
|
||||
]]>
|
||||
</if>
|
||||
<if test="barcode != null and barcode != ''">
|
||||
<![CDATA[
|
||||
AND barcode = #{barcode}
|
||||
]]>
|
||||
</if>
|
||||
<if test="goodsName != null and goodsName != ''">
|
||||
<![CDATA[
|
||||
AND goods_nm LIKE CONCAT('%', #{goodsName}, '%')
|
||||
]]>
|
||||
</if>
|
||||
|
||||
</sql>
|
||||
|
||||
<sql id="selectErpSetGoodsListWhere">
|
||||
<![CDATA[
|
||||
WHERE 1=1
|
||||
]]>
|
||||
<if test="brandCd != null and brandCd != ''">
|
||||
<![CDATA[
|
||||
AND sopmal_cd = #{brandCd}
|
||||
]]>
|
||||
</if>
|
||||
<if test="setCode != null and setCode != ''">
|
||||
<![CDATA[
|
||||
AND set_code = #{setCode}
|
||||
]]>
|
||||
</if>
|
||||
<if test="barcode != null and barcode != ''">
|
||||
<![CDATA[
|
||||
AND barcode = #{barcode}
|
||||
]]>
|
||||
</if>
|
||||
<if test="setGoodsName != null and setGoodsName != ''">
|
||||
<![CDATA[
|
||||
AND set_goods_nm LIKE CONCAT('%', #{setGoodsName}, '%')
|
||||
]]>
|
||||
</if>
|
||||
<if test="goodsName != null and goodsName != ''">
|
||||
<![CDATA[
|
||||
AND goods_nm LIKE CONCAT('%', #{goodsName}, '%')
|
||||
]]>
|
||||
</if>
|
||||
|
||||
</sql>
|
||||
|
||||
<sql id="selectOrderHistoryListWhere">
|
||||
<![CDATA[
|
||||
WHERE 1=1
|
||||
]]>
|
||||
<if test="brandCd != null and brandCd != ''">
|
||||
<![CDATA[
|
||||
AND sopmal_cd = #{brandCd}
|
||||
]]>
|
||||
</if>
|
||||
|
||||
</sql>
|
||||
|
||||
<select id="selectErpGoodsList"
|
||||
parameterType="com.wb.domainserver.domain.gcone.analytics.vo.BOAnanlyticsErpGoodsSrchVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
ROW_NUMBER() OVER(ORDER BY analysis_erp_goods_innb DESC) AS rnum,
|
||||
analysis_erp_goods_innb as analysisErpGoodsInnb,
|
||||
barcode as barcode,
|
||||
sopmal_cd as sopmalCd,
|
||||
goods_nm as goodsNm,
|
||||
goods_qy as goodsQy,
|
||||
goods_ea as goodsEa,
|
||||
goods_same_code as goodsSameCode,
|
||||
goods_manager as goodsManager
|
||||
FROM
|
||||
GC_ANALYSIS_ERP_GOODS
|
||||
]]>
|
||||
<include refid = "selectErpGoodsListWhere"/>
|
||||
<![CDATA[
|
||||
ORDER BY analysis_erp_goods_innb DESC
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<select id="selectErpGoodsListCnt"
|
||||
parameterType="com.wb.domainserver.domain.gcone.analytics.vo.BOAnanlyticsErpGoodsSrchVO">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
count(*)
|
||||
FROM
|
||||
GC_ANALYSIS_ERP_GOODS
|
||||
]]>
|
||||
<include refid = "selectErpGoodsListWhere"/>
|
||||
</select>
|
||||
|
||||
<select id="selectErpSetGoodsList"
|
||||
parameterType="com.wb.domainserver.domain.gcone.analytics.vo.BOAnanlyticsErpGoodsSrchVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
ROW_NUMBER() OVER(ORDER BY analysis_erp_set_goods_innb DESC) AS rnum,
|
||||
set_code as setCode,
|
||||
barcode as barcode,
|
||||
sopmal_cd as sopmalCd,
|
||||
barcode_qy as barcodeQy,
|
||||
goods_nm as goodsNm,
|
||||
set_goods_nm as setGoodsNm,
|
||||
gift_yn as giftYn
|
||||
FROM
|
||||
GC_ANALYSIS_ERP_SET_GOODS
|
||||
]]>
|
||||
<include refid = "selectErpSetGoodsListWhere"/>
|
||||
<![CDATA[
|
||||
ORDER BY analysis_erp_set_goods_innb DESC
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<select id="selectErpSetGoodsListCnt"
|
||||
parameterType="com.wb.domainserver.domain.gcone.analytics.vo.BOAnanlyticsErpGoodsSrchVO">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
count(*)
|
||||
FROM
|
||||
GC_ANALYSIS_ERP_SET_GOODS
|
||||
]]>
|
||||
<include refid = "selectErpSetGoodsListWhere"/>
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectSopmalCd">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
SOPMAL_CD as sopmalCd ,SOPMAL_NM as sopmalNm
|
||||
FROM GC_SHOP
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<update id="updateErpGoods">
|
||||
<foreach collection="jsonData" item="item" index="index" separator=";">
|
||||
UPDATE GC_ANALYSIS_ERP_GOODS SET
|
||||
goods_ea = #{item.goodsEa},
|
||||
goods_same_code = #{item.goodsSameCode},
|
||||
goods_manager = #{item.goodsManager}
|
||||
WHERE analysis_erp_goods_innb = #{item.id}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<select id="selectOrderHistoryList"
|
||||
parameterType="com.wb.domainserver.domain.gcone.analytics.vo.BOAnanlyticsErpGoodsSrchVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
analysis_order_history_innb as rnum,
|
||||
SHOP_SET_CD as shopSetCd,
|
||||
barcode as barcode,
|
||||
sopmal_cd as sopmalCd,
|
||||
barcode_qy as barcodeQy,
|
||||
goods_nm as goodsNm,
|
||||
ordr_innb as ordrInnb,
|
||||
rl_setle_amt as rlSetleAmt,
|
||||
CASE WHEN ordr_sttus_cd = '25' THEN '결제확인'
|
||||
WHEN ordr_sttus_cd = '65' THEN '배송중'
|
||||
WHEN ordr_sttus_cd = '75' THEN '배송완료'
|
||||
WHEN ordr_sttus_cd = '85' THEN '취소'
|
||||
ELSE '주문상태 확인 필요' END
|
||||
as ordrSttusCd,
|
||||
goods_qy as goods_qy,
|
||||
payment_dt as paymentDt,
|
||||
sopmal_dv as sopmalDv
|
||||
FROM
|
||||
GC_ANALYSIS_ORDER_HISTORY
|
||||
]]>
|
||||
<include refid = "selectOrderHistoryListWhere"/>
|
||||
<![CDATA[
|
||||
ORDER BY analysis_order_history_innb
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<select id="selectOrderHistoryListCnt"
|
||||
parameterType="com.wb.domainserver.domain.gcone.analytics.vo.BOAnanlyticsErpGoodsSrchVO">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
count(*)
|
||||
FROM
|
||||
GC_ANALYSIS_ORDER_HISTORY
|
||||
]]>
|
||||
<include refid = "selectOrderHistoryListWhere"/>
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
|
||||
1073
src/main/resources/mybatis/xml/mapper/gcone/api/BOApiMapper.xml
Normal file
1073
src/main/resources/mybatis/xml/mapper/gcone/api/BOApiMapper.xml
Normal file
File diff suppressed because it is too large
Load Diff
173
src/main/resources/mybatis/xml/mapper/gcone/app/BOAppMapper.xml
Normal file
173
src/main/resources/mybatis/xml/mapper/gcone/app/BOAppMapper.xml
Normal file
@@ -0,0 +1,173 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.app.mapper.BOAppMapper">
|
||||
|
||||
<!-- 앱 실행시 디바이스 정보 등록 -->
|
||||
<insert id="insertBOAppDeviceInfo"
|
||||
parameterType="com.wb.domainserver.domain.gcone.app.vo.BOAppMbrDvcVO"
|
||||
useGeneratedKeys="true"
|
||||
keyProperty="mbrDeviceInnb">
|
||||
<![CDATA[
|
||||
INSERT INTO GC_MEMBER_DEVICE_INFO (
|
||||
SOPMAL_CD,
|
||||
FCM_TOKEN,
|
||||
PUSH_AGRE_AT,
|
||||
PHAC_AGRE_AT,
|
||||
DEVICE_ID,
|
||||
DEVICE_OS_NM,
|
||||
DEVICE_OS_VER,
|
||||
DEVICE_APP_VER,
|
||||
REGIST_DT,
|
||||
UPDT_DT
|
||||
) VALUES (
|
||||
#{sopmalCd},
|
||||
#{fcmToken},
|
||||
#{pushAgreAt},
|
||||
#{phacAgreAt},
|
||||
#{deviceId},
|
||||
#{deviceOsNm},
|
||||
#{deviceOsVer},
|
||||
#{deviceAppVer},
|
||||
NOW(),
|
||||
NOW()
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- 앱 실행시 디바이스 정보 수정 -->
|
||||
<update id="updateBOAppDeviceInfo"
|
||||
parameterType="com.wb.domainserver.domain.gcone.app.vo.BOAppMbrDvcVO">
|
||||
<![CDATA[
|
||||
UPDATE GC_MEMBER_DEVICE_INFO
|
||||
SET FCM_TOKEN = #{fcmToken},
|
||||
DEVICE_OS_NM = #{deviceOsNm},
|
||||
DEVICE_OS_VER = #{deviceOsVer},
|
||||
DEVICE_APP_VER = #{deviceAppVer},
|
||||
UPDT_DT = NOW()
|
||||
WHERE DEVICE_ID = #{deviceId}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</update>
|
||||
|
||||
<!-- 앱 로그인시 회원-디바이스 정보 등록 -->
|
||||
<insert id="insertBOAppMbrDvcInfo"
|
||||
parameterType="com.wb.domainserver.domain.gcone.app.vo.BOAppMbrDvcVO"
|
||||
useGeneratedKeys="true"
|
||||
keyProperty="mbrDeviceInnb">
|
||||
<![CDATA[
|
||||
INSERT INTO GC_MEMBER_DEVICE_INFO (
|
||||
SOPMAL_CD,
|
||||
MBR_INNB,
|
||||
MBR_DV_CD,
|
||||
MBR_ID,
|
||||
FCM_TOKEN,
|
||||
PUSH_AGRE_AT,
|
||||
PHAC_AGRE_AT,
|
||||
DEVICE_ID,
|
||||
DEVICE_OS_NM,
|
||||
DEVICE_OS_VER,
|
||||
DEVICE_APP_VER,
|
||||
REGIST_DT,
|
||||
UPDT_DT
|
||||
) VALUES (
|
||||
#{sopmalCd},
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
#{mbrId},
|
||||
#{fcmToken},
|
||||
#{pushAgreAt},
|
||||
#{phacAgreAt},
|
||||
#{deviceId},
|
||||
#{deviceOsNm},
|
||||
#{deviceOsVer},
|
||||
#{deviceAppVer},
|
||||
NOW(),
|
||||
NOW()
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- 앱 로그인시 회원-디바이스 정보 수정 -->
|
||||
<update id="updateBOAppMbrDvcInfo"
|
||||
parameterType="com.wb.domainserver.domain.gcone.app.vo.BOAppMbrDvcVO">
|
||||
<![CDATA[
|
||||
UPDATE GC_MEMBER_DEVICE_INFO
|
||||
SET MBR_INNB = #{mbrInnb},
|
||||
MBR_DV_CD = #{mbrDvCd},
|
||||
MBR_ID = #{mbrId},
|
||||
FCM_TOKEN = #{fcmToken},
|
||||
DEVICE_OS_NM = #{deviceOsNm},
|
||||
DEVICE_OS_VER = #{deviceOsVer},
|
||||
DEVICE_APP_VER = #{deviceAppVer},
|
||||
UPDT_DT = NOW()
|
||||
WHERE DEVICE_ID = #{deviceId}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</update>
|
||||
|
||||
<!-- 앱 알림동의 선택시 수정 -->
|
||||
<update id="updateBOAppMbrDvcPushAgre"
|
||||
parameterType="com.wb.domainserver.domain.gcone.app.vo.BOAppMbrDvcVO">
|
||||
<![CDATA[
|
||||
UPDATE GC_MEMBER_DEVICE_INFO
|
||||
SET PUSH_AGRE_AT = #{pushAgreAt},
|
||||
UPDT_DT = NOW()
|
||||
WHERE DEVICE_ID = #{deviceId}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</update>
|
||||
|
||||
<!-- 앱 신체활동접근동의 선택시 수정 -->
|
||||
<update id="updateBOAppMbrDvcPhacAgre"
|
||||
parameterType="com.wb.domainserver.domain.gcone.app.vo.BOAppMbrDvcVO">
|
||||
<![CDATA[
|
||||
UPDATE GC_MEMBER_DEVICE_INFO
|
||||
SET PHAC_AGRE_AT = #{phacAgreAt},
|
||||
UPDT_DT = NOW()
|
||||
WHERE DEVICE_ID = #{deviceId}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</update>
|
||||
|
||||
<!-- 디바이스 정보 조회 -->
|
||||
<select id="selectBOAppMbrDvcInfo"
|
||||
parameterType="com.wb.domainserver.domain.gcone.app.vo.BOAppMbrDvcVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT gmdi.SOPMAL_CD,
|
||||
gmdi.MBR_INNB,
|
||||
gmdi.MBR_DV_CD,
|
||||
gmdi.MBR_ID,
|
||||
gmdi.FCM_TOKEN,
|
||||
gmdi.PUSH_AGRE_AT,
|
||||
gmdi.DEVICE_ID,
|
||||
gmdi.DEVICE_OS_NM,
|
||||
gmdi.DEVICE_OS_VER,
|
||||
gmdi.DEVICE_APP_VER,
|
||||
gmdi.REGIST_DT,
|
||||
gmdi.UPDT_DT
|
||||
FROM GC_MEMBER_DEVICE_INFO gmdi
|
||||
LEFT JOIN GC_MEMBER gm ON gm.MBR_INNB = gmdi.MBR_INNB AND gm.MBR_DV_CD = gmdi.MBR_DV_CD
|
||||
WHERE 1 = 1
|
||||
AND gmdi.SOPMAL_CD = #{sopmalCd}
|
||||
AND gmdi.MBR_INNB = #{mbrInnb}
|
||||
AND gmdi.MBR_DV_CD = #{mbrDvCd}
|
||||
AND gmdi.DEVICE_ID = #{deviceId}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 디바이스 정보 중복 조회 -->
|
||||
<select id="selectBOAppMbrDvcDplct"
|
||||
parameterType="com.wb.domainserver.domain.gcone.app.vo.BOAppMbrDvcVO"
|
||||
resultType="Integer">
|
||||
<![CDATA[
|
||||
SELECT COUNT(*)
|
||||
FROM GC_MEMBER_DEVICE_INFO
|
||||
WHERE 1 = 1
|
||||
AND DEVICE_ID = #{deviceId}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
1666
src/main/resources/mybatis/xml/mapper/gcone/bbs/bbs/BOBbsMapper.xml
Normal file
1666
src/main/resources/mybatis/xml/mapper/gcone/bbs/bbs/BOBbsMapper.xml
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,369 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.bbs.cm.mapper.BOCmMapper">
|
||||
<!-- 댓글 목록 조회 -->
|
||||
<select id = "selectBOBCmListCnt"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bbs.cm.vo.BOCmVO"
|
||||
resultType="Integer">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
COUNT(1)
|
||||
FROM
|
||||
GC_BOARDCOMMENT FBC
|
||||
WHERE 1 = 1
|
||||
AND FBC.DEPTH = 0
|
||||
AND FBC.SOPMAL_CD = #{sopmalCd}
|
||||
AND (FBC.USE_AT = 'Y' OR (FBC.USE_AT = 'N' && 0 < (SELECT
|
||||
COUNT(FBC2.CM_INNB)
|
||||
FROM
|
||||
GC_BOARDCOMMENT FBC2
|
||||
WHERE
|
||||
1 = 1
|
||||
AND FBC2.USE_AT = 'Y'
|
||||
AND FBC2.DEPTH = 1
|
||||
AND FBC2.PARNTS_CM_INNB = FBC.CM_INNB
|
||||
AND FBC2.SOPMAL_CD = FBC.SOPMAL_CD
|
||||
AND FBC2.BBSCTT_INNB = FBC.BBSCTT_INNB
|
||||
LIMIT 1)))
|
||||
AND FBC.BBSCTT_INNB = #{bbscttInnb}
|
||||
]]>
|
||||
</select>
|
||||
<!-- 댓글 목록 조회 -->
|
||||
<select id = "selectBOCmListInqire"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bbs.cm.vo.BOCmVO"
|
||||
resultType="DataMap">
|
||||
<![CDATA[
|
||||
SELECT FBC.CM_INNB
|
||||
, FBC.BBSCTT_INNB
|
||||
, FBC.PARNTS_CM_INNB
|
||||
, FBC.SOPMAL_CD
|
||||
, FBC.CN
|
||||
, FBC.SECRET_BBSCTT_AT
|
||||
, FBC.USE_AT
|
||||
, FBC.REGUSR_DV_CD
|
||||
, FBC.IP
|
||||
, FBC.PASSWORD
|
||||
, FBC.DEPTH
|
||||
, FBC.REGUSR
|
||||
, FBC.REGUSR_ID
|
||||
, FBC.REGUSR_NM
|
||||
, DATE_FORMAT(FBC.REGIST_DT, '%Y.%m.%d. %H:%i') REGIST_DT
|
||||
, CONCAT(SUBSTRING(FBC.REGUSR_ID, 1, 4), '***') MASKING_REGUSR_ID
|
||||
, CONCAT(SUBSTRING(FBC.REGUSR_NM, 1, 1), '*',
|
||||
SUBSTRING(FBC.REGUSR_NM, CHAR_LENGTH(FBC.REGUSR_NM), 1)) MASKING_REGUSR_NM
|
||||
, IFNULL(FBC.RECOMEND_CNT, 0) RECOMEND_CNT
|
||||
, IFNULL(FBC.NONRECOMEND_CNT, 0) NONRECOMEND_CNT
|
||||
, CASE
|
||||
WHEN DATE_ADD(FBC.REGIST_DT, INTERVAL FBM.NEW_NTT_STDR_DE_CNT DAY) > SYSDATE() THEN 'Y'
|
||||
ELSE 'N'
|
||||
END NEW_AT
|
||||
, FBM.WRTER_INDICT_TY_CD
|
||||
, IFNULL(FBM.MNGR_NM, '관리자') AS MNGR_NM
|
||||
, FMG.MBR_GRAD_NM
|
||||
, GM.JOIN_MTH_CD
|
||||
, GM.MBR_DV_CD
|
||||
, GM.MBR_INNB
|
||||
FROM GC_BOARDCOMMENT FBC
|
||||
INNER JOIN GC_BOARDDATA FB
|
||||
ON FBC.BBSCTT_INNB = FB.BBSCTT_INNB
|
||||
AND FBC.SOPMAL_CD = FB.SOPMAL_CD
|
||||
INNER JOIN GC_BOARDMANAGER FBM
|
||||
ON FB.BBS_ID = FBM.BBS_ID
|
||||
AND FBM.SOPMAL_CD = FBC.SOPMAL_CD
|
||||
LEFT JOIN GC_MEMBER_GRAD_MAPPING FMGM
|
||||
ON FBC.SOPMAL_CD = FMGM.SOPMAL_CD
|
||||
AND FBC.REGUSR = FMGM.MBR_INNB
|
||||
LEFT JOIN GC_MEMBER GM
|
||||
ON GM.MBR_DV_CD = FMGM.MBR_DV_CD
|
||||
AND GM.MBR_INNB = FMGM.MBR_INNB
|
||||
LEFT JOIN GC_MEMBER_GRAD FMG
|
||||
ON FMGM.MBR_GRAD_INNB = FMG.MBR_GRAD_INNB
|
||||
AND FMG.SOPMAL_CD = FBC.SOPMAL_CD
|
||||
WHERE 1=1
|
||||
AND FBC.DEPTH = 0
|
||||
AND (FBC.USE_AT = 'Y' OR (FBC.USE_AT = 'N' && 0 < (SELECT
|
||||
COUNT(FBC2.CM_INNB)
|
||||
FROM
|
||||
GC_BOARDCOMMENT FBC2
|
||||
WHERE
|
||||
1 = 1
|
||||
AND FBC2.USE_AT = 'Y'
|
||||
AND FBC2.DEPTH = 1
|
||||
AND FBC2.PARNTS_CM_INNB = FBC.CM_INNB
|
||||
AND FBC2.SOPMAL_CD = FBC.SOPMAL_CD
|
||||
AND FBC2.BBSCTT_INNB = FBC.BBSCTT_INNB
|
||||
LIMIT 1)))
|
||||
AND FBC.SOPMAL_CD = #{sopmalCd}
|
||||
AND FBC.BBSCTT_INNB = #{bbscttInnb}
|
||||
ORDER BY FBC.CM_INNB DESC
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
]]>
|
||||
</select>
|
||||
<!-- 대댓글 목록 조회 -->
|
||||
<select id = "selectBOCmAnswListInqire"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bbs.cm.vo.BOCmVO"
|
||||
resultType="DataMap">
|
||||
SELECT FBC.CM_INNB
|
||||
,FBC.BBSCTT_INNB
|
||||
,FBC.SOPMAL_CD
|
||||
,FBC.CN
|
||||
,DATE_FORMAT(FBC.REGIST_DT,'%Y-%m-%d')REGIST_DT
|
||||
,CONCAT(SUBSTRING(FBC.REGUSR_ID, 1, 4), '***')MASKING_REGUSR_ID
|
||||
,CONCAT(SUBSTRING(FBC.REGUSR_NM, 1, 1),'*',SUBSTRING(FBC.REGUSR_NM,CHAR_LENGTH(FBC.REGUSR_NM),1))MASKING_REGUSR_NM
|
||||
,FBC.PARNTS_CM_INNB
|
||||
,FBC.SECRET_BBSCTT_AT
|
||||
,FBC.USE_AT
|
||||
,FBC.REGUSR_DV_CD
|
||||
,FBC.IP
|
||||
,FBC.PASSWORD
|
||||
,FBC.DEPTH
|
||||
,FBC.REGUSR
|
||||
,FBC.REGUSR_ID
|
||||
,FBC.REGUSR_NM
|
||||
,IFNULL(FBC.RECOMEND_CNT, 0) RECOMEND_CNT
|
||||
,IFNULL(FBC.NONRECOMEND_CNT, 0) NONRECOMEND_CNT
|
||||
,CASE
|
||||
WHEN DATE_ADD(FBC.REGIST_DT, INTERVAL FBM.NEW_NTT_STDR_DE_CNT DAY) > SYSDATE() THEN 'Y'
|
||||
ELSE 'N'
|
||||
END NEW_AT
|
||||
,FBM.WRTER_INDICT_TY_CD
|
||||
,FBM.MNGR_NM
|
||||
,FMG.MBR_GRAD_NM
|
||||
,GM.JOIN_MTH_CD
|
||||
,GM.MBR_DV_CD
|
||||
,GM.MBR_INNB
|
||||
FROM GC_BOARDCOMMENT FBC
|
||||
INNER JOIN GC_BOARDDATA FB
|
||||
ON FBC.BBSCTT_INNB = FB.BBSCTT_INNB
|
||||
AND FBC.SOPMAL_CD = FB.SOPMAL_CD
|
||||
INNER JOIN GC_BOARDMANAGER FBM
|
||||
ON FB.BBS_ID = FBM.BBS_ID
|
||||
AND FBM.SOPMAL_CD = FBC.SOPMAL_CD
|
||||
LEFT JOIN GC_MEMBER_GRAD_MAPPING FMGM
|
||||
ON FBC.SOPMAL_CD = FMGM.SOPMAL_CD
|
||||
AND FBC.REGUSR = FMGM.MBR_INNB
|
||||
LEFT JOIN GC_MEMBER GM
|
||||
ON GM.MBR_DV_CD = FMGM.MBR_DV_CD
|
||||
AND GM.MBR_INNB = FMGM.MBR_INNB
|
||||
LEFT JOIN GC_MEMBER_GRAD FMG
|
||||
ON FMGM.MBR_GRAD_INNB = FMG.MBR_GRAD_INNB
|
||||
AND FMG.SOPMAL_CD = FBC.SOPMAL_CD
|
||||
WHERE 1=1
|
||||
AND FBC.DEPTH = 1
|
||||
AND FBC.USE_AT = 'Y'
|
||||
AND FBC.SOPMAL_CD = #{sopmalCd}
|
||||
AND FBC.PARNTS_CM_INNB IN
|
||||
<foreach collection="cmInnbArr" item="cmInnbArr" open="(" close=")" separator=",">
|
||||
#{cmInnbArr}
|
||||
</foreach>
|
||||
AND FBC.BBSCTT_INNB = #{bbscttInnb}
|
||||
</select>
|
||||
<select id="selectBOCmWrter" parameterType="com.wb.domainserver.domain.gcone.bbs.gnrlbbsctt.vo.BOGnrlbbscttVO"
|
||||
resultType="dataMap">
|
||||
SELECT
|
||||
CONCAT(SUBSTRING(BB.REGUSR_ID, 1, 3), REPEAT('*', CHAR_LENGTH(BB.REGUSR_ID) - 3))MNGR_REGUSR_ID,
|
||||
BB.REGUSR_ID,
|
||||
BB.REGUSR,
|
||||
BB.MBR_GRAD_NM,
|
||||
CONCAT(SUBSTRING(BB.REGUSR_NM, 1, 1), REPEAT('*', CHAR_LENGTH(BB.REGUSR_NM) - 2),SUBSTRING(BB.REGUSR_NM,CHAR_LENGTH(BB.REGUSR_NM),1))REGUSR_NM,
|
||||
BB.WRTER_INDICT_TY_CD,
|
||||
BB.MNGR_NM,
|
||||
BB.REGUSR_DV_CD
|
||||
FROM(SELECT
|
||||
AA.*,
|
||||
(SELECT
|
||||
BB.MBR_GRAD_NM
|
||||
FROM
|
||||
(SELECT
|
||||
FMG.MBR_GRAD_NM
|
||||
FROM
|
||||
GC_MEMBER_GRAD_MAPPING FMGMG
|
||||
LEFT OUTER JOIN GC_MEMBER_GRAD FMG
|
||||
on FMGMG.MBR_GRAD_INNB = FMG.MBR_GRAD_INNB
|
||||
AND FMGMG.SOPMAL_CD = FMG.SOPMAL_CD
|
||||
WHERE FMGMG.SOPMAL_CD= AA.SOPMAL_CD
|
||||
AND FMGMG.MBR_INNB = AA.REGUSR)BB) AS MBR_GRAD_NM
|
||||
FROM
|
||||
(SELECT FBC.REGUSR_DV_CD
|
||||
,FBC.REGUSR_NM
|
||||
,FBC.REGUSR_ID
|
||||
,FBC.REGUSR
|
||||
,FBC.SOPMAL_CD
|
||||
,FBC.DEPTH
|
||||
,FBM.WRTER_INDICT_TY_CD
|
||||
,IFNULL(FBM.MNGR_NM,'관리자')MNGR_NM
|
||||
FROM
|
||||
GC_BOARDCOMMENT FBC
|
||||
INNER JOIN GC_BOARDDATA FB
|
||||
ON FBC.SOPMAL_CD = FB.SOPMAL_CD
|
||||
AND FBC.BBSCTT_INNB = FB.BBSCTT_INNB
|
||||
INNER JOIN GC_BOARDMANAGER FBM
|
||||
ON FB.SOPMAL_CD = FBM.SOPMAL_CD
|
||||
AND FB.BBS_ID = FBM.BBS_ID
|
||||
WHERE 1 = 1
|
||||
AND FBC.CM_INNB = #{cmInnbInt}
|
||||
AND FB.SOPMAL_CD = #{sopmalCd})AA
|
||||
)BB
|
||||
|
||||
</select>
|
||||
|
||||
<!-- 게시글 상세 조회 가능 여부 판단 -->
|
||||
<select id="selectBOCmRegusrCnfirm"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bbs.cm.vo.BOCmVO"
|
||||
resultType="dataMap">
|
||||
SELECT
|
||||
CASE
|
||||
WHEN GB.SECRET_BBSCTT_AT = 'N' AND GB.REGUSR_DV_CD = '01'
|
||||
<if test = "!@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(crudDv, 'R')"> /* 수정, 삭제일 경우 */
|
||||
AND GB.REGUSR = #{mbrInnb}
|
||||
</if> THEN 'YES' /* 회원이 쓴 글이고 작성자가 본인일 시 */
|
||||
<if test = "!@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(crudDv, 'R')"> /* 회원이 쓴 글이고 작성자가 본인이 아닐 시 (수정, 삭제시) */
|
||||
WHEN GB.SECRET_BBSCTT_AT = 'N' AND GB.REGUSR_DV_CD = '01' AND GB.REGUSR <![CDATA[<>]]> #{mbrInnb} AND 0 <![CDATA[<]]> #{mbrInnb} THEN 'OTHER'
|
||||
WHEN GB.SECRET_BBSCTT_AT = 'N' AND GB.REGUSR_DV_CD = '01' AND 0 = #{mbrInnb} THEN 'LOGIN' /* 회원이 쓴 글이고 접속자가 비회원일 경우 로그인 유도 */
|
||||
</if>
|
||||
<choose>
|
||||
<when test="!@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(crudDv, 'R')">
|
||||
WHEN GB.SECRET_BBSCTT_AT = 'N' AND GB.REGUSR_DV_CD = '02' THEN 'PW' /* 관리자가 쓴 글 */
|
||||
WHEN GB.SECRET_BBSCTT_AT = 'N' AND GB.REGUSR_DV_CD = '99' THEN 'PW' /* 비회원 수정, 삭제일 경우 */
|
||||
</when>
|
||||
<otherwise>
|
||||
WHEN GB.SECRET_BBSCTT_AT = 'N' AND GB.REGUSR_DV_CD = '02' THEN 'YES' /* 관리자가 쓴 글 */
|
||||
WHEN GB.SECRET_BBSCTT_AT = 'N' AND GB.REGUSR_DV_CD = '99' THEN 'YES' /* 비회원 읽기 일 경우 */
|
||||
</otherwise>
|
||||
</choose>
|
||||
WHEN GB.SECRET_BBSCTT_AT = 'Y' AND GB.REGUSR_DV_CD <![CDATA[<>]]> '01' THEN 'PW' /* 작성자 구분이 회원이 아닐경우 비밀번호 입력 */
|
||||
WHEN GB.SECRET_BBSCTT_AT = 'Y' AND GB.REGUSR_DV_CD = '01' AND GB.REGUSR = #{mbrInnb} THEN 'YES' /* 회원이 쓴 글이고 작성자가 본인인 경우 */
|
||||
WHEN GB.SECRET_BBSCTT_AT = 'Y' AND GB.REGUSR_DV_CD = '01' AND GB.REGUSR <![CDATA[<>]]> #{mbrInnb} AND 0 <![CDATA[<]]> #{mbrInnb} THEN 'OTHER' /* 회원이 쓴 글이고 작성자가 본인이 아니고 현재 접속자가 회원인 경우 */
|
||||
WHEN GB.SECRET_BBSCTT_AT = 'Y' AND GB.REGUSR_DV_CD = '01' AND 0 = #{mbrInnb} THEN 'LOGIN' /* 회원이 쓴 글이고 접속자가 비회원일 경우 로그인 유도 */
|
||||
END MOVE_AT
|
||||
FROM GC_BOARDCOMMENT GB
|
||||
WHERE GB.BBSCTT_INNB = #{bbscttInnb}
|
||||
AND GB.SOPMAL_CD = #{sopmalCd}
|
||||
AND GB.CM_INNB = #{cmInnb}
|
||||
</select>
|
||||
|
||||
<!-- 댓글 조회 -->
|
||||
<select id="selectBOCmCn" parameterType="com.wb.domainserver.domain.gcone.bbs.cm.vo.BOCmVO"
|
||||
resultType="dataMap">
|
||||
SELECT FBC.CN
|
||||
,FBC.CM_INNB
|
||||
,FBC.PASSWORD
|
||||
,FBC.SECRET_BBSCTT_AT
|
||||
,IFNULL(FBC.RECOMEND_CNT,0)RECOMEND_CNT
|
||||
,IFNULL(FBC.NONRECOMEND_CNT,0)NONRECOMEND_CNT
|
||||
,FBC.REGUSR_NM
|
||||
FROM GC_BOARDCOMMENT FBC
|
||||
WHERE FBC.BBSCTT_INNB = #{bbscttInnb}
|
||||
AND FBC.SOPMAL_CD = #{sopmalCd}
|
||||
AND FBC.CM_INNB = #{cmInnb}
|
||||
</select>
|
||||
|
||||
<!-- 댓글 등록 -->
|
||||
<insert id="insertBOCmRegist">
|
||||
INSERT INTO GC_BOARDCOMMENT (
|
||||
SOPMAL_CD,
|
||||
BBSCTT_INNB,
|
||||
PARNTS_CM_INNB,
|
||||
REGUSR_DV_CD,
|
||||
REGUSR_ID,
|
||||
REGUSR_NM,
|
||||
DEPTH,
|
||||
PASSWORD,
|
||||
CN,
|
||||
SECRET_BBSCTT_AT,
|
||||
INQIRE_CNT,
|
||||
RECOMEND_CNT,
|
||||
NONRECOMEND_CNT,
|
||||
AGENT_ID,
|
||||
IP,
|
||||
USE_AT,
|
||||
REGUSR,
|
||||
REGIST_DT,
|
||||
UPDUSR,
|
||||
UPDT_DT
|
||||
)
|
||||
VALUES (
|
||||
#{sopmalCd},
|
||||
#{bbscttInnb},
|
||||
#{parntsCmInnb},
|
||||
#{regusrDvCd},
|
||||
#{regusrId},
|
||||
#{regusrNm},
|
||||
#{depth},
|
||||
MD5(#{password}),
|
||||
#{cn},
|
||||
#{secretBbscttAt},
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
#{agentId},
|
||||
#{ip},
|
||||
'Y',
|
||||
#{regusr},
|
||||
NOW(),
|
||||
#{updusr},
|
||||
NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 댓글 수정 -->
|
||||
<update id="updateBOCmUpdt" parameterType="com.wb.domainserver.domain.gcone.bbs.cm.vo.BOCmVO">
|
||||
UPDATE GC_BOARDCOMMENT
|
||||
SET CN = #{cn},
|
||||
UPDUSR = #{updusr},
|
||||
UPDT_DT = NOW(),
|
||||
SECRET_BBSCTT_AT = #{secretBbscttAt}
|
||||
WHERE CM_INNB = #{cmInnb}
|
||||
AND BBSCTT_INNB = #{bbscttInnb}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
</update>
|
||||
|
||||
<!-- 댓글 논리삭제 -->
|
||||
<update id="updateBOCmDel" parameterType="DataMap">
|
||||
UPDATE GC_BOARDCOMMENT
|
||||
SET USE_AT = #{useAt},
|
||||
UPDUSR = #{updusr},
|
||||
UPDT_DT = NOW()
|
||||
WHERE BBSCTT_INNB = #{bbscttInnb}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND CM_INNB = #{cmInnb}
|
||||
</update>
|
||||
<!-- 비밀번호 체크 -->
|
||||
<select id = "selectBOComparPassword" parameterType="com.wb.domainserver.domain.gcone.bbs.cm.vo.BOCmVO"
|
||||
resultType="Integer">
|
||||
SELECT COUNT(*)
|
||||
FROM GC_BOARDCOMMENT FB
|
||||
WHERE 1=1
|
||||
AND FB.PASSWORD = MD5(#{password})
|
||||
AND FB.CM_INNB = #{cmInnb}
|
||||
AND FB.SOPMAL_CD = #{sopmalCd}
|
||||
</select>
|
||||
<!--추천 비추천 업데이트-->
|
||||
<update id="updateBOCmRecomendUpdt" parameterType="com.wb.domainserver.domain.gcone.bbs.cm.vo.BOCmVO">
|
||||
UPDATE GC_BOARDCOMMENT FBC, (
|
||||
SELECT
|
||||
IFNULL(MAX(RECOMEND_CNT), 0) + 1 AS RECOMEND_CNT
|
||||
,IFNULL(MAX(NONRECOMEND_CNT), 0) + 1 AS NONRECOMEND_CNT
|
||||
,BBSCTT_INNB
|
||||
,SOPMAL_CD
|
||||
,CM_INNB
|
||||
FROM
|
||||
GC_BOARDCOMMENT
|
||||
WHERE
|
||||
1 = 1
|
||||
AND BBSCTT_INNB = #{bbscttInnb}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND CM_INNB = #{cmInnb})FBC2
|
||||
SET
|
||||
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(recomendDv, 'recommend')">
|
||||
FBC.RECOMEND_CNT = FBC2.RECOMEND_CNT
|
||||
</if>
|
||||
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(recomendDv, 'nonrecommend')">
|
||||
FBC.NONRECOMEND_CNT = FBC2.NONRECOMEND_CNT
|
||||
</if>
|
||||
WHERE 1=1
|
||||
AND FBC.BBSCTT_INNB = #{bbscttInnb}
|
||||
AND FBC.SOPMAL_CD = #{sopmalCd}
|
||||
AND FBC.CM_INNB = #{cmInnb}
|
||||
</update>
|
||||
</mapper>
|
||||
@@ -0,0 +1,348 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.bbs.cnslt.mapper.BOCnsltMapper">
|
||||
<!-- 상담 목록 조회 WHERE 절 -->
|
||||
<sql id="cnsltListInqireWhere">
|
||||
WHERE 1=1
|
||||
AND CNSLT.SOPMAL_CD = #{sopmalCd}
|
||||
<!-- 검색어 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchKeyword)">
|
||||
<choose>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchKeywordDv, 'keywordName')">
|
||||
AND MBR.MBR_NM LIKE CONCAT('%', #{srchKeyword}, '%')
|
||||
</when>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchKeywordDv, 'keywordId')">
|
||||
AND MBR.MBR_ID LIKE CONCAT('%', #{srchKeyword}, '%')
|
||||
</when>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchKeywordDv, 'keywordPhone')">
|
||||
AND CNSLT.TELNB = HEX(AES_ENCRYPT(REPLACE(#{srchKeyword},'-',''), #{secretKey}))
|
||||
</when>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchKeywordDv)">
|
||||
AND (
|
||||
MBR.MBR_NM LIKE CONCAT('%', #{srchKeyword}, '%')
|
||||
OR MBR.MBR_ID LIKE CONCAT('%', #{srchKeyword}, '%')
|
||||
OR CNSLT.TELNB = HEX(AES_ENCRYPT(REPLACE(#{srchKeyword},'-',''), #{secretKey}))
|
||||
OR MBR.EMAIL LIKE CONCAT('%', #{srchKeyword}, '%')
|
||||
)
|
||||
</when>
|
||||
</choose>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchMngrNm)">
|
||||
AND CNSLT.MNGR_NM LIKE CONCAT('%', #{srchMngrNm}, '%')
|
||||
</if>
|
||||
<!-- 처리 상태 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchProcsSttusCd)">
|
||||
AND CNSLT.PROCS_STTUS_CD IN
|
||||
<foreach collection="srchProcsSttusCd" item="srchProcsSttusCd" open="(" close=")" separator=",">
|
||||
#{srchProcsSttusCd}
|
||||
</foreach>
|
||||
</if>
|
||||
<!-- 등록일 -->
|
||||
<choose>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDtDv, 'cnstlDt')">
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStartDate)">
|
||||
AND CNSLT.REGIST_DT <![CDATA[>=]]> #{srchStartDate} ' 00:00:00'
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndDate)">
|
||||
AND CNSLT.REGIST_DT <![CDATA[<=]]> #{srchEndDate} ' 23:59:59'
|
||||
</if>
|
||||
</when>
|
||||
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDtDv, 'procsDt')">
|
||||
<![CDATA[
|
||||
AND CNSLT.PROCS_DT IS NOT NULL
|
||||
]]>
|
||||
<choose>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStartDate)
|
||||
and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchEndDate)">
|
||||
AND CNSLT.PROCS_DT BETWEEN #{srchStartDate} ' 00:00:00' AND SYSDATE()
|
||||
</when>
|
||||
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchStartDate)
|
||||
and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndDate)">
|
||||
AND CNSLT.PROCS_DT <![CDATA[<]]> #{srchEndDate} ' 23:59:59'
|
||||
</when>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStartDate)
|
||||
and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndDate)">
|
||||
AND CNSLT.PROCS_DT BETWEEN #{srchStartDate} ' 00:00:00' AND #{srchEndDate} ' 23:59:59'
|
||||
</when>
|
||||
</choose>
|
||||
</when>
|
||||
</choose>
|
||||
<!-- 관련번호 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchRelateNm)">
|
||||
<choose>
|
||||
<!-- 주문코드 -->
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchRelateDv, 'relateOrdrnb')">
|
||||
AND CNSLT.ORDR_INNB = #{srchRelateNm}
|
||||
</when>
|
||||
<!-- 출고코드 -->
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchRelateDv, 'dlivyCd')">
|
||||
AND CNSLT.DLIVY_CD_NB = #{srchRelateNm}
|
||||
</when>
|
||||
<!-- 환불코드 -->
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchRelateDv, 'refndCd')">
|
||||
AND CNSLT.REFUND_CD_NB = #{srchRelateNm}
|
||||
</when>
|
||||
<!-- 상품문의 -->
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchRelateDv, 'relateGoodsInqry')">
|
||||
AND CNSLT.GOODS_INQRY_BBSCTT_NB = #{srchRelateNm}
|
||||
</when>
|
||||
<!-- 컬럼추가후 '상품후기' 코드로 변경 -->
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchRelateDv, 'goodsRvwBbscttNb')">
|
||||
AND CNSLT.GOODS_RVW_BBSCTT_NB = #{srchRelateNm}
|
||||
</when>
|
||||
</choose>
|
||||
</if>
|
||||
<!-- 상담내용 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchCnsltCn)">
|
||||
AND CNSLT.CNSLT_CN LIKE CONCAT('%', #{srchCnsltCn}, '%')
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbrInnb)">
|
||||
AND (CNSLT.MBR_DV_CD = #{mbrDvCd} AND CNSLT.MBR_INNB = #{mbrInnb} || CNSLT.TELNB = HEX(AES_ENCRYPT(REPLACE(
|
||||
#{mbtlnb},'-',''), #{secretKey})))
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbtlnb) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(mbrTyCd, '02')">
|
||||
AND CNSLT.TELNB = HEX(AES_ENCRYPT(REPLACE(#{mbtlnb},'-',''), #{secretKey}))
|
||||
AND CNSLT.MBR_INNB = 0
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(cnsltDtlsInnb)">
|
||||
<![CDATA[
|
||||
AND CNSLT.CNSLT_DTLS_INNB = #{cnsltDtlsInnb}
|
||||
]]>
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
|
||||
<!-- 상담 목록 조회 FROM 절 -->
|
||||
<sql id="cnsltListInqireFrom">
|
||||
FROM GC_COUNSEL CNSLT
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(crmAt)">
|
||||
LEFT JOIN GC_MEMBER MBR
|
||||
ON CNSLT.MBR_INNB = MBR.MBR_INNB
|
||||
AND CNSLT.MBR_DV_CD = MBR.MBR_DV_CD
|
||||
LEFT JOIN GC_MEMBER_GRAD_MAPPING FMGM
|
||||
ON FMGM.MBR_DV_CD = CNSLT.MBR_DV_CD
|
||||
AND FMGM.SOPMAL_CD = CNSLT.SOPMAL_CD
|
||||
AND FMGM.MBR_INNB = CNSLT.MBR_INNB
|
||||
LEFT JOIN GC_MEMBER_GRAD FMG
|
||||
ON FMG.SOPMAL_CD = CNSLT.SOPMAL_CD
|
||||
AND FMGM.MBR_GRAD_INNB = FMG.MBR_GRAD_INNB
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
|
||||
<!-- 상담 목록 건수 조회 -->
|
||||
<select id="selectBOCnsltListCnt"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bbs.cnslt.vo.BOCnsltVO"
|
||||
resultType="java.lang.Integer">
|
||||
<![CDATA[
|
||||
SELECT COUNT(1)
|
||||
]]>
|
||||
<include refid="cnsltListInqireFrom"/>
|
||||
<include refid="cnsltListInqireWhere"/>
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 상담 목록 조회 with Pagination -->
|
||||
<select id="selectBOCnsltListInqire"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bbs.cnslt.vo.BOCnsltVO"
|
||||
resultType="dataMap">
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM
|
||||
,TB.*
|
||||
,IF(TB.DLIVY_INFO IS NOT NULL,SUBSTRING_INDEX(TB.DLIVY_INFO,',',1),NULL) AS DLIVY_ORDR_INNB
|
||||
,IF(TB.DLIVY_INFO IS NOT NULL,SUBSTRING_INDEX(TB.DLIVY_INFO,',',-1),NULL) AS DLIVY_INNB
|
||||
,IF(TB.RETURN_REFUND_INFO IS NOT NULL,SUBSTRING_INDEX(TB.RETURN_REFUND_INFO,',',1),NULL) AS REFUND_ORDR_INNB
|
||||
,IF(TB.RETURN_REFUND_INFO IS NOT NULL,SUBSTRING_INDEX(TB.RETURN_REFUND_INFO,',',-1),NULL) AS ORDER_REFUND_INNB
|
||||
FROM (
|
||||
SELECT
|
||||
CNSLT.CNSLT_DTLS_INNB
|
||||
,CNSLT.MBR_INNB
|
||||
,CNSLT.MBR_DV_CD
|
||||
,CNSLT.MNGR_INNB
|
||||
,CNSLT.MNGR_NM
|
||||
,CNSLT.ORDR_INNB
|
||||
,CNSLT.DLIVY_CD_NB
|
||||
,CNSLT.RETURN_CD_NB
|
||||
,CNSLT.REFUND_CD_NB
|
||||
,CNSLT.GOODS_INQRY_BBSCTT_NB
|
||||
,CNSLT.GOODS_RVW_BBSCTT_NB
|
||||
,CNSLT.PROCS_STTUS_CD
|
||||
,CNSLT.CNSLT_CN
|
||||
,CNSLT.TELNB_DV_CD
|
||||
,CNSLT.LRGE_CL_CD
|
||||
,CNSLT.MIDDL_CL_CD
|
||||
,CNSLT.RECRD_KY
|
||||
,CAST(AES_DECRYPT(UNHEX(CNSLT.TELNB) , #{secretKey}) AS CHAR(50)) AS TELNB
|
||||
,CNSLT.REGUSR
|
||||
,CNSLT.UPDUSR
|
||||
,CNSLT.UPDT_DT
|
||||
,DATE_FORMAT(CNSLT.PROCS_DT, '%Y-%m-%d %H:%i:%s') AS PROCS_DT
|
||||
,DATE_FORMAT(CNSLT.REGIST_DT, '%Y-%m-%d %H:%i:%s') AS REGIST_DT
|
||||
,fn_get_commcode_name('COUNSEL_PROCS_STTUS', PROCS_STTUS_CD) AS PROCS_STTUS_CD_NM
|
||||
,fn_get_commcode_name('LRGE_CL', LRGE_CL_CD) AS LRGE_CL_NM
|
||||
,fn_get_commcode_name(CONCAT('MIDDL_CL_',REPLACE(LRGE_CL_CD,'0','')), MIDDL_CL_CD) AS MIDDL_CL_NM
|
||||
,CASE
|
||||
WHEN IFNULL(CNSLT.DLIVY_CD_NB,'') <![CDATA[<>]]> ''
|
||||
THEN (SELECT
|
||||
CONCAT(GGE.ORDR_INNB, ',', GGE.DLIVY_INNB)
|
||||
FROM
|
||||
GC_GOODS_EXPORT GGE
|
||||
WHERE GGE.SOPMAL_CD = CNSLT.SOPMAL_CD
|
||||
AND GGE.DLIVY_CD_NB = CNSLT.DLIVY_CD_NB)
|
||||
END DLIVY_INFO
|
||||
,CASE
|
||||
WHEN IFNULL(CNSLT.REFUND_CD_NB,'') <![CDATA[<>]]> ''
|
||||
THEN (SELECT
|
||||
CONCAT(GOR.ORDR_INNB,',',GOR.ORDER_REFUND_INNB)
|
||||
FROM
|
||||
GC_ORDER_REFUND GOR
|
||||
WHERE
|
||||
GOR.SOPMAL_CD = CNSLT.SOPMAL_CD
|
||||
AND (GOR.REFUND_CD = CNSLT.REFUND_CD_NB
|
||||
OR GOR.RETURN_CD = CNSLT.RETURN_CD_NB))
|
||||
END RETURN_REFUND_INFO
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(crmAt)">
|
||||
,MBR.MBR_ID
|
||||
,MBR.MBR_NM
|
||||
,MBR.JOIN_MTH_CD
|
||||
,FMG.MBR_GRAD_NM AS GRAD_NM
|
||||
</if>
|
||||
<include refid="cnsltListInqireFrom"/>
|
||||
<include refid="cnsltListInqireWhere"/>
|
||||
ORDER BY CNSLT.REGIST_DT DESC
|
||||
) TB
|
||||
WHERE (@rownum:=0)=0
|
||||
) PV
|
||||
WHERE 1=1
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 상담 상세 내역 조회 -->
|
||||
<select id="selectBOCnsltDtlUpdtInqirePopup"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bbs.cnslt.vo.BOCnsltVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT CNSLT.CNSLT_DTLS_INNB
|
||||
, CNSLT.MBR_INNB
|
||||
, CNSLT.MNGR_INNB
|
||||
, CNSLT.MNGR_NM
|
||||
, CNSLT.ORDR_INNB
|
||||
, CNSLT.DLIVY_CD_NB
|
||||
, CNSLT.RETURN_CD_NB
|
||||
, CNSLT.REFUND_CD_NB
|
||||
, CNSLT.GOODS_INQRY_BBSCTT_NB
|
||||
, CNSLT.GOODS_RVW_BBSCTT_NB
|
||||
, CNSLT.PROCS_STTUS_CD
|
||||
, CNSLT.PROCS_DT
|
||||
, CNSLT.CNSLT_CN
|
||||
, CNSLT.TELNB_DV_CD
|
||||
, CNSLT.LRGE_CL_CD
|
||||
, CNSLT.MIDDL_CL_CD
|
||||
, CNSLT.RECRD_KY
|
||||
, CAST(AES_DECRYPT(UNHEX(CNSLT.TELNB), #{secretKey}) AS CHAR(50)) AS MBTLNB
|
||||
, CNSLT.REGUSR
|
||||
, DATE_FORMAT(CNSLT.REGIST_DT, '%Y-%m-%d') AS REGIST_DT
|
||||
, CNSLT.UPDUSR
|
||||
, CNSLT.UPDT_DT
|
||||
FROM GC_COUNSEL CNSLT
|
||||
WHERE CNSLT.CNSLT_DTLS_INNB = #{cnsltDtlsInnb}
|
||||
AND CNSLT.SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 상담 수정 -->
|
||||
<update id="updateBOCnsltUpdt">
|
||||
<![CDATA[
|
||||
UPDATE GC_COUNSEL SET
|
||||
ORDR_INNB = #{ordrNb}
|
||||
,DLIVY_CD_NB = #{dlivyInnb}
|
||||
,RETURN_CD_NB = #{rtngudCdNb}
|
||||
,REFUND_CD_NB = #{refndCdNb}
|
||||
,GOODS_INQRY_BBSCTT_NB = #{goodsInqryBbscttNb}
|
||||
,GOODS_RVW_BBSCTT_NB = #{goodsRvwBbscttNb}
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(procsSttusCd, '03')">
|
||||
<![CDATA[
|
||||
,PROCS_DT = SYSDATE()
|
||||
]]>
|
||||
</if>
|
||||
<![CDATA[
|
||||
,PROCS_STTUS_CD = #{procsSttusCd}
|
||||
,CNSLT_CN = #{cnsltCn}
|
||||
,UPDUSR = #{updusr}
|
||||
,UPDT_DT = SYSDATE()
|
||||
WHERE 1=1
|
||||
AND CNSLT_DTLS_INNB = #{cnsltDtlsInnb} AND SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</update>
|
||||
|
||||
<!-- 상담 등록 -->
|
||||
<insert id="insertBOCnsltRegist">
|
||||
INSERT INTO GC_COUNSEL (
|
||||
SOPMAL_CD,
|
||||
MBR_INNB,
|
||||
MBR_DV_CD,
|
||||
MNGR_INNB,
|
||||
MNGR_NM,
|
||||
ORDR_INNB,
|
||||
DLIVY_CD_NB,
|
||||
RETURN_CD_NB,
|
||||
REFUND_CD_NB,
|
||||
GOODS_INQRY_BBSCTT_NB,
|
||||
GOODS_RVW_BBSCTT_NB,
|
||||
PROCS_STTUS_CD,
|
||||
PROCS_DT,
|
||||
CNSLT_CN,
|
||||
TELNB_DV_CD,
|
||||
LRGE_CL_CD,
|
||||
MIDDL_CL_CD,
|
||||
RECRD_KY,
|
||||
TELNB,
|
||||
REGUSR,
|
||||
REGIST_DT,
|
||||
UPDUSR,
|
||||
UPDT_DT
|
||||
)
|
||||
SELECT #{sopmalCd},
|
||||
IFNULL(#{mbrInnb}, 0),
|
||||
IFNULL(#{mbrDvCd}, ''),
|
||||
#{mngrInnb},
|
||||
GM.MNGR_NM,
|
||||
#{ordrNb},
|
||||
#{dlivyInnb},
|
||||
#{rtngudCdNb},
|
||||
#{refndCdNb},
|
||||
#{goodsInqryBbscttNb},
|
||||
#{goodsRvwBbscttNb},
|
||||
#{procsSttusCd},
|
||||
<choose>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(procsSttusCd, '03')">
|
||||
<![CDATA[
|
||||
SYSDATE(),
|
||||
]]>
|
||||
</when>
|
||||
<otherwise>
|
||||
<![CDATA[
|
||||
#{procsDt},
|
||||
]]>
|
||||
</otherwise>
|
||||
</choose>
|
||||
#{cnsltCn},
|
||||
#{telnbDvCd},
|
||||
#{lrgeCl},
|
||||
#{middlCl},
|
||||
#{customer_record_key},
|
||||
HEX(AES_ENCRYPT(REPLACE(#{telnb},'-',''), #{secretKey})),
|
||||
#{regusr},
|
||||
SYSDATE(),
|
||||
#{updusr},
|
||||
SYSDATE()
|
||||
FROM GC_MANAGER GM
|
||||
WHERE MNGR_INNB = #{regusr}
|
||||
</insert>
|
||||
</mapper>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,85 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.bbs.prom.mapper.BOPromMapper">
|
||||
|
||||
<select id="selectPromInfo" parameterType="com.wb.domainserver.domain.gcone.bbs.prom.vo.BOPromVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT *
|
||||
FROM GC_PROM
|
||||
WHERE PROM_INNB = #{promInnb}
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<select id="selectPromJoinInfo" parameterType="com.wb.domainserver.domain.gcone.bbs.prom.vo.BOPromVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT *
|
||||
FROM GC_PROM_JOIN
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND PROM_INNB = #{promInnb}
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(joinDt)">
|
||||
AND JOIN_DT = #{joinDt}
|
||||
</if>
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<select id="countPromJoin" parameterType="com.wb.domainserver.domain.gcone.bbs.prom.vo.BOPromVO" resultType="int">
|
||||
SELECT COUNT(*)
|
||||
FROM GC_PROM_JOIN
|
||||
WHERE PROM_INNB = #{promInnb}
|
||||
</select>
|
||||
|
||||
<select id="selectPromRewardList" parameterType="com.wb.domainserver.domain.gcone.bbs.prom.vo.BOPromVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
PROM_REWARD_INNB as promRewardInnb,
|
||||
PROM_INNB as promInnb,
|
||||
SORT_ORDR as sortOrdr,
|
||||
PROBABILITY as probability,
|
||||
REWARD_TY as rewardTy,
|
||||
ACCMLMNY_AMT as accmlmnyAmt,
|
||||
MLG_APPLC_RESN as mlgApplcResn,
|
||||
COUPON_INNB as couponInnb,
|
||||
COUPON_SNDNG_INNB as couponSndngInnb,
|
||||
REWARD_DC as rewardDc,
|
||||
EXPIRE_DT as expireDt
|
||||
FROM GC_PROM_REWARD
|
||||
WHERE PROM_INNB = #{promInnb}
|
||||
ORDER BY SORT_ORDR ASC
|
||||
</select>
|
||||
|
||||
<select id="countRewardWinners" parameterType="com.wb.domainserver.domain.gcone.bbs.prom.vo.BOPromVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
SORT_ORDR as sortOrdr,
|
||||
COUNT(*) as winnerCount
|
||||
FROM GC_PROM_JOIN
|
||||
WHERE PROM_INNB = #{promInnb}
|
||||
AND SORT_ORDR IS NOT NULL
|
||||
GROUP BY SORT_ORDR
|
||||
</select>
|
||||
|
||||
<insert id="insertPromJoin" parameterType="com.wb.domainserver.domain.gcone.bbs.prom.vo.BOPromVO">
|
||||
INSERT INTO GC_PROM_JOIN (
|
||||
PROM_INNB,
|
||||
SOPMAL_CD,
|
||||
MBR_INNB,
|
||||
JOIN_DT,
|
||||
SORT_ORDR,
|
||||
REWARD_TY,
|
||||
ACCMLMNY_AMT,
|
||||
COUPON_INNB,
|
||||
COUPON_SNDNG_INNB,
|
||||
REWARD_DC,
|
||||
REGIST_DT
|
||||
) VALUES (
|
||||
#{promInnb},
|
||||
#{sopmalCd},
|
||||
#{mbrInnb},
|
||||
NOW(),
|
||||
#{sortOrdr},
|
||||
#{rewardTy},
|
||||
#{accmlmnyAmt},
|
||||
#{couponInnb},
|
||||
#{couponSndngInnb},
|
||||
#{rewardDc},
|
||||
NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,292 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.bnft.atend.mapper.BOAtendMapper">
|
||||
|
||||
<!-- 혜택 화면 설정 정보 조회 -->
|
||||
<select id="selectBOBenefitScreenInfo" parameterType="com.wb.domainserver.domain.gcone.bnft.atend.vo.BOAtendVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
b.BNF_INNB, -- 혜택 고유 번호
|
||||
b.USE_AT, -- 사용여부
|
||||
b.SCR_REPRSNT_IMG, -- 화면 대표 이미지 경로
|
||||
b.SCR_REPRSNT_LINK_URL, -- 화면 대표 이미지 링크 URL
|
||||
b.SCR_RWD_IMG, -- 보상 이미지 경로
|
||||
b.SCR_RWD_LINK_URL, -- 보상 이미지 링크 URL
|
||||
b.BNF_WORDS_CN, -- 혜택 안내 문구
|
||||
b.BNF_BGN_DT, -- 진행기간 시작일시
|
||||
b.BNF_END_DT, -- 진행기간 종료일시
|
||||
r.MLG_RWD_AMT -- 마일리지 보상 금액
|
||||
FROM
|
||||
GC_BENEFIT b
|
||||
LEFT JOIN GC_BENEFIT_REWARD r ON b.BNF_INNB = r.BNF_INNB
|
||||
WHERE
|
||||
b.BNF_DV_CD = '010' -- 출석체크 혜택 구분 코드
|
||||
AND b.USE_AT = 'Y'
|
||||
AND r.BNF_RWD_CATE_DV_CD = '01010'
|
||||
AND DATE(NOW()) BETWEEN DATE(b.BNF_BGN_DT) AND DATE(b.BNF_END_DT)
|
||||
AND b.SOPMAL_CD = #{sopmalCd}
|
||||
ORDER BY
|
||||
b.BNF_INNB -- 혜택 고유 번호로 정렬
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 출석 보상 정보 조회 -->
|
||||
<select id="selectAttendanceRewardInfo" parameterType="com.wb.domainserver.domain.gcone.bnft.atend.vo.BOAtendVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
br.BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
br.BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
br.MLG_RWD_AMT, -- 마일리지 보상 금액
|
||||
br.COUPON_INNB, -- 쿠폰 고유 번호
|
||||
br.ITM_NM AS ITM_NM, -- 보상 상품 이름
|
||||
br.RWD_CND_CNT, -- 보상 조건 횟수
|
||||
CASE
|
||||
WHEN br.BNF_RWD_CATE_DV_CD = '01010' THEN '매일'
|
||||
WHEN br.BNF_RWD_CATE_DV_CD IN ('01020', '01030') THEN CONCAT('누적 ', br.RWD_CND_CNT, '회')
|
||||
WHEN br.BNF_RWD_CATE_DV_CD = '01040' THEN '100% 출석'
|
||||
ELSE ''
|
||||
END AS reward_condition -- 보상 조건 설명
|
||||
from GC_BENEFIT gb
|
||||
LEFT JOIN
|
||||
GC_BENEFIT_REWARD br
|
||||
ON gb.BNF_INNB = br.BNF_INNB
|
||||
WHERE
|
||||
br.BNF_INNB = #{bnfInnb}
|
||||
AND gb.SOPMAL_CD = #{sopmalCd}
|
||||
ORDER BY
|
||||
br.RWD_CND_CNT;
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 월간 출석 현황 조회 -->
|
||||
<select id="selectMonthlyAttendance" parameterType="com.wb.domainserver.domain.gcone.bnft.atend.vo.BOAtendVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
DATE_FORMAT(BNF_PRT_DT, '%Y-%m-%d') AS attendanceDate -- 출석 날짜
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb} -- 회원 고유 번호
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb} -- 혜택 고유 번호
|
||||
AND DATE_FORMAT(BNF_PRT_DT, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m') -- 현재 월 조건
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 일일 출석 보상 정보 조회 -->
|
||||
<select id="selectDailyAttendanceReward" parameterType="com.wb.domainserver.domain.gcone.bnft.atend.vo.BOAtendVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
MLG_RWD_AMT, -- 마일리지 보상 금액
|
||||
COUPON_INNB, -- 쿠폰 고유 번호
|
||||
ITM_NM -- 표시명
|
||||
FROM
|
||||
GC_BENEFIT_REWARD
|
||||
WHERE
|
||||
BNF_INNB = #{bnfInnb} -- 혜택 고유 번호
|
||||
AND BNF_RWD_CATE_DV_CD = '01010' -- 일일 출석 보상 코드
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 누적 출석 보상 정보 조회 -->
|
||||
<select id="selectCumulativeAttendanceReward" parameterType="com.wb.domainserver.domain.gcone.bnft.atend.vo.BOAtendVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
br.BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
br.BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
br.MLG_RWD_AMT, -- 마일리지 보상 금액
|
||||
br.COUPON_INNB, -- 쿠폰 고유 번호
|
||||
COALESCE(cs.COUPON_SNDNG_NM, br.ITM_NM) AS ITM_NM, -- 쿠폰 이름 (쿠폰발송명 우선, 없으면 표시명)
|
||||
br.RWD_CND_CNT -- 보상 조건 횟수
|
||||
FROM
|
||||
GC_BENEFIT_REWARD br
|
||||
LEFT JOIN GC_COUPON_SNDNG cs ON br.COUPON_INNB = cs.COUPON_SNDNG_INNB
|
||||
AND cs.SOPMAL_CD = #{sopmalCd}
|
||||
WHERE
|
||||
br.BNF_INNB = #{bnfInnb} -- 혜택 고유 번호
|
||||
AND br.BNF_RWD_CATE_DV_CD IN ('01020', '01030', '01040') -- 누적 출석 보상 코드들
|
||||
ORDER BY
|
||||
br.RWD_CND_CNT -- 보상 조건 횟수 기준 정렬
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 초록잎 지급 개수 조회 -->
|
||||
<select id="selectLeafCounts" parameterType="com.wb.domainserver.domain.gcone.bnft.atend.vo.BOAtendVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
PYMNT_CNT, -- 지급 초록잎 개수
|
||||
SPECIAL_CNT -- 스페셜 지급 초록잎 개수
|
||||
FROM
|
||||
GC_BENEFIT_CPSLMKN
|
||||
WHERE
|
||||
BNF_DV_CD = '010' -- 혜택 구분 코드
|
||||
AND SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
</select>
|
||||
|
||||
<!-- 출석체크 참여 -->
|
||||
<insert id="participateAttendanceCheck" parameterType="com.wb.domainserver.domain.gcone.bnft.atend.vo.BOAtendVO" useGeneratedKeys="true" keyProperty="bnfPrtInnb" keyColumn="BNF_PRT_INNB">
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_PARTCPTN (
|
||||
BNF_INNB, -- 혜택 고유 번호
|
||||
BNF_PRT_DT, -- 혜택 참여 일시
|
||||
MBR_INNB, -- 회원 고유 번호
|
||||
MBR_DV_CD, -- 회원 구분 코드
|
||||
PRT_LEAF_CNT, -- 참여 초록잎 개수
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록 일시
|
||||
)
|
||||
SELECT
|
||||
#{bnfInnb},
|
||||
NOW(),
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
#{paidLeafCnt},
|
||||
#{regusr},
|
||||
NOW()
|
||||
WHERE
|
||||
NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM GC_BENEFIT_PARTCPTN
|
||||
WHERE BNF_INNB = #{bnfInnb}
|
||||
AND MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND DATE(BNF_PRT_DT) = CURDATE()
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- 마일리지 적립 (일일/누적 보상 구분) -->
|
||||
<insert id="insertMileageReceipt" parameterType="com.wb.domainserver.domain.gcone.bnft.atend.vo.BOAtendVO">
|
||||
<selectKey keyProperty="bnfRcvInnb" resultType="java.math.BigInteger" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_RCV_INNB), 0) + 1 FROM GC_BENEFIT_RECEIPT
|
||||
</selectKey>
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_RECEIPT
|
||||
(
|
||||
BNF_RCV_INNB, -- 혜택 보상수령 고유 번호
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유 번호
|
||||
BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
MLG_RWD_AMT, -- 마일리지 보상 금액
|
||||
COUPON_INNB, -- 쿠폰 고유 번호
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록 일시
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#{bnfRcvInnb},
|
||||
#{bnfPrtInnb},
|
||||
#{bnfRwdCateDvCd},
|
||||
#{bnfRwdGodsDvCd},
|
||||
#{mlgRwdAmt},
|
||||
#{couponInnb},
|
||||
#{regusr},
|
||||
NOW()
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- 이번 달 출석 횟수 조회 -->
|
||||
<select id="selectCurrentMonthAttendanceCount" parameterType="com.wb.domainserver.domain.gcone.bnft.atend.vo.BOAtendVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
COUNT(*) AS currentMonthAttendanceCount -- 이번 달 출석 횟수
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb} -- 회원 고유 번호
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb} -- 혜택 고유 번호
|
||||
AND DATE_FORMAT(BNF_PRT_DT, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m') -- 현재 월 조건
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 누적 출석 마일리지 조회 -->
|
||||
<select id="selectTotalAttendanceMileage" parameterType="com.wb.domainserver.domain.gcone.bnft.atend.vo.BOAtendVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
COALESCE(SUM(r.MLG_RWD_AMT), 0) AS totalAttendanceMileage -- 누적 출석 마일리지
|
||||
FROM
|
||||
GC_BENEFIT_RECEIPT r
|
||||
JOIN
|
||||
GC_BENEFIT_PARTCPTN p ON r.BNF_PRT_INNB = p.BNF_PRT_INNB
|
||||
WHERE
|
||||
p.MBR_INNB = #{mbrInnb} -- 회원 고유 번호
|
||||
AND p.MBR_DV_CD = #{mbrDvCd}
|
||||
AND p.BNF_INNB = #{bnfInnb} -- 혜택 고유 번호
|
||||
AND r.MLG_RWD_AMT IS NOT NULL
|
||||
AND r.MLG_RWD_AMT > 0
|
||||
AND DATE_FORMAT(p.BNF_PRT_DT, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m')
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 오늘 출석체크 참여 정보 조회 -->
|
||||
<select id="selectTodayAttendance" parameterType="com.wb.domainserver.domain.gcone.bnft.atend.vo.BOAtendVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT *
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb} -- 회원 고유 번호
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb} -- 혜택 고유 번호
|
||||
AND DATE(BNF_PRT_DT) = CURDATE() -- 오늘 날짜 조건
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 알림 상태 조회 -->
|
||||
<select id="selectNotificationStatus" parameterType="com.wb.domainserver.domain.gcone.bnft.atend.vo.BOAtendVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
AGRE_AT -- 동의 여부
|
||||
FROM
|
||||
GC_BENEFIT_AGREE
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb} -- 회원 고유번호
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_DV_CD = '010' -- 혜택 구분 코드 (출석체크)
|
||||
AND BNF_AGRE_DV_CD = '010' -- 혜택 동의 구분 코드 (알림동의)
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 알림 신청 -->
|
||||
<insert id="insertNotification" parameterType="com.wb.domainserver.domain.gcone.bnft.atend.vo.BOAtendVO">
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_AGREE (
|
||||
SOPMAL_CD, -- 쇼핑몰코드
|
||||
MBR_INNB, -- 회원 고유번호
|
||||
MBR_DV_CD, -- 회원 구분 코드
|
||||
BNF_DV_CD, -- 혜택 구분 코드
|
||||
BNF_AGRE_DV_CD, -- 혜택 동의 구분 코드
|
||||
AGRE_AT, -- 동의 여부
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록 일시
|
||||
) VALUES (
|
||||
#{sopmalCd},
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
'010', -- 출석체크 혜택 구분 코드
|
||||
'010', -- 알림동의 구분 코드
|
||||
'Y', -- 동의함
|
||||
#{regusr},
|
||||
NOW()
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- 알림 on off -->
|
||||
<update id="updateAtendNotification" parameterType="com.wb.domainserver.domain.gcone.bnft.atend.vo.BOAtendVO">
|
||||
<![CDATA[
|
||||
UPDATE GC_BENEFIT_AGREE
|
||||
SET
|
||||
AGRE_AT = #{agreAt},
|
||||
REGIST_DT = NOW()
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_DV_CD = '010'
|
||||
AND BNF_AGRE_DV_CD = '010'
|
||||
]]>
|
||||
</update>
|
||||
</mapper>
|
||||
@@ -0,0 +1,367 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.bnft.bnftMain.mapper.BOBnftMainMapper">
|
||||
|
||||
<!-- 혜택 메인 메뉴 목록 조회 -->
|
||||
<select id="selectBnftMainList" parameterType="com.wb.domainserver.domain.gcone.bnft.bnftMain.vo.BOBnftMainVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
m.BNF_DV_CD,
|
||||
m.SOPMAL_CD,
|
||||
m.MENU_SJ_1,
|
||||
m.MENU_SJ_2,
|
||||
m.SORT_ORDR,
|
||||
CASE
|
||||
WHEN m.BNF_DV_CD = '120' THEN 'Y'
|
||||
WHEN m.BNF_DV_CD = '140' THEN 'Y'
|
||||
WHEN m.BNF_DV_CD = '020' AND (
|
||||
SELECT COALESCE(d.PHAC_AGRE_AT, 'N')
|
||||
FROM GC_MEMBER_DEVICE_INFO d
|
||||
WHERE d.MBR_INNB = #{mbrInnb}
|
||||
AND d.MBR_DV_CD = #{mbrDvCd}
|
||||
AND d.SOPMAL_CD = #{sopmalCd}
|
||||
AND d.DEVICE_ID = #{deviceId}
|
||||
LIMIT 1
|
||||
) = 'Y' AND EXISTS (
|
||||
SELECT 1
|
||||
FROM GC_BENEFIT b
|
||||
WHERE b.BNF_DV_CD = m.BNF_DV_CD
|
||||
AND b.SOPMAL_CD = m.SOPMAL_CD
|
||||
AND b.USE_AT = 'Y'
|
||||
AND (b.BNF_BGN_DT IS NULL OR b.BNF_BGN_DT <= NOW())
|
||||
AND (b.BNF_END_DT IS NULL OR b.BNF_END_DT >= NOW())
|
||||
) THEN 'Y'
|
||||
WHEN EXISTS (
|
||||
SELECT 1
|
||||
FROM GC_BENEFIT b
|
||||
WHERE b.BNF_DV_CD = m.BNF_DV_CD
|
||||
AND b.SOPMAL_CD = m.SOPMAL_CD
|
||||
AND b.USE_AT = 'Y'
|
||||
AND (b.BNF_BGN_DT IS NULL OR b.BNF_BGN_DT <= NOW())
|
||||
AND (b.BNF_END_DT IS NULL OR b.BNF_END_DT >= NOW())
|
||||
) THEN 'Y'
|
||||
ELSE 'N'
|
||||
END AS AVAL_AT,
|
||||
CASE
|
||||
WHEN m.BNF_DV_CD = '100' AND EXISTS (
|
||||
SELECT 1
|
||||
FROM GC_BENEFIT b
|
||||
JOIN GC_BENEFIT_NTKCHL n ON b.BNF_INNB = n.BNF_INNB
|
||||
WHERE b.BNF_DV_CD = '100'
|
||||
AND b.SOPMAL_CD = m.SOPMAL_CD
|
||||
AND b.USE_AT = 'Y'
|
||||
AND n.MBR_INNB = #{mbrInnb}
|
||||
AND n.MBR_DV_CD = #{mbrDvCd}
|
||||
AND n.DEL_AT = 'N'
|
||||
) THEN 'Y'
|
||||
ELSE 'N'
|
||||
END AS NTK_CHL_AT,
|
||||
(
|
||||
SELECT b.BNF_INNB
|
||||
FROM GC_BENEFIT b
|
||||
JOIN GC_BENEFIT_NTKCHL n ON b.BNF_INNB = n.BNF_INNB
|
||||
WHERE b.BNF_DV_CD = '100'
|
||||
AND b.SOPMAL_CD = m.SOPMAL_CD
|
||||
AND b.USE_AT = 'Y'
|
||||
AND (b.BNF_BGN_DT IS NULL OR b.BNF_BGN_DT <= NOW())
|
||||
AND (b.BNF_END_DT IS NULL OR b.BNF_END_DT >= NOW())
|
||||
AND n.MBR_INNB = #{mbrInnb}
|
||||
AND n.MBR_DV_CD = #{mbrDvCd}
|
||||
AND n.DEL_AT = 'N'
|
||||
ORDER BY n.REGIST_DT DESC
|
||||
LIMIT 1
|
||||
) AS NTK_BNF_INNB,
|
||||
CASE
|
||||
WHEN m.BNF_DV_CD = '050' AND EXISTS (
|
||||
SELECT
|
||||
gbcs.BNF_STTUS_INNB,
|
||||
gbcs.PROGRS_AT,
|
||||
gbcs.BNF_INNB
|
||||
from
|
||||
GC_BENEFIT gb
|
||||
left join
|
||||
GC_BENEFIT_CPSLMKN_STTUS gbcs
|
||||
on gb.BNF_INNB = gbcs.BNF_INNB
|
||||
WHERE
|
||||
gbcs.MBR_INNB = #{mbrInnb}
|
||||
AND gbcs.MBR_DV_CD = #{mbrDvCd}
|
||||
AND gbcs.PROGRS_AT = 'Y'
|
||||
AND gb.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
AND USE_AT = 'Y'
|
||||
) THEN 'Y'
|
||||
ELSE 'N'
|
||||
END AS CPSL_PROGRS_AT,
|
||||
(
|
||||
SELECT s.BNF_INNB
|
||||
FROM GC_BENEFIT_CPSLMKN_STTUS s
|
||||
JOIN GC_BENEFIT b ON s.BNF_INNB = b.BNF_INNB
|
||||
WHERE s.MBR_INNB = #{mbrInnb}
|
||||
AND s.MBR_DV_CD = #{mbrDvCd}
|
||||
AND s.PROGRS_AT = 'Y'
|
||||
AND b.SOPMAL_CD = m.SOPMAL_CD
|
||||
AND b.BNF_DV_CD = '050'
|
||||
AND b.USE_AT = 'Y'
|
||||
AND (b.BNF_BGN_DT IS NULL OR b.BNF_BGN_DT <= NOW())
|
||||
AND (b.BNF_END_DT IS NULL OR b.BNF_END_DT >= NOW())
|
||||
ORDER BY s.REGIST_DT DESC
|
||||
LIMIT 1
|
||||
) AS CPSL_BNF_INNB,
|
||||
CASE
|
||||
WHEN EXISTS (
|
||||
SELECT 1
|
||||
FROM GC_BENEFIT b2
|
||||
JOIN GC_BENEFIT_INTEREST bi ON b2.BNF_INNB = bi.BNF_INNB
|
||||
WHERE b2.BNF_DV_CD = m.BNF_DV_CD
|
||||
AND b2.SOPMAL_CD = m.SOPMAL_CD
|
||||
AND bi.USE_AT = 'Y'
|
||||
AND bi.DEL_AT = 'N'
|
||||
) THEN 'Y'
|
||||
ELSE 'N'
|
||||
END AS INTRST_AVAL_AT,
|
||||
CASE
|
||||
WHEN m.BNF_DV_CD = '040' THEN (
|
||||
COALESCE(
|
||||
(SELECT SUM(CHG_CNT) FROM GC_BENEFIT_CHARGE
|
||||
WHERE MBR_INNB = #{mbrInnb} AND BNF_DV_CD = '040')
|
||||
, 0)
|
||||
-
|
||||
COALESCE(
|
||||
(SELECT COUNT(*) FROM GC_BENEFIT_PARTCPTN BP
|
||||
INNER JOIN GC_BENEFIT B ON BP.BNF_INNB = B.BNF_INNB
|
||||
WHERE BP.MBR_INNB = #{mbrInnb}
|
||||
AND B.BNF_DV_CD = '040')
|
||||
, 0)
|
||||
)
|
||||
ELSE 0
|
||||
END AS ROULETTE_REMAINING_CNT
|
||||
FROM
|
||||
GC_BENEFIT_MANAGE_MENU m
|
||||
WHERE
|
||||
m.INDICT_AT = 'Y'
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
ORDER BY
|
||||
m.SORT_ORDR asc
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 디바이스 권한 조회 -->
|
||||
<select id="selectDevicePermission" parameterType="com.wb.domainserver.domain.gcone.bnft.bnftMain.vo.BOBnftMainVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
PHAC_AGRE_AT
|
||||
FROM
|
||||
GC_MEMBER_DEVICE_INFO
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND DEVICE_ID = #{deviceId}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 배너 목록 조회 -->
|
||||
<select id="selectBannerList" parameterType="com.wb.domainserver.domain.gcone.bnft.bnftMain.vo.BOBnftMainVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
BNF_BANNER_INNB, -- 혜택 배너 고유번호
|
||||
SOPMAL_CD, -- 쇼핑몰코드
|
||||
BANNER_SJ, -- 배너 제목
|
||||
LINK_URL, -- 링크 URL
|
||||
IMG_FIL_COURS, -- 이미지 파일 경로
|
||||
IMG_FIL_NM, -- 이미지 파일명
|
||||
SORT_ORDR -- 정렬 순서
|
||||
FROM
|
||||
GC_BENEFIT_MANAGE_BANNER
|
||||
WHERE
|
||||
SOPMAL_CD = #{sopmalCd} -- 파라미터로 받은 쇼핑몰 코드
|
||||
AND USE_AT = 'Y' -- 사용 여부가 'Y'인 배너만
|
||||
AND DEL_AT = 'N' -- 삭제되지 않은 배너만
|
||||
ORDER BY
|
||||
SORT_ORDR ASC -- 정렬 순서대로 조회
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 마케팅동의 여부 조회 -->
|
||||
<select id="selectMbrMarktAgreeAt" parameterType="com.wb.domainserver.domain.gcone.bnft.bnftMain.vo.BOBnftMainVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
MARKT_RECPTN_AGRE_AT
|
||||
FROM
|
||||
GC_MARKETING_AGREE
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 현재 방영 중인 라이브쇼핑 확인 쿼리 -->
|
||||
<select id="selectCurrentLiveShopping" parameterType="com.wb.domainserver.domain.gcone.bnft.bnftMain.vo.BOBnftMainVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
CASE
|
||||
WHEN EXISTS (
|
||||
SELECT 1
|
||||
FROM GC_BENEFIT b
|
||||
JOIN GC_BENEFIT_CONTENT c ON b.BNF_INNB = c.BNF_INNB
|
||||
WHERE b.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
AND b.BNF_DV_CD = '070' -- 라이브쇼핑 혜택 구분 코드
|
||||
AND b.USE_AT = 'Y' -- 사용 중인 혜택만
|
||||
AND c.CN_BGN_DT <= NOW() -- 현재 시간이 방송 시작 시간 이후
|
||||
AND c.CN_END_DT >= NOW() -- 현재 시간이 방송 종료 시간 이전
|
||||
) THEN 'Y'
|
||||
ELSE 'N'
|
||||
END AS IS_LIVE_ON_AIR -- 라이브쇼핑 방영 중 여부
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 새로 시작한 비상시적 이벤트 조회 쿼리 -->
|
||||
<select id="selectNewEvents" parameterType="com.wb.domainserver.domain.gcone.bnft.bnftMain.vo.BOBnftMainVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
b.BNF_INNB, -- 혜택 설정 고유번호
|
||||
b.BNF_DV_CD, -- 혜택 구분 코드
|
||||
b.BNF_SJ, -- 혜택 제목
|
||||
b.BNF_BGN_DT, -- 혜택 시작 일시
|
||||
b.BNF_END_DT -- 혜택 종료 일시
|
||||
FROM
|
||||
GC_BENEFIT b
|
||||
WHERE
|
||||
b.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
AND b.USE_AT = 'Y' -- 사용 중인 혜택만
|
||||
AND b.BNF_DV_CD NOT IN ('010', '020') -- 출석체크, 만보기 제외
|
||||
AND b.BNF_BGN_DT <= NOW() -- 현재 시간이 혜택 시작 시간 이후
|
||||
AND b.BNF_END_DT >= NOW() -- 현재 시간이 혜택 종료 시간 이전
|
||||
AND DATEDIFF(NOW(), b.BNF_BGN_DT) <= 1 -- 시작한지 7일 이내의 이벤트
|
||||
ORDER BY
|
||||
b.BNF_BGN_DT DESC -- 최근에 시작한 순으로 정렬
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 참여했거나 혜택 지급 완료된 이벤트 조회 쿼리 -->
|
||||
<select id="selectParticipatedEvents" parameterType="com.wb.domainserver.domain.gcone.bnft.bnftMain.vo.BOBnftMainVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT DISTINCT
|
||||
b.BNF_INNB, -- 혜택 설정 고유번호
|
||||
b.BNF_DV_CD, -- 혜택 구분 코드
|
||||
b.BNF_SJ, -- 혜택 제목
|
||||
p.BNF_PRT_DT, -- 혜택 참여 일시
|
||||
CASE
|
||||
WHEN r.BNF_RCV_INNB IS NOT NULL THEN 'Y'
|
||||
ELSE 'N'
|
||||
END AS REWARD_RECEIVED -- 보상 수령 여부
|
||||
FROM
|
||||
GC_BENEFIT b
|
||||
JOIN
|
||||
GC_BENEFIT_PARTCPTN p ON b.BNF_INNB = p.BNF_INNB
|
||||
LEFT JOIN
|
||||
GC_BENEFIT_RECEIPT r ON p.BNF_PRT_INNB = r.BNF_PRT_INNB
|
||||
WHERE
|
||||
b.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
AND p.MBR_INNB = #{mbrInnb} -- 회원 고유번호
|
||||
AND p.MBR_DV_CD = #{mbrDvCd} -- 회원 구분 코드
|
||||
AND b.BNF_DV_CD != '020' -- 만보기 제외 (참여완료 의미 없음)
|
||||
AND b.BNF_DV_CD != '040' -- 룰렛 제외 (참여완료 의미 없음)
|
||||
AND b.BNF_END_DT >= NOW() -- 아직 종료되지 않은 이벤트만
|
||||
AND DATE(p.BNF_PRT_DT) = CURRENT_DATE() -- 모든 혜택에 대해 오늘 참여한 것만 포함
|
||||
ORDER BY
|
||||
p.BNF_PRT_DT DESC -- 최근 참여 순으로 정렬
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- QR 이벤트 혜택 설정 조회 -->
|
||||
<select id="selectQrEventBenefit" parameterType="com.wb.domainserver.domain.gcone.bnft.bnftMain.vo.BOBnftMainVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
b.BNF_INNB, -- 혜택 고유 번호
|
||||
b.BNF_SJ, -- 혜택 제목
|
||||
b.USE_AT, -- 사용여부
|
||||
b.BNF_WORDS_CN, -- 혜택 안내 문구
|
||||
b.BNF_BGN_DT, -- 진행기간 시작일시
|
||||
b.BNF_END_DT -- 진행기간 종료일시
|
||||
FROM
|
||||
GC_BENEFIT b
|
||||
WHERE
|
||||
b.BNF_DV_CD = '150' -- QR코드 이벤트 혜택 구분 코드
|
||||
AND b.USE_AT = 'Y' -- 사용 중인 혜택만
|
||||
AND b.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
AND (b.BNF_BGN_DT IS NULL OR b.BNF_BGN_DT <= NOW()) -- 시작일 체크
|
||||
AND (b.BNF_END_DT IS NULL OR b.BNF_END_DT >= NOW()) -- 종료일 체크
|
||||
ORDER BY
|
||||
b.BNF_INNB DESC -- 최신 혜택 우선
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- QR 이벤트 참여 정보 저장 -->
|
||||
<insert id="insertQrEventParticipation" parameterType="com.wb.domainserver.domain.gcone.bnft.bnftMain.vo.BOBnftMainVO" useGeneratedKeys="true" keyProperty="bnfPrtInnb" keyColumn="BNF_PRT_INNB">
|
||||
INSERT INTO GC_BENEFIT_PARTCPTN (
|
||||
BNF_INNB, -- 혜택 고유 번호
|
||||
BNF_PRT_DT, -- 혜택 참여 일시
|
||||
MBR_INNB, -- 회원 고유 번호
|
||||
MBR_DV_CD, -- 회원 구분 코드
|
||||
STR_INNB, -- 매장 고유번호
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록 일시
|
||||
)
|
||||
VALUES (
|
||||
#{bnfInnb},
|
||||
NOW(),
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
#{strInnb},
|
||||
#{mbrInnb},
|
||||
NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- QR 이벤트 보상 정보 조회 -->
|
||||
<select id="selectQrEventReward" parameterType="com.wb.domainserver.domain.gcone.bnft.bnftMain.vo.BOBnftMainVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
br.BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
br.BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
br.MLG_RWD_AMT, -- 마일리지 보상 금액
|
||||
br.COUPON_INNB, -- 쿠폰 고유 번호
|
||||
COALESCE(cs.COUPON_SNDNG_NM, br.ITM_NM) AS ITM_NM -- 쿠폰 이름 (쿠폰발송명 우선, 없으면 표시명)
|
||||
FROM
|
||||
GC_BENEFIT_REWARD br
|
||||
LEFT JOIN GC_COUPON_SNDNG cs ON br.COUPON_INNB = cs.COUPON_SNDNG_INNB
|
||||
AND cs.SOPMAL_CD = #{sopmalCd}
|
||||
WHERE
|
||||
<if test="bnfInnb != null and bnfInnb != ''">
|
||||
br.BNF_INNB = #{bnfInnb} -- 혜택 고유 번호
|
||||
</if>
|
||||
AND br.BNF_RWD_CATE_DV_CD = '15010' -- QR코드 이벤트 보상 코드
|
||||
ORDER BY
|
||||
br.MLG_RWD_AMT DESC -- 마일리지 높은 순으로 정렬
|
||||
</select>
|
||||
|
||||
<!-- QR 이벤트 보상 영수증 저장 -->
|
||||
<insert id="insertQrEventRewardReceipt" parameterType="com.wb.domainserver.domain.gcone.bnft.bnftMain.vo.BOBnftMainVO">
|
||||
<selectKey keyProperty="bnfRcvInnb" resultType="java.lang.Long" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_RCV_INNB), 0) + 1 FROM GC_BENEFIT_RECEIPT
|
||||
</selectKey>
|
||||
INSERT INTO GC_BENEFIT_RECEIPT
|
||||
(
|
||||
BNF_RCV_INNB, -- 혜택 보상수령 고유 번호
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유 번호
|
||||
BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
MLG_RWD_AMT, -- 마일리지 보상 금액
|
||||
COUPON_INNB, -- 쿠폰 고유 번호
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록 일시
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#{bnfRcvInnb},
|
||||
#{bnfPrtInnb},
|
||||
#{bnfRwdCateDvCd},
|
||||
#{bnfRwdGodsDvCd},
|
||||
#{mlgRwdAmt},
|
||||
#{couponInnb},
|
||||
#{mbrInnb},
|
||||
NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
</mapper>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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.gcone.bnft.conrev.mapper.BOConrevMapper">
|
||||
|
||||
<!-- 베스트 리뷰 목록 조회 -->
|
||||
<select id="selectBestReviewList" parameterType="com.wb.domainserver.domain.gcone.bnft.conrev.vo.BOConrevVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
b.BNF_INNB,
|
||||
b.BNF_SJ,
|
||||
b.BNF_WORDS_CN,
|
||||
b.USE_AT,
|
||||
b.BNF_BGN_DT,
|
||||
b.BNF_END_DT,
|
||||
c.CN_SJ,
|
||||
c.CN_DC,
|
||||
c.LINK_URL,
|
||||
c.IMG_FIL_COURS,
|
||||
c.IMG_FIL_NM,
|
||||
c.TME_SECND,
|
||||
CONCAT(SUBSTRING(c.MBR_NM, 1, 4), '***') MBR_NM,
|
||||
c.WORDS_CN,
|
||||
r.MLG_RWD_AMT
|
||||
FROM
|
||||
GC_BENEFIT b
|
||||
JOIN
|
||||
GC_BENEFIT_CONTENT c ON b.BNF_INNB = c.BNF_INNB
|
||||
JOIN
|
||||
GC_BENEFIT_REWARD r ON b.BNF_INNB = r.BNF_INNB
|
||||
WHERE
|
||||
b.BNF_DV_CD = '090' -- 베스트 리뷰보기 코드
|
||||
AND b.USE_AT = 'Y'
|
||||
AND (b.BNF_BGN_DT IS NULL OR b.BNF_BGN_DT <= NOW())
|
||||
AND (b.BNF_END_DT IS NULL OR b.BNF_END_DT >= NOW())
|
||||
AND b.SOPMAL_CD = #{sopmalCd}
|
||||
ORDER BY
|
||||
b.BNF_INNB DESC
|
||||
<!-- LIMIT #{pageSize} OFFSET #{offset} -->
|
||||
</select>
|
||||
|
||||
<!-- 리뷰 상세 정보 조회 -->
|
||||
<select id="selectReviewDetail" parameterType="com.wb.domainserver.domain.gcone.bnft.conrev.vo.BOConrevVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
b.BNF_INNB,
|
||||
b.BNF_SJ,
|
||||
c.CN_SJ AS GOODS_NM,
|
||||
c.CN_DC AS REVIEW_CONTENT,
|
||||
c.LINK_URL AS REVIEW_LINK,
|
||||
c.IMG_FIL_COURS,
|
||||
c.IMG_FIL_NM,
|
||||
c.TME_SECND,
|
||||
c.MBR_NM AS REVIEWER_NAME,
|
||||
r.MLG_RWD_AMT
|
||||
FROM
|
||||
GC_BENEFIT b
|
||||
JOIN
|
||||
GC_BENEFIT_CONTENT c ON b.BNF_INNB = c.BNF_INNB
|
||||
JOIN
|
||||
GC_BENEFIT_REWARD r ON b.BNF_INNB = r.BNF_INNB
|
||||
WHERE
|
||||
b.BNF_INNB = #{bnfInnb}
|
||||
</select>
|
||||
|
||||
<!-- 베스트 리뷰 보기 마일리지 적립 여부 확인 -->
|
||||
<select id="checkConrevMileageAccumulation" parameterType="com.wb.domainserver.domain.gcone.bnft.conrev.vo.BOConrevVO" resultType="int">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
COUNT(*) -- 적립 건수
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN p
|
||||
JOIN
|
||||
GC_BENEFIT_RECEIPT r ON p.BNF_PRT_INNB = r.BNF_PRT_INNB
|
||||
WHERE
|
||||
p.BNF_INNB = #{bnfInnb} -- 혜택 설정 고유번호
|
||||
AND
|
||||
p.MBR_INNB = #{mbrInnb} -- 회원 고유번호
|
||||
AND
|
||||
p.MBR_DV_CD = #{mbrDvCd} -- 회원 구분 코드
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 베스트 리뷰 보기 보상 정보 조회 -->
|
||||
<select id="selectConrevRewardInfo" parameterType="com.wb.domainserver.domain.gcone.bnft.conrev.vo.BOConrevVO" resultType="java.lang.Integer">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
MLG_RWD_AMT -- 마일리지 보상 금액
|
||||
FROM
|
||||
GC_BENEFIT gb
|
||||
LEFT JOIN GC_BENEFIT_REWARD gbr
|
||||
ON gb.BNF_INNB = gbr.BNF_INNB
|
||||
WHERE
|
||||
BNF_RWD_CATE_DV_CD = '09010' -- 베스트리뷰보기 보상 코드
|
||||
AND gb.BNF_INNB = #{bnfInnb}
|
||||
AND gb.USE_AT = 'Y'
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 리뷰 시간 정보 조회 -->
|
||||
<select id="selectReviewTime" parameterType="com.wb.domainserver.domain.gcone.bnft.conrev.vo.BOConrevVO" resultType="java.lang.Integer">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
TME_SECND -- 시간(초)
|
||||
FROM
|
||||
GC_BENEFIT_CONTENT
|
||||
WHERE
|
||||
BNF_INNB = #{bnfInnb} -- 혜택 설정 고유번호
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 베스트 리뷰 보기 참여 정보 삽입 -->
|
||||
<insert id="insertReviewParticipation" parameterType="com.wb.domainserver.domain.gcone.bnft.conrev.vo.BOConrevVO">
|
||||
<selectKey keyProperty="bnfPrtInnb" resultType="java.lang.Long" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_PRT_INNB), 0) + 1 FROM GC_BENEFIT_PARTCPTN
|
||||
</selectKey>
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_PARTCPTN (
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BNF_INNB, -- 혜택 설정 고유번호
|
||||
BNF_PRT_DT, -- 혜택 참여일시
|
||||
MBR_INNB, -- 회원 고유번호
|
||||
MBR_DV_CD, -- 회원 구분 코드
|
||||
PRT_LEAF_CNT, -- 참여 초록잎 개수
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록일시
|
||||
) VALUES (
|
||||
#{bnfPrtInnb},
|
||||
#{bnfInnb},
|
||||
NOW(),
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
#{paidLeafCnt},
|
||||
#{regusr},
|
||||
NOW()
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- 초록잎 지급량 조회 -->
|
||||
<select id="selectLeafCounts" parameterType="com.wb.domainserver.domain.gcone.bnft.atend.vo.BOAtendVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
PYMNT_CNT, -- 지급 초록잎 개수
|
||||
SPECIAL_CNT -- 스페셜 지급 초록잎 개수
|
||||
FROM
|
||||
GC_BENEFIT_CPSLMKN
|
||||
WHERE
|
||||
BNF_DV_CD = '090' -- 혜택 구분 코드
|
||||
AND SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
</select>
|
||||
|
||||
<!-- 베스트 리뷰 보기 마일리지 적립 정보 삽입 -->
|
||||
<insert id="insertMileageAccumulation" parameterType="com.wb.domainserver.domain.gcone.bnft.conrev.vo.BOConrevVO">
|
||||
<selectKey keyProperty="bnfRcvInnb" resultType="java.math.BigInteger" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_RCV_INNB), 0) + 1 FROM GC_BENEFIT_RECEIPT
|
||||
</selectKey>
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_RECEIPT (
|
||||
BNF_RCV_INNB, -- 혜택 보상수령 고유번호
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
MLG_RWD_AMT, -- 마일리지 금액
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록일시
|
||||
)
|
||||
SELECT
|
||||
#{bnfRcvInnb},
|
||||
latest_participation.BNF_PRT_INNB,
|
||||
'09010', -- 베스트리뷰보기 보상 코드
|
||||
'010', -- 마일리지 보상 상품 코드
|
||||
#{mlgRwdAmt},
|
||||
#{mbrInnb},
|
||||
NOW()
|
||||
FROM (
|
||||
SELECT BNF_PRT_INNB
|
||||
FROM GC_BENEFIT_PARTCPTN
|
||||
WHERE BNF_INNB = #{bnfInnb}
|
||||
AND MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
ORDER BY BNF_PRT_DT DESC
|
||||
LIMIT 1
|
||||
) AS latest_participation
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- 베스트리뷰 안내문 조회 -->
|
||||
<select id="selectBestReviewGuidance" parameterType="com.wb.domainserver.domain.gcone.bnft.conrev.vo.BOConrevVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
BNF_GDCC_INNB, -- 혜택 안내문 고유번호
|
||||
BNF_DV_CD, -- 혜택 구분코드
|
||||
SOPMAL_CD, -- 쇼핑몰코드
|
||||
WORDS_CN_1, -- 안내문 1
|
||||
WORDS_CN_2, -- 안내문 2
|
||||
WORDS_CN_3 -- 안내문 3
|
||||
FROM
|
||||
GC_BENEFIT_GDCC
|
||||
WHERE
|
||||
BNF_DV_CD = '090' -- 베스트리뷰 구분코드
|
||||
AND SOPMAL_CD = #{sopmalCd} -- 쇼핑몰코드
|
||||
]]>
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,644 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.bnft.cpslmkn.mapper.BOCpslmknMapper">
|
||||
|
||||
<!-- 캡슐만들기 제품목록 조회 -->
|
||||
<select id="selectRewardProductList" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
b.BNF_INNB, -- 혜택 설정 고유번호
|
||||
c.CN_SJ, -- 제품명
|
||||
c.CN_DC, -- 제품 한줄소개
|
||||
c.LINK_URL, -- 구매 URL
|
||||
c.IMG_FIL_COURS, -- 썸네일 이미지 파일 경로
|
||||
c.IMG_FIL_NM, -- 썸네일 이미지 파일명
|
||||
r.RWD_CND_CNT, -- 필요한 초록잎 개수
|
||||
b.USE_AT, -- 사용 여부
|
||||
c.VALID_DT, -- 유효 날짜
|
||||
r.MLG_RWD_AMT, -- 마일리지 보상 금액
|
||||
r.COUPON_INNB, -- 쿠폰 고유번호
|
||||
#{sopmalCd} -- 쇼핑몰 코드
|
||||
FROM
|
||||
GC_BENEFIT b
|
||||
INNER JOIN
|
||||
GC_BENEFIT_CONTENT c ON b.BNF_INNB = c.BNF_INNB
|
||||
INNER JOIN
|
||||
GC_BENEFIT_REWARD r ON b.BNF_INNB = r.BNF_INNB
|
||||
WHERE
|
||||
b.BNF_DV_CD = '050' -- 캡슐만들기 혜택 구분 코드
|
||||
AND b.USE_AT = 'Y' -- 사용 중인 혜택만 조회
|
||||
AND b.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
ORDER BY
|
||||
c.CN_SJ ASC -- 제품명 기준 오름차순 정렬
|
||||
</select>
|
||||
|
||||
<!-- 캡슐만들기 게임 안내 조회 -->
|
||||
<select id="selectImportantNotice" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
WORDS_CN_1 AS NOTICE_1,
|
||||
WORDS_CN_2 AS NOTICE_2,
|
||||
WORDS_CN_3 AS NOTICE_3
|
||||
FROM GC_BENEFIT_GDCC
|
||||
WHERE BNF_DV_CD = '050' -- 캡슐만들기의 혜택 구분 코드
|
||||
AND SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
</select>
|
||||
|
||||
<!--이전 진행 상황 체크 -->
|
||||
<select id="checkPreviousProgress" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
gbcs.BNF_STTUS_INNB, -- 상태 고유번호 반환
|
||||
gbcs.PROGRS_AT,
|
||||
gbcs.BNF_INNB,
|
||||
gbcs.PROGRS_STEP, -- 현재 단계도 반환
|
||||
gbcs.TOT_USE_LEAF_CNT -- 사용된 초록잎도 반환
|
||||
FROM
|
||||
GC_BENEFIT gb
|
||||
LEFT JOIN
|
||||
GC_BENEFIT_CPSLMKN_STTUS gbcs
|
||||
ON gb.BNF_INNB = gbcs.BNF_INNB
|
||||
WHERE
|
||||
gbcs.MBR_INNB = #{mbrInnb}
|
||||
AND gbcs.MBR_DV_CD = #{mbrDvCd}
|
||||
AND gbcs.PROGRS_AT = 'Y' -- 진행 중인 게임만
|
||||
AND gb.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
AND gb.USE_AT = 'Y'
|
||||
AND gb.BNF_INNB = #{bnfInnb} -- 현재 혜택만 조회
|
||||
ORDER BY gbcs.REGIST_DT DESC -- 최신 게임 우선
|
||||
LIMIT 1 -- 하나만 조회
|
||||
</select>
|
||||
|
||||
<!--필요한 초록잎 개수 조회 -->
|
||||
<select id="selectProductInfo" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
r.RWD_CND_CNT -- 필요한 초록잎 개수
|
||||
FROM
|
||||
GC_BENEFIT_REWARD r
|
||||
WHERE
|
||||
r.BNF_INNB = #{bnfInnb}
|
||||
</select>
|
||||
|
||||
<!-- 게임 진행 현황 -->
|
||||
<select id="selectCpslmknGameStatus" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
PROGRS_STEP, -- 진행 단계
|
||||
TOT_USE_LEAF_CNT, -- 총 사용 초록잎 개수
|
||||
BNF_STTUS_INNB -- 게임 상태 고유번호
|
||||
FROM
|
||||
GC_BENEFIT_CPSLMKN_STTUS
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb}
|
||||
AND BNF_STTUS_INNB = #{bnfSttusInnb}
|
||||
AND PROGRS_AT = 'Y'
|
||||
</select>
|
||||
|
||||
<!-- 보유 초록잎 조회 -->
|
||||
<select id="selectOwnedLeafCount" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO" resultType="int">
|
||||
SELECT
|
||||
COALESCE(
|
||||
(SELECT SUM(PRT_LEAF_CNT)
|
||||
FROM GC_BENEFIT_PARTCPTN
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}),
|
||||
0
|
||||
) -
|
||||
COALESCE(
|
||||
(SELECT SUM(USE_LEAF_CNT)
|
||||
FROM GC_BENEFIT_CPSLMKN_USELEAF
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}),
|
||||
0
|
||||
) AS owned_leaf_count
|
||||
</select>
|
||||
|
||||
<!-- 진행 상태 업데이트 -->
|
||||
<update id="updateProgressStatus" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO">
|
||||
UPDATE GC_BENEFIT_CPSLMKN_STTUS
|
||||
SET
|
||||
PROGRS_STEP = #{progrsStep}, -- 진행 단계
|
||||
TOT_USE_LEAF_CNT = #{totUseLeafCnt},-- 총 사용 초록잎 개수
|
||||
UPDT_DT = NOW() -- 수정 일시
|
||||
WHERE
|
||||
BNF_STTUS_INNB = #{bnfSttusInnb} -- 고유번호만으로 조건 단순화
|
||||
AND PROGRS_AT = 'Y' -- 진행 중인 게임만 (안전장치)
|
||||
AND MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
</update>
|
||||
|
||||
<!-- 진행 상태 삽입 -->
|
||||
<insert id="insertProgressStatus" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO">
|
||||
INSERT INTO GC_BENEFIT_CPSLMKN_STTUS (
|
||||
BNF_INNB, -- 혜택 설정 고유번호
|
||||
MBR_INNB, -- 회원 고유번호
|
||||
MBR_DV_CD, -- 회원 구분 코드
|
||||
PROGRS_AT, -- 진행 여부
|
||||
PROGRS_STEP, -- 진행 단계
|
||||
TOT_USE_LEAF_CNT, -- 총 사용 초록잎 개수
|
||||
REGIST_DT, -- 등록 일시
|
||||
UPDT_DT -- 수정 일시
|
||||
) VALUES (
|
||||
#{bnfInnb},
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
'Y',
|
||||
#{progrsStep},
|
||||
#{totUseLeafCnt},
|
||||
NOW(),
|
||||
NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 초록잎 사용 내역 저장 -->
|
||||
<insert id="insertLeafUsage" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO">
|
||||
INSERT INTO GC_BENEFIT_CPSLMKN_USELEAF (
|
||||
BNF_INNB, -- 혜택 설정 고유번호
|
||||
MBR_INNB, -- 회원 고유번호
|
||||
MBR_DV_CD, -- 회원 구분 코드
|
||||
USE_LEAF_CNT, -- 사용 초록잎 개수
|
||||
PROGRS_STEP, -- 진행 단계
|
||||
REGIST_DT -- 등록 일시
|
||||
) VALUES (
|
||||
#{bnfInnb},
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
#{useLeafCnt},
|
||||
#{progrsStep},
|
||||
NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 진행 상태 저장 또는 업데이트 -->
|
||||
<insert id="upsertProgressStatus" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO">
|
||||
INSERT INTO GC_BENEFIT_CPSLMKN_STTUS (
|
||||
BNF_INNB, -- 혜택 설정 고유번호
|
||||
MBR_INNB, -- 회원 고유번호
|
||||
MBR_DV_CD, -- 회원 구분 코드
|
||||
PROGRS_AT, -- 진행 여부
|
||||
PROGRS_STEP, -- 진행 단계
|
||||
TOT_USE_LEAF_CNT, -- 총 사용 초록잎 개수
|
||||
REGIST_DT, -- 등록 일시
|
||||
UPDT_DT -- 수정 일시
|
||||
) VALUES (
|
||||
#{bnfInnb},
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
'Y',
|
||||
#{progrsStep},
|
||||
#{totUseLeafCnt},
|
||||
NOW(),
|
||||
NOW()
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
PROGRS_STEP = #{progrsStep},
|
||||
TOT_USE_LEAF_CNT = #{totUseLeafCnt},
|
||||
UPDT_DT = NOW()
|
||||
</insert>
|
||||
|
||||
<!-- 현재 진행 상태와 선택한 보상 확인 -->
|
||||
<select id="selectCurrentProgress" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
s.PROGRS_STEP, -- 현재 단계
|
||||
s.TOT_USE_LEAF_CNT, -- 총 사용 초록잎 개수
|
||||
r.BNF_RWD_GODS_DV_CD, -- 선택한 보상 상품 구분 코드
|
||||
c.CN_SJ, -- 제품명
|
||||
c.CN_DC, -- 제품 설명
|
||||
b.BNF_WORDS_CN -- 중요 사항 안내
|
||||
FROM
|
||||
GC_BENEFIT_CPSLMKN_STTUS s
|
||||
JOIN
|
||||
GC_BENEFIT_REWARD r ON s.BNF_INNB = r.BNF_INNB
|
||||
JOIN
|
||||
GC_BENEFIT_CONTENT c ON s.BNF_INNB = c.BNF_INNB
|
||||
JOIN
|
||||
GC_BENEFIT b ON s.BNF_INNB = b.BNF_INNB
|
||||
WHERE
|
||||
s.MBR_INNB = #{mbrInnb}
|
||||
AND
|
||||
s.MBR_DV_CD = #{mbrDvCd}
|
||||
AND
|
||||
s.BNF_INNB = #{bnfInnb}
|
||||
AND s.PROGRS_AT = 'Y'
|
||||
</select>
|
||||
|
||||
<!-- 모달 데이터 조회 -->
|
||||
<select id="selectProgressModalData" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
s.PROGRS_STEP, -- 현재 진행 단계
|
||||
s.TOT_USE_LEAF_CNT, -- 총 사용된 초록잎 개수
|
||||
r.RWD_CND_CNT, -- 필요한 총 초록잎 개수
|
||||
c.CN_SJ, -- 선물 제목
|
||||
c.CN_DC, -- 선물 설명
|
||||
c.IMG_FIL_COURS, -- 선물 이미지 URL
|
||||
b.BNF_WORDS_CN -- 중요 공지사항
|
||||
FROM
|
||||
GC_BENEFIT_CPSLMKN_STTUS s
|
||||
JOIN GC_BENEFIT_REWARD r ON s.BNF_INNB = r.BNF_INNB
|
||||
JOIN GC_BENEFIT_CONTENT c ON s.BNF_INNB = c.BNF_INNB
|
||||
JOIN GC_BENEFIT b ON s.BNF_INNB = b.BNF_INNB
|
||||
WHERE
|
||||
s.MBR_INNB = #{mbrInnb}
|
||||
AND s.MBR_DV_CD = #{mbrDvCd}
|
||||
AND s.BNF_INNB = #{bnfInnb}
|
||||
AND s.PROGRS_AT = 'Y'
|
||||
</select>
|
||||
|
||||
<!-- 캡슐 만들기 알림 설정 정보 조회 -->
|
||||
<select id="selectCpslmknSettingsInfo" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
MBR_INNB, -- 회원 고유번호
|
||||
MBR_DV_CD, -- 회원 구분 코드
|
||||
BNF_DV_CD, -- 혜택 구분 코드
|
||||
BNF_AGRE_DV_CD, -- 혜택 동의 구분 코드
|
||||
AGRE_AT, -- 동의 여부
|
||||
BNF_INNB -- 혜택 설정 고유번호
|
||||
FROM
|
||||
GC_BENEFIT_AGREE
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb}
|
||||
AND
|
||||
MBR_DV_CD = #{mbrDvCd}
|
||||
AND
|
||||
BNF_DV_CD = '050' -- 캡슐만들기(050) 혜택 코드
|
||||
AND
|
||||
BNF_AGRE_DV_CD = '010' -- 알림동의(010) 코드
|
||||
AND
|
||||
SOPMAL_CD = #{sopmalCd}
|
||||
</select>
|
||||
|
||||
<!-- 알림 설정 저장 -->
|
||||
<insert id="upsertNotificationSetting" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO">
|
||||
INSERT INTO GC_BENEFIT_AGREE (
|
||||
SOPMAL_CD, -- 쇼핑몰 코드
|
||||
MBR_INNB, -- 회원 고유번호
|
||||
MBR_DV_CD, -- 회원 구분 코드
|
||||
BNF_DV_CD, -- 혜택 구분 코드
|
||||
BNF_AGRE_DV_CD, -- 혜택 동의 구분 코드
|
||||
BNF_INNB, -- 혜택 설정 고유번호
|
||||
AGRE_AT, -- 동의 여부
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록 일시
|
||||
) VALUES (
|
||||
#{sopmalCd},
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
'050', -- 캡슐만들기(050) 혜택 코드
|
||||
'010', -- 알림동의(010) 코드
|
||||
#{bnfInnb},
|
||||
#{agreAt},
|
||||
#{mbrInnb},
|
||||
NOW()
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
AGRE_AT = #{agreAt},
|
||||
REGUSR = #{mbrInnb},
|
||||
REGIST_DT = NOW()
|
||||
</insert>
|
||||
|
||||
<!-- 초록잎 생성, 사용 내역 조회 (최근 6개월) -->
|
||||
<select id="selectLeafHistory" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT * FROM (
|
||||
-- 초록잎 생성 내역 (혜택 참여)
|
||||
SELECT
|
||||
'CREATE' AS action_type,
|
||||
CASE b.BNF_DV_CD
|
||||
WHEN '010' THEN '출석체크'
|
||||
WHEN '020' THEN '만보기'
|
||||
WHEN '030' THEN '행운복권'
|
||||
WHEN '040' THEN '룰렛게임'
|
||||
WHEN '050' THEN '캡슐만들기 (퍼즐맞추기)'
|
||||
WHEN '060' THEN '이벤트보기'
|
||||
WHEN '070' THEN '라이브쇼핑 참여'
|
||||
WHEN '080' THEN '할인소식 공유'
|
||||
WHEN '090' THEN '베스트 리뷰보기'
|
||||
WHEN '100' THEN '섭취챌린지'
|
||||
WHEN '110' THEN 'GCpay 가입'
|
||||
WHEN '120' THEN '관심건강분야 설정'
|
||||
WHEN '130' THEN 'OX퀴즈'
|
||||
WHEN '140' THEN '모바일스탬프'
|
||||
WHEN '150' THEN 'QR코드 이벤트'
|
||||
WHEN '900' THEN '구매확정'
|
||||
ELSE '기타'
|
||||
END AS event_name,
|
||||
DATE_FORMAT(p.BNF_PRT_DT, '%Y-%m-%d %H:%i') AS action_datetime,
|
||||
p.PRT_LEAF_CNT AS leaf_count,
|
||||
p.REGIST_DT AS reg_datetime
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN p
|
||||
JOIN
|
||||
GC_BENEFIT b ON p.BNF_INNB = b.BNF_INNB
|
||||
WHERE
|
||||
p.MBR_INNB = #{mbrInnb}
|
||||
AND p.MBR_DV_CD = #{mbrDvCd}
|
||||
AND p.PRT_LEAF_CNT > 0
|
||||
AND p.BNF_PRT_DT >= DATE_SUB(NOW(), INTERVAL 6 MONTH)
|
||||
|
||||
UNION ALL
|
||||
|
||||
-- 초록잎 사용 내역 (캡슐 만들기)
|
||||
SELECT
|
||||
'USE' AS action_type,
|
||||
'넣기' AS event_name,
|
||||
DATE_FORMAT(u.REGIST_DT, '%Y-%m-%d %H:%i') AS action_datetime,
|
||||
(u.USE_LEAF_CNT * -1) AS leaf_count, -- 사용은 음수로 표시
|
||||
u.REGIST_DT AS reg_datetime
|
||||
FROM
|
||||
GC_BENEFIT_CPSLMKN_USELEAF u
|
||||
WHERE
|
||||
u.MBR_INNB = #{mbrInnb}
|
||||
AND u.MBR_DV_CD = #{mbrDvCd}
|
||||
AND u.REGIST_DT >= DATE_SUB(NOW(), INTERVAL 6 MONTH)
|
||||
) history
|
||||
ORDER BY
|
||||
reg_datetime DESC
|
||||
LIMIT
|
||||
#{offset}, #{limit}
|
||||
</select>
|
||||
|
||||
<!-- 혜택 고유번호로 보상 정보 조회 -->
|
||||
<select id="selectRewardInfoByBnfInnb" parameterType="long" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
MLG_RWD_AMT, -- 마일리지 금액
|
||||
COUPON_INNB -- 쿠폰고유번호
|
||||
-- 필요하다면 다른 보상 관련 컬럼도 추가 (예: ITM_NM)
|
||||
FROM
|
||||
GC_BENEFIT_REWARD
|
||||
WHERE
|
||||
BNF_INNB = #{bnfInnb}
|
||||
-- 캡슐 만들기 관련 보상은 하나만 존재한다고 가정.
|
||||
-- 만약 여러 개가 있을 수 있다면 추가적인 조건이나 LIMIT 필요
|
||||
</select>
|
||||
|
||||
<!-- 캡슐만들기 5단계 완료 시 혜택 참여 정보 기록 -->
|
||||
<insert id="insertBenefitParticipationOnCompletion" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO">
|
||||
<selectKey keyProperty="bnfPrtInnb" resultType="java.lang.Long" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_PRT_INNB), 0) + 1 FROM GC_BENEFIT_PARTCPTN
|
||||
</selectKey>
|
||||
INSERT INTO GC_BENEFIT_PARTCPTN (
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BNF_INNB, -- 혜택 설정 고유번호
|
||||
BNF_PRT_DT, -- 혜택 참여일시 (완료 시점)
|
||||
MBR_INNB, -- 회원 고유번호
|
||||
MBR_DV_CD, -- 회원 구분 코드
|
||||
REGIST_DT -- 등록 일시
|
||||
) VALUES (
|
||||
#{bnfPrtInnb},
|
||||
#{bnfInnb},
|
||||
NOW(),
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 캡슐만들기 완료 후 보상 수령 내역 기록 -->
|
||||
<insert id="insertBenefitReceipt" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO">
|
||||
<selectKey keyProperty="bnfRcvInnb" resultType="java.math.BigInteger" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_RCV_INNB), 0) + 1 FROM GC_BENEFIT_RECEIPT
|
||||
</selectKey>
|
||||
INSERT INTO GC_BENEFIT_RECEIPT (
|
||||
BNF_RCV_INNB, -- 혜택 보상수령 고유번호
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
MLG_RWD_AMT, -- 마일리지 금액
|
||||
COUPON_INNB, -- 쿠폰 고유번호
|
||||
GOODS_INNB, -- 상품 고유번호
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록 일시
|
||||
) VALUES (
|
||||
#{bnfRcvInnb},
|
||||
#{bnfPrtInnb},
|
||||
#{bnfRwdCateDvCd},
|
||||
#{bnfRwdGodsDvCd},
|
||||
#{mlgRwdAmt},
|
||||
#{couponInnb},
|
||||
#{goodsInnb},
|
||||
#{regusr},
|
||||
NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 특정 혜택의 현재 사용 가능 여부 확인 -->
|
||||
<select id="checkBenefitAvailability" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO" resultType="int">
|
||||
SELECT
|
||||
COUNT(*)
|
||||
FROM
|
||||
GC_BENEFIT
|
||||
WHERE
|
||||
BNF_DV_CD = '050'
|
||||
AND USE_AT = 'Y'
|
||||
AND SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드 조건 추가
|
||||
AND (BNF_BGN_DT IS NULL OR BNF_BGN_DT <= NOW()) -- 시작일이 없거나 시작일 이후
|
||||
AND (BNF_END_DT IS NULL OR BNF_END_DT >= NOW()) -- 종료일이 없거나 종료일 이전
|
||||
</select>
|
||||
|
||||
<!-- 같은 날짜의 기존 참여 정보 조회 -->
|
||||
<select id="selectTodayParticipation" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
BNF_PRT_INNB,
|
||||
PRT_LEAF_CNT
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN
|
||||
WHERE
|
||||
BNF_INNB = #{bnfInnb}
|
||||
AND MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND DATE(BNF_PRT_DT) = DATE(NOW())
|
||||
ORDER BY BNF_PRT_DT DESC
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 참여 정보 업데이트 (초록잎 추가) -->
|
||||
<update id="updateBenefitParticipation" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO">
|
||||
UPDATE GC_BENEFIT_PARTCPTN
|
||||
SET
|
||||
PRT_LEAF_CNT = PRT_LEAF_CNT + #{useLeafCnt},
|
||||
STEP_CNT = #{progrsStep},
|
||||
UPDUSR = #{regusr}, <!-- 명시적으로 updusr 사용 -->
|
||||
UPDT_DT = NOW()
|
||||
WHERE
|
||||
BNF_PRT_INNB = #{bnfPrtInnb}
|
||||
</update>
|
||||
|
||||
<!-- 새 참여 정보 삽입 -->
|
||||
<insert id="insertBenefitParticipation" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO" useGeneratedKeys="true" keyProperty="bnfPrtInnb">
|
||||
INSERT INTO GC_BENEFIT_PARTCPTN (
|
||||
BNF_INNB, -- 혜택 설정 고유번호
|
||||
BNF_PRT_DT, -- 혜택 참여일시
|
||||
MBR_INNB, -- 회원 고유번호
|
||||
MBR_DV_CD, -- 회원 구분 코드
|
||||
PRT_LEAF_CNT, -- 참여 초록잎 개수
|
||||
STEP_CNT, -- 걸음수
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록 일시
|
||||
) VALUES (
|
||||
#{bnfInnb},
|
||||
NOW(),
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
#{useLeafCnt},
|
||||
#{progrsStep}, <!-- 현재 진행 단계를 걸음수로 사용 -->
|
||||
#{regusr}, <!-- 명시적으로 regusr 사용 -->
|
||||
NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 보상 정보 조회 -->
|
||||
<select id="selectRewardInfo" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
r.BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
r.BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
r.MLG_RWD_AMT, -- 마일리지 금액
|
||||
r.COUPON_INNB -- 쿠폰 고유번호
|
||||
FROM
|
||||
GC_BENEFIT_REWARD r
|
||||
WHERE
|
||||
r.BNF_INNB = #{bnfInnb}
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 캡슐만들기 정보 조회 - 진행 상태가 없어도 기본 안내 정보 반환 -->
|
||||
<select id="selectCapsuleGameInfo"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO"
|
||||
resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
COALESCE(s.PROGRS_STEP, 0) AS currentProgressStep, -- 현재 진행 단계 (없으면 0)
|
||||
c.CN_SJ AS rewardProductName, -- 현재 리워드 제품 명
|
||||
c.IMG_FIL_COURS AS productImagePath, -- 제품 이미지 경로
|
||||
g.WORDS_CN_1 AS notice1, -- 캡슐만들기 게임 안내 1
|
||||
g.WORDS_CN_2 AS notice2, -- 캡슐만들기 게임 안내 2
|
||||
g.WORDS_CN_3 AS notice3 -- 캡슐만들기 게임 안내 3
|
||||
FROM
|
||||
GC_BENEFIT b
|
||||
INNER JOIN
|
||||
GC_BENEFIT_CONTENT c ON b.BNF_INNB = c.BNF_INNB
|
||||
LEFT JOIN
|
||||
GC_BENEFIT_GDCC g ON b.BNF_DV_CD = g.BNF_DV_CD AND b.SOPMAL_CD = g.SOPMAL_CD
|
||||
LEFT JOIN
|
||||
GC_BENEFIT_CPSLMKN_STTUS s ON b.BNF_INNB = s.BNF_INNB
|
||||
AND s.MBR_INNB = #{mbrInnb}
|
||||
AND s.MBR_DV_CD = #{mbrDvCd}
|
||||
AND s.PROGRS_AT = 'Y'
|
||||
WHERE
|
||||
b.BNF_DV_CD = '050' -- 캡슐만들기 혜택 구분 코드
|
||||
AND b.USE_AT = 'Y' -- 사용 중인 혜택만 조회
|
||||
AND b.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
AND (#{bnfInnb} IS NULL OR b.BNF_INNB = #{bnfInnb}) -- 특정 혜택 번호가 있으면 해당 혜택만
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 캡슐 만들기 게임 리셋 : 진행 중인 게임만 리셋 (중간에 그만두고 다시 할 때) -->
|
||||
<update id="resetCapsuleGame" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO">
|
||||
UPDATE GC_BENEFIT_CPSLMKN_STTUS
|
||||
SET
|
||||
PROGRS_AT = 'N',
|
||||
UPDT_DT = NOW()
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb}
|
||||
AND PROGRS_AT = 'Y' -- 진행 중인 게임만
|
||||
AND BNF_STTUS_INNB = #{bnfSttusInnb} -- 정확한 게임 식별
|
||||
AND ( -- 완료되지 않은 게임만 리셋 가능
|
||||
PROGRS_STEP < 5
|
||||
OR TOT_USE_LEAF_CNT < (
|
||||
SELECT RWD_CND_CNT
|
||||
FROM GC_BENEFIT_REWARD
|
||||
WHERE BNF_INNB = #{bnfInnb}
|
||||
)
|
||||
)
|
||||
</update>
|
||||
|
||||
<!-- 초록잎을 받을 수 있는 이벤트 목록 조회 -->
|
||||
<select id="selectLeafEventList" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
MAX(b.BNF_INNB) AS BNF_INNB, -- 혜택 설정 고유번호 (최신)
|
||||
b.BNF_DV_CD, -- 혜택 구분 코드
|
||||
b.SOPMAL_CD, -- 쇼핑몰 코드
|
||||
MAX(cp.PYMNT_CNT) AS PYMNT_CNT, -- 지급 초록잎 개수
|
||||
MAX(cp.SPECIAL_AT) AS SPECIAL_AT, -- 스페셜 여부 (Y/N)
|
||||
MAX(m.MENU_SJ_1) AS BNF_SJ, -- 메뉴 제목 1
|
||||
MAX(m.MENU_SJ_2) AS MENU_SJ_2, -- 메뉴 제목 2
|
||||
MAX(m.SORT_ORDR) AS SORT_ORDR -- 정렬순서
|
||||
FROM
|
||||
GC_BENEFIT b
|
||||
INNER JOIN
|
||||
GC_BENEFIT_CPSLMKN cp ON b.BNF_DV_CD = cp.BNF_DV_CD AND b.SOPMAL_CD = cp.SOPMAL_CD
|
||||
LEFT JOIN
|
||||
GC_BENEFIT_MANAGE_MENU m ON b.BNF_DV_CD = m.BNF_DV_CD AND b.SOPMAL_CD = m.SOPMAL_CD
|
||||
WHERE
|
||||
b.SOPMAL_CD = #{sopmalCd}
|
||||
AND (b.BNF_DV_CD = '120' OR b.USE_AT = 'Y') -- 관심분야설정은 USE_AT 체크 제외
|
||||
AND cp.INDICT_AT = 'Y'
|
||||
AND (b.BNF_DV_CD = '120' OR (b.BNF_BGN_DT <= NOW() AND b.BNF_END_DT >= NOW())) -- 관심분야설정은 기간 체크 제외
|
||||
AND (m.INDICT_AT IS NULL OR m.INDICT_AT = 'Y')
|
||||
GROUP BY
|
||||
b.BNF_DV_CD, b.SOPMAL_CD -- BNF_DV_CD 기준으로만 그룹핑
|
||||
ORDER BY
|
||||
MAX(cp.SPECIAL_AT) DESC, -- 스페셜 이벤트를 먼저 표시
|
||||
MAX(m.SORT_ORDR) ASC, -- 메뉴 정렬순서 적용
|
||||
MAX(b.BNF_INNB) -- 그 다음 일반 순서대로
|
||||
</select>
|
||||
|
||||
<!-- 초록잎 이벤트 총 지급 개수 조회 -->
|
||||
<select id="selectTotalLeafEventPaymentCount" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO" resultType="int">
|
||||
SELECT
|
||||
COALESCE(SUM(cp.PYMNT_CNT), 0) AS totalPaymentCount
|
||||
FROM
|
||||
GC_BENEFIT b
|
||||
INNER JOIN
|
||||
GC_BENEFIT_CONTENT c ON b.BNF_INNB = c.BNF_INNB
|
||||
INNER JOIN
|
||||
GC_BENEFIT_CPSLMKN cp ON b.BNF_DV_CD = cp.BNF_DV_CD AND b.SOPMAL_CD = cp.SOPMAL_CD
|
||||
WHERE
|
||||
b.SOPMAL_CD = #{sopmalCd}
|
||||
AND b.USE_AT = 'Y'
|
||||
AND cp.INDICT_AT = 'Y'
|
||||
AND b.BNF_BGN_DT <= NOW() AND b.BNF_END_DT >= NOW()
|
||||
</select>
|
||||
|
||||
<!-- 캡슐 게임 완료 처리 전용 메소드 -->
|
||||
<update id="completeGame" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO">
|
||||
UPDATE GC_BENEFIT_CPSLMKN_STTUS
|
||||
SET
|
||||
PROGRS_AT = 'N', -- 완료 상태로 변경
|
||||
PROGRS_STEP = 5, -- 완료 단계로 명시적 설정
|
||||
UPDT_DT = NOW()
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb}
|
||||
AND PROGRS_AT = 'Y' -- 진행 중인 게임만
|
||||
AND BNF_STTUS_INNB = #{bnfSttusInnb} -- 정확한 게임 식별
|
||||
AND PROGRS_STEP >= 5 -- 5단계 이상
|
||||
AND TOT_USE_LEAF_CNT >= ( -- 필요한 초록잎을 모두 사용한 경우만
|
||||
SELECT RWD_CND_CNT
|
||||
FROM GC_BENEFIT_REWARD
|
||||
WHERE BNF_INNB = #{bnfInnb}
|
||||
)
|
||||
</update>
|
||||
|
||||
<!-- 완료된 게임 확인 (새 게임 시작 가능 여부 판단용) -->
|
||||
<select id="checkCompletedGame" parameterType="com.wb.domainserver.domain.gcone.bnft.cpslmkn.vo.BOCpslmknVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
gbcs.BNF_STTUS_INNB,
|
||||
gbcs.PROGRS_AT,
|
||||
gbcs.BNF_INNB,
|
||||
gbcs.PROGRS_STEP,
|
||||
gbcs.TOT_USE_LEAF_CNT,
|
||||
gbcs.REGIST_DT
|
||||
FROM
|
||||
GC_BENEFIT gb
|
||||
LEFT JOIN
|
||||
GC_BENEFIT_CPSLMKN_STTUS gbcs ON gb.BNF_INNB = gbcs.BNF_INNB
|
||||
WHERE
|
||||
gbcs.MBR_INNB = #{mbrInnb}
|
||||
AND gbcs.MBR_DV_CD = #{mbrDvCd}
|
||||
AND gb.SOPMAL_CD = #{sopmalCd}
|
||||
AND gb.USE_AT = 'Y'
|
||||
AND gb.BNF_DV_CD = '050' -- 캡슐만들기 혜택
|
||||
ORDER BY gbcs.REGIST_DT DESC
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,129 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.bnft.discshar.mapper.BODiscsharMapper">
|
||||
|
||||
<!-- 할인소식 공유 혜택 정보 조회 -->
|
||||
<select id="selectDiscsharBenefitInfo" parameterType="com.wb.domainserver.domain.gcone.bnft.discshar.vo.BODiscsharVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
b.BNF_INNB, -- 혜택 설정 고유번호
|
||||
b.SOPMAL_CD, -- 쇼핑몰코드
|
||||
b.BNF_DV_CD, -- 혜택 구분 코드
|
||||
b.BNF_SJ, -- 혜택 제목
|
||||
b.BNF_BGN_DT, -- 진행기간 시작일시
|
||||
b.BNF_END_DT, -- 진행기간 종료일시
|
||||
b.SCR_REPRSNT_IMG, -- 화면 대표 이미지
|
||||
b.SCR_REPRSNT_LINK_URL, -- 화면 대표 링크 URL
|
||||
b.BNF_WORDS_CN, -- 혜택 안내
|
||||
c.CN_SJ, -- 내용 제목 (상품명)
|
||||
c.CN_DC, -- 내용 설명
|
||||
c.LINK_URL, -- 링크 (구매 링크)
|
||||
c.IMG_FIL_COURS, -- 이미지파일경로
|
||||
c.IMG_FIL_NM, -- 이미지파일명
|
||||
c.VALID_DT, -- 유효일시 (할인 유효기간)
|
||||
c.TME_SECND, -- 시간(초)
|
||||
c.DSCNT_UNIT_DV_CD, -- 할인구분코드
|
||||
c.DSCNT_AMT, -- 할인금액
|
||||
c.DSCNT_RT, -- 할인율
|
||||
r.BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
r.MLG_RWD_AMT -- 마일리지정보
|
||||
FROM
|
||||
GC_BENEFIT b
|
||||
LEFT JOIN GC_BENEFIT_CONTENT c ON b.BNF_INNB = c.BNF_INNB
|
||||
LEFT JOIN GC_BENEFIT_REWARD r ON b.BNF_INNB = r.BNF_INNB
|
||||
WHERE
|
||||
b.BNF_DV_CD = '080' -- 할인소식 공유 혜택 구분 코드
|
||||
AND b.USE_AT = 'Y'
|
||||
ORDER BY
|
||||
c.VALID_DT ASC -- 유효일시 기준 오름차순 정렬
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 할인소식 공유 혜택 참여 정보 삽입 -->
|
||||
<insert id="insertDiscsharBenefitParticipation" parameterType="com.wb.domainserver.domain.gcone.bnft.discshar.vo.BODiscsharVO">
|
||||
<selectKey keyProperty="bnfPrtInnb" resultType="java.lang.Long" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_PRT_INNB), 0) + 1 FROM GC_BENEFIT_PARTCPTN
|
||||
</selectKey>
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_PARTCPTN
|
||||
(
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BNF_INNB, -- 혜택 설정 고유번호
|
||||
BNF_PRT_DT, -- 혜택 참여일시
|
||||
MBR_INNB, -- 회원 고유번호
|
||||
MBR_DV_CD, -- 회원 구분 코드
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록일시
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#{bnfPrtInnb},
|
||||
#{bnfInnb},
|
||||
NOW(),
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
#{mbrInnb},
|
||||
NOW()
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- 할인소식 공유 마일리지 적립 정보 삽입 -->
|
||||
<insert id="insertDiscsharMileageAccumulation" parameterType="com.wb.domainserver.domain.gcone.bnft.discshar.vo.BODiscsharVO">
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_RECEIPT
|
||||
(
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
MLG_RWD_AMT, -- 마일리지 금액
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록일시
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
(SELECT BNF_PRT_INNB FROM GC_BENEFIT_PARTCPTN WHERE BNF_INNB = #{bnfInnb} AND MBR_INNB = #{mbrInnb} ORDER BY BNF_PRT_DT DESC LIMIT 1),
|
||||
'08010', -- 할인소식공유 보상 코드
|
||||
'010', -- 마일리지 보상 상품 코드
|
||||
(SELECT MLG_RWD_AMT FROM fm_benefit_reward WHERE BNF_INNB = #{bnfInnb} AND BNF_RWD_CATE_DV_CD = '08010'),
|
||||
#{mbrInnb},
|
||||
NOW()
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- 할인소식 공유 마일리지 적립 여부 확인 -->
|
||||
<select id="checkMileageAccumulation" parameterType="com.wb.domainserver.domain.gcone.bnft.discshar.vo.BODiscsharVO" resultType="int">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
COUNT(*) -- 적립 건수
|
||||
FROM
|
||||
GC_BENEFIT_RECEIPT r
|
||||
JOIN
|
||||
GC_BENEFIT_PARTCPTN p ON r.BNF_PRT_INNB = p.BNF_PRT_INNB
|
||||
WHERE
|
||||
p.BNF_INNB = #{bnfInnb} -- 혜택 설정 고유번호
|
||||
AND
|
||||
p.MBR_INNB = #{mbrInnb} -- 회원 고유번호
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 할인소식 공유 링크 정보 조회 -->
|
||||
<select id="getDiscsharLinkInfo" parameterType="com.wb.domainserver.domain.gcone.bnft.discshar.vo.BODiscsharVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
b.BNF_INNB, -- 혜택 설정 고유번호
|
||||
b.SCR_REPRSNT_LINK_URL, -- 화면 대표 링크 URL
|
||||
c.LINK_URL, -- 상품 구매 링크
|
||||
c.VALID_DT -- 유효일시 (할인 유효기간)
|
||||
FROM
|
||||
GC_BENEFIT b
|
||||
JOIN
|
||||
GC_BENEFIT_CONTENT c ON b.BNF_INNB = c.BNF_INNB
|
||||
WHERE
|
||||
b.BNF_INNB = #{bnfInnb}
|
||||
AND b.USE_AT = 'Y'
|
||||
AND b.BNF_DV_CD = '080' -- 할인소식 공유 혜택 구분 코드
|
||||
]]>
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,175 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.bnft.evntview.mapper.BOEvntViewMapper">
|
||||
|
||||
<!-- 이벤트 보기 혜택 기본 정보 및 보상 정보 통합 조회 -->
|
||||
<select id="selectEventViewBenefitInfoAndContent" parameterType="com.wb.domainserver.domain.gcone.bnft.evntview.vo.BOEvntViewVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
a.BNF_INNB, -- 혜택 설정 고유번호
|
||||
b.CN_DC AS EVENT_DESC, -- 내용 설명
|
||||
DATE_FORMAT(b.CN_BGN_DT, '%Y-%m-%d %H:%i:%s') AS CN_BGN_DT, -- 시작일시
|
||||
DATE_FORMAT(b.CN_END_DT, '%Y-%m-%d %H:%i:%s') AS CN_END_DT, -- 종료일시
|
||||
b.WORDS_CN AS EVENT_DETAIL, -- 안내내용
|
||||
b.IMG_FIL_COURS AS EVENT_IMG_PATH, -- 이미지파일경로
|
||||
b.IMG_FIL_NM AS EVENT_IMG_NAME, -- 이미지파일명
|
||||
b.TME_SECND AS LOADING_TIME, -- 시간(초)
|
||||
b.LINK_URL AS EVENT_LINK_URL, -- 링크
|
||||
b.CN_SJ AS EVENT_LINK_TITLE, -- 내용 제목
|
||||
b.CN_DC AS EVENT_LINK_DESC, -- 내용 설명
|
||||
-- 보상 정보 추가
|
||||
r.BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
r.BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
r.MLG_RWD_AMT, -- 마일리지 금액
|
||||
r.COUPON_INNB, -- 쿠폰고유번호
|
||||
r.ITM_NM, -- 표시명
|
||||
CASE
|
||||
WHEN EXISTS (
|
||||
SELECT 1
|
||||
FROM GC_BENEFIT_RECEIPT rcpt
|
||||
JOIN GC_BENEFIT_PARTCPTN p ON rcpt.BNF_PRT_INNB = p.BNF_PRT_INNB
|
||||
WHERE p.BNF_INNB = a.BNF_INNB
|
||||
AND p.MBR_INNB = #{mbrInnb}
|
||||
AND p.MBR_DV_CD = #{mbrDvCd}
|
||||
) THEN 'Y'
|
||||
ELSE 'N'
|
||||
END AS ACCUMULATED_YN -- 적립 완료 여부
|
||||
FROM
|
||||
GC_BENEFIT a -- 혜택 기본 정보 테이블
|
||||
LEFT JOIN
|
||||
GC_BENEFIT_CONTENT b ON a.BNF_INNB = b.BNF_INNB -- 혜택 내용설정 정보 테이블
|
||||
LEFT JOIN
|
||||
GC_BENEFIT_REWARD r ON a.BNF_INNB = r.BNF_INNB
|
||||
AND r.BNF_RWD_CATE_DV_CD = '06010' /* 이벤트보기 보상 코드 */
|
||||
WHERE
|
||||
a.BNF_DV_CD = '060' /* 이벤트보기 혜택 코드 */
|
||||
AND a.USE_AT = 'Y' -- 사용여부
|
||||
AND NOW() BETWEEN b.CN_BGN_DT AND b.CN_END_DT -- gc_benefit_content 테이블의 기간으로 변경
|
||||
AND a.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
<if test="bnfInnb != null">
|
||||
AND a.BNF_INNB = #{bnfInnb} -- 특정 혜택 번호 조건
|
||||
</if>
|
||||
ORDER BY
|
||||
a.REGIST_DT DESC -- 등록일시 기준 내림차순 정렬
|
||||
</select>
|
||||
|
||||
<!-- 이벤트 보기 안내문 조회 -->
|
||||
<select id="selectEventViewInstruction" parameterType="com.wb.domainserver.domain.gcone.bnft.evntview.vo.BOEvntViewVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
WORDS_CN_2 AS WORDS_CN
|
||||
FROM
|
||||
GC_BENEFIT_GDCC
|
||||
WHERE
|
||||
BNF_DV_CD = 060
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
</select>
|
||||
|
||||
<!-- 초록잎 지급량 조회 -->
|
||||
<select id="selectLeafCounts" parameterType="com.wb.domainserver.domain.gcone.bnft.atend.vo.BOAtendVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
PYMNT_CNT, -- 지급 초록잎 개수
|
||||
SPECIAL_CNT -- 스페셜 지급 초록잎 개수
|
||||
FROM
|
||||
GC_BENEFIT_CPSLMKN
|
||||
WHERE
|
||||
BNF_DV_CD = '060' -- 혜택 구분 코드
|
||||
AND SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
</select>
|
||||
|
||||
<!-- 이벤트 보기 혜택 참여 정보 삽입 -->
|
||||
<insert id="insertEventViewBenefitParticipation" parameterType="com.wb.domainserver.domain.gcone.bnft.evntview.vo.BOEvntViewVO">
|
||||
<selectKey keyProperty="bnfPrtInnb" resultType="java.lang.Long" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_PRT_INNB), 0) + 1 FROM GC_BENEFIT_PARTCPTN
|
||||
</selectKey>
|
||||
INSERT INTO GC_BENEFIT_PARTCPTN (
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유 번호
|
||||
BNF_INNB, -- 혜택 설정 고유번호
|
||||
BNF_PRT_DT, -- 혜택 참여일시
|
||||
MBR_INNB, -- 회원고유번호
|
||||
MBR_DV_CD, -- 회원구분코드
|
||||
PRT_LEAF_CNT, -- 참여 초록잎 개수 추가
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록일시
|
||||
) VALUES (
|
||||
#{bnfPrtInnb},
|
||||
#{bnfInnb}, -- 혜택 설정 고유번호 파라미터
|
||||
NOW(), -- 현재 시간
|
||||
#{mbrInnb}, -- 회원고유번호 파라미터
|
||||
#{mbrDvCd}, -- 회원구분코드 파라미터
|
||||
#{paidLeafCnt}, -- 초록잎 개수 파라미터 추가
|
||||
#{regusr}, -- 등록자 파라미터
|
||||
NOW() -- 현재 시간
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 이벤트 보기 혜택 보상 정보 조회 -->
|
||||
<select id="selectEventViewBenefitRewards" parameterType="com.wb.domainserver.domain.gcone.bnft.evntview.vo.BOEvntViewVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
r.BNF_INNB, -- 혜택 설정 고유번호
|
||||
r.BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
r.BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
r.MLG_RWD_AMT, -- 마일리지 금액
|
||||
r.COUPON_INNB, -- 쿠폰고유번호
|
||||
r.ITM_NM -- 표시명
|
||||
FROM
|
||||
GC_BENEFIT_REWARD r -- 혜택 보상설정 정보 테이블
|
||||
JOIN
|
||||
GC_BENEFIT b ON r.BNF_INNB = b.BNF_INNB -- 혜택 기본 정보 테이블과 조인 추가
|
||||
WHERE
|
||||
r.BNF_INNB = #{bnfInnb} -- 특정 혜택 번호 조건
|
||||
AND r.BNF_RWD_CATE_DV_CD = '06010' /* 이벤트보기 보상 코드 */
|
||||
AND b.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드 조건 추가
|
||||
</select>
|
||||
|
||||
<!-- 이벤트 보기 마일리지 적립 여부 확인 -->
|
||||
<select id="checkMileageAccumulation" parameterType="com.wb.domainserver.domain.gcone.bnft.evntview.vo.BOEvntViewVO" resultType="int">
|
||||
SELECT
|
||||
COUNT(1) -- 행 수 카운트
|
||||
FROM
|
||||
GC_BENEFIT_RECEIPT r -- 혜택 보상수령 내역 테이블
|
||||
JOIN
|
||||
GC_BENEFIT_PARTCPTN p ON r.BNF_PRT_INNB = p.BNF_PRT_INNB -- 혜택 참여 정보 테이블
|
||||
WHERE
|
||||
p.BNF_INNB = #{bnfInnb} -- 특정 혜택 번호 조건
|
||||
AND p.MBR_INNB = #{mbrInnb} -- 회원 고유번호 조건
|
||||
AND p.MBR_DV_CD = #{mbrDvCd} -- 회원 구분 코드 조건
|
||||
AND r.BNF_RWD_CATE_DV_CD = '06010' -- 이벤트보기 보상 코드
|
||||
</select>
|
||||
|
||||
<!-- 이벤트 보기 마일리지 적립 정보 삽입 -->
|
||||
<insert id="insertEventViewMileageAccumulation" parameterType="com.wb.domainserver.domain.gcone.bnft.evntview.vo.BOEvntViewVO">
|
||||
INSERT INTO GC_BENEFIT_RECEIPT (
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
MLG_RWD_AMT, -- 마일리지 금액
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록일시
|
||||
) VALUES (
|
||||
#{bnfPrtInnb}, -- 혜택 참여 고유번호 파라미터
|
||||
'06010', /* 이벤트보기 보상 코드 */
|
||||
'010', -- 보상 상품 구분 코드
|
||||
#{mlgRwdAmt}, -- 마일리지 금액 파라미터
|
||||
#{regusr}, -- 등록자 파라미터
|
||||
NOW() -- 현재 시간
|
||||
)
|
||||
<selectKey keyProperty="bnfRcvInnb" resultType="java.math.BigInteger" order="AFTER">
|
||||
SELECT LAST_INSERT_ID()
|
||||
</selectKey>
|
||||
</insert>
|
||||
|
||||
<!-- 이벤트 유효성 검증 (날짜 체크) -->
|
||||
<select id="checkEventValidation" parameterType="com.wb.domainserver.domain.gcone.bnft.evntview.vo.BOEvntViewVO" resultType="int">
|
||||
SELECT
|
||||
COUNT(1) -- 유효한 이벤트 수
|
||||
FROM
|
||||
GC_BENEFIT a -- 혜택 기본 정보 테이블
|
||||
JOIN
|
||||
GC_BENEFIT_CONTENT b ON a.BNF_INNB = b.BNF_INNB -- 혜택 내용설정 정보 테이블
|
||||
WHERE
|
||||
a.BNF_INNB = #{bnfInnb} -- 특정 혜택 번호 조건
|
||||
AND a.BNF_DV_CD = '060' /* 이벤트보기 혜택 코드 */
|
||||
AND a.USE_AT = 'Y' -- 사용여부
|
||||
AND NOW() BETWEEN b.CN_BGN_DT AND b.CN_END_DT -- gc_benefit_content 테이블의 기간으로 변경
|
||||
AND a.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,292 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.bnft.hlthset.mapper.BOHlthsetMapper">
|
||||
|
||||
<!-- 관심건강분야 설정 기본 정보 조회 -->
|
||||
<select id="selectHealthInterestBasicInfo" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
b.BNF_INNB,
|
||||
r.MLG_RWD_AMT, -- 관심분야 리워드
|
||||
b.BNF_WORDS_CN, -- 관심분야 안내문구
|
||||
COALESCE(a.AGRE_AT, 'N') AS AGRE_AT -- 정보받기 동의 여부 (기본값: N)
|
||||
FROM
|
||||
GC_BENEFIT b
|
||||
JOIN GC_BENEFIT_REWARD r ON b.BNF_INNB = r.BNF_INNB
|
||||
AND r.BNF_RWD_CATE_DV_CD = '12010'
|
||||
AND r.BNF_RWD_GODS_DV_CD = '010'
|
||||
LEFT JOIN GC_BENEFIT_AGREE a ON b.BNF_INNB = a.BNF_INNB
|
||||
AND a.SOPMAL_CD = #{sopmalCd}
|
||||
AND a.MBR_INNB = #{mbrInnb}
|
||||
AND a.MBR_DV_CD = #{mbrDvCd}
|
||||
AND a.BNF_DV_CD = '120'
|
||||
AND a.BNF_AGRE_DV_CD = '010'
|
||||
WHERE
|
||||
b.BNF_DV_CD = '120'
|
||||
AND b.SOPMAL_CD = #{sopmalCd}
|
||||
</select>
|
||||
|
||||
<!-- 관심분야 목록 조회 -->
|
||||
<select id="selectInterestAreas"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.hlthset.vo.BOHlthsetVO"
|
||||
resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
i.BNF_INTRST_INNB, -- 관심분야 ID
|
||||
i.INTRST_NM, -- 관심분야명
|
||||
i.BFE_IMG_FIL_COURS, -- 관심분야 이미지 경로
|
||||
CASE WHEN pi.CHOISE_AT = 'Y' THEN 'Y' ELSE 'N' END AS CHOISE_AT -- 선택여부
|
||||
FROM
|
||||
GC_BENEFIT_INTEREST i
|
||||
LEFT JOIN GC_BENEFIT_PARTCPTN_INTEREST pi
|
||||
ON i.BNF_INTRST_INNB = pi.BNF_INTRST_INNB
|
||||
AND pi.BNF_PRT_INNB = (
|
||||
SELECT BNF_PRT_INNB
|
||||
FROM GC_BENEFIT_PARTCPTN
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb}
|
||||
ORDER BY BNF_PRT_DT DESC
|
||||
LIMIT 1
|
||||
)
|
||||
WHERE
|
||||
i.BNF_INNB = #{bnfInnb}
|
||||
AND i.USE_AT = 'Y'
|
||||
ORDER BY
|
||||
i.SORT_ORDR
|
||||
</select>
|
||||
|
||||
<!-- 사용자 기존 관심분야 삭제 -->
|
||||
<delete id="deleteUserInterestAreas" parameterType="com.wb.domainserver.domain.gcone.bnft.hlthset.vo.BOHlthsetVO">
|
||||
<![CDATA[
|
||||
DELETE FROM GC_BENEFIT_PARTCPTN_INTEREST
|
||||
WHERE BNF_PRT_INNB = (
|
||||
SELECT BNF_PRT_INNB
|
||||
FROM GC_BENEFIT_PARTCPTN
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb}
|
||||
ORDER BY BNF_PRT_DT DESC
|
||||
LIMIT 1
|
||||
)
|
||||
]]>
|
||||
</delete>
|
||||
|
||||
<!-- 새로운 사용자 관심분야 저장 -->
|
||||
<insert id="insertUserInterestAreas" parameterType="java.util.List">
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_PARTCPTN_INTEREST (
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BNF_INTRST_INNB, -- 혜택 관심분야 고유번호
|
||||
CHOISE_AT -- 선택여부
|
||||
) VALUES
|
||||
]]>
|
||||
<foreach collection="list" item="item" separator=",">
|
||||
(
|
||||
#{item.bnfPrtInnb},
|
||||
#{item.bnfIntrstInnb},
|
||||
'Y'
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<!-- 초록잎 지급 개수 조회 -->
|
||||
<select id="selectLeafCounts" parameterType="com.wb.domainserver.domain.gcone.bnft.atend.vo.BOAtendVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
PYMNT_CNT, -- 지급 초록잎 개수
|
||||
SPECIAL_CNT -- 스페셜 지급 초록잎 개수
|
||||
FROM
|
||||
GC_BENEFIT_CPSLMKN
|
||||
WHERE
|
||||
BNF_DV_CD = '120' -- 혜택 구분 코드
|
||||
AND SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
</select>
|
||||
|
||||
<!-- 혜택 참여 정보 삽입 (gc_benefit_partcptn) -->
|
||||
<insert id="insertBenefitParticipation" parameterType="com.wb.domainserver.domain.gcone.bnft.hlthset.vo.BOHlthsetVO">
|
||||
<selectKey keyProperty="bnfPrtInnb" resultType="java.lang.Long" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_PRT_INNB), 0) + 1 FROM GC_BENEFIT_PARTCPTN
|
||||
</selectKey>
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_PARTCPTN (
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BNF_INNB, -- 혜택 설정 고유번호
|
||||
BNF_PRT_DT, -- 혜택 참여일시
|
||||
MBR_INNB, -- 회원 고유번호
|
||||
MBR_DV_CD, -- 회원 구분 코드
|
||||
PRT_LEAF_CNT, -- 참여 초록잎 개수
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록일시
|
||||
) VALUES (
|
||||
#{bnfPrtInnb},
|
||||
#{bnfInnb},
|
||||
NOW(),
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
#{paidLeafCnt},
|
||||
#{regusr},
|
||||
NOW()
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- 사용자 관심분야 정보 수신 동의 저장 (insert 또는 update) -->
|
||||
<insert id="insertUserInterestAgreement" parameterType="com.wb.domainserver.domain.gcone.bnft.hlthset.vo.BOHlthsetVO">
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_AGREE (
|
||||
SOPMAL_CD, -- 쇼핑몰 코드 (예: NC, DT)
|
||||
MBR_INNB, -- 회원 고유번호
|
||||
MBR_DV_CD, -- 회원 구분 코드 (예: GC, DT)
|
||||
BNF_DV_CD, -- 혜택 구분 코드
|
||||
BNF_AGRE_DV_CD, -- 혜택 동의 구분 코드 (예: '010' : 알림동의)
|
||||
BNF_INNB, -- 혜택 설정 고유번호
|
||||
AGRE_AT, -- 동의 여부 (Y/N)
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록일시
|
||||
) VALUES (
|
||||
#{sopmalCd},
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
'120',
|
||||
'010',
|
||||
#{bnfInnb},
|
||||
#{agreAt},
|
||||
#{regusr},
|
||||
NOW()
|
||||
)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
AGRE_AT = VALUES(AGRE_AT),
|
||||
REGUSR = VALUES(REGUSR),
|
||||
REGIST_DT = NOW()
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- 마일리지 적립 내역 저장 -->
|
||||
<insert id="insertMileageReward" parameterType="com.wb.domainserver.domain.gcone.bnft.hlthset.vo.BOHlthsetVO">
|
||||
<selectKey keyProperty="bnfRcvInnb" resultType="java.math.BigInteger" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_RCV_INNB), 0) + 1 FROM GC_BENEFIT_RECEIPT
|
||||
</selectKey>
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_RECEIPT (
|
||||
BNF_RCV_INNB, -- 혜택 보상수령 고유번호
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
MLG_RWD_AMT, -- 마일리지 금액
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록 일시
|
||||
) VALUES (
|
||||
#{bnfRcvInnb},
|
||||
#{bnfPrtInnb},
|
||||
'12010', -- 관심건강분야 보상 코드
|
||||
'010', -- 보상상품 마일리지 코드
|
||||
#{mlgRwdAmt},
|
||||
#{regusr},
|
||||
NOW()
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- 사용자 관심분야 조회 -->
|
||||
<select id="selectUserInterests" parameterType="com.wb.domainserver.domain.gcone.bnft.hlthset.vo.BOHlthsetVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
i.BNF_INTRST_INNB,
|
||||
i.INTRST_NM
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN_INTEREST pi
|
||||
JOIN
|
||||
GC_BENEFIT_INTEREST i ON pi.BNF_INTRST_INNB = i.BNF_INTRST_INNB
|
||||
WHERE
|
||||
pi.BNF_PRT_INNB = (
|
||||
SELECT BNF_PRT_INNB
|
||||
FROM GC_BENEFIT_PARTCPTN
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb}
|
||||
ORDER BY BNF_PRT_DT DESC
|
||||
LIMIT 1
|
||||
)
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 해당 월에 마일리지 보상을 받았는지 확인 (수정된 버전) -->
|
||||
<select id="hasMonthlyMileageReward" parameterType="com.wb.domainserver.domain.gcone.bnft.hlthset.vo.BOHlthsetVO" resultType="boolean">
|
||||
<![CDATA[
|
||||
SELECT EXISTS (
|
||||
SELECT 1
|
||||
FROM GC_BENEFIT_RECEIPT r
|
||||
JOIN GC_BENEFIT_PARTCPTN p ON r.BNF_PRT_INNB = p.BNF_PRT_INNB
|
||||
WHERE p.MBR_INNB = #{mbrInnb}
|
||||
AND p.MBR_DV_CD = #{mbrDvCd}
|
||||
AND p.BNF_INNB = #{bnfInnb}
|
||||
AND r.BNF_RWD_CATE_DV_CD = '12010' -- 관심건강분야 보상 코드
|
||||
AND DATE_FORMAT(r.REGIST_DT, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m')
|
||||
)
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 사용자 관심분야 저장 상태 및 마일리지 적립 여부 조회 (수정된 버전) -->
|
||||
<select id="selectUserInterestSaveStatus" parameterType="com.wb.domainserver.domain.gcone.bnft.hlthset.vo.BOHlthsetVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
CASE WHEN COUNT(DISTINCT pi.BNF_INTRST_INNB) > 0 THEN 'Y' ELSE 'N' END AS saved_yn,
|
||||
CASE WHEN SUM(r.MLG_RWD_AMT) > 0 THEN 'Y' ELSE 'N' END AS mileage_accumulated_yn,
|
||||
COALESCE(SUM(r.MLG_RWD_AMT), 0) AS MLG_RWD_AMT
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN p
|
||||
LEFT JOIN GC_BENEFIT_PARTCPTN_INTEREST pi ON p.BNF_PRT_INNB = pi.BNF_PRT_INNB
|
||||
LEFT JOIN GC_BENEFIT_RECEIPT r ON p.BNF_PRT_INNB = r.BNF_PRT_INNB
|
||||
AND r.BNF_RWD_CATE_DV_CD = '12010'
|
||||
AND DATE_FORMAT(r.REGIST_DT, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m')
|
||||
WHERE
|
||||
p.MBR_INNB = #{mbrInnb}
|
||||
AND p.MBR_DV_CD = #{mbrDvCd}
|
||||
AND p.BNF_INNB = #{bnfInnb}
|
||||
AND DATE_FORMAT(p.BNF_PRT_DT, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m')
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 마지막 관심분야 참여 월 조회 -->
|
||||
<select id="selectLastInterestParticipationMonth" parameterType="com.wb.domainserver.domain.gcone.bnft.hlthset.vo.BOHlthsetVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT DATE_FORMAT(MAX(BNF_PRT_DT), '%Y-%m') AS last_month
|
||||
FROM GC_BENEFIT_PARTCPTN
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb}
|
||||
AND EXISTS (
|
||||
SELECT 1
|
||||
FROM GC_BENEFIT_PARTCPTN_INTEREST pi
|
||||
WHERE pi.BNF_PRT_INNB = GC_BENEFIT_PARTCPTN.BNF_PRT_INNB
|
||||
)
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 월별 관심분야 초기화 (관심분야 데이터만 삭제) -->
|
||||
<delete id="resetMonthlyInterestAreas" parameterType="com.wb.domainserver.domain.gcone.bnft.hlthset.vo.BOHlthsetVO">
|
||||
<![CDATA[
|
||||
DELETE pi FROM GC_BENEFIT_PARTCPTN_INTEREST pi
|
||||
JOIN GC_BENEFIT_PARTCPTN p ON pi.BNF_PRT_INNB = p.BNF_PRT_INNB
|
||||
WHERE p.MBR_INNB = #{mbrInnb}
|
||||
AND p.MBR_DV_CD = #{mbrDvCd}
|
||||
AND p.BNF_INNB = #{bnfInnb}
|
||||
AND DATE_FORMAT(p.BNF_PRT_DT, '%Y-%m') < DATE_FORMAT(NOW(), '%Y-%m')
|
||||
]]>
|
||||
</delete>
|
||||
|
||||
<!-- 현재 월 참여 정보 조회 -->
|
||||
<select id="selectCurrentMonthParticipation" parameterType="com.wb.domainserver.domain.gcone.bnft.hlthset.vo.BOHlthsetVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
BNF_PRT_INNB,
|
||||
BNF_PRT_DT
|
||||
FROM GC_BENEFIT_PARTCPTN
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb}
|
||||
AND DATE_FORMAT(BNF_PRT_DT, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m')
|
||||
ORDER BY BNF_PRT_DT DESC
|
||||
LIMIT 1
|
||||
]]>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,950 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.bnft.intakchl.mapper.BOIntakchlMapper">
|
||||
|
||||
<!-- 혜택 화면 설정 정보 조회 -->
|
||||
<select id="selectIntakchlScreenInfo" parameterType="com.wb.domainserver.domain.gcone.bnft.atend.vo.BOAtendVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
BNF_INNB, -- 혜택 고유 번호
|
||||
SCR_REPRSNT_IMG, -- 화면 대표 이미지 경로
|
||||
SCR_REPRSNT_LINK_URL, -- 화면 대표 이미지 링크 URL
|
||||
SCR_RWD_IMG, -- 보상 이미지 경로
|
||||
SCR_RWD_LINK_URL, -- 보상 이미지 링크 URL
|
||||
BNF_WORDS_CN -- 혜택 안내 문구
|
||||
FROM
|
||||
GC_BENEFIT
|
||||
WHERE
|
||||
BNF_DV_CD = '100' -- 출석체크 혜택 구분 코드
|
||||
AND USE_AT = 'Y'
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
ORDER BY
|
||||
BNF_INNB -- 혜택 고유 번호로 정렬
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 선택된 제품 추가 -->
|
||||
<insert id="insertSelectedProducts" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO">
|
||||
INSERT INTO GC_BENEFIT_NTKCHL (
|
||||
BNF_INNB,
|
||||
MBR_INNB,
|
||||
MBR_DV_CD,
|
||||
GOODS_INNB,
|
||||
SOPMAL_CD,
|
||||
BNF_NTK_STTUS_DV_CD,
|
||||
NTK_CNT,
|
||||
DEL_AT,
|
||||
REGUSR,
|
||||
REGIST_DT
|
||||
)
|
||||
VALUES
|
||||
<foreach collection="products" item="product" separator=",">
|
||||
(
|
||||
#{bnfInnb},
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
#{product.goodsInnb},
|
||||
#{sopmalCd},
|
||||
'010', -- 섭취중 상태
|
||||
0,
|
||||
'N',
|
||||
#{regusr},
|
||||
NOW()
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<!-- 선택한 날짜의 전체 섭취 기록 및 총 섭취율 조회 -->
|
||||
<select id="selectDailyTotalIntakeRecord" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
COALESCE(total_actual, 0) AS TOTAL_ACTUAL_INTAKE, -- 실제 섭취 횟수 합계
|
||||
COALESCE(total_target, 0) AS TOTAL_TARGET_INTAKE, -- 목표 섭취 횟수 합계
|
||||
COALESCE(
|
||||
CASE
|
||||
WHEN total_target = 0 THEN 0
|
||||
ELSE ROUND(total_actual * 100.0 / total_target)
|
||||
END,
|
||||
0
|
||||
) AS OVERALL_INTAKE_RATE_PERCENTAGE -- 전체 섭취율 백분율 (NULL 방지)
|
||||
FROM (
|
||||
SELECT
|
||||
SUM(actual_count) AS total_actual, -- 실제 섭취 횟수 합계
|
||||
SUM(NTK_CNT) AS total_target -- 목표 섭취 횟수 합계
|
||||
FROM (
|
||||
SELECT
|
||||
n.BNF_NTK_INNB, -- 혜택 섭취챌린지 고유번호
|
||||
n.NTK_CNT, -- 목표 섭취 횟수
|
||||
COUNT(p.BNF_PRT_INNB) AS actual_count -- 실제 섭취 횟수
|
||||
FROM GC_BENEFIT_NTKCHL n
|
||||
LEFT JOIN GC_BENEFIT_PARTCPTN_NTKCHL nt
|
||||
ON n.BNF_NTK_INNB = nt.BNF_NTK_INNB
|
||||
LEFT JOIN GC_BENEFIT_PARTCPTN p
|
||||
ON nt.BNF_PRT_INNB = p.BNF_PRT_INNB
|
||||
AND DATE(p.BNF_PRT_DT) = replace(#{selectedDate}, '-', '') -- 날짜 필터링
|
||||
WHERE n.DEL_AT = 'N' -- 삭제되지 않은 데이터만 조회
|
||||
AND n.MBR_INNB = #{mbrInnb} -- 회원 고유번호 필터링 추가
|
||||
AND n.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드 필터링 추가
|
||||
AND n.BNF_NTK_STTUS_DV_CD = '010' -- 섭취중 상태만 조회
|
||||
AND (#{bnfInnb} IS NULL OR n.BNF_INNB = #{bnfInnb}) -- 혜택 설정 고유번호 필터링 추가
|
||||
AND DATE(n.REGIST_DT) <= replace(#{selectedDate}, '-', '') -- 제품 등록일이 선택된 날짜 이전이거나 같은 경우만
|
||||
GROUP BY n.BNF_NTK_INNB, n.NTK_CNT
|
||||
) AS product_intake -- 제품별 섭취 정보
|
||||
) AS totals
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 선택한 날짜의 섭취 기록 상세 조회 (제품별) -->
|
||||
<select id="selectDailyIntakeRecordsDetail" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
n.BNF_NTK_INNB, -- 혜택 섭취챌린지 고유번호
|
||||
n.GOODS_INNB, -- 상품 고유번호
|
||||
n.NTK_CNT AS target_intake_count, -- 목표 섭취 횟수
|
||||
COUNT(p.BNF_PRT_INNB) AS today_intake_count, -- 오늘 실제 섭취 횟수
|
||||
CASE
|
||||
WHEN COUNT(p.BNF_PRT_INNB) >= n.NTK_CNT THEN 'Y'
|
||||
ELSE 'N'
|
||||
END AS goal_achieved -- 목표 달성 여부 ('Y': 달성, 'N': 미달성)
|
||||
FROM GC_BENEFIT_NTKCHL n
|
||||
LEFT JOIN GC_BENEFIT_PARTCPTN_NTKCHL nt ON n.BNF_NTK_INNB = nt.BNF_NTK_INNB
|
||||
LEFT JOIN GC_BENEFIT_PARTCPTN p ON nt.BNF_PRT_INNB = p.BNF_PRT_INNB
|
||||
AND DATE(p.BNF_PRT_DT) = #{selectedDate}
|
||||
WHERE n.DEL_AT = 'N'
|
||||
AND n.MBR_INNB = #{mbrInnb}
|
||||
AND n.MBR_DV_CD = #{mbrDvCd}
|
||||
AND (#{bnfInnb} IS NULL OR n.BNF_INNB = #{bnfInnb})
|
||||
AND n.SOPMAL_CD = #{sopmalCd}
|
||||
AND n.BNF_NTK_STTUS_DV_CD = '010' -- 섭취중 상태만 조회 (추가)
|
||||
GROUP BY n.BNF_NTK_INNB, n.GOODS_INNB, n.NTK_CNT
|
||||
ORDER BY n.BNF_NTK_INNB
|
||||
]]>
|
||||
</select>
|
||||
<!-- 초록잎 지급 개수 조회 -->
|
||||
<select id="selectLeafCounts" parameterType="com.wb.domainserver.domain.gcone.bnft.atend.vo.BOAtendVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
PYMNT_CNT, -- 지급 초록잎 개수
|
||||
SPECIAL_CNT -- 스페셜 지급 초록잎 개수
|
||||
FROM
|
||||
GC_BENEFIT_CPSLMKN
|
||||
WHERE
|
||||
BNF_DV_CD = '100' -- 혜택 구분 코드
|
||||
AND SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
</select>
|
||||
|
||||
<!-- 마일리지 보상 금액 조회 -->
|
||||
<select id="getMileageRewardAmount" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO" resultType="java.lang.Double">
|
||||
SELECT CAST(MLG_RWD_AMT AS DECIMAL(12,2)) -- 마일리지 금액
|
||||
FROM GC_BENEFIT_REWARD
|
||||
WHERE BNF_INNB = #{bnfInnb} -- 혜택 설정 고유번호
|
||||
AND BNF_RWD_CATE_DV_CD = '10010' -- 보상 항목 구분 코드 (섭취챌린지 1일 보상)
|
||||
AND BNF_RWD_GODS_DV_CD = '010' -- 보상 상품 구분 코드 (마일리지)
|
||||
</select>
|
||||
|
||||
<!-- 오늘 이미 마일리지를 적립했는지 확인 -->
|
||||
<select id="checkMileageAlreadyAwarded" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO" resultType="boolean">
|
||||
SELECT EXISTS (
|
||||
SELECT 1
|
||||
FROM GC_BENEFIT_RECEIPT r
|
||||
JOIN GC_BENEFIT_PARTCPTN p ON r.BNF_PRT_INNB = p.BNF_PRT_INNB
|
||||
WHERE p.BNF_INNB = #{bnfInnb} -- 혜택 설정 고유번호
|
||||
AND p.MBR_INNB = #{mbrInnb} -- 회원 고유번호
|
||||
AND p.MBR_DV_CD = #{mbrDvCd} -- 회원 구분 코드 추가
|
||||
AND DATE(p.BNF_PRT_DT) = CURDATE() -- 혜택 참여 일시
|
||||
AND r.BNF_RWD_CATE_DV_CD = '10010' -- 보상 항목 구분 코드 (섭취챌린지 1일 보상)
|
||||
)
|
||||
</select>
|
||||
|
||||
<!-- 일일 섭취 목표 달성 여부 확인 -->
|
||||
<select id="checkDailyGoalAchievement" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO" resultType="boolean">
|
||||
SELECT
|
||||
CASE
|
||||
WHEN COALESCE(SUM(daily_actual), 0) >= COALESCE(SUM(daily_target), 0)
|
||||
AND COALESCE(SUM(daily_target), 0) > 0 THEN true
|
||||
ELSE false
|
||||
END AS goal_achieved
|
||||
FROM (
|
||||
SELECT
|
||||
n.BNF_NTK_INNB,
|
||||
n.NTK_CNT AS daily_target,
|
||||
COUNT(p.BNF_PRT_INNB) AS daily_actual
|
||||
FROM GC_BENEFIT_NTKCHL n
|
||||
LEFT JOIN GC_BENEFIT_PARTCPTN_NTKCHL nt ON n.BNF_NTK_INNB = nt.BNF_NTK_INNB
|
||||
LEFT JOIN GC_BENEFIT_PARTCPTN p ON nt.BNF_PRT_INNB = p.BNF_PRT_INNB
|
||||
AND DATE(p.BNF_PRT_DT) = CURDATE()
|
||||
WHERE n.BNF_INNB = #{bnfInnb}
|
||||
AND n.MBR_INNB = #{mbrInnb}
|
||||
AND n.MBR_DV_CD = #{mbrDvCd}
|
||||
AND n.SOPMAL_CD = #{sopmalCd}
|
||||
AND n.BNF_NTK_STTUS_DV_CD = '010' -- 섭취중 상태만
|
||||
AND n.DEL_AT = 'N'
|
||||
GROUP BY n.BNF_NTK_INNB, n.NTK_CNT
|
||||
) AS intake_summary
|
||||
</select>
|
||||
|
||||
<!-- 마일리지 적립 처리 -->
|
||||
<insert id="awardIntakeChallengesMileage" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO">
|
||||
<selectKey keyProperty="bnfRcvInnb" resultType="java.math.BigInteger" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_RCV_INNB), 0) + 1 FROM GC_BENEFIT_RECEIPT
|
||||
</selectKey>
|
||||
INSERT INTO GC_BENEFIT_RECEIPT (
|
||||
BNF_RCV_INNB, -- 혜택 보상수령 고유번호
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
MLG_RWD_AMT, -- 마일리지 금액
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록일시
|
||||
)
|
||||
SELECT
|
||||
#{bnfRcvInnb},
|
||||
(SELECT MAX(BNF_PRT_INNB)
|
||||
FROM GC_BENEFIT_PARTCPTN
|
||||
WHERE BNF_INNB = #{bnfInnb}
|
||||
AND MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND DATE(BNF_PRT_DT) = CURDATE()
|
||||
),
|
||||
'10010', -- 섭취챌린지 1일 보상 코드
|
||||
'010', -- 마일리지 보상 상품 코드
|
||||
#{mlgRwdAmt},
|
||||
#{mbrInnb},
|
||||
NOW()
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM GC_BENEFIT_RECEIPT r
|
||||
JOIN GC_BENEFIT_PARTCPTN p ON r.BNF_PRT_INNB = p.BNF_PRT_INNB
|
||||
WHERE p.BNF_INNB = #{bnfInnb}
|
||||
AND p.MBR_INNB = #{mbrInnb}
|
||||
AND p.MBR_DV_CD = #{mbrDvCd}
|
||||
AND DATE(p.BNF_PRT_DT) = CURDATE()
|
||||
AND r.BNF_RWD_CATE_DV_CD = '10010'
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 날짜별 상태 정보 조회 -->
|
||||
<select id="selectStatsDateClasses" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
WITH RECURSIVE DateRange AS (
|
||||
-- 날짜 범위 생성 (최근 30일)
|
||||
SELECT DATE_SUB(CURDATE(), INTERVAL 29 DAY) AS date
|
||||
UNION ALL
|
||||
SELECT DATE_ADD(date, INTERVAL 1 DAY)
|
||||
FROM DateRange
|
||||
WHERE date < CURDATE()
|
||||
),
|
||||
DailyIntakeStatus AS (
|
||||
SELECT
|
||||
DATE(p.BNF_PRT_DT) AS participation_date,
|
||||
n.BNF_NTK_INNB,
|
||||
n.NTK_CNT AS target_count,
|
||||
COUNT(pn.BNF_PRT_NTK_INNB) AS actual_count,
|
||||
CASE
|
||||
WHEN COUNT(pn.BNF_PRT_NTK_INNB) >= n.NTK_CNT THEN 'DONE'
|
||||
WHEN COUNT(pn.BNF_PRT_NTK_INNB) > 0 THEN 'ING'
|
||||
ELSE 'NONE'
|
||||
END AS daily_status
|
||||
FROM GC_BENEFIT_NTKCHL n
|
||||
LEFT JOIN GC_BENEFIT_PARTCPTN_NTKCHL pn ON n.BNF_NTK_INNB = pn.BNF_NTK_INNB
|
||||
LEFT JOIN GC_BENEFIT_PARTCPTN p ON pn.BNF_PRT_INNB = p.BNF_PRT_INNB
|
||||
WHERE n.MBR_INNB = #{mbrInnb}
|
||||
AND n.MBR_DV_CD = #{mbrDvCd}
|
||||
AND n.BNF_INNB = #{bnfInnb}
|
||||
AND n.SOPMAL_CD = #{sopmalCd}
|
||||
AND n.DEL_AT = 'N'
|
||||
AND n.BNF_NTK_STTUS_DV_CD = '010' -- 섭취중 상태만
|
||||
AND p.BNF_PRT_DT >= DATE_SUB(CURDATE(), INTERVAL 29 DAY)
|
||||
GROUP BY DATE(p.BNF_PRT_DT), n.BNF_NTK_INNB, n.NTK_CNT
|
||||
),
|
||||
ConsecutiveStatus AS (
|
||||
SELECT
|
||||
participation_date,
|
||||
COUNT(CASE WHEN daily_status = 'DONE' THEN 1 END) AS done_count,
|
||||
COUNT(CASE WHEN daily_status = 'ING' THEN 1 END) AS ing_count,
|
||||
ROW_NUMBER() OVER (ORDER BY participation_date DESC) AS days_ago
|
||||
FROM DailyIntakeStatus
|
||||
GROUP BY participation_date
|
||||
),
|
||||
ConsecutiveDays AS (
|
||||
SELECT
|
||||
participation_date,
|
||||
done_count,
|
||||
ing_count,
|
||||
@consecutive := CASE
|
||||
WHEN done_count > 0 THEN @consecutive + 1
|
||||
ELSE 0
|
||||
END AS consecutive_days
|
||||
FROM ConsecutiveStatus
|
||||
CROSS JOIN (SELECT @consecutive := 0) AS vars
|
||||
ORDER BY participation_date
|
||||
)
|
||||
SELECT
|
||||
dr.date,
|
||||
COALESCE(cs.done_count, 0) AS done_count,
|
||||
COALESCE(cs.ing_count, 0) AS ing_count,
|
||||
CASE
|
||||
WHEN COALESCE(cs.done_count, 0) > 0 THEN 'stats_done'
|
||||
WHEN COALESCE(cs.ing_count, 0) > 0 THEN 'stats_ing'
|
||||
ELSE ''
|
||||
END AS stats_done,
|
||||
CASE
|
||||
WHEN COALESCE(cs.done_count, 0) > 0 THEN 'stats_done'
|
||||
WHEN COALESCE(cs.ing_count, 0) > 0 THEN 'stats_ing'
|
||||
ELSE ''
|
||||
END AS stats_ing,
|
||||
CASE
|
||||
WHEN cd.consecutive_days >= 30 THEN 'stats_30done'
|
||||
ELSE ''
|
||||
END AS stats_30done
|
||||
FROM DateRange dr
|
||||
LEFT JOIN ConsecutiveStatus cs ON dr.date = cs.participation_date
|
||||
LEFT JOIN ConsecutiveDays cd ON dr.date = cd.participation_date
|
||||
ORDER BY dr.date DESC
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 현재 챌린지 중인 제품을 조회-->
|
||||
<select id="selectCurrentChallengeProducts" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
n.BNF_NTK_INNB, -- 혜택 섭취챌린지 고유번호
|
||||
n.BNF_INNB, -- 혜택 설정 고유번호
|
||||
n.MBR_INNB, -- 회원 고유번호
|
||||
n.GOODS_INNB AS productId,-- 상품 고유번호
|
||||
g.GOODS_NM AS productName,-- 상품명
|
||||
FN_GET_GOODS_IMAGE(g.SOPMAL_CD, g.GOODS_INNB, '03') AS imageUrl, -- 상품 썸네일 이미지
|
||||
n.NTK_CNT AS dailyIntakeCount, -- 1일 섭취 횟수
|
||||
n.BNF_NTK_STTUS_DV_CD, -- 섭취상태 구분코드 (010: 섭취중, 020: 일시중단, 030: 종료)
|
||||
n.MEMO, -- 메모
|
||||
n.REGIST_DT, -- 등록일시
|
||||
(
|
||||
SELECT COUNT(pn.BNF_PRT_NTK_INNB)
|
||||
FROM GC_BENEFIT_PARTCPTN_NTKCHL pn
|
||||
JOIN GC_BENEFIT_PARTCPTN p ON pn.BNF_PRT_INNB = p.BNF_PRT_INNB
|
||||
WHERE pn.BNF_NTK_INNB = n.BNF_NTK_INNB
|
||||
AND DATE(p.BNF_PRT_DT) = CASE
|
||||
WHEN #{selectedDate} IS NOT NULL THEN #{selectedDate}
|
||||
ELSE CURDATE()
|
||||
END
|
||||
) AS todayIntakeCount -- 오늘 섭취 횟수
|
||||
FROM
|
||||
GC_BENEFIT_NTKCHL n
|
||||
LEFT JOIN
|
||||
GC_GOODS g ON n.GOODS_INNB = g.GOODS_INNB AND n.SOPMAL_CD = g.SOPMAL_CD
|
||||
WHERE
|
||||
n.MBR_INNB = #{mbrInnb} -- 회원 고유번호
|
||||
AND n.MBR_DV_CD = #{mbrDvCd} -- 회원 구분 코드 추가
|
||||
AND (#{bnfInnb} IS NULL OR n.BNF_INNB = #{bnfInnb}) -- 혜택 설정 고유번호
|
||||
AND n.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드 필터링 추가
|
||||
AND n.BNF_NTK_STTUS_DV_CD = '010' -- 섭취중 상태
|
||||
AND n.DEL_AT = 'N' -- 삭제되지 않은 데이터
|
||||
AND (#{selectedDate} IS NULL OR DATE(n.REGIST_DT) <= #{selectedDate}) -- 제품 등록일이 선택된 날짜 이전이거나 같은 경우만
|
||||
ORDER BY
|
||||
n.REGIST_DT DESC -- 등록일시 기준 내림차순 정렬
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 섭취챌린지 제품 상세 정보 조회 -->
|
||||
<select id="selectIntakeChallengeProductDetail" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
n.BNF_NTK_INNB, -- 혜택 섭취챌린지 고유번호
|
||||
n.BNF_INNB, -- 혜택 설정 고유번호
|
||||
n.MBR_INNB, -- 회원 고유번호
|
||||
n.GOODS_INNB, -- 상품 고유번호
|
||||
g.GOODS_NM, -- 상품명
|
||||
FN_GET_GOODS_IMAGE(g.SOPMAL_CD, g.GOODS_INNB, '03') AS thumbnail, -- 상품 썸네일 이미지
|
||||
n.NTK_CNT, -- 목표 섭취 횟수
|
||||
n.BNF_NTK_STTUS_DV_CD, -- 섭취상태 구분코드 (010: 섭취중, 020: 일시중단, 030: 종료)
|
||||
CASE
|
||||
WHEN n.BNF_NTK_STTUS_DV_CD = '010' THEN '섭취중'
|
||||
WHEN n.BNF_NTK_STTUS_DV_CD = '020' THEN '일시중단'
|
||||
WHEN n.BNF_NTK_STTUS_DV_CD = '030' THEN '종료'
|
||||
ELSE ''
|
||||
END AS status_name, -- 섭취상태 이름
|
||||
n.MEMO, -- 메모
|
||||
g.SRT_DC AS intake_instructions, -- 섭취방법 (간략설명)
|
||||
n.REGIST_DT AS start_date, -- 섭취 시작일자 추가
|
||||
(
|
||||
SELECT GROUP_CONCAT(
|
||||
JSON_OBJECT(
|
||||
'id', c.CTGRY_ID,
|
||||
'name', c.CTGRY_NM
|
||||
)
|
||||
)
|
||||
FROM GC_CATEGORY_LINK cl
|
||||
JOIN GC_CATEGORY c ON cl.CTGRY_ID = c.CTGRY_ID AND cl.SOPMAL_CD = c.SOPMAL_CD
|
||||
WHERE cl.GOODS_INNB = n.GOODS_INNB
|
||||
AND cl.SOPMAL_CD = n.SOPMAL_CD
|
||||
) AS categories -- 카테고리 정보 (JSON 형식)
|
||||
FROM
|
||||
GC_BENEFIT_NTKCHL n
|
||||
JOIN
|
||||
GC_GOODS g ON n.GOODS_INNB = g.GOODS_INNB AND n.SOPMAL_CD = g.SOPMAL_CD
|
||||
WHERE
|
||||
n.BNF_NTK_INNB = #{bnfNtkInnb}
|
||||
AND n.MBR_INNB = #{mbrInnb}
|
||||
AND n.MBR_DV_CD = #{mbrDvCd}
|
||||
AND n.DEL_AT = 'N'
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 일일 섭취 횟수 및 메모 업데이트 -->
|
||||
<insert id="upsertIntakeChallengeInfo" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO">
|
||||
INSERT INTO GC_BENEFIT_NTKCHL (
|
||||
BNF_NTK_INNB,
|
||||
BNF_INNB,
|
||||
MBR_INNB,
|
||||
MBR_DV_CD,
|
||||
GOODS_INNB,
|
||||
SOPMAL_CD,
|
||||
BNF_NTK_STTUS_DV_CD,
|
||||
NTK_CNT,
|
||||
MEMO,
|
||||
DEL_AT,
|
||||
REGUSR,
|
||||
REGIST_DT
|
||||
) VALUES (
|
||||
#{bnfNtkInnb},
|
||||
#{bnfInnb},
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
#{goodsInnb},
|
||||
#{sopmalCd},
|
||||
#{bnfNtkSttusDvCd},
|
||||
#{ntkCnt},
|
||||
#{memo},
|
||||
'N',
|
||||
#{regusr},
|
||||
NOW()
|
||||
)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
NTK_CNT = #{ntkCnt},
|
||||
MEMO = #{memo},
|
||||
BNF_NTK_STTUS_DV_CD = #{bnfNtkSttusDvCd},
|
||||
UPDUSR = #{mbrInnb},
|
||||
UPDT_DT = NOW()
|
||||
</insert>
|
||||
|
||||
<!-- 섭취챌린지 제품 삭제 (논리적 삭제) -->
|
||||
<update id="deleteIntakeChallengeProduct" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO">
|
||||
UPDATE GC_BENEFIT_NTKCHL
|
||||
SET
|
||||
DEL_AT = 'Y', -- 삭제 여부를 'Y'로 설정
|
||||
UPDUSR = #{mbrInnb}, -- 수정자 (회원 고유번호)
|
||||
UPDT_DT = NOW() -- 수정일시
|
||||
WHERE
|
||||
BNF_NTK_INNB = #{bnfNtkInnb} -- 혜택 섭취챌린지 고유번호
|
||||
AND MBR_INNB = #{mbrInnb} -- 회원 고유번호
|
||||
AND MBR_DV_CD = #{mbrDvCd} -- 회원 구분 코드 추가
|
||||
AND SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드 필터링 추가
|
||||
AND DEL_AT = 'N' -- 현재 삭제되지 않은 상태인 경우에만 업데이트
|
||||
</update>
|
||||
|
||||
<!-- 모든 상태의 섭취챌린지 제품 목록 조회 (완료여부 Y/N 포함) -->
|
||||
<select id="selectAllIntakeChallengeProducts" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
WITH ProductConsecutiveDays AS (
|
||||
SELECT
|
||||
n.BNF_NTK_INNB,
|
||||
n.GOODS_INNB,
|
||||
MAX(consecutive_days) as max_consecutive_days
|
||||
FROM GC_BENEFIT_NTKCHL n
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
pn.BNF_NTK_INNB,
|
||||
MAX(consec.consecutive_days) as consecutive_days
|
||||
FROM GC_BENEFIT_PARTCPTN_NTKCHL pn
|
||||
JOIN GC_BENEFIT_PARTCPTN p ON pn.BNF_PRT_INNB = p.BNF_PRT_INNB
|
||||
JOIN (
|
||||
SELECT
|
||||
pn2.BNF_NTK_INNB,
|
||||
DATE(p2.BNF_PRT_DT) as participation_date,
|
||||
@consecutive := CASE
|
||||
WHEN @prev_date = DATE_SUB(DATE(p2.BNF_PRT_DT), INTERVAL 1 DAY)
|
||||
AND @prev_product = pn2.BNF_NTK_INNB
|
||||
THEN @consecutive + 1
|
||||
ELSE 1
|
||||
END as consecutive_days,
|
||||
@prev_date := DATE(p2.BNF_PRT_DT),
|
||||
@prev_product := pn2.BNF_NTK_INNB
|
||||
FROM GC_BENEFIT_PARTCPTN_NTKCHL pn2
|
||||
JOIN GC_BENEFIT_PARTCPTN p2 ON pn2.BNF_PRT_INNB = p2.BNF_PRT_INNB
|
||||
CROSS JOIN (SELECT @consecutive := 0, @prev_date := '', @prev_product := 0) as vars
|
||||
ORDER BY pn2.BNF_NTK_INNB, DATE(p2.BNF_PRT_DT)
|
||||
) consec ON pn.BNF_NTK_INNB = consec.BNF_NTK_INNB
|
||||
GROUP BY pn.BNF_NTK_INNB
|
||||
) consecutive_data ON n.BNF_NTK_INNB = consecutive_data.BNF_NTK_INNB
|
||||
WHERE n.MBR_INNB = #{mbrInnb}
|
||||
AND n.MBR_DV_CD = #{mbrDvCd}
|
||||
AND (#{bnfInnb} IS NULL OR n.BNF_INNB = #{bnfInnb})
|
||||
AND n.SOPMAL_CD = #{sopmalCd}
|
||||
AND n.DEL_AT = 'N'
|
||||
GROUP BY n.BNF_NTK_INNB, n.GOODS_INNB
|
||||
)
|
||||
SELECT
|
||||
n.BNF_NTK_INNB, -- 혜택 섭취챌린지 고유번호
|
||||
n.BNF_INNB, -- 혜택 설정 고유번호
|
||||
n.MBR_INNB, -- 회원 고유번호
|
||||
n.GOODS_INNB AS productId, -- 상품 고유번호
|
||||
g.GOODS_NM AS productName, -- 상품명
|
||||
FN_GET_GOODS_IMAGE(g.SOPMAL_CD, g.GOODS_INNB, '03') AS imageUrl, -- 상품 썸네일 이미지
|
||||
n.NTK_CNT AS dailyIntakeCount, -- 1일 섭취 횟수
|
||||
n.BNF_NTK_STTUS_DV_CD, -- 원본 섭취상태 구분코드
|
||||
CASE
|
||||
WHEN n.BNF_NTK_STTUS_DV_CD = '010' THEN 'ACTIVE' -- 섭취중
|
||||
ELSE 'INACTIVE' -- 기타(일시중단, 종료)
|
||||
END AS challengeStatus, -- 새로운 챌린지 상태
|
||||
CASE
|
||||
WHEN COALESCE(pcd.max_consecutive_days, 0) >= 30 THEN 'Y' -- 30일 완료
|
||||
ELSE 'N'
|
||||
END AS isCompleted, -- 30일 완료 여부 (Y/N)
|
||||
CASE
|
||||
WHEN COALESCE(pcd.max_consecutive_days, 0) >= 30 THEN '완료'
|
||||
WHEN n.BNF_NTK_STTUS_DV_CD = '010' THEN '섭취중'
|
||||
WHEN n.BNF_NTK_STTUS_DV_CD = '020' THEN '일시중단'
|
||||
WHEN n.BNF_NTK_STTUS_DV_CD = '030' THEN '종료'
|
||||
ELSE ''
|
||||
END AS statusName, -- 새로운 상태 이름
|
||||
n.REGIST_DT AS addedDate, -- 챌린지 추가일
|
||||
COALESCE(pcd.max_consecutive_days, 0) AS maxConsecutiveDays -- 최대 연속 일수
|
||||
FROM
|
||||
GC_BENEFIT_NTKCHL n
|
||||
LEFT JOIN
|
||||
GC_GOODS g ON n.GOODS_INNB = g.GOODS_INNB AND n.SOPMAL_CD = g.SOPMAL_CD
|
||||
LEFT JOIN
|
||||
ProductConsecutiveDays pcd ON n.BNF_NTK_INNB = pcd.BNF_NTK_INNB
|
||||
WHERE
|
||||
n.MBR_INNB = #{mbrInnb} -- 회원 고유번호
|
||||
AND n.MBR_DV_CD = #{mbrDvCd} -- 회원 구분 코드 추가
|
||||
AND (#{bnfInnb} IS NULL OR n.BNF_INNB = #{bnfInnb}) -- 혜택 설정 고유번호
|
||||
AND n.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드 필터링
|
||||
AND n.DEL_AT = 'N' -- 삭제되지 않은 데이터
|
||||
ORDER BY
|
||||
n.REGIST_DT DESC -- 등록일시 기준 내림차순 정렬(최근 추가순)
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 섭취챌린지 전체 현황 조회 (전체, 섭취중, 완료로 분류) -->
|
||||
<select id="selectIntakeChallengeCount" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
WITH ProductConsecutiveDays AS (
|
||||
SELECT
|
||||
n.BNF_NTK_INNB,
|
||||
n.BNF_NTK_STTUS_DV_CD,
|
||||
MAX(consecutive_days) as max_consecutive_days
|
||||
FROM GC_BENEFIT_NTKCHL n
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
pn.BNF_NTK_INNB,
|
||||
MAX(consec.consecutive_days) as consecutive_days
|
||||
FROM GC_BENEFIT_PARTCPTN_NTKCHL pn
|
||||
JOIN GC_BENEFIT_PARTCPTN p ON pn.BNF_PRT_INNB = p.BNF_PRT_INNB
|
||||
JOIN (
|
||||
SELECT
|
||||
pn2.BNF_NTK_INNB,
|
||||
DATE(p2.BNF_PRT_DT) as participation_date,
|
||||
@consecutive := CASE
|
||||
WHEN @prev_date = DATE_SUB(DATE(p2.BNF_PRT_DT), INTERVAL 1 DAY)
|
||||
AND @prev_product = pn2.BNF_NTK_INNB
|
||||
THEN @consecutive + 1
|
||||
ELSE 1
|
||||
END as consecutive_days,
|
||||
@prev_date := DATE(p2.BNF_PRT_DT),
|
||||
@prev_product := pn2.BNF_NTK_INNB
|
||||
FROM GC_BENEFIT_PARTCPTN_NTKCHL pn2
|
||||
JOIN GC_BENEFIT_PARTCPTN p2 ON pn2.BNF_PRT_INNB = p2.BNF_PRT_INNB
|
||||
CROSS JOIN (SELECT @consecutive := 0, @prev_date := '', @prev_product := 0) as vars
|
||||
ORDER BY pn2.BNF_NTK_INNB, DATE(p2.BNF_PRT_DT)
|
||||
) consec ON pn.BNF_NTK_INNB = consec.BNF_NTK_INNB
|
||||
GROUP BY pn.BNF_NTK_INNB
|
||||
) consecutive_data ON n.BNF_NTK_INNB = consecutive_data.BNF_NTK_INNB
|
||||
WHERE n.MBR_INNB = #{mbrInnb}
|
||||
AND n.MBR_DV_CD = #{mbrDvCd}
|
||||
AND (#{bnfInnb} IS NULL OR n.BNF_INNB = #{bnfInnb})
|
||||
AND n.SOPMAL_CD = #{sopmalCd}
|
||||
AND n.DEL_AT = 'N'
|
||||
GROUP BY n.BNF_NTK_INNB, n.BNF_NTK_STTUS_DV_CD
|
||||
)
|
||||
SELECT
|
||||
COUNT(*) AS totalCount, -- 전체 제품 수
|
||||
SUM(CASE
|
||||
WHEN COALESCE(max_consecutive_days, 0) >= 30 THEN 0 -- 완료된 제품은 섭취중에서 제외
|
||||
WHEN BNF_NTK_STTUS_DV_CD = '010' THEN 1
|
||||
ELSE 0
|
||||
END) AS activeCount, -- 섭취중인 제품 수 (완료 제외)
|
||||
SUM(CASE
|
||||
WHEN COALESCE(max_consecutive_days, 0) >= 30 THEN 1
|
||||
ELSE 0
|
||||
END) AS completedCount -- 30일 완료한 제품 수
|
||||
FROM
|
||||
ProductConsecutiveDays
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 누적 보상 정보 조회 -->
|
||||
<select id="selectCumulativeRewards" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
SUM(CASE WHEN r.BNF_RWD_CATE_DV_CD = '10010' THEN r.MLG_RWD_AMT ELSE 0 END) AS dailyRewardTotal,
|
||||
SUM(CASE WHEN r.BNF_RWD_CATE_DV_CD = '10020' THEN r.MLG_RWD_AMT ELSE 0 END) AS consecutiveRewardTotal,
|
||||
COUNT(CASE WHEN r.BNF_RWD_CATE_DV_CD = '10020' AND r.BNF_RWD_GODS_DV_CD = '020' THEN r.COUPON_INNB ELSE NULL END) AS couponCount
|
||||
FROM
|
||||
GC_BENEFIT_RECEIPT rec
|
||||
JOIN
|
||||
GC_BENEFIT_PARTCPTN p ON rec.BNF_PRT_INNB = p.BNF_PRT_INNB
|
||||
JOIN
|
||||
GC_BENEFIT_REWARD r ON p.BNF_INNB = r.BNF_INNB AND rec.BNF_RWD_CATE_DV_CD = r.BNF_RWD_CATE_DV_CD
|
||||
WHERE
|
||||
p.MBR_INNB = #{mbrInnb}
|
||||
AND p.MBR_DV_CD = #{mbrDvCd}
|
||||
AND p.BNF_INNB = #{bnfInnb}
|
||||
</select>
|
||||
|
||||
<!-- 연속 성공 기간 조회 -->
|
||||
<select id="selectConsecutiveSuccessDays" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
WITH DateRange AS (
|
||||
SELECT
|
||||
ADDDATE('1970-01-01', t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) as date
|
||||
FROM
|
||||
(SELECT 0 AS i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t0,
|
||||
(SELECT 0 AS i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t1,
|
||||
(SELECT 0 AS i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t2,
|
||||
(SELECT 0 AS i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t3,
|
||||
(SELECT 0 AS i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t4
|
||||
WHERE
|
||||
ADDDATE('1970-01-01', t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) BETWEEN
|
||||
(SELECT MIN(REGIST_DT) FROM GC_BENEFIT_NTKCHL WHERE MBR_INNB = #{mbrInnb} AND MBR_DV_CD = #{mbrDvCd} AND BNF_INNB = #{bnfInnb} AND SOPMAL_CD = #{sopmalCd} AND DEL_AT = 'N')
|
||||
AND CURDATE()
|
||||
),
|
||||
SuccessDates AS (
|
||||
SELECT DISTINCT DATE(p.BNF_PRT_DT) as success_date
|
||||
FROM GC_BENEFIT_PARTCPTN p
|
||||
WHERE p.MBR_INNB = #{mbrInnb} AND p.MBR_DV_CD = #{mbrDvCd} AND p.BNF_INNB = #{bnfInnb}
|
||||
),
|
||||
DateStatus AS (
|
||||
SELECT
|
||||
d.date,
|
||||
CASE WHEN s.success_date IS NOT NULL THEN 1 ELSE 0 END as is_success,
|
||||
CASE WHEN @consec := IF(s.success_date IS NOT NULL, @consec + 1, 0) THEN @consec ELSE 0 END as consecutive_count
|
||||
FROM
|
||||
DateRange d
|
||||
LEFT JOIN
|
||||
SuccessDates s ON d.date = s.success_date
|
||||
CROSS JOIN
|
||||
(SELECT @consec := 0) as vars
|
||||
ORDER BY
|
||||
d.date
|
||||
),
|
||||
ConsecutiveGroups AS (
|
||||
SELECT
|
||||
date,
|
||||
consecutive_count,
|
||||
@group_id := IF(consecutive_count = 0, @group_id + 1, @group_id) as group_id
|
||||
FROM
|
||||
DateStatus
|
||||
CROSS JOIN
|
||||
(SELECT @group_id := 0) as vars
|
||||
ORDER BY
|
||||
date
|
||||
),
|
||||
ConsecutivePeriods AS (
|
||||
SELECT
|
||||
group_id,
|
||||
MIN(date) as start_date,
|
||||
MAX(date) as end_date,
|
||||
MAX(consecutive_count) as consecutive_days
|
||||
FROM
|
||||
ConsecutiveGroups
|
||||
WHERE
|
||||
consecutive_count > 0
|
||||
GROUP BY
|
||||
group_id
|
||||
)
|
||||
SELECT
|
||||
start_date,
|
||||
end_date,
|
||||
consecutive_days,
|
||||
CASE WHEN end_date = CURDATE() THEN 'Y' ELSE 'N' END as is_today_completion,
|
||||
CASE WHEN consecutive_days >= 30 THEN 'Y' ELSE 'N' END as is_30days_completed,
|
||||
CASE
|
||||
WHEN consecutive_days >= 30 THEN CEILING(consecutive_days / 30)
|
||||
ELSE 0
|
||||
END as completed_cycles,
|
||||
CASE
|
||||
WHEN consecutive_days >= 30 THEN consecutive_days % 30
|
||||
ELSE consecutive_days
|
||||
END as current_cycle_days
|
||||
FROM
|
||||
ConsecutivePeriods
|
||||
WHERE
|
||||
(end_date = CURDATE() OR CURDATE() BETWEEN start_date AND end_date)
|
||||
ORDER BY
|
||||
end_date DESC
|
||||
LIMIT 1
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 현재 챌린지 상태 종합 정보 조회 -->
|
||||
<select id="selectChallengeStatus" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
CASE
|
||||
WHEN EXISTS (
|
||||
SELECT 1 FROM GC_BENEFIT_NTKCHL
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND BNF_NTK_STTUS_DV_CD = '020'
|
||||
AND DEL_AT = 'N'
|
||||
) THEN '020' -- 중단 상태
|
||||
WHEN EXISTS (
|
||||
SELECT 1 FROM GC_BENEFIT_PARTCPTN p
|
||||
JOIN GC_BENEFIT_NTKCHL n ON p.MBR_INNB = n.MBR_INNB AND p.BNF_INNB = n.BNF_INNB
|
||||
WHERE p.MBR_INNB = #{mbrInnb}
|
||||
AND p.MBR_DV_CD = #{mbrDvCd}
|
||||
AND p.BNF_INNB = #{bnfInnb}
|
||||
AND DATE(p.BNF_PRT_DT) = CURDATE()
|
||||
AND n.BNF_NTK_STTUS_DV_CD = '010'
|
||||
AND n.MBR_DV_CD = #{mbrDvCd}
|
||||
AND n.SOPMAL_CD = #{sopmalCd}
|
||||
AND n.DEL_AT = 'N'
|
||||
) THEN '100' -- 오늘 성공
|
||||
ELSE '010' -- 진행중
|
||||
END as challenge_status,
|
||||
(
|
||||
SELECT COUNT(DISTINCT DATE(BNF_PRT_DT))
|
||||
FROM GC_BENEFIT_PARTCPTN
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb}
|
||||
) as total_success_days,
|
||||
(
|
||||
SELECT DATEDIFF(CURDATE(), MIN(REGIST_DT)) + 1
|
||||
FROM GC_BENEFIT_NTKCHL
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND BNF_NTK_STTUS_DV_CD = '010'
|
||||
AND DEL_AT = 'N'
|
||||
) as total_challenge_days
|
||||
FROM dual
|
||||
</select>
|
||||
|
||||
<!-- 섭취챌린지 알림설정 조회 -->
|
||||
<select id="selectIntakeChallengeNotifications" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
BNF_NTK_NTCN_INNB, -- 혜택 섭취챌린지 알림 고유번호
|
||||
NULL AS BNF_NTK_INNB, -- 혜택 섭취챌린지 고유번호
|
||||
NTCN_TME, -- 알림 시간
|
||||
USE_AT, -- 사용 여부
|
||||
REGIST_DT -- 등록일시
|
||||
FROM
|
||||
GC_BENEFIT_NTKCHL_NTCN
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb}
|
||||
ORDER BY
|
||||
NTCN_TME ASC
|
||||
</select>
|
||||
|
||||
<!-- 기본 알림 설정 생성 쿼리 (신규 사용자) -->
|
||||
<insert id="insertDefaultNotificationTimes" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO">
|
||||
INSERT INTO GC_BENEFIT_NTKCHL_NTCN (
|
||||
BNF_INNB,
|
||||
MBR_INNB,
|
||||
MBR_DV_CD,
|
||||
NTCN_TME,
|
||||
USE_AT,
|
||||
REGUSR,
|
||||
REGIST_DT
|
||||
)
|
||||
SELECT
|
||||
#{bnfInnb}, #{mbrInnb}, #{mbrDvCd}, '07:00:00', 'N', #{regusr}, NOW()
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM GC_BENEFIT_NTKCHL_NTCN
|
||||
WHERE MBR_INNB = #{mbrInnb} AND BNF_INNB = #{bnfInnb} AND MBR_DV_CD = #{mbrDvCd} AND NTCN_TME = '07:00:00'
|
||||
)
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
#{bnfInnb}, #{mbrInnb}, #{mbrDvCd}, '12:00:00', 'N', #{regusr}, NOW()
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM GC_BENEFIT_NTKCHL_NTCN
|
||||
WHERE MBR_INNB = #{mbrInnb} AND BNF_INNB = #{bnfInnb} AND MBR_DV_CD = #{mbrDvCd} AND NTCN_TME = '12:00:00'
|
||||
)
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
#{bnfInnb}, #{mbrInnb}, #{mbrDvCd}, '19:00:00', 'N', #{regusr}, NOW()
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM GC_BENEFIT_NTKCHL_NTCN
|
||||
WHERE MBR_INNB = #{mbrInnb} AND BNF_INNB = #{bnfInnb} AND MBR_DV_CD = #{mbrDvCd} AND NTCN_TME = '19:00:00'
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 섭취시간 알림 설정 업데이트 -->
|
||||
<update id="updateIntakeChallengeNotification" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO">
|
||||
UPDATE GC_BENEFIT_NTKCHL_NTCN
|
||||
SET
|
||||
NTCN_TME = #{ntcnTme},
|
||||
USE_AT = #{useAt}
|
||||
WHERE
|
||||
BNF_NTK_NTCN_INNB = #{bnfNtkNtcnInnb}
|
||||
AND MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb}
|
||||
</update>
|
||||
|
||||
<!-- 섭취챌린지 미완료 알림 설정 조회 -->
|
||||
<select id="selectIntakeChallengeIncompleteNotification" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
ps.BNF_PUSH_EVT_SETUP_INNB,
|
||||
ps.PUSH_SJ,
|
||||
ps.PUSH_CN,
|
||||
ps.USE_AT
|
||||
FROM
|
||||
GC_BENEFIT_PUSH_EVT_SETUP ps
|
||||
WHERE
|
||||
ps.BNF_PUSH_CND_DV_CD = '10020' -- 섭취챌린지 미완료시
|
||||
AND ps.SOPMAL_CD = #{sopmalCd}
|
||||
</select>
|
||||
|
||||
<!-- 미완료 알림 설정 업데이트 -->
|
||||
<update id="updateIntakeChallengeIncompleteNotification" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO">
|
||||
UPDATE GC_BENEFIT_PUSH_EVT_SETUP
|
||||
SET
|
||||
USE_AT = #{useAt}
|
||||
WHERE
|
||||
BNF_PUSH_EVT_SETUP_INNB = #{bnfPushEvtSetupInnb}
|
||||
AND BNF_PUSH_CND_DV_CD = '10020' -- 섭취챌린지 미완료시
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
</update>
|
||||
|
||||
<!-- 섭취챌린지 알림설정 조회 -->
|
||||
<select id="checkUserNotificationSettings" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO" resultType="boolean">
|
||||
SELECT EXISTS (
|
||||
SELECT 1
|
||||
FROM GC_BENEFIT_NTKCHL_NTCN
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb}
|
||||
)
|
||||
</select>
|
||||
|
||||
<!-- 특정 유저의 모든 알림 설정 삭제 -->
|
||||
<delete id="deleteAllNotifications" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO">
|
||||
DELETE FROM GC_BENEFIT_NTKCHL_NTCN
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb}
|
||||
</delete>
|
||||
|
||||
<!-- 특정 알림 설정 삭제 -->
|
||||
<delete id="deleteNotification" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO">
|
||||
DELETE FROM GC_BENEFIT_NTKCHL_NTCN
|
||||
WHERE BNF_NTK_NTCN_INNB = #{bnfNtkNtcnInnb}
|
||||
AND MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb}
|
||||
</delete>
|
||||
|
||||
<!-- 오늘 참여기록 확인 -->
|
||||
<select id="selectTodayParticipation" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
BNF_PRT_INNB,
|
||||
PRT_LEAF_CNT,
|
||||
BNF_PRT_DT
|
||||
FROM GC_BENEFIT_PARTCPTN
|
||||
WHERE BNF_INNB = #{bnfInnb}
|
||||
AND MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND DATE(BNF_PRT_DT) = CURDATE()
|
||||
</select>
|
||||
|
||||
<!-- 오늘 참여기록 생성 (첫 참여시에만) -->
|
||||
<insert id="insertTodayParticipation" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO">
|
||||
<selectKey keyProperty="bnfPrtInnb" resultType="java.lang.Long" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_PRT_INNB), 0) + 1 FROM GC_BENEFIT_PARTCPTN
|
||||
</selectKey>
|
||||
INSERT INTO GC_BENEFIT_PARTCPTN (
|
||||
BNF_PRT_INNB,
|
||||
BNF_INNB,
|
||||
MBR_INNB,
|
||||
MBR_DV_CD,
|
||||
BNF_PRT_DT,
|
||||
REGUSR,
|
||||
REGIST_DT
|
||||
) VALUES (
|
||||
#{bnfPrtInnb},
|
||||
#{bnfInnb},
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
NOW(),
|
||||
#{regusr},
|
||||
NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 개별 섭취 기록 추가 -->
|
||||
<insert id="insertIntakeRecord" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO">
|
||||
<selectKey keyProperty="bnfPrtNtkInnb" resultType="java.lang.Long" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_PRT_NTK_INNB), 0) + 1 FROM GC_BENEFIT_PARTCPTN_NTKCHL
|
||||
</selectKey>
|
||||
INSERT INTO GC_BENEFIT_PARTCPTN_NTKCHL (
|
||||
BNF_PRT_NTK_INNB,
|
||||
BNF_PRT_INNB,
|
||||
BNF_NTK_INNB
|
||||
) VALUES (
|
||||
#{bnfPrtNtkInnb},
|
||||
#{bnfPrtInnb},
|
||||
#{bnfNtkInnb}
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 오늘 보상 지급 여부 확인 -->
|
||||
<select id="checkTodayRewardAwarded" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO" resultType="boolean">
|
||||
SELECT EXISTS (
|
||||
SELECT 1
|
||||
FROM GC_BENEFIT_PARTCPTN
|
||||
WHERE BNF_INNB = #{bnfInnb}
|
||||
AND MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND DATE(BNF_PRT_DT) = CURDATE()
|
||||
AND (PRT_LEAF_CNT IS NOT NULL AND PRT_LEAF_CNT > 0)
|
||||
)
|
||||
</select>
|
||||
|
||||
<!-- 오늘 보상 업데이트 (마일리지 + 초록잎) -->
|
||||
<update id="updateTodayRewards" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO">
|
||||
UPDATE GC_BENEFIT_PARTCPTN
|
||||
SET PRT_LEAF_CNT = #{paidLeafCnt},
|
||||
UPDUSR = #{updusr},
|
||||
UPDT_DT = NOW()
|
||||
WHERE BNF_INNB = #{bnfInnb}
|
||||
AND MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND DATE(BNF_PRT_DT) = CURDATE()
|
||||
</update>
|
||||
|
||||
<!-- 초록잎 지급 여부 확인 -->
|
||||
<select id="checkLeafAlreadyAwarded" parameterType="com.wb.domainserver.domain.gcone.bnft.intakchl.vo.BOIntakchlVO" resultType="boolean">
|
||||
SELECT EXISTS (
|
||||
SELECT 1
|
||||
FROM GC_BENEFIT_PARTCPTN p
|
||||
WHERE p.BNF_INNB = #{bnfInnb}
|
||||
AND p.MBR_INNB = #{mbrInnb}
|
||||
AND p.MBR_DV_CD = #{mbrDvCd}
|
||||
AND DATE(p.BNF_PRT_DT) = CURDATE()
|
||||
AND p.PRT_LEAF_CNT IS NOT NULL
|
||||
AND p.PRT_LEAF_CNT > 0
|
||||
)
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -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.gcone.bnft.lucklott.mapper.BOLucklottMapper">
|
||||
|
||||
<!-- 행운복권 혜택 기본 정보 조회 -->
|
||||
<select id="selectLucklottBenefitInfo" parameterType="com.wb.domainserver.domain.gcone.bnft.lucklott.vo.BOLucklottVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
BNF_INNB, -- 혜택 설정 고유번호
|
||||
USE_AT, -- 사용여부
|
||||
SOPMAL_CD, -- 쇼핑몰코드
|
||||
BNF_DV_CD, -- 혜택 구분 코드
|
||||
BNF_SJ, -- 혜택 제목
|
||||
SCR_REPRSNT_IMG, -- 화면 대표 이미지
|
||||
SCR_REPRSNT_LINK_URL, -- 화면 대표 링크 URL
|
||||
SCR_RWD_IMG, -- 화면 보상 이미지
|
||||
SCR_RWD_LINK_URL, -- 화면 보상 링크 URL
|
||||
BNF_BGN_DT, -- 진행기간 시작일시
|
||||
BNF_END_DT, -- 진행기간 종료일시
|
||||
BNF_WORDS_CN -- 혜택 안내
|
||||
FROM
|
||||
GC_BENEFIT
|
||||
WHERE
|
||||
BNF_DV_CD = '030' -- 행운복권 혜택 구분 코드 (문자열로 수정)
|
||||
AND USE_AT = 'Y'
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND DATE(NOW()) BETWEEN DATE(BNF_BGN_DT) AND DATE(BNF_END_DT)
|
||||
ORDER BY BNF_INNB DESC
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 행운복권 혜택 보상 및 쿠폰 정보 조회 -->
|
||||
<select id="selectLucklottBenefitRewardsAndCoupons" parameterType="com.wb.domainserver.domain.gcone.bnft.lucklott.vo.BOLucklottVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
R.BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
R.BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
R.ITM_NM, -- 표시명
|
||||
R.MLG_RWD_AMT, -- 마일리지 보상 금액
|
||||
C.COUP_NM, -- 쿠폰명
|
||||
C.COUPON_DC -- 쿠폰설명
|
||||
FROM
|
||||
GC_BENEFIT B
|
||||
LEFT JOIN GC_BENEFIT_REWARD R ON B.BNF_INNB = R.BNF_INNB
|
||||
LEFT JOIN GC_COUPON C ON R.COUPON_INNB = C.COUPON_INNB
|
||||
AND C.USE_AT = 'Y'
|
||||
WHERE
|
||||
B.BNF_DV_CD = '030' -- 행운복권 혜택 구분 코드
|
||||
AND B.USE_AT = 'Y'
|
||||
AND B.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드 조건 추가
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 행운복권 혜택 보상 정보 조회 -->
|
||||
<select id="selectLucklottBenefitRewards" parameterType="com.wb.domainserver.domain.gcone.bnft.lucklott.vo.BOLucklottVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
R.BNF_INNB, -- 혜택 설정 고유번호
|
||||
R.BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
R.BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
R.MLG_RWD_AMT, -- 마일리지 금액
|
||||
R.COUPON_INNB, -- 쿠폰 고유번호
|
||||
R.ITM_NM, -- 표시명
|
||||
R.PRZWIN_QY, -- 당첨수량
|
||||
R.PRZWIN_PRC, -- 당첨확률
|
||||
R.DSCNT_AMT, -- 할인금액
|
||||
C.COUP_NM, -- 쿠폰명
|
||||
C.COUPON_DC -- 쿠폰설명
|
||||
FROM
|
||||
GC_BENEFIT_REWARD R
|
||||
LEFT JOIN GC_COUPON C ON R.COUPON_INNB = C.COUPON_INNB
|
||||
AND C.USE_AT = 'Y'
|
||||
WHERE
|
||||
R.BNF_INNB = #{bnfInnb} -- 혜택 설정 고유번호 조건
|
||||
AND R.PRZWIN_QY > 0 -- 수량이 있는 경우만
|
||||
ORDER BY R.BNF_RWD_CATE_DV_CD ASC -- 등수 순서대로 정렬 (03010, 03020, 03030, 03040)
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 오늘 참여 횟수 조회 -->
|
||||
<select id="selectTodayParticipationCount" parameterType="com.wb.domainserver.domain.gcone.bnft.lucklott.vo.BOLucklottVO" resultType="int">
|
||||
<![CDATA[
|
||||
SELECT IFNULL(COUNT(*), 0)
|
||||
FROM GC_BENEFIT_PARTCPTN
|
||||
WHERE BNF_INNB = #{bnfInnb}
|
||||
AND MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND DATE(BNF_PRT_DT) = CURDATE()
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 초록잎 지급 개수 조회 -->
|
||||
<select id="selectLeafCounts" parameterType="com.wb.domainserver.domain.gcone.bnft.lucklott.vo.BOLucklottVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
PYMNT_CNT, -- 지급 초록잎 개수
|
||||
SPECIAL_CNT -- 스페셜 지급 초록잎 개수
|
||||
FROM
|
||||
GC_BENEFIT_CPSLMKN
|
||||
WHERE
|
||||
BNF_DV_CD = '030' -- 혜택 구분 코드 (행운복권)
|
||||
AND SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
</select>
|
||||
|
||||
<!-- 행운복권 혜택 참여 정보 삽입 (초록잎 적립 포함) -->
|
||||
<insert id="insertLucklottBenefitParticipation" parameterType="com.wb.domainserver.domain.gcone.bnft.lucklott.vo.BOLucklottVO">
|
||||
<selectKey keyProperty="bnfPrtInnb" resultType="java.lang.Long" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_PRT_INNB), 0) + 1 FROM GC_BENEFIT_PARTCPTN
|
||||
</selectKey>
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_PARTCPTN
|
||||
(
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BNF_INNB, -- 혜택 설정 고유번호
|
||||
BNF_PRT_DT, -- 혜택 참여일시
|
||||
MBR_INNB, -- 회원 고유번호
|
||||
MBR_DV_CD, -- 회원 구분 코드
|
||||
PRT_LEAF_CNT, -- 참여 초록잎 개수 (추가)
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록일시
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#{bnfPrtInnb},
|
||||
#{bnfInnb},
|
||||
NOW(),
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
#{paidLeafCnt}, -- 초록잎 지급량
|
||||
#{regusr},
|
||||
NOW()
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- 행운복권 혜택 보상 수령 정보 삽입 -->
|
||||
<insert id="insertLucklottBenefitReceipt" parameterType="com.wb.domainserver.domain.gcone.bnft.lucklott.vo.BOLucklottVO">
|
||||
<selectKey keyProperty="bnfRcvInnb" resultType="java.math.BigInteger" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_RCV_INNB), 0) + 1 FROM GC_BENEFIT_RECEIPT
|
||||
</selectKey>
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_RECEIPT (
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
MLG_RWD_AMT, -- 마일리지 금액
|
||||
COUPON_INNB, -- 쿠폰고유번호
|
||||
GOODS_INNB, -- 상품고유번호
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록일시
|
||||
) VALUES (
|
||||
#{bnfPrtInnb}, -- 혜택 참여 고유번호 (파라미터)
|
||||
#{bnfRwdCateDvCd}, -- 보상 항목 구분 코드 (파라미터)
|
||||
#{bnfRwdGodsDvCd}, -- 보상 상품 구분 코드 (파라미터)
|
||||
#{mlgRwdAmt}, -- 마일리지 금액 (파라미터, 해당 없으면 NULL)
|
||||
#{couponInnb}, -- 쿠폰고유번호 (파라미터, 해당 없으면 NULL)
|
||||
#{goodsInnb}, -- 상품고유번호 (파라미터, 해당 없으면 NULL)
|
||||
#{regUsr}, -- 등록자 번호 (파라미터)
|
||||
NOW() -- 현재 시간
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- 특정 상품의 당첨된 수량 조회 -->
|
||||
<select id="selectIssuedGoodsQuantity" parameterType="com.wb.domainserver.domain.gcone.bnft.lucklott.vo.BOLucklottVO" resultType="int">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
COUNT(brec.BNF_RCV_INNB) AS issuedGoodsQuantity -- 당첨된 수량
|
||||
FROM
|
||||
GC_BENEFIT_REWARD br -- 혜택 보상설정 정보 테이블
|
||||
LEFT JOIN
|
||||
GC_BENEFIT_PARTCPTN bp ON br.BNF_INNB = bp.BNF_INNB -- 혜택 참여 정보 테이블과 조인
|
||||
LEFT JOIN
|
||||
GC_BENEFIT_RECEIPT brec ON bp.BNF_PRT_INNB = brec.BNF_PRT_INNB -- 혜택 보상수령 내역 테이블과 조인
|
||||
AND br.BNF_RWD_CATE_DV_CD = brec.BNF_RWD_CATE_DV_CD
|
||||
AND br.BNF_RWD_GODS_DV_CD = brec.BNF_RWD_GODS_DV_CD
|
||||
WHERE
|
||||
br.BNF_INNB = #{bnfInnb} -- 특정 혜택 설정 번호 선택
|
||||
AND br.BNF_RWD_CATE_DV_CD = #{bnfRwdCateDvCd} -- 특정 보상 항목 구분 코드 선택
|
||||
AND br.BNF_RWD_GODS_DV_CD = #{bnfRwdGodsDvCd} -- 특정 보상 상품 구분 코드 선택
|
||||
GROUP BY
|
||||
br.BNF_INNB, br.BNF_RWD_CATE_DV_CD, br.BNF_RWD_GODS_DV_CD, br.ITM_NM
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 특정 상품의 남은 수량 조회 -->
|
||||
<select id="selectRemainingGoodsQuantity" parameterType="com.wb.domainserver.domain.gcone.bnft.lucklott.vo.BOLucklottVO" resultType="int">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
br.PRZWIN_QY - COALESCE(COUNT(brec.BNF_RCV_INNB), 0) AS remainingGoodsQuantity -- 남은 당첨 수량
|
||||
FROM
|
||||
GC_BENEFIT_REWARD br -- 혜택 보상설정 정보 테이블
|
||||
LEFT JOIN
|
||||
GC_BENEFIT_PARTCPTN bp ON br.BNF_INNB = bp.BNF_INNB -- 혜택 참여 정보 테이블과 조인
|
||||
LEFT JOIN
|
||||
GC_BENEFIT_RECEIPT brec ON bp.BNF_PRT_INNB = brec.BNF_PRT_INNB -- 혜택 보상수령 내역 테이블과 조인
|
||||
AND br.BNF_RWD_CATE_DV_CD = brec.BNF_RWD_CATE_DV_CD
|
||||
AND br.BNF_RWD_GODS_DV_CD = brec.BNF_RWD_GODS_DV_CD
|
||||
WHERE
|
||||
br.BNF_INNB = #{bnfInnb} -- 특정 혜택 설정 번호
|
||||
AND br.BNF_RWD_CATE_DV_CD = #{bnfRwdCateDvCd} -- 특정 보상 항목 구분 코드로 검색
|
||||
GROUP BY
|
||||
br.BNF_INNB, br.BNF_RWD_CATE_DV_CD, br.BNF_RWD_GODS_DV_CD, br.ITM_NM, br.PRZWIN_QY -- 그룹화 기준
|
||||
ORDER BY
|
||||
br.BNF_INNB, br.BNF_RWD_CATE_DV_CD, br.BNF_RWD_GODS_DV_CD -- 정렬 기준
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 모든 등수 상품의 수량 체크 -->
|
||||
<select id="selectAllRewardsQuantityStatus" parameterType="com.wb.domainserver.domain.gcone.bnft.lucklott.vo.BOLucklottVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
br.BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
br.BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
br.ITM_NM, -- 상품명
|
||||
br.PRZWIN_QY, -- 총 당첨수량
|
||||
COALESCE(COUNT(brec.BNF_RCV_INNB), 0) AS issuedQuantity, -- 지급된 수량
|
||||
br.PRZWIN_QY - COALESCE(COUNT(brec.BNF_RCV_INNB), 0) AS remainingQuantity, -- 남은 수량
|
||||
CASE
|
||||
WHEN br.PRZWIN_QY - COALESCE(COUNT(brec.BNF_RCV_INNB), 0) > 0 THEN 'Y'
|
||||
ELSE 'N'
|
||||
END AS hasStock -- 재고 여부
|
||||
FROM
|
||||
GC_BENEFIT_REWARD br
|
||||
LEFT JOIN GC_BENEFIT_PARTCPTN bp ON br.BNF_INNB = bp.BNF_INNB
|
||||
LEFT JOIN GC_BENEFIT_RECEIPT brec ON bp.BNF_PRT_INNB = brec.BNF_PRT_INNB
|
||||
AND br.BNF_RWD_CATE_DV_CD = brec.BNF_RWD_CATE_DV_CD
|
||||
AND br.BNF_RWD_GODS_DV_CD = brec.BNF_RWD_GODS_DV_CD
|
||||
WHERE
|
||||
br.BNF_INNB = #{bnfInnb}
|
||||
GROUP BY
|
||||
br.BNF_RWD_CATE_DV_CD, br.BNF_RWD_GODS_DV_CD, br.ITM_NM, br.PRZWIN_QY
|
||||
ORDER BY
|
||||
br.BNF_RWD_CATE_DV_CD
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 보상 수량 감소 쿼리 제거 -->
|
||||
<!--
|
||||
<update id="updateRewardQuantity" parameterType="com.wb.domainserver.domain.gcone.bnft.lucklott.vo.BOLucklottVO">
|
||||
<![CDATA[
|
||||
UPDATE GC_BENEFIT_REWARD
|
||||
SET PRZWIN_QY = PRZWIN_QY - 1
|
||||
WHERE BNF_INNB = #{bnfInnb}
|
||||
AND BNF_RWD_CATE_DV_CD = #{bnfRwdCateDvCd}
|
||||
AND BNF_RWD_GODS_DV_CD = #{bnfRwdGodsDvCd}
|
||||
AND PRZWIN_QY > 0
|
||||
]]>
|
||||
</update>
|
||||
-->
|
||||
</mapper>
|
||||
@@ -0,0 +1,224 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.bnft.lvshop.mapper.BOLvshopMapper">
|
||||
|
||||
<!-- 현재 진행중인 라이브 쇼핑 정보 조회 -->
|
||||
<select id="selectCurrentLiveShoppingInfo" parameterType="com.wb.domainserver.domain.gcone.bnft.lvshop.vo.BOLvshopVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
B.BNF_INNB AS BNF_INNB, -- 혜택 고유번호
|
||||
BC.CN_SJ AS BENEFIT_TITLE, -- 혜택 제목 (방송명)
|
||||
BC.IMG_FIL_COURS AS THUMBNAIL_IMAGE_URL,-- 방송 썸네일 이미지 URL
|
||||
BG.WORDS_CN_2 AS BENEFIT_DESC_2, -- 혜택 안내문 2 (이벤트 설명)
|
||||
BC.WORDS_CN AS BROADCAST_DESC, -- 방송 안내
|
||||
BC.CN_DC AS CONTENT_DESC, -- 내용 설명 (방송 소개)
|
||||
BC.TME_SECND AS REQUIRED_WATCH_TIME,-- 필수 시청 시간(초)
|
||||
BC.LINK_URL AS PARTICIPATION_URL, -- 참여 링크 URL 추가
|
||||
TIMESTAMPDIFF(SECOND, BC.CN_BGN_DT, NOW()) AS ELAPSED_TIME_IN_SECONDS, -- 방송 경과 시간(초)
|
||||
BR.MLG_RWD_AMT AS MILEAGE_REWARD -- 마일리지 보상 금액
|
||||
FROM
|
||||
GC_BENEFIT B -- 혜택 기본 정보 테이블
|
||||
INNER JOIN
|
||||
GC_BENEFIT_CONTENT BC ON B.BNF_INNB = BC.BNF_INNB -- 혜택 내용설정 정보 테이블 조인
|
||||
LEFT JOIN
|
||||
GC_BENEFIT_REWARD BR ON B.BNF_INNB = BR.BNF_INNB AND BR.BNF_RWD_CATE_DV_CD = '07010' -- 혜택 보상설정 정보 테이블 조인 (라이브 쇼핑 참여 보상)
|
||||
LEFT JOIN
|
||||
GC_BENEFIT_GDCC BG ON B.BNF_DV_CD = BG.BNF_DV_CD AND B.SOPMAL_CD = BG.SOPMAL_CD -- 혜택 안내문 정보 테이블 조인
|
||||
WHERE
|
||||
B.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드 조건
|
||||
AND B.BNF_DV_CD = '070' -- 혜택 구분 코드 (라이브 쇼핑) 조건
|
||||
AND B.USE_AT = 'Y' -- 사용 여부 조건
|
||||
AND NOW() BETWEEN BC.CN_BGN_DT AND BC.CN_END_DT -- 현재 진행 중인 방송 조건
|
||||
LIMIT 1 -- 가장 최근 1건 조회
|
||||
</select>
|
||||
|
||||
<!-- 다음 방송 예고 목록 조회 -->
|
||||
<select id="selectUpcomingLiveShoppingList" parameterType="string" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
B.BNF_INNB AS BNF_INNB, -- 혜택 고유번호
|
||||
B.BNF_SJ AS BENEFIT_TITLE, -- 방송명
|
||||
BC.IMG_FIL_COURS AS THUMBNAIL_IMAGE_URL, -- 방송 썸네일 이미지 URL
|
||||
BC.CN_DC AS CONTENT_DESC, -- 방송소개
|
||||
BC.WORDS_CN AS BROADCAST_DESC, -- 방송 안내
|
||||
BC.CN_BGN_DT AS BROADCAST_START_TIME, -- 방송 시작 시간 추가
|
||||
BG.WORDS_CN_1 AS BENEFIT_DESC_1, -- 혜택 안내문 1
|
||||
BG.WORDS_CN_2 AS BENEFIT_DESC_2, -- 혜택 안내문 2
|
||||
BG.WORDS_CN_3 AS BENEFIT_DESC_3, -- 혜택 안내문 3
|
||||
TIMESTAMPDIFF(SECOND, NOW(), BC.CN_BGN_DT) AS REMAINING_TIME -- 방송 시작까지 남은 시간 (초)
|
||||
FROM
|
||||
GC_BENEFIT B
|
||||
INNER JOIN
|
||||
GC_BENEFIT_CONTENT BC ON B.BNF_INNB = BC.BNF_INNB
|
||||
LEFT JOIN
|
||||
GC_BENEFIT_GDCC BG ON B.BNF_DV_CD = BG.BNF_DV_CD AND B.SOPMAL_CD = BG.SOPMAL_CD -- 혜택 안내문 정보 테이블 조인
|
||||
WHERE
|
||||
B.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드 (문자열 파라미터)
|
||||
AND B.BNF_DV_CD = '070' -- 혜택 구분 코드 (라이브쇼핑)
|
||||
AND B.USE_AT = 'Y' -- 사용 여부
|
||||
AND NOW() < BC.CN_BGN_DT -- 아직 방송 시작 전인 경우 (예고 방송)
|
||||
ORDER BY
|
||||
B.BNF_BGN_DT ASC -- 방송 시작 시간이 빠른 순 정렬
|
||||
</select>
|
||||
|
||||
<!-- 라이브 쇼핑 알림 신청 상태 조회 -->
|
||||
<select id="selectLiveShoppingNotificationStatus" parameterType="com.wb.domainserver.domain.gcone.bnft.lvshop.vo.BOLvshopVO" resultType="string">
|
||||
SELECT
|
||||
AGRE_AT -- 동의 여부
|
||||
FROM
|
||||
GC_BENEFIT_AGREE -- 혜택 동의 내역 테이블
|
||||
WHERE
|
||||
SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드 조건
|
||||
AND MBR_INNB = #{mbrInnb} -- 회원 고유번호 조건
|
||||
AND MBR_DV_CD = #{mbrDvCd} -- 회원 구분 코드 조건
|
||||
AND BNF_DV_CD = '070' -- 혜택 구분 코드 (라이브 쇼핑) 조건
|
||||
AND BNF_AGRE_DV_CD = '010' -- 혜택 동의 구분 코드 (알림동의) 조건
|
||||
</select>
|
||||
|
||||
<!-- 라이브 쇼핑 알림 신청 정보 삽입 (중복 시 업데이트) -->
|
||||
<insert id="insertLiveShoppingNotification" parameterType="com.wb.domainserver.domain.gcone.bnft.lvshop.vo.BOLvshopVO">
|
||||
INSERT INTO GC_BENEFIT_AGREE (
|
||||
SOPMAL_CD, -- 쇼핑몰 코드
|
||||
MBR_INNB, -- 회원 고유번호
|
||||
MBR_DV_CD, -- 회원 구분 코드
|
||||
BNF_DV_CD, -- 혜택 구분 코드
|
||||
BNF_AGRE_DV_CD, -- 혜택 동의 구분 코드
|
||||
AGRE_AT, -- 동의 여부
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록 일시
|
||||
) VALUES (
|
||||
#{sopmalCd}, -- 쇼핑몰 코드
|
||||
#{mbrInnb}, -- 회원 고유번호
|
||||
#{mbrDvCd}, -- 회원 구분 코드
|
||||
'070', -- 혜택 구분 코드 (라이브 쇼핑)
|
||||
'010', -- 혜택 동의 구분 코드 (알림 동의)
|
||||
#{agreAt}, -- 동의 여부
|
||||
#{regusr}, -- 등록자 (회원 고유번호)
|
||||
NOW() -- 현재 시간
|
||||
)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
BNF_DV_CD = #{bnfDvCd},
|
||||
BNF_AGRE_DV_CD = #{bnfAgreDvCd},
|
||||
AGRE_AT = #{agreAt}, -- 동의 여부 업데이트
|
||||
REGUSR = #{regusr}, -- 수정자 (회원 고유번호)
|
||||
REGIST_DT = NOW() -- 수정 시간 (현재 시간)
|
||||
</insert>
|
||||
|
||||
<!-- 라이브쇼핑 알림 상태 조회 (기존 쿼리 - 필요시 유지) -->
|
||||
<select id="getLvshopNotificationStatus" parameterType="com.wb.domainserver.domain.gcone.bnft.lvshop.vo.BOLvshopVO" resultType="string">
|
||||
SELECT
|
||||
AGRE_AT -- 동의 여부
|
||||
FROM
|
||||
GC_BENEFIT_AGREE -- 혜택 동의 내역 테이블
|
||||
WHERE
|
||||
SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드 조건
|
||||
AND MBR_INNB = #{mbrInnb} -- 회원 고유번호 조건
|
||||
AND MBR_DV_CD = #{mbrDvCd} -- 회원 구분 코드 조건
|
||||
AND BNF_INNB = #{bnfInnb} -- 혜택 고유번호 조건
|
||||
AND BNF_DV_CD = '070' -- 혜택 구분 코드 (라이브 쇼핑) 조건
|
||||
AND BNF_AGRE_DV_CD = '010'; -- 혜택 동의 구분 코드 (알림 동의) 조건
|
||||
</select>
|
||||
|
||||
<!-- 초록잎 지급 개수 조회 -->
|
||||
<select id="selectLeafCounts" parameterType="com.wb.domainserver.domain.gcone.bnft.lvshop.vo.BOLvshopVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
PYMNT_CNT, -- 지급 초록잎 개수
|
||||
SPECIAL_CNT -- 스페셜 지급 초록잎 개수
|
||||
FROM
|
||||
GC_BENEFIT_CPSLMKN
|
||||
WHERE
|
||||
BNF_DV_CD = '070' -- 혜택 구분 코드
|
||||
AND SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
</select>
|
||||
|
||||
<!-- 라이브쇼핑 혜택 참여 정보 삽입 -->
|
||||
<insert id="insertLvshopBenefitParticipation" parameterType="com.wb.domainserver.domain.gcone.bnft.lvshop.vo.BOLvshopVO">
|
||||
<selectKey keyProperty="bnfPrtInnb" resultType="java.lang.Long" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_PRT_INNB), 0) + 1 FROM GC_BENEFIT_PARTCPTN
|
||||
</selectKey>
|
||||
INSERT INTO GC_BENEFIT_PARTCPTN (
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BNF_INNB, -- 혜택 고유번호
|
||||
BNF_PRT_DT, -- 혜택 참여 일시
|
||||
MBR_INNB, -- 회원 고유번호
|
||||
MBR_DV_CD, -- 회원 구분 코드
|
||||
PRT_LEAF_CNT, -- 참여 초록잎 개수
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록 일시
|
||||
) VALUES (
|
||||
#{bnfPrtInnb}, -- 혜택 참여 고유번호
|
||||
#{bnfInnb}, -- 혜택 고유번호
|
||||
NOW(), -- 현재 시간
|
||||
#{mbrInnb}, -- 회원 고유번호
|
||||
#{mbrDvCd}, -- 회원 구분 코드
|
||||
#{paidLeafCnt}, -- 참여 초록잎 개수
|
||||
#{regusr}, -- 등록자 (회원 고유번호)
|
||||
NOW() -- 현재 시간
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 라이브쇼핑 마일리지 적립 여부 확인 -->
|
||||
<select id="checkLiveShoppingRewardReceived" parameterType="com.wb.domainserver.domain.gcone.bnft.lvshop.vo.BOLvshopVO" resultType="int">
|
||||
SELECT COUNT(1)
|
||||
FROM GC_BENEFIT_RECEIPT R
|
||||
JOIN GC_BENEFIT_PARTCPTN P ON P.BNF_PRT_INNB = R.BNF_PRT_INNB
|
||||
JOIN GC_BENEFIT B ON B.BNF_INNB = P.BNF_INNB
|
||||
WHERE B.BNF_DV_CD = '070' <!-- 라이브쇼핑 혜택 -->
|
||||
|
||||
<!-- 회원 고유번호 -->
|
||||
AND P.MBR_INNB = #{mbrInnb}
|
||||
|
||||
<!-- 회원 구분 코드 -->
|
||||
AND P.MBR_DV_CD = #{mbrDvCd}
|
||||
|
||||
<!-- 쇼핑몰 코드 -->
|
||||
<if test="sopmalCd != null and sopmalCd != ''">
|
||||
AND B.SOPMAL_CD = #{sopmalCd}
|
||||
</if>
|
||||
|
||||
<!-- 특정 혜택(방송)만 점검하고 싶을 때 -->
|
||||
<if test="bnfInnb != null">
|
||||
AND P.BNF_INNB = #{bnfInnb}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<!-- 라이브쇼핑 마일리지 적립 정보 삽입 -->
|
||||
<insert id="insertLiveShoppingRewardReceipt" parameterType="com.wb.domainserver.domain.gcone.bnft.lvshop.vo.BOLvshopVO">
|
||||
<selectKey keyProperty="bnfRcvInnb" resultType="java.math.BigInteger" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_RCV_INNB), 0) + 1 FROM GC_BENEFIT_RECEIPT
|
||||
</selectKey>
|
||||
INSERT INTO GC_BENEFIT_RECEIPT (
|
||||
BNF_RCV_INNB, -- 혜택 보상수령 고유번호
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
MLG_RWD_AMT, -- 마일리지 금액
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록 시간
|
||||
) VALUES (
|
||||
#{bnfRcvInnb}, -- 혜택 보상수령 고유번호
|
||||
#{bnfPrtInnb}, -- 혜택 참여 고유번호
|
||||
'07010', -- 보상 항목 구분 코드 (라이브 쇼핑 참여 보상)
|
||||
'010', -- 보상 상품 구분 코드 (마일리지)
|
||||
#{mlgRwdAmt}, -- 마일리지 금액
|
||||
#{regusr}, -- 등록자 (회원 고유번호)
|
||||
NOW() -- 현재 시간
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 라이브쇼핑 혜택 정보 조회 (기존 쿼리 - 필요시 유지) -->
|
||||
<select id="selectLvshopInfo" parameterType="long" resultType="com.wb.domainserver.domain.gcone.bnft.lvshop.vo.BOLvshopVO">
|
||||
SELECT
|
||||
BNF_INNB, -- 혜택 고유번호
|
||||
SOPMAL_CD, -- 쇼핑몰 코드
|
||||
BNF_DV_CD, -- 혜택 구분 코드
|
||||
BNF_SJ, -- 혜택 제목
|
||||
USE_AT, -- 사용 여부
|
||||
BNF_BGN_DT, -- 혜택 시작 일시
|
||||
BNF_END_DT -- 혜택 종료 일시
|
||||
-- 필요한 컬럼 추가
|
||||
FROM
|
||||
GC_BENEFIT -- 혜택 기본 정보 테이블
|
||||
WHERE
|
||||
BNF_INNB = #{bnfInnb}; -- 혜택 고유번호 조건
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,344 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.bnft.oxquiz.mapper.BOOxquizMapper">
|
||||
|
||||
<!-- OX 퀴즈 기본 정보 조회 -->
|
||||
<select id="selectOxquizBasicInfo" parameterType="com.wb.domainserver.domain.gcone.bnft.oxquiz.vo.BOOxquizVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
BNF_INNB, -- 혜택 설정 고유번호
|
||||
BNF_SJ, -- 혜택 제목
|
||||
SCR_REPRSNT_IMG, -- 화면 대표 이미지
|
||||
BNF_BGN_DT, -- 진행기간 시작일시
|
||||
BNF_END_DT, -- 진행기간 종료일시
|
||||
BNF_WORDS_CN -- 혜택 안내
|
||||
FROM
|
||||
GC_BENEFIT
|
||||
WHERE
|
||||
BNF_DV_CD = '130' -- OX 퀴즈 혜택 구분 코드
|
||||
AND USE_AT = 'Y'
|
||||
AND DATE(NOW()) BETWEEN DATE(BNF_BGN_DT) AND DATE(BNF_END_DT)
|
||||
AND SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<select id="selectOxquizDetailInfo" parameterType="com.wb.domainserver.domain.gcone.bnft.oxquiz.vo.BOOxquizVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
BNF_QUIZ_INNB, -- 퀴즈 고유번호
|
||||
QUIZ_CN, -- 퀴즈 내용
|
||||
QUIZ_CNSR, -- 퀴즈 정답
|
||||
HINT_URL, -- 힌트 url
|
||||
QUIZ_SEQ -- 퀴즈 순서
|
||||
FROM (
|
||||
SELECT
|
||||
c.*,
|
||||
ROW_NUMBER() OVER (PARTITION BY c.BNF_INNB ORDER BY c.BNF_QUIZ_INNB) as QUIZ_SEQ
|
||||
FROM
|
||||
GC_BENEFIT_OXQUIZ c
|
||||
WHERE
|
||||
c.DEL_AT = 'N'
|
||||
) numbered
|
||||
WHERE
|
||||
BNF_INNB = #{bnfInnb}
|
||||
ORDER BY
|
||||
QUIZ_SEQ ASC
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 사용자의 OX 퀴즈 참여 정보 조회 -->
|
||||
<select id="selectUserOxquizParticipation" parameterType="com.wb.domainserver.domain.gcone.bnft.oxquiz.vo.BOOxquizVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
p.BNF_INNB, -- 혜택 설정 고유번호
|
||||
po.BNF_QUIZ_INNB, -- 퀴즈 고유번호
|
||||
po.ANSW_CN AS USER_ANSWER, -- 사용자 답변
|
||||
CASE
|
||||
WHEN po.ANSW_CN = c.QUIZ_CNSR THEN 'O'
|
||||
WHEN po.ANSW_CN IS NOT NULL THEN 'X'
|
||||
ELSE NULL
|
||||
END AS IS_CORRECT -- 정답 여부
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN p
|
||||
JOIN GC_BENEFIT_PARTCPTN_OXQUIZ po ON p.BNF_PRT_INNB = po.BNF_PRT_INNB
|
||||
JOIN GC_BENEFIT_OXQUIZ c ON po.BNF_QUIZ_INNB = c.BNF_QUIZ_INNB
|
||||
WHERE
|
||||
p.MBR_INNB = #{mbrInnb}
|
||||
AND p.MBR_DV_CD = #{mbrDvCd}
|
||||
AND p.BNF_INNB = #{bnfInnb}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 사용자 당일 참여 조회 -->
|
||||
<select id="selectTodayParticipationCount" parameterType="com.wb.domainserver.domain.gcone.bnft.oxquiz.vo.BOOxquizVO" resultType="int">
|
||||
<![CDATA[
|
||||
SELECT COUNT(*)
|
||||
FROM GC_BENEFIT_PARTCPTN
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb}
|
||||
AND DATE(BNF_PRT_DT) = CURDATE()
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 사용자가 맞춘 정답 수 조회 -->
|
||||
<select id="selectUserCorrectAnswerCount" parameterType="com.wb.domainserver.domain.gcone.bnft.oxquiz.vo.BOOxquizVO" resultType="int">
|
||||
<![CDATA[
|
||||
SELECT COUNT(*)
|
||||
FROM GC_BENEFIT_PARTCPTN p
|
||||
JOIN GC_BENEFIT_PARTCPTN_OXQUIZ po ON p.BNF_PRT_INNB = po.BNF_PRT_INNB
|
||||
JOIN GC_BENEFIT_OXQUIZ o ON po.BNF_QUIZ_INNB = o.BNF_QUIZ_INNB
|
||||
WHERE p.MBR_INNB = #{mbrInnb}
|
||||
AND p.MBR_DV_CD = #{mbrDvCd}
|
||||
AND p.BNF_INNB = #{bnfInnb}
|
||||
AND po.ANSW_CN = o.QUIZ_CNSR
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 특정 보상 코드에 해당하는 보상 정보 조회 -->
|
||||
<select id="selectRewardInfoByCode" parameterType="map" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
MLG_RWD_AMT, -- 마일리지 금액
|
||||
COUPON_INNB -- 쿠폰 고유번호
|
||||
FROM
|
||||
GC_BENEFIT_REWARD
|
||||
WHERE
|
||||
BNF_RWD_CATE_DV_CD = #{rewardCode}
|
||||
AND BNF_INNB = #{bnfInnb}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 현재 퀴즈 개수 조회 -->
|
||||
<select id="selectCurrentQuizCount" parameterType="com.wb.domainserver.domain.gcone.bnft.oxquiz.vo.BOOxquizVO" resultType="int">
|
||||
<![CDATA[
|
||||
SELECT COUNT(*)
|
||||
FROM GC_BENEFIT_OXQUIZ A
|
||||
JOIN GC_BENEFIT B ON A.BNF_INNB = B.BNF_INNB
|
||||
WHERE A.BNF_INNB = #{bnfInnb}
|
||||
AND A.DEL_AT = 'N'
|
||||
AND B.SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 특정 번호의 퀴즈 조회 -->
|
||||
<select id="selectCurrentOxquiz" parameterType="com.wb.domainserver.domain.gcone.bnft.oxquiz.vo.BOOxquizVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
BNF_QUIZ_INNB, -- 혜택 퀴즈 고유번호
|
||||
QUIZ_CN, -- 퀴즈 내용
|
||||
QUIZ_CNSR, -- 퀴즈 정답
|
||||
HINT_URL -- 힌트보기 링크
|
||||
FROM
|
||||
GC_BENEFIT_OXQUIZ
|
||||
WHERE
|
||||
BNF_INNB = #{bnfInnb}
|
||||
AND BNF_QUIZ_INNB = #{bnfQuizInnb}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 초록잎 지급 개수 조회 -->
|
||||
<select id="selectLeafCounts" parameterType="com.wb.domainserver.domain.gcone.bnft.atend.vo.BOAtendVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
PYMNT_CNT, -- 지급 초록잎 개수
|
||||
SPECIAL_CNT -- 스페셜 지급 초록잎 개수
|
||||
FROM
|
||||
GC_BENEFIT_CPSLMKN
|
||||
WHERE
|
||||
BNF_DV_CD = '130' -- 혜택 구분 코드
|
||||
AND SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
</select>
|
||||
|
||||
<!-- OX 퀴즈 참여 정보 저장 (초록잎 적립 포함) -->
|
||||
<insert id="insertOxquizParticipation" parameterType="com.wb.domainserver.domain.gcone.bnft.oxquiz.vo.BOOxquizVO">
|
||||
<selectKey keyProperty="bnfPrtInnb" resultType="java.lang.Long" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_PRT_INNB), 0) + 1 FROM GC_BENEFIT_PARTCPTN
|
||||
</selectKey>
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_PARTCPTN (
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BNF_INNB, -- 혜택 설정 고유번호
|
||||
BNF_PRT_DT, -- 혜택 참여일시
|
||||
MBR_INNB, -- 회원 고유번호
|
||||
MBR_DV_CD, -- 회원 구분 코드
|
||||
PRT_LEAF_CNT, -- 참여 초록잎 개수 (추가)
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록일시
|
||||
) VALUES (
|
||||
#{bnfPrtInnb},
|
||||
#{bnfInnb},
|
||||
NOW(),
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
#{paidLeafCnt}, -- 초록잎 지급량 (추가)
|
||||
#{regusr},
|
||||
NOW()
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- OX 퀴즈 현재 퀴즈 번호 -->
|
||||
<select id="selectCurrentQuizNumber" parameterType="com.wb.domainserver.domain.gcone.bnft.oxquiz.vo.BOOxquizVO" resultType="int">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
CASE
|
||||
WHEN MIN(not_participated.QUIZ_SEQ) IS NULL THEN
|
||||
(SELECT MAX(QUIZ_SEQ) FROM (
|
||||
SELECT ROW_NUMBER() OVER (PARTITION BY o.BNF_INNB ORDER BY o.BNF_QUIZ_INNB) as QUIZ_SEQ
|
||||
FROM GC_BENEFIT_OXQUIZ o
|
||||
WHERE o.BNF_INNB = #{bnfInnb} AND o.DEL_AT = 'N'
|
||||
) all_quiz)
|
||||
ELSE MIN(not_participated.QUIZ_SEQ)
|
||||
END as current_quiz
|
||||
FROM (
|
||||
SELECT
|
||||
o.*,
|
||||
ROW_NUMBER() OVER (PARTITION BY o.BNF_INNB ORDER BY o.BNF_QUIZ_INNB) as QUIZ_SEQ
|
||||
FROM
|
||||
GC_BENEFIT_OXQUIZ o
|
||||
WHERE
|
||||
o.BNF_INNB = #{bnfInnb}
|
||||
AND o.DEL_AT = 'N'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM GC_BENEFIT_PARTCPTN p
|
||||
JOIN GC_BENEFIT_PARTCPTN_OXQUIZ po ON p.BNF_PRT_INNB = po.BNF_PRT_INNB
|
||||
WHERE p.MBR_INNB = #{mbrInnb}
|
||||
AND p.MBR_DV_CD = #{mbrDvCd}
|
||||
AND p.BNF_INNB = #{bnfInnb}
|
||||
AND po.BNF_QUIZ_INNB = o.BNF_QUIZ_INNB
|
||||
)
|
||||
) not_participated
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- OX 퀴즈 참여 상세 정보 저장 -->
|
||||
<insert id="insertOxquizParticipationDetail" parameterType="com.wb.domainserver.domain.gcone.bnft.oxquiz.vo.BOOxquizVO">
|
||||
<selectKey keyProperty="bnfPrtQuizInnb" resultType="java.lang.Long" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_PRT_QUIZ_INNB), 0) + 1 FROM GC_BENEFIT_PARTCPTN_OXQUIZ
|
||||
</selectKey>
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_PARTCPTN_OXQUIZ (
|
||||
BNF_PRT_QUIZ_INNB, -- 혜택 참여 OX퀴즈 고유번호
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BNF_QUIZ_INNB, -- 혜택 퀴즈 고유번호
|
||||
ANSW_CN, -- 답변내용
|
||||
CNSR_AT -- 정답여부
|
||||
) VALUES (
|
||||
#{bnfPrtQuizInnb},
|
||||
#{bnfPrtInnb},
|
||||
#{bnfQuizInnb},
|
||||
#{answCn},
|
||||
#{cnsrAt}
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- 알림 상태 조회 -->
|
||||
<select id="selectNotificationStatus" parameterType="com.wb.domainserver.domain.gcone.bnft.oxquiz.vo.BOOxquizVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
AGRE_AT -- 동의여부
|
||||
FROM
|
||||
GC_BENEFIT_AGREE
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_DV_CD = '130' -- OX 퀴즈 혜택 구분 코드
|
||||
AND BNF_AGRE_DV_CD = '010' -- 알림동의 구분 코드
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 알림 상태 변경 -->
|
||||
<update id="updateNotificationStatus" parameterType="com.wb.domainserver.domain.gcone.bnft.oxquiz.vo.BOOxquizVO">
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_AGREE (
|
||||
SOPMAL_CD, -- 쇼핑몰코드
|
||||
MBR_INNB, -- 회원 고유번호
|
||||
MBR_DV_CD, -- 회원 구분 코드
|
||||
BNF_DV_CD, -- 혜택 구분 코드
|
||||
BNF_AGRE_DV_CD, -- 혜택 동의 구분 코드
|
||||
BNF_INNB, -- 혜택 설정 고유번호
|
||||
AGRE_AT, -- 동의여부
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록일시
|
||||
)
|
||||
SELECT
|
||||
#{sopmalCd},
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
'130', -- OX 퀴즈 혜택 구분 코드
|
||||
'010', -- 알림동의 구분 코드
|
||||
#{bnfInnb},
|
||||
#{agreAt},
|
||||
#{regusr},
|
||||
NOW()
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM GC_BENEFIT_AGREE
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_DV_CD = '130'
|
||||
AND BNF_AGRE_DV_CD = '010'
|
||||
);
|
||||
|
||||
UPDATE GC_BENEFIT_AGREE
|
||||
SET
|
||||
AGRE_AT = #{agreAt},
|
||||
REGUSR = #{regusr},
|
||||
REGIST_DT = NOW()
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_DV_CD = '130'
|
||||
AND BNF_AGRE_DV_CD = '010';
|
||||
]]>
|
||||
</update>
|
||||
|
||||
<!-- 보상 정보 조회 -->
|
||||
<select id="selectRewardInfo" parameterType="com.wb.domainserver.domain.gcone.bnft.oxquiz.vo.BOOxquizVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
MLG_RWD_AMT, -- 마일리지 금액
|
||||
COUPON_INNB -- 쿠폰 고유번호
|
||||
FROM
|
||||
GC_BENEFIT_REWARD
|
||||
WHERE
|
||||
BNF_INNB = #{bnfInnb}
|
||||
AND BNF_RWD_CATE_DV_CD IN ('13010', '13020', '13030') -- OX 퀴즈 보상 코드
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 보상 지급 -->
|
||||
<insert id="insertReward" parameterType="com.wb.domainserver.domain.gcone.bnft.oxquiz.vo.BOOxquizVO">
|
||||
<selectKey keyProperty="bnfRcvInnb" resultType="java.math.BigInteger" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_RCV_INNB), 0) + 1 FROM GC_BENEFIT_RECEIPT
|
||||
</selectKey>
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_RECEIPT (
|
||||
BNF_RCV_INNB, -- 혜택 보상수령 고유번호
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
MLG_RWD_AMT, -- 마일리지 금액
|
||||
COUPON_INNB, -- 쿠폰 고유번호
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록일시
|
||||
) VALUES (
|
||||
#{bnfRcvInnb},
|
||||
#{bnfPrtInnb},
|
||||
#{bnfRwdCateDvCd},
|
||||
#{bnfRwdGodsDvCd},
|
||||
#{mlgRwdAmt},
|
||||
#{couponInnb},
|
||||
#{regusr},
|
||||
NOW()
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
</mapper>
|
||||
@@ -0,0 +1,933 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.bnft.purstmp.mapper.BOPurstmpStampMapper">
|
||||
|
||||
<!-- gc_order 테이블에서 매장 구매 정보 조회 (스탬프 적립/차감 처리용) -->
|
||||
<select id="selectStoreOrdersForStamp"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO"
|
||||
resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
-- gc_order 테이블에서 매장 구매 정보 조회 (디바이스 등록일 기준 조회기간 적용)
|
||||
SELECT
|
||||
O.ORDR_INNB AS ORDR_INNB, -- 주문 고유번호
|
||||
O.STR_INNB AS STR_INNB, -- 매장 고유번호
|
||||
O.RL_SETLE_AMT AS RL_SETLE_AMT, -- 실 결제금액
|
||||
CASE
|
||||
WHEN ST.TENTCPN_NM IS NOT NULL THEN ST.TENTCPN_NM
|
||||
WHEN ST.STR_NM IS NOT NULL THEN ST.STR_NM
|
||||
ELSE CONCAT('매장_', O.STR_INNB)
|
||||
END AS STR_NM, -- 매장명
|
||||
DATE_FORMAT(O.SETLE_COMPT_DT, '%Y-%m-%d %H:%i:%s') AS SETLE_COMPT_DT, -- 결제완료일시
|
||||
O.SLE_ENVRN_CD AS SLE_ENVRN_CD, -- 판매환경코드
|
||||
O.SKN_ENVRN_CD AS SKN_ENVRN_CD, -- 스킨환경코드
|
||||
O.ORDR_STTUS_CD AS ORDR_STTUS_CD, -- 주문상태코드 추가
|
||||
CASE
|
||||
WHEN O.ORDR_STTUS_CD IN ('25', '30', '35', '40', '45', '50', '55', '60', '65', '70', '75', '80') THEN 'ACCUMULATE'
|
||||
WHEN O.ORDR_STTUS_CD IN ('85', '95', '99') THEN 'DEDUCT'
|
||||
ELSE 'IGNORE'
|
||||
END AS STAMP_ACTION -- 스탬프 처리 액션 (적립/차감/무시)
|
||||
FROM
|
||||
GC_ORDER O
|
||||
LEFT JOIN
|
||||
GC_STORE ST ON O.STR_INNB = ST.STR_INNB
|
||||
LEFT JOIN
|
||||
GC_BENEFIT_STMP BS ON O.ORDR_INNB = BS.ORDR_INNB
|
||||
AND O.MBR_INNB = BS.MBR_INNB
|
||||
AND O.SOPMAL_CD = BS.SOPMAL_CD
|
||||
-- 회원 디바이스 정보 JOIN 추가 (조회 기간 산정용)
|
||||
LEFT JOIN
|
||||
GC_MEMBER_DEVICE_INFO MDI ON O.MBR_INNB = MDI.MBR_INNB
|
||||
AND O.MBR_DV_CD = MDI.MBR_DV_CD
|
||||
AND O.SOPMAL_CD = MDI.SOPMAL_CD
|
||||
WHERE
|
||||
O.MBR_INNB = #{mbrInnb}
|
||||
AND O.MBR_DV_CD = #{mbrDvCd}
|
||||
AND O.SOPMAL_CD = #{sopmalCd}
|
||||
AND O.USE_AT = 'Y'
|
||||
AND (
|
||||
-- 스탬프 적립 대상 (정상 결제완료 상태)
|
||||
O.ORDR_STTUS_CD IN ('25', '30', '35', '40', '45', '50', '55', '60', '65', '70', '75', '80')
|
||||
OR
|
||||
-- 스탬프 차감 대상 (결제취소/주문무효/결제실패)
|
||||
O.ORDR_STTUS_CD IN ('85')
|
||||
)
|
||||
AND (
|
||||
-- gc_order 참고사항: 매장 구매금액 조건
|
||||
O.SLE_ENVRN_CD IN ('S1', 'S2', 'S3')
|
||||
OR O.SKN_ENVRN_CD = 'POS'
|
||||
)
|
||||
-- 차감 대상은 이미 처리된 주문도 포함
|
||||
AND (
|
||||
(O.ORDR_STTUS_CD IN ('25', '30', '35', '40', '45', '50', '55', '60', '65', '70', '75', '80') AND BS.ORDR_INNB IS NULL) -- 적립: 미처리만
|
||||
OR
|
||||
(O.ORDR_STTUS_CD IN ('85') AND BS.ORDR_INNB IS NOT NULL AND BS.REFUND_AT = 'N') -- 차감: 이미 적립된 것만
|
||||
)
|
||||
<if test="strInnb != null and strInnb != '' and strInnb != 'null'">
|
||||
AND O.STR_INNB = #{strInnb}
|
||||
</if>
|
||||
AND O.SETLE_COMPT_DT IS NOT NULL
|
||||
-- 디바이스 등록일부터 현재까지 조회 (디바이스 정보 없으면 전체 조회)
|
||||
<if test="true">
|
||||
AND (MDI.REGIST_DT IS NULL OR O.SETLE_COMPT_DT >= DATE(MDI.REGIST_DT))
|
||||
</if>
|
||||
AND O.SETLE_COMPT_DT <= NOW() -- 현재까지
|
||||
ORDER BY
|
||||
O.SETLE_COMPT_DT DESC
|
||||
</select>
|
||||
|
||||
<!-- 매장별 적립카드 조회 (유효기간 내, 교환권 포함) - 정렬 수정 -->
|
||||
<select id="selectStampCards" parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
-- 매장별 진행 중인 스탬프 적립카드와 교환권 정보 조회 (쿠폰 정보 포함, 매장명 개선)
|
||||
SELECT
|
||||
SE.BNF_EXTIKET_INNB AS BNF_EXTIKET_INNB, -- 교환권 고유번호
|
||||
SE.SOPMAL_CD AS SOPMAL_CD, -- 쇼핑몰코드
|
||||
SE.STR_INNB AS STR_INNB, -- 매장 고유번호
|
||||
CASE
|
||||
WHEN ST.STR_NM IS NOT NULL THEN ST.STR_NM
|
||||
WHEN ST.TENTCPN_NM IS NOT NULL THEN ST.TENTCPN_NM
|
||||
ELSE CONCAT('매장_', SE.STR_INNB)
|
||||
END AS STR_NM, -- 매장명 (gc_store 테이블 연동)
|
||||
SE.MBR_INNB AS MBR_INNB, -- 회원 고유번호
|
||||
SE.MBR_DV_CD AS MBR_DV_CD, -- 회원 구분코드
|
||||
SE.EXTIKET_STMP_CNT AS EXTIKET_STMP_CNT, -- 교환권 스탬프 수
|
||||
DATE_FORMAT(SE.STMP_VALID_DT, '%Y-%m-%d') AS STMP_VALID_DT, -- 스탬프 유효일시
|
||||
SE.EXCHNG_AT AS EXCHNG_AT, -- 교환여부
|
||||
SE.COUPON_INNB AS COUPON_INNB, -- 쿠폰고유번호
|
||||
DATE_FORMAT(SE.REGIST_DT, '%Y-%m-%d') AS REGIST_DT, -- 등록일시
|
||||
CASE
|
||||
WHEN SE.EXCHNG_AT = 'Y' THEN 'COMPLETED'
|
||||
WHEN NOW() > SE.STMP_VALID_DT THEN 'EXPIRED'
|
||||
ELSE 'ACTIVE'
|
||||
END AS STATUS,
|
||||
CASE
|
||||
WHEN SE.COUPON_INNB IS NOT NULL THEN 'Y'
|
||||
ELSE 'N'
|
||||
END AS HAS_COUPON
|
||||
FROM
|
||||
GC_BENEFIT_STMP_EXTIKET SE
|
||||
LEFT JOIN
|
||||
GC_STORE ST ON SE.STR_INNB = ST.STR_INNB
|
||||
WHERE
|
||||
SE.MBR_INNB = #{mbrInnb}
|
||||
AND SE.MBR_DV_CD = #{mbrDvCd}
|
||||
AND SE.SOPMAL_CD = #{sopmalCd}
|
||||
<if test="strInnb != null and strInnb != '' and strInnb > 0">
|
||||
AND SE.STR_INNB = #{strInnb}
|
||||
</if>
|
||||
AND (
|
||||
-- 유효기간 내의 카드이거나 교환권 발급 완료된 카드
|
||||
(NOW() <= SE.STMP_VALID_DT OR SE.EXCHNG_AT = 'Y')
|
||||
)
|
||||
ORDER BY
|
||||
-- 교환되지 않은 카드를 먼저 표시
|
||||
CASE WHEN SE.EXCHNG_AT = 'N' THEN 0 ELSE 1 END ASC,
|
||||
SE.REGIST_DT ASC
|
||||
</select>
|
||||
|
||||
<!-- 보유한 적립카드 개수 조회 (교환권 발급 완료 건도 포함) -->
|
||||
<select id="selectTotalCardCount" parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO" resultType="int">
|
||||
-- 보유한 적립카드 개수 조회 (교환권 발급 완료 건도 포함)
|
||||
SELECT
|
||||
COUNT(*) AS CARD_COUNT
|
||||
FROM
|
||||
GC_BENEFIT_STMP_EXTIKET SE
|
||||
WHERE
|
||||
SE.MBR_INNB = #{mbrInnb}
|
||||
AND SE.MBR_DV_CD = #{mbrDvCd}
|
||||
AND SE.SOPMAL_CD = #{sopmalCd}
|
||||
AND NOW() <= SE.STMP_VALID_DT
|
||||
</select>
|
||||
|
||||
<!-- 스탬프 적립 내역 조회 -->
|
||||
<select id="selectRecentPurchasesWithStamps"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO"
|
||||
resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
-- 최근 스탬프 적립 내역 조회 (매장명 연동)
|
||||
SELECT
|
||||
BS.BNF_STMP_INNB AS BNF_STMP_INNB,
|
||||
BS.ORDR_INNB AS ORDR_INNB,
|
||||
BS.REFUND_AT AS REFUND_AT,
|
||||
BS.PURCHS_AMT AS PURCHS_AMT,
|
||||
BS.RL_SETLE_AMT AS RL_SETLE_AMT,
|
||||
BS.STMP_CNT AS STMP_CNT,
|
||||
BS.AMT_FOR_CHG AS AMT_FOR_CHG,
|
||||
DATE_FORMAT(BS.SETLE_COMPT_DT, '%Y-%m-%d %H:%i:%s') AS SETLE_COMPT_DT,
|
||||
DATE_FORMAT(BS.REGIST_DT, '%Y-%m-%d %H:%i:%s') AS REGIST_DT,
|
||||
CASE
|
||||
WHEN ST.STR_NM IS NOT NULL THEN ST.STR_NM
|
||||
WHEN ST.TENTCPN_NM IS NOT NULL THEN ST.TENTCPN_NM
|
||||
ELSE CONCAT('매장_', BS.STR_INNB)
|
||||
END AS BRANCH_NAME -- 매장명 (gc_store 테이블 연동)
|
||||
FROM
|
||||
GC_BENEFIT_STMP BS
|
||||
LEFT JOIN
|
||||
GC_STORE ST ON BS.STR_INNB = ST.STR_INNB
|
||||
WHERE
|
||||
BS.MBR_INNB = #{mbrInnb}
|
||||
AND BS.MBR_DV_CD = #{mbrDvCd}
|
||||
AND BS.SOPMAL_CD = #{sopmalCd}
|
||||
AND (BS.REFUND_AT IS NULL OR BS.REFUND_AT != 'Y') -- 환불된 건 제외
|
||||
<if test="strInnb != null and strInnb != ''">
|
||||
AND BS.STR_INNB = #{strInnb}
|
||||
</if>
|
||||
AND BS.REGIST_DT >= DATE_SUB(NOW(), INTERVAL 12 MONTH)
|
||||
ORDER BY
|
||||
BS.REGIST_DT DESC
|
||||
LIMIT 20
|
||||
</select>
|
||||
|
||||
<!-- 스탬프 적립 내역 추가 로딩 (스크롤 시 20개 추가) - 컬럼 추가 -->
|
||||
<select id="selectMorePurchasesWithStamps"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO"
|
||||
resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
-- 스크롤 시 추가 로딩할 스탬프 적립 내역 조회
|
||||
SELECT
|
||||
BS.BNF_STMP_INNB AS BNF_STMP_INNB,
|
||||
BS.ORDR_INNB AS ORDR_INNB,
|
||||
BS.REFUND_AT AS REFUND_AT,
|
||||
BS.PURCHS_AMT AS PURCHS_AMT,
|
||||
BS.RL_SETLE_AMT AS RL_SETLE_AMT,
|
||||
BS.STMP_CNT AS STMP_CNT,
|
||||
BS.AMT_FOR_CHG AS AMT_FOR_CHG,
|
||||
DATE_FORMAT(BS.SETLE_COMPT_DT, '%Y-%m-%d %H:%i:%s') AS SETLE_COMPT_DT,
|
||||
DATE_FORMAT(BS.REGIST_DT, '%Y-%m-%d %H:%i:%s') AS REGIST_DT,
|
||||
CASE
|
||||
WHEN ST.STR_NM IS NOT NULL THEN ST.STR_NM
|
||||
WHEN ST.TENTCPN_NM IS NOT NULL THEN ST.TENTCPN_NM
|
||||
ELSE CONCAT('매장_', BS.STR_INNB)
|
||||
END AS BRANCH_NAME
|
||||
FROM
|
||||
GC_BENEFIT_STMP BS
|
||||
LEFT JOIN
|
||||
GC_STORE ST ON BS.STR_INNB = ST.STR_INNB
|
||||
WHERE
|
||||
BS.MBR_INNB = #{mbrInnb}
|
||||
AND BS.MBR_DV_CD = #{mbrDvCd}
|
||||
AND BS.SOPMAL_CD = #{sopmalCd}
|
||||
AND (BS.REFUND_AT IS NULL OR BS.REFUND_AT != 'Y') -- 환불된 건 제외
|
||||
<if test="strInnb != null and strInnb != ''">
|
||||
AND BS.STR_INNB = #{strInnb}
|
||||
</if>
|
||||
AND BS.REGIST_DT >= DATE_SUB(NOW(), INTERVAL 12 MONTH)
|
||||
<if test="lastStmpInnb != null and lastStmpInnb > 0">
|
||||
AND BS.REGIST_DT < (
|
||||
SELECT REGIST_DT
|
||||
FROM GC_BENEFIT_STMP
|
||||
WHERE BNF_STMP_INNB = #{lastStmpInnb}
|
||||
)
|
||||
</if>
|
||||
ORDER BY
|
||||
BS.REGIST_DT DESC
|
||||
LIMIT 20
|
||||
</select>
|
||||
|
||||
<!-- 새로운 스탬프 적립 기록 추가 -->
|
||||
<insert id="insertNewPurchase" parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO">
|
||||
-- 새로운 구매 기록 추가 및 스탬프 적립
|
||||
INSERT INTO GC_BENEFIT_STMP (
|
||||
SOPMAL_CD, -- 쇼핑몰코드
|
||||
STR_INNB, -- 매장고유번호
|
||||
ORDR_INNB, -- 주문 고유번호
|
||||
REFUND_AT, -- 환불여부
|
||||
MBR_INNB, -- 회원고유번호
|
||||
MBR_DV_CD, -- 회원구분코드
|
||||
PURCHS_INNB, -- 구매식별 고유번호
|
||||
PURCHS_AMT, -- 구매금액
|
||||
RL_SETLE_AMT, -- 실 결제금액
|
||||
SETLE_COMPT_DT, -- 결제완료일시
|
||||
STMP_CNT, -- 적립 스탬프 수
|
||||
AMT_FOR_CHG, -- 충전필요금액
|
||||
REGIST_DT -- 등록일시
|
||||
) VALUES (
|
||||
#{sopmalCd},
|
||||
#{strInnb},
|
||||
#{ordrInnb},
|
||||
IFNULL(#{refundAt}, 'N'),
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
#{purchsInnb},
|
||||
#{purchsAmt},
|
||||
#{rlSetleAmt},
|
||||
#{setleCmptDt},
|
||||
#{stmpCnt},
|
||||
#{amtForChg},
|
||||
NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 새로운 적립카드(교환권) 생성 -->
|
||||
<insert id="insertExchangeTicket"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO"
|
||||
useGeneratedKeys="true"
|
||||
keyProperty="bnfExtiketInnb">
|
||||
-- 새로운 교환권(스탬프 적립카드) 생성
|
||||
INSERT INTO GC_BENEFIT_STMP_EXTIKET (
|
||||
SOPMAL_CD,
|
||||
STR_INNB,
|
||||
MBR_INNB,
|
||||
MBR_DV_CD,
|
||||
EXTIKET_STMP_CNT,
|
||||
STMP_VALID_DT,
|
||||
EXCHNG_AT,
|
||||
REGIST_DT
|
||||
) VALUES (
|
||||
#{sopmalCd},
|
||||
#{strInnb},
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
#{extiketStmpCnt},
|
||||
<choose>
|
||||
<when test="stmpValidDt != null">
|
||||
#{stmpValidDt}
|
||||
</when>
|
||||
<otherwise>
|
||||
DATE_ADD(NOW(), INTERVAL 12 MONTH) -- 기본: 현재시점으로부터 12개월
|
||||
</otherwise>
|
||||
</choose>,
|
||||
IFNULL(#{exchngAt}, 'N'),
|
||||
NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- Step 1: 교환권 완료 대상 PK 조회 -->
|
||||
<select id="selectExchangeTicketForComplete"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO"
|
||||
resultType="Long">
|
||||
-- 교환권 완료 처리 대상 PK 조회
|
||||
SELECT
|
||||
BNF_EXTIKET_INNB
|
||||
FROM
|
||||
GC_BENEFIT_STMP_EXTIKET
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND STR_INNB = #{strInnb}
|
||||
AND EXCHNG_AT = 'N'
|
||||
AND EXTIKET_STMP_CNT = #{requiredStampCnt}
|
||||
AND NOW() <= STMP_VALID_DT
|
||||
ORDER BY
|
||||
REGIST_DT ASC
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- Step 2: PK 기준 교환권 완료 처리 (쿠폰 포함) -->
|
||||
<update id="completeExchangeTicketWithCoupon"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO">
|
||||
-- PK 기준 교환권 완료 처리 (쿠폰 정보 포함)
|
||||
UPDATE
|
||||
GC_BENEFIT_STMP_EXTIKET
|
||||
SET
|
||||
EXCHNG_AT = 'Y',
|
||||
EXCHNG_DT = NOW(),
|
||||
COUPON_INNB = #{couponInnb},
|
||||
UPDT_DT = NOW()
|
||||
WHERE
|
||||
BNF_EXTIKET_INNB = #{bnfExtiketInnb}
|
||||
AND MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
</update>
|
||||
|
||||
<!-- ✅ 새로 추가: 쿠폰 번호만 업데이트하는 쿼리 -->
|
||||
<update id="updateExchangeTicketCouponOnly"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO">
|
||||
-- 교환권에 쿠폰 번호만 업데이트
|
||||
UPDATE
|
||||
GC_BENEFIT_STMP_EXTIKET
|
||||
SET
|
||||
COUPON_INNB = #{couponInnb},
|
||||
UPDT_DT = NOW()
|
||||
WHERE
|
||||
BNF_EXTIKET_INNB = #{bnfExtiketInnb}
|
||||
AND EXCHNG_AT = 'Y' -- 이미 완료된 상태에서만 업데이트
|
||||
-- 추가 조건 제거하여 업데이트 확률 높임
|
||||
</update>
|
||||
|
||||
<!-- 교환권 사용 완료 후 적립카드 삭제 처리 -->
|
||||
<update id="deleteCompletedExchangeTicket" parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO">
|
||||
-- 교환권 사용 완료 후 적립카드 삭제 처리
|
||||
DELETE FROM
|
||||
GC_BENEFIT_STMP_EXTIKET
|
||||
WHERE
|
||||
BNF_EXTIKET_INNB = #{bnfExtiketInnb}
|
||||
AND MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND EXCHNG_AT = 'Y'
|
||||
</update>
|
||||
|
||||
<!-- 총 미교환 스탬프 수 조회 -->
|
||||
<select id="selectTotalUnexchangedStamps"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO"
|
||||
resultType="int">
|
||||
-- ✅ 수정: 실제 사용 가능한 스탬프 수 조회 (완료된 교환권의 스탬프만 제외)
|
||||
SELECT
|
||||
GREATEST(0,
|
||||
(
|
||||
-- 총 적립된 스탬프 수
|
||||
SELECT IFNULL(SUM(STMP_CNT), 0)
|
||||
FROM GC_BENEFIT_STMP
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND STR_INNB = #{strInnb}
|
||||
AND REFUND_AT = 'N'
|
||||
) - (
|
||||
-- 완료된 교환권의 스탬프만 차감 (진행 중인 것은 제외)
|
||||
SELECT IFNULL(SUM(EXTIKET_STMP_CNT), 0)
|
||||
FROM GC_BENEFIT_STMP_EXTIKET
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND STR_INNB = #{strInnb}
|
||||
AND EXCHNG_AT = 'Y' -- 완료된 교환권만 차감
|
||||
)
|
||||
) AS AVAILABLE_STAMPS
|
||||
</select>
|
||||
|
||||
<!-- 잔액 조회 수정 (동적 스탬프 기준 금액 적용) -->
|
||||
<select id="selectRemainingAmount"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO"
|
||||
resultType="java.lang.Double">
|
||||
-- 간단한 잔액 조회 (0으로 고정 - 매번 새로운 구매로 처리)
|
||||
SELECT 0.0 AS REMAINING_AMOUNT
|
||||
</select>
|
||||
|
||||
<!-- 교환권 갯수 조회 -->
|
||||
<select id="selectTotalRowCountFromBenefitExtiket"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO"
|
||||
resultType="int">
|
||||
-- 특정 회원의 유효한 교환권 개수 조회
|
||||
SELECT
|
||||
COUNT(*) AS TOTAL_COUNT
|
||||
FROM
|
||||
GC_BENEFIT_STMP_EXTIKET
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
<if test="strInnb != null and strInnb != ''">
|
||||
AND STR_INNB = #{strInnb}
|
||||
</if>
|
||||
AND NOW() <= STMP_VALID_DT
|
||||
</select>
|
||||
|
||||
<!-- 스탬프 화면 정보 조회 (gc_benefit_content 테이블 연동) -->
|
||||
<select id="selectPurstmpScreenInfo"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO"
|
||||
resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
-- 스탬프 적립 이벤트의 화면 정보 조회
|
||||
SELECT
|
||||
B.BNF_INNB AS BNF_INNB, -- 혜택 설정 고유번호
|
||||
BC.CN_SJ AS CN_SJ, -- 컨텐츠 제목
|
||||
BC.IMG_FIL_COURS AS IMG_FIL_COURS, -- 이미지 파일 경로
|
||||
BC.WORDS_CN AS WORDS_CN -- 안내 내용
|
||||
FROM
|
||||
GC_BENEFIT B
|
||||
INNER JOIN
|
||||
GC_BENEFIT_CONTENT BC ON B.BNF_INNB = BC.BNF_INNB
|
||||
WHERE
|
||||
B.BNF_DV_CD = '140' -- 스탬프 적립 이벤트 코드 (140)
|
||||
AND B.SOPMAL_CD = #{sopmalCd}
|
||||
ORDER BY
|
||||
B.BNF_INNB DESC
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 관리자 설정 이달의 선물 정보 조회 -->
|
||||
<select id="selectMonthlyGiftInfo"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO"
|
||||
resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
B.BNF_INNB AS BNF_INNB, -- 혜택 설정 고유번호
|
||||
BC.COUPON_INNB AS COUPON_INNB -- 쿠폰 고유번호
|
||||
FROM
|
||||
GC_BENEFIT B
|
||||
INNER JOIN
|
||||
GC_BENEFIT_REWARD BC ON B.BNF_INNB = BC.BNF_INNB
|
||||
WHERE
|
||||
B.BNF_DV_CD = '140' -- 스탬프 적립 이벤트 코드 (140)
|
||||
AND B.SOPMAL_CD = #{sopmalCd}
|
||||
ORDER BY
|
||||
B.BNF_INNB DESC
|
||||
</select>
|
||||
|
||||
<!-- selectCurrentExchangeTicket 수정 -->
|
||||
<select id="selectCurrentExchangeTicket"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO"
|
||||
resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
BNF_EXTIKET_INNB AS bnfExtiketInnb,
|
||||
EXTIKET_STMP_CNT AS extiketStmpCnt
|
||||
FROM
|
||||
GC_BENEFIT_STMP_EXTIKET
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND STR_INNB = #{strInnb}
|
||||
AND EXCHNG_AT = 'N'
|
||||
AND EXTIKET_STMP_CNT < 10
|
||||
AND NOW() <= STMP_VALID_DT
|
||||
ORDER BY
|
||||
REGIST_DT ASC
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 교환권 스탬프 수 업데이트 -->
|
||||
<update id="updateExchangeTicketStampCount">
|
||||
-- 교환권의 스탬프 수를 업데이트
|
||||
UPDATE
|
||||
GC_BENEFIT_STMP_EXTIKET
|
||||
SET
|
||||
EXTIKET_STMP_CNT = EXTIKET_STMP_CNT + #{newStampCount},
|
||||
UPDT_DT = NOW()
|
||||
WHERE
|
||||
BNF_EXTIKET_INNB = #{extiketInnb}
|
||||
</update>
|
||||
|
||||
<!-- 쿠폰(교환권) 목록 조회 - 정렬 수정 -->
|
||||
<select id="selectCouponList"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO"
|
||||
resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
-- 회원의 쿠폰(교환권) 목록 조회 (쿠폰 정보 포함, 매장명 개선)
|
||||
SELECT
|
||||
SE.BNF_EXTIKET_INNB AS bnfExtiketInnb,
|
||||
SE.SOPMAL_CD AS sopmalCd,
|
||||
SE.STR_INNB AS strInnb,
|
||||
CASE
|
||||
WHEN ST.STR_NM IS NOT NULL THEN ST.STR_NM
|
||||
WHEN ST.TENTCPN_NM IS NOT NULL THEN ST.TENTCPN_NM
|
||||
ELSE CONCAT('매장_', SE.STR_INNB)
|
||||
END AS branchName, -- 매장명 (gc_store 테이블 연동)
|
||||
SE.MBR_INNB AS mbrInnb,
|
||||
SE.MBR_DV_CD AS mbrDvCd,
|
||||
SE.EXTIKET_STMP_CNT AS extiketStmpCnt,
|
||||
DATE_FORMAT(SE.STMP_VALID_DT, '%Y-%m-%d %H:%i:%s') AS stmpValidDt,
|
||||
SE.EXCHNG_AT AS exchngAt,
|
||||
DATE_FORMAT(SE.EXCHNG_DT, '%Y-%m-%d %H:%i:%s') AS exchngDt,
|
||||
DATE_FORMAT(SE.REGIST_DT, '%Y-%m-%d %H:%i:%s') AS registDt,
|
||||
DATE_FORMAT(SE.UPDT_DT, '%Y-%m-%d %H:%i:%s') AS updtDt,
|
||||
SE.COUPON_INNB AS couponInnb,
|
||||
CASE
|
||||
WHEN SE.EXCHNG_AT = 'N' AND NOW() <= SE.STMP_VALID_DT AND SE.EXTIKET_STMP_CNT >= 10 THEN 'Y'
|
||||
ELSE 'N'
|
||||
END AS exchangeable,
|
||||
CASE
|
||||
WHEN SE.COUPON_INNB IS NOT NULL THEN 'Y'
|
||||
ELSE 'N'
|
||||
END AS hasCoupon
|
||||
FROM
|
||||
GC_BENEFIT_STMP_EXTIKET SE
|
||||
LEFT JOIN
|
||||
GC_STORE ST ON SE.STR_INNB = ST.STR_INNB
|
||||
WHERE
|
||||
SE.MBR_INNB = #{mbrInnb}
|
||||
AND SE.MBR_DV_CD = #{mbrDvCd}
|
||||
AND SE.SOPMAL_CD = #{sopmalCd}
|
||||
<if test="strInnb != null and strInnb != ''">
|
||||
AND SE.STR_INNB = #{strInnb}
|
||||
</if>
|
||||
ORDER BY
|
||||
-- 교환되지 않은 쿠폰을 먼저 표시
|
||||
CASE WHEN SE.EXCHNG_AT = 'N' THEN 0 ELSE 1 END ASC,
|
||||
-- 교환되지 않은 쿠폰들은 최신순으로, 교환된 쿠폰들도 최신순으로
|
||||
SE.REGIST_DT DESC
|
||||
</select>
|
||||
|
||||
<!-- 특정 교환권 정보 조회 -->
|
||||
<select id="selectSpecificVoucherInfo"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO"
|
||||
resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
-- 특정 교환권의 상세 정보 조회
|
||||
SELECT
|
||||
SE.BNF_EXTIKET_INNB AS bnfExtiketInnb,
|
||||
SE.SOPMAL_CD AS sopmalCd,
|
||||
SE.STR_INNB AS strInnb,
|
||||
CASE
|
||||
WHEN ST.STR_NM IS NOT NULL THEN ST.STR_NM
|
||||
WHEN ST.TENTCPN_NM IS NOT NULL THEN ST.TENTCPN_NM
|
||||
ELSE CONCAT('매장_', SE.STR_INNB)
|
||||
END AS branchName,
|
||||
SE.MBR_INNB AS mbrInnb,
|
||||
SE.MBR_DV_CD AS mbrDvCd,
|
||||
SE.EXTIKET_STMP_CNT AS extiketStmpCnt,
|
||||
DATE_FORMAT(SE.STMP_VALID_DT, '%Y-%m-%d %H:%i:%s') AS stmpValidDt,
|
||||
SE.EXCHNG_AT AS exchngAt,
|
||||
DATE_FORMAT(SE.EXCHNG_DT, '%Y-%m-%d %H:%i:%s') AS exchngDt,
|
||||
DATE_FORMAT(SE.REGIST_DT, '%Y-%m-%d %H:%i:%s') AS registDt,
|
||||
DATE_FORMAT(SE.UPDT_DT, '%Y-%m-%d %H:%i:%s') AS updtDt
|
||||
FROM
|
||||
GC_BENEFIT_STMP_EXTIKET SE
|
||||
LEFT JOIN
|
||||
GC_STORE ST ON SE.STR_INNB = ST.STR_INNB
|
||||
WHERE
|
||||
SE.BNF_EXTIKET_INNB = #{bnfExtiketInnb}
|
||||
AND SE.MBR_INNB = #{mbrInnb}
|
||||
AND SE.MBR_DV_CD = #{mbrDvCd}
|
||||
AND SE.SOPMAL_CD = #{sopmalCd}
|
||||
</select>
|
||||
|
||||
<!-- 기존 구매 데이터 개수 조회 (더 정확한 조건) -->
|
||||
<select id="countExistingPurchaseData"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO"
|
||||
resultType="int">
|
||||
-- 특정 회원의 기존 구매 데이터 개수 확인
|
||||
SELECT
|
||||
COUNT(*) AS PURCHASE_COUNT
|
||||
FROM
|
||||
GC_BENEFIT_STMP
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND REGIST_DT >= DATE_SUB(NOW(), INTERVAL 6 MONTH) -- 최근 6개월 데이터만 확인
|
||||
</select>
|
||||
|
||||
<!-- 기존 교환권 데이터 개수 조회 (더 정확한 조건) -->
|
||||
<select id="countExistingTicketData"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO"
|
||||
resultType="int">
|
||||
-- 특정 회원의 기존 교환권 데이터 개수 확인
|
||||
SELECT
|
||||
COUNT(*) AS TICKET_COUNT
|
||||
FROM
|
||||
GC_BENEFIT_STMP_EXTIKET
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND REGIST_DT >= DATE_SUB(NOW(), INTERVAL 6 MONTH) -- 최근 6개월 데이터만 확인
|
||||
</select>
|
||||
|
||||
<!-- 스탬프 교환 보상 정보 조회 (gc_benefit_reward에서) -->
|
||||
<select id="selectStampExchangeReward"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO"
|
||||
resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
-- 스탬프 교환 보상 정보 조회 (쿠폰/마일리지)
|
||||
SELECT
|
||||
br.BNF_RWD_CATE_DV_CD AS BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
br.BNF_RWD_GODS_DV_CD AS BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
br.MLG_RWD_AMT AS MLG_RWD_AMT, -- 마일리지 보상 금액
|
||||
br.COUPON_INNB AS COUPON_INNB, -- 쿠폰 고유 번호
|
||||
COALESCE(cs.COUPON_SNDNG_NM, br.ITM_NM) AS ITM_NM -- 쿠폰 이름
|
||||
FROM
|
||||
GC_BENEFIT_REWARD br
|
||||
LEFT JOIN
|
||||
GC_COUPON_SNDNG cs ON br.COUPON_INNB = cs.COUPON_SNDNG_INNB
|
||||
AND cs.SOPMAL_CD = #{sopmalCd}
|
||||
WHERE
|
||||
br.BNF_INNB = #{bnfInnb}
|
||||
AND br.BNF_RWD_CATE_DV_CD LIKE '14%' -- 모바일스탬프(140) 관련 보상
|
||||
ORDER BY
|
||||
br.BNF_RWD_CATE_DV_CD
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 스탬프 혜택 참여 정보 저장 -->
|
||||
<insert id="insertStampParticipation"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO"
|
||||
useGeneratedKeys="true"
|
||||
keyProperty="bnfPrtInnb"
|
||||
keyColumn="BNF_PRT_INNB">
|
||||
-- 스탬프 적립 시 혜택 참여 정보 저장
|
||||
INSERT INTO GC_BENEFIT_PARTCPTN (
|
||||
BNF_INNB, -- 혜택 고유 번호
|
||||
BNF_PRT_DT, -- 혜택 참여 일시
|
||||
MBR_INNB, -- 회원 고유 번호
|
||||
MBR_DV_CD, -- 회원 구분 코드
|
||||
STR_INNB, -- 매장 고유번호 (스탬프용)
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록 일시
|
||||
) VALUES (
|
||||
#{bnfInnb},
|
||||
NOW(),
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
#{strInnb},
|
||||
#{regusr},
|
||||
NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 스탬프 혜택 설정 정보 조회 -->
|
||||
<select id="selectStampBenefitInfo"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO"
|
||||
resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
-- 스탬프 혜택 설정 정보 조회
|
||||
SELECT
|
||||
BNF_INNB, -- 혜택 고유 번호
|
||||
USE_AT, -- 사용여부
|
||||
BNF_BGN_DT, -- 진행기간 시작일시
|
||||
BNF_END_DT, -- 진행기간 종료일시
|
||||
SCR_REPRSNT_IMG, -- 화면 대표 이미지 경로
|
||||
SCR_RWD_IMG, -- 보상 이미지 경로
|
||||
BNF_WORDS_CN -- 혜택 안내 문구
|
||||
FROM
|
||||
GC_BENEFIT
|
||||
WHERE
|
||||
BNF_DV_CD = '140' -- 모바일스탬프 혜택 구분 코드
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
ORDER BY
|
||||
BNF_INNB DESC
|
||||
LIMIT 1
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 혜택 보상 영수증 저장 수정 -->
|
||||
<insert id="insertMileageReceipt" parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO"
|
||||
useGeneratedKeys="true" keyProperty="bnfRcvInnb" keyColumn="BNF_RCV_INNB">
|
||||
INSERT INTO GC_BENEFIT_RECEIPT (
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유 번호
|
||||
BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
MLG_RWD_AMT, -- 마일리지 보상 금액
|
||||
COUPON_INNB, -- 쿠폰 고유 번호
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록 일시
|
||||
) VALUES (
|
||||
#{bnfPrtInnb},
|
||||
#{bnfRwdCateDvCd},
|
||||
#{bnfRwdGodsDvCd},
|
||||
#{mlgRwdAmt},
|
||||
#{couponInnb},
|
||||
#{regusr},
|
||||
NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- Step 2: PK 기준 교환권 완료 처리 -->
|
||||
<update id="completeExchangeTicketByPk"
|
||||
parameterType="Long">
|
||||
-- PK 기준 교환권 완료 처리
|
||||
UPDATE
|
||||
GC_BENEFIT_STMP_EXTIKET
|
||||
SET
|
||||
EXCHNG_AT = 'Y',
|
||||
EXCHNG_DT = NOW(),
|
||||
UPDT_DT = NOW()
|
||||
WHERE
|
||||
BNF_EXTIKET_INNB = #{bnfExtiketInnb}
|
||||
</update>
|
||||
|
||||
<!-- 스탬프 적립 기준 금액 조회 (gc_benefit_chg_config에서) -->
|
||||
<select id="selectStampAccumulationAmount"
|
||||
parameterType="String"
|
||||
resultType="java.lang.Double">
|
||||
-- 스탬프 적립 기준 금액 조회 (gc_benefit_chg_config 테이블에서)
|
||||
SELECT
|
||||
AMT_FOR_CHG AS AMT_FOR_CHG
|
||||
FROM
|
||||
GC_BENEFIT_CHG_CONFIG
|
||||
WHERE
|
||||
SOPMAL_CD = #{sopmalCd}
|
||||
AND BNF_DV_CD = '140' -- 모바일스탬프 구분 코드
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 아직 스탬프 적립되지 않은 구매건만 조회 -->
|
||||
<select id="selectUnprocessedStoreOrders"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO"
|
||||
resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
-- 아직 스탬프 적립되지 않은 매장 구매건만 조회
|
||||
SELECT
|
||||
O.ORDR_INNB AS ordrInnb, -- 주문 고유번호
|
||||
O.STR_INNB AS strInnb, -- 매장 고유번호
|
||||
O.RL_SETLE_AMT AS rlSetleAmt, -- 실 결제금액
|
||||
CASE
|
||||
WHEN ST.STR_NM IS NOT NULL THEN ST.STR_NM
|
||||
WHEN ST.TENTCPN_NM IS NOT NULL THEN ST.TENTCPN_NM
|
||||
ELSE CONCAT('매장_', O.STR_INNB)
|
||||
END AS strNm, -- 매장명
|
||||
DATE_FORMAT(O.SETLE_COMPT_DT, '%Y-%m-%d %H:%i:%s') AS setleComptDt, -- 결제완료일시
|
||||
O.SLE_ENVRN_CD AS sleEnvrnCd, -- 판매환경코드
|
||||
O.SKN_ENVRN_CD AS sknEnvrnCd -- 스킨환경코드
|
||||
FROM
|
||||
GC_ORDER O
|
||||
LEFT JOIN
|
||||
GC_STORE ST ON O.STR_INNB = ST.STR_INNB
|
||||
LEFT JOIN
|
||||
GC_BENEFIT_STMP BS ON O.ORDR_INNB = BS.PURCHS_INNB
|
||||
AND O.MBR_INNB = BS.MBR_INNB
|
||||
AND O.MBR_DV_CD = BS.MBR_DV_CD
|
||||
AND O.SOPMAL_CD = BS.SOPMAL_CD
|
||||
WHERE
|
||||
O.MBR_INNB = #{mbrInnb}
|
||||
AND O.MBR_DV_CD = #{mbrDvCd}
|
||||
AND O.SOPMAL_CD = #{sopmalCd}
|
||||
AND O.USE_AT = 'Y'
|
||||
AND O.ORDR_STTUS_CD IN ('25', '30', '35', '40', '45', '50', '55', '60', '65', '70', '75', '80') -- 결제완료 이후 상태만
|
||||
AND (
|
||||
-- gc_order 참고사항: 매장 구매금액 조건
|
||||
O.SLE_ENVRN_CD IN ('S1', 'S2', 'S3')
|
||||
OR O.SKN_ENVRN_CD = 'POS'
|
||||
)
|
||||
<if test="strInnb != null and strInnb != '' and strInnb != 'null'">
|
||||
AND O.STR_INNB = #{strInnb}
|
||||
</if>
|
||||
AND O.SETLE_COMPT_DT IS NOT NULL
|
||||
AND O.SETLE_COMPT_DT >= DATE_SUB(NOW(), INTERVAL 12 MONTH) -- 최근 12개월 데이터만
|
||||
AND BS.BNF_STMP_INNB IS NULL -- 아직 스탬프 적립 기록이 없는 주문만
|
||||
ORDER BY
|
||||
O.SETLE_COMPT_DT DESC
|
||||
</select>
|
||||
|
||||
<!-- 첫 스탬프 적립일 조회 -->
|
||||
<select id="selectFirstStampAccumulationDate"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO"
|
||||
resultType="java.sql.Date">
|
||||
-- 해당 매장의 첫 스탬프 적립일 조회
|
||||
SELECT
|
||||
MIN(DATE(REGIST_DT)) AS FIRST_STAMP_DATE
|
||||
FROM
|
||||
GC_BENEFIT_STMP
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND STR_INNB = #{strInnb}
|
||||
</select>
|
||||
|
||||
<!-- 특정 주문으로 적립된 스탬프 기록 조회 -->
|
||||
<select id="selectStampsByPurchaseOrder"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO"
|
||||
resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
BNF_STMP_INNB,
|
||||
STMP_CNT,
|
||||
REFUND_AT, -- EXCHNG_AT 대신 REFUND_AT 사용
|
||||
ORDR_INNB
|
||||
FROM
|
||||
GC_BENEFIT_STMP
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND ORDR_INNB = #{ordrInnb}
|
||||
AND STR_INNB = #{strInnb}
|
||||
AND REFUND_AT = 'N' -- 환불되지 않은 기록만 조회
|
||||
</select>
|
||||
|
||||
<!-- 스탬프 기록 삭제 → 환불 처리로 변경 -->
|
||||
<update id="updateStampRefundStatus" parameterType="Long">
|
||||
-- 스탬프 환불 처리 (삭제 대신 상태 변경)
|
||||
UPDATE GC_BENEFIT_STMP
|
||||
SET
|
||||
REFUND_AT = 'Y',
|
||||
REGIST_DT = NOW()
|
||||
WHERE
|
||||
BNF_STMP_INNB = #{bnfStmpInnb}
|
||||
AND REFUND_AT = 'N'
|
||||
</update>
|
||||
|
||||
<!-- 환불 처리 시 스탬프 차감용 UPDATE 쿼리 추가 -->
|
||||
<update id="updateRefundStatus" parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO">
|
||||
-- 환불 처리 시 스탬프 차감
|
||||
UPDATE GC_BENEFIT_STMP
|
||||
SET
|
||||
REFUND_AT = 'Y',
|
||||
UPDT_DT = NOW()
|
||||
WHERE
|
||||
ORDR_INNB = #{ordrInnb}
|
||||
AND MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND REFUND_AT = 'N'
|
||||
</update>
|
||||
|
||||
<!-- 특정 주문의 스탬프 정보 조회 -->
|
||||
<select id="selectStampByOrder"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO"
|
||||
resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
-- 주문번호로 스탬프 정보 조회
|
||||
SELECT
|
||||
BS.BNF_STMP_INNB AS BNF_STMP_INNB,
|
||||
BS.ORDR_INNB AS ORDR_INNB,
|
||||
BS.REFUND_AT AS REFUND_AT,
|
||||
BS.PURCHS_AMT AS PURCHS_AMT,
|
||||
BS.RL_SETLE_AMT AS RL_SETLE_AMT,
|
||||
BS.STMP_CNT AS STMP_CNT,
|
||||
BS.AMT_FOR_CHG AS AMT_FOR_CHG,
|
||||
DATE_FORMAT(BS.SETLE_COMPT_DT, '%Y-%m-%d %H:%i:%s') AS SETLE_COMPT_DT,
|
||||
DATE_FORMAT(BS.REGIST_DT, '%Y-%m-%d %H:%i:%s') AS REGIST_DT
|
||||
FROM
|
||||
GC_BENEFIT_STMP BS
|
||||
WHERE
|
||||
BS.ORDR_INNB = #{ordrInnb}
|
||||
AND BS.MBR_INNB = #{mbrInnb}
|
||||
AND BS.MBR_DV_CD = #{mbrDvCd}
|
||||
AND BS.SOPMAL_CD = #{sopmalCd}
|
||||
</select>
|
||||
|
||||
<!-- 주문 처리 여부 확인 쿼리 추가 -->
|
||||
<select id="countProcessedOrder"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO"
|
||||
resultType="int">
|
||||
SELECT COUNT(*)
|
||||
FROM GC_BENEFIT_STMP
|
||||
WHERE SOPMAL_CD = #{sopmalCd}
|
||||
AND MBR_INNB = #{mbrInnb}
|
||||
AND ORDR_INNB = #{purchsInnb}
|
||||
</select>
|
||||
|
||||
<!-- 환불로 인해 영향받은 교환권 삭제 -->
|
||||
<delete id="deleteAffectedExchangeTickets"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO">
|
||||
<![CDATA[
|
||||
-- 환불된 스탬프로 인해 유효하지 않은 교환권 삭제
|
||||
DELETE FROM GC_BENEFIT_STMP_EXTIKET
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND STR_INNB = #{strInnb}
|
||||
AND EXCHNG_AT = 'N' -- 미교환 교환권만
|
||||
AND EXTIKET_STMP_CNT > (
|
||||
-- 현재 유효한 스탬프 수보다 교환권 스탬프가 많으면 삭제
|
||||
SELECT IFNULL(SUM(STMP_CNT), 0)
|
||||
FROM GC_BENEFIT_STMP
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND STR_INNB = #{strInnb}
|
||||
AND REFUND_AT = 'N'
|
||||
)
|
||||
]]>
|
||||
</delete>
|
||||
|
||||
<!-- 교환안된 교환권 조회 (오래된 순) -->
|
||||
<select id="selectUnexchangedTicketsForDeduction"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO"
|
||||
resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
BNF_EXTIKET_INNB,
|
||||
EXTIKET_STMP_CNT
|
||||
FROM
|
||||
GC_BENEFIT_STMP_EXTIKET
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND STR_INNB = #{strInnb}
|
||||
AND EXCHNG_AT = 'N' -- 교환안된 것만
|
||||
ORDER BY
|
||||
REGIST_DT ASC -- 오래된 것부터 처리
|
||||
</select>
|
||||
|
||||
<!-- 교환권 스탬프 수 감소 -->
|
||||
<update id="reduceExchangeTicketStamps"
|
||||
parameterType="com.wb.domainserver.domain.gcone.bnft.purstmp.vo.BOPurstmpStampVO">
|
||||
UPDATE GC_BENEFIT_STMP_EXTIKET
|
||||
SET
|
||||
EXTIKET_STMP_CNT = EXTIKET_STMP_CNT - #{deductStampCnt},
|
||||
UPDT_DT = NOW()
|
||||
WHERE
|
||||
BNF_EXTIKET_INNB = #{bnfExtiketInnb}
|
||||
AND EXTIKET_STMP_CNT >= #{deductStampCnt}
|
||||
</update>
|
||||
|
||||
<!-- 특정 교환권 삭제 -->
|
||||
<delete id="deleteSpecificExchangeTicket" parameterType="Long">
|
||||
DELETE FROM GC_BENEFIT_STMP_EXTIKET
|
||||
WHERE BNF_EXTIKET_INNB = #{bnfExtiketInnb}
|
||||
</delete>
|
||||
</mapper>
|
||||
@@ -0,0 +1,234 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.bnft.qrevnt.mapper.BOQREvntMapper">
|
||||
|
||||
<!-- QR이벤트 혜택 정보 조회 -->
|
||||
<select id="selectQREventBenefitInfo" parameterType="com.wb.domainserver.domain.gcone.bnft.qrevnt.vo.BOQREvntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
b.BNF_INNB, -- 혜택 고유 번호
|
||||
b.BNF_SJ, -- 혜택 제목
|
||||
b.USE_AT, -- 사용여부
|
||||
b.BNF_BGN_DT, -- 진행기간 시작일시
|
||||
b.BNF_END_DT, -- 진행기간 종료일시
|
||||
b.SCR_REPRSNT_IMG, -- 화면 대표 이미지
|
||||
b.SCR_REPRSNT_IMG_NM, -- 화면 대표 이미지명
|
||||
b.SCR_REPRSNT_LINK_URL, -- 화면 대표 링크 URL
|
||||
b.SCR_RWD_IMG, -- 화면 보상 이미지
|
||||
b.SCR_RWD_IMG_NM, -- 화면 보상 이미지명
|
||||
b.SCR_RWD_LINK_URL, -- 화면 보상 링크 URL
|
||||
b.BNF_WORDS_CN, -- 혜택 안내
|
||||
gd.WORDS_CN_1, -- 안내문 1 (이벤트 설명)
|
||||
gd.WORDS_CN_2, -- 안내문 2 (쿠폰 사용법)
|
||||
gd.WORDS_CN_3 -- 안내문 3 (기타 안내)
|
||||
FROM
|
||||
GC_BENEFIT b
|
||||
LEFT JOIN GC_BENEFIT_GDCC gd ON b.BNF_DV_CD = gd.BNF_DV_CD
|
||||
AND b.SOPMAL_CD = gd.SOPMAL_CD
|
||||
WHERE
|
||||
b.BNF_DV_CD = '150' -- QR이벤트 혜택 구분 코드
|
||||
AND b.USE_AT = 'Y'
|
||||
AND DATE(NOW()) BETWEEN DATE(b.BNF_BGN_DT) AND DATE(b.BNF_END_DT)
|
||||
AND b.SOPMAL_CD = #{sopmalCd}
|
||||
ORDER BY
|
||||
b.BNF_INNB
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- QR이벤트 보상 정보 조회 -->
|
||||
<select id="selectQREventRewardInfo" parameterType="com.wb.domainserver.domain.gcone.bnft.qrevnt.vo.BOQREvntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
br.BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
br.BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
br.MLG_RWD_AMT, -- 마일리지 보상 금액
|
||||
br.COUPON_INNB, -- 쿠폰 고유 번호
|
||||
COALESCE(cs.COUPON_SNDNG_NM, br.ITM_NM) AS ITM_NM, -- 쿠폰 이름
|
||||
br.PRZWIN_QY, -- 당첨수량
|
||||
br.PRZWIN_PRC, -- 당첨확률
|
||||
cs.DWLD_BGN_DT, -- 다운로드 시작일 (사용유효시작일 대체)
|
||||
cs.DWLD_END_DT, -- 다운로드 종료일 (사용유효종료일 대체)
|
||||
cs.COUPON_SNDNG_DC -- 쿠폰 설명 (사용조건내용 대체)
|
||||
FROM
|
||||
GC_BENEFIT_REWARD br
|
||||
LEFT JOIN GC_COUPON_SNDNG cs ON br.COUPON_INNB = cs.COUPON_SNDNG_INNB
|
||||
AND cs.SOPMAL_CD = #{sopmalCd}
|
||||
WHERE
|
||||
br.BNF_INNB = #{bnfInnb}
|
||||
ORDER BY
|
||||
br.PRZWIN_PRC DESC
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 매장별 참여 여부 확인 -->
|
||||
<select id="selectStoreParticipationStatus" parameterType="com.wb.domainserver.domain.gcone.bnft.qrevnt.vo.BOQREvntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
COUNT(*) AS participationCount -- 참여 횟수
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb} -- 회원 고유 번호
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb} -- 혜택 고유 번호
|
||||
AND STR_INNB = #{strInnb} -- 매장 고유 번호
|
||||
AND DATE(BNF_PRT_DT) BETWEEN DATE(#{bnfBgnDt}) AND DATE(#{bnfEndDt}) -- 이벤트 기간 내
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 전체 참여 여부 확인 (아이디당 1회) -->
|
||||
<select id="selectTotalParticipationStatus" parameterType="com.wb.domainserver.domain.gcone.bnft.qrevnt.vo.BOQREvntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
COUNT(*) AS totalParticipationCount -- 전체 참여 횟수
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb} -- 회원 고유 번호
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_INNB = #{bnfInnb} -- 혜택 고유 번호
|
||||
AND DATE(BNF_PRT_DT) BETWEEN DATE(#{bnfBgnDt}) AND DATE(#{bnfEndDt}) -- 이벤트 기간 내
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 매장 정보 조회 -->
|
||||
<select id="selectStoreInfo" parameterType="com.wb.domainserver.domain.gcone.bnft.qrevnt.vo.BOQREvntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
STR_INNB, -- 매장 고유번호
|
||||
STR_NM, -- 매장명
|
||||
STR_CD, -- 매장 코드
|
||||
STR_ADRES, -- 매장 주소
|
||||
STR_RNM_ADRES, -- 매장 도로명 주소
|
||||
STR_TELNB, -- 매장 전화번호
|
||||
CTY_DO, -- 시도
|
||||
CTY_GUN_GU -- 시군구
|
||||
FROM
|
||||
GC_STORE
|
||||
WHERE
|
||||
STR_INNB = #{strInnb}
|
||||
AND TENT_STTUS = '02' -- 개점 상태
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- QR이벤트 참여 처리 -->
|
||||
<insert id="participateQREvent" parameterType="com.wb.domainserver.domain.gcone.bnft.qrevnt.vo.BOQREvntVO" useGeneratedKeys="true" keyProperty="bnfPrtInnb" keyColumn="BNF_PRT_INNB">
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_PARTCPTN (
|
||||
BNF_INNB, -- 혜택 고유 번호
|
||||
BNF_PRT_DT, -- 혜택 참여 일시
|
||||
MBR_INNB, -- 회원 고유 번호
|
||||
MBR_DV_CD, -- 회원 구분 코드
|
||||
STR_INNB, -- 매장 고유 번호
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록 일시
|
||||
) VALUES (
|
||||
#{bnfInnb},
|
||||
NOW(),
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
#{strInnb},
|
||||
#{regusr},
|
||||
NOW()
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- QR이벤트 당첨 결과 처리 (쿠폰 발급) -->
|
||||
<insert id="insertQREventReward" parameterType="com.wb.domainserver.domain.gcone.bnft.qrevnt.vo.BOQREvntVO">
|
||||
<selectKey keyProperty="bnfRcvInnb" resultType="java.math.BigInteger" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_RCV_INNB), 0) + 1 FROM GC_BENEFIT_RECEIPT
|
||||
</selectKey>
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_RECEIPT (
|
||||
BNF_RCV_INNB, -- 혜택 보상수령 고유 번호
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유 번호
|
||||
BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
MLG_RWD_AMT, -- 마일리지 보상 금액
|
||||
COUPON_INNB, -- 쿠폰 고유 번호
|
||||
GOODS_INNB, -- 상품 고유 번호
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록 일시
|
||||
) VALUES (
|
||||
#{bnfRcvInnb},
|
||||
#{bnfPrtInnb},
|
||||
#{bnfRwdCateDvCd},
|
||||
#{bnfRwdGodsDvCd},
|
||||
#{mlgRwdAmt},
|
||||
#{couponInnb},
|
||||
#{goodsInnb},
|
||||
#{regusr},
|
||||
NOW()
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- QR이벤트 참여 내역 조회 -->
|
||||
<select id="selectQREventParticipationHistory" parameterType="com.wb.domainserver.domain.gcone.bnft.qrevnt.vo.BOQREvntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
p.BNF_PRT_INNB, -- 혜택 참여 고유 번호
|
||||
p.BNF_PRT_DT, -- 혜택 참여 일시
|
||||
p.STR_INNB, -- 매장 고유 번호
|
||||
s.STR_NM, -- 매장명
|
||||
s.STR_ADRES, -- 매장 주소
|
||||
r.BNF_RCV_INNB, -- 보상 수령 고유 번호 (당첨 여부 확인용)
|
||||
r.BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
r.BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
r.MLG_RWD_AMT, -- 마일리지 보상 금액
|
||||
r.COUPON_INNB, -- 쿠폰 고유 번호
|
||||
COALESCE(cs.COUPON_SNDNG_NM, br.ITM_NM) AS couponName, -- 쿠폰명
|
||||
cs.DWLD_BGN_DT, -- 다운로드 시작일 (사용유효시작일 대체)
|
||||
cs.DWLD_END_DT, -- 다운로드 종료일 (사용유효종료일 대체)
|
||||
cs.COUPON_SNDNG_DC -- 쿠폰 설명 (사용조건내용 대체)
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN p
|
||||
LEFT JOIN GC_STORE s ON p.STR_INNB = s.STR_INNB
|
||||
LEFT JOIN GC_BENEFIT_RECEIPT r ON p.BNF_PRT_INNB = r.BNF_PRT_INNB
|
||||
LEFT JOIN GC_BENEFIT_REWARD br ON p.BNF_INNB = br.BNF_INNB
|
||||
AND r.BNF_RWD_CATE_DV_CD = br.BNF_RWD_CATE_DV_CD
|
||||
AND r.BNF_RWD_GODS_DV_CD = br.BNF_RWD_GODS_DV_CD
|
||||
LEFT JOIN GC_COUPON_SNDNG cs ON r.COUPON_INNB = cs.COUPON_SNDNG_INNB
|
||||
AND cs.SOPMAL_CD = #{sopmalCd}
|
||||
WHERE
|
||||
p.MBR_INNB = #{mbrInnb} -- 회원 고유 번호
|
||||
AND p.MBR_DV_CD = #{mbrDvCd}
|
||||
AND p.BNF_INNB = #{bnfInnb} -- 혜택 고유 번호
|
||||
ORDER BY
|
||||
p.BNF_PRT_DT DESC
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- QR이벤트 당첨 정보 상세 조회 -->
|
||||
<select id="selectQREventWinningDetail" parameterType="com.wb.domainserver.domain.gcone.bnft.qrevnt.vo.BOQREvntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
p.BNF_PRT_INNB, -- 혜택 참여 고유 번호
|
||||
p.BNF_PRT_DT, -- 혜택 참여 일시
|
||||
s.STR_NM, -- 참여 매장명
|
||||
s.STR_ADRES, -- 매장 주소
|
||||
r.BNF_RCV_INNB, -- 보상 수령 고유 번호
|
||||
r.COUPON_INNB AS couponNb, -- 쿠폰 번호 (발송 고유번호로 대체)
|
||||
cs.COUPON_SNDNG_NM AS couponName, -- 쿠폰명
|
||||
cs.COUPON_SNDNG_DC AS useCndtnCn, -- 쿠폰 설명 (사용조건으로 사용)
|
||||
br.DSCNT_AMT AS dscntAmt, -- 할인 금액
|
||||
br.DSCNT_RT AS dscntRt, -- 할인 율
|
||||
DATE_FORMAT(cs.DWLD_END_DT, '%Y-%m-%d') AS expiryDateTime -- 유효기간
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN p
|
||||
INNER JOIN GC_STORE s ON p.STR_INNB = s.STR_INNB
|
||||
INNER JOIN GC_BENEFIT_RECEIPT r ON p.BNF_PRT_INNB = r.BNF_PRT_INNB
|
||||
INNER JOIN GC_COUPON_SNDNG cs ON r.COUPON_INNB = cs.COUPON_SNDNG_INNB
|
||||
AND cs.SOPMAL_CD = #{sopmalCd}
|
||||
INNER JOIN GC_BENEFIT_REWARD br ON p.BNF_INNB = br.BNF_INNB
|
||||
AND r.BNF_RWD_CATE_DV_CD = br.BNF_RWD_CATE_DV_CD
|
||||
AND r.BNF_RWD_GODS_DV_CD = br.BNF_RWD_GODS_DV_CD
|
||||
WHERE
|
||||
p.BNF_PRT_INNB = #{bnfPrtInnb} -- 혜택 참여 고유 번호
|
||||
AND p.MBR_INNB = #{mbrInnb} -- 회원 고유 번호
|
||||
AND p.MBR_DV_CD = #{mbrDvCd}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,297 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.bnft.rougame.mapper.BORougameMapper">
|
||||
|
||||
<!-- 룰렛 혜택 기본 정보 조회 -->
|
||||
<select id="selectRougameBenefitInfo" parameterType="com.wb.domainserver.domain.gcone.bnft.rougame.vo.BORougameVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
BNF_INNB, -- 혜택 설정 고유번호
|
||||
BNF_DV_CD, -- 혜택 구분 코드
|
||||
USE_AT, -- 사용여부
|
||||
BNF_BGN_DT, -- 진행기간 시작일시
|
||||
BNF_END_DT, -- 진행기간 종료일시
|
||||
SCR_REPRSNT_IMG, -- 화면 대표 이미지
|
||||
SCR_REPRSNT_LINK_URL, -- 화면 대표 링크 URL
|
||||
SCR_RWD_IMG, -- 화면 보상 이미지
|
||||
SCR_RWD_LINK_URL, -- 화면 보상 링크 URL
|
||||
BNF_WORDS_CN -- 혜택 안내
|
||||
FROM
|
||||
GC_BENEFIT
|
||||
WHERE
|
||||
BNF_DV_CD = '040' -- 룰렛 혜택 구분 코드
|
||||
AND USE_AT = 'Y'
|
||||
AND DATE(NOW()) BETWEEN DATE(BNF_BGN_DT) AND DATE(BNF_END_DT)
|
||||
AND SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 남은 게임 참여 기회 횟수 조회 수정 -->
|
||||
<select id="selectRemainingGameChances" parameterType="com.wb.domainserver.domain.gcone.bnft.rougame.vo.BORougameVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
#{mbrInnb} as MBR_INNB, -- 회원 고유번호
|
||||
'040' as BNF_DV_CD, -- 혜택 구분 코드
|
||||
(
|
||||
-- 할당된 총 기회 계산
|
||||
COALESCE(
|
||||
(SELECT SUM(CHG_CNT) FROM GC_BENEFIT_CHARGE
|
||||
WHERE MBR_INNB = #{mbrInnb} AND BNF_DV_CD = '040' AND SOPMAL_CD = #{sopmalCd} AND MBR_DV_CD = #{mbrDvCd})
|
||||
, 0)
|
||||
-
|
||||
-- 사용한 기회 계산
|
||||
COALESCE(
|
||||
(SELECT COUNT(*) FROM GC_BENEFIT_PARTCPTN BP
|
||||
INNER JOIN GC_BENEFIT B ON BP.BNF_INNB = B.BNF_INNB
|
||||
WHERE BP.MBR_INNB = #{mbrInnb}
|
||||
AND B.BNF_DV_CD = '040' AND B.SOPMAL_CD = #{sopmalCd} AND BP.MBR_DV_CD = #{mbrDvCd})
|
||||
, 0)
|
||||
) as remainingGameChances, -- 남아있는 게임 횟수
|
||||
-- 실제 GC_BENEFIT_CHARGE 테이블에 레코드가 있는지 확인
|
||||
(
|
||||
SELECT COUNT(*) FROM GC_BENEFIT_CHARGE
|
||||
WHERE MBR_INNB = #{mbrInnb} AND BNF_DV_CD = '040' AND SOPMAL_CD = #{sopmalCd} AND MBR_DV_CD = #{mbrDvCd}
|
||||
) as hasChargeRecord
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 룰렛 보상 정보 조회 -->
|
||||
<select id="selectRougameRewards" parameterType="com.wb.domainserver.domain.gcone.bnft.rougame.vo.BORougameVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
BNF_INNB, -- 혜택 설정 고유번호
|
||||
BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
MLG_RWD_AMT, -- 마일리지 금액
|
||||
COUPON_INNB, -- 쿠폰 고유번호
|
||||
ITM_NM, -- 표시명
|
||||
PRZWIN_QY, -- 당첨수량
|
||||
PRZWIN_PRC, -- 당첨확률
|
||||
DSCNT_AMT, -- 할인금액
|
||||
DSCNT_RT -- 할인비율
|
||||
FROM
|
||||
GC_BENEFIT_REWARD
|
||||
WHERE
|
||||
BNF_INNB = #{bnfInnb} -- 혜택 설정 고유번호 조건
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 초록잎 지급량 조회 -->
|
||||
<select id="selectLeafCounts" parameterType="com.wb.domainserver.domain.gcone.bnft.atend.vo.BOAtendVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
PYMNT_CNT, -- 지급 초록잎 개수
|
||||
SPECIAL_CNT -- 스페셜 지급 초록잎 개수
|
||||
FROM
|
||||
GC_BENEFIT_CPSLMKN
|
||||
WHERE
|
||||
BNF_DV_CD = '040' -- 혜택 구분 코드
|
||||
AND SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
</select>
|
||||
|
||||
<!-- 룰렛 참여 정보 저장 (초록잎 적립 포함) -->
|
||||
<insert id="insertRougameParticipation" parameterType="com.wb.domainserver.domain.gcone.bnft.rougame.vo.BORougameVO">
|
||||
<selectKey keyProperty="bnfPrtInnb" resultType="java.lang.Long" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_PRT_INNB), 0) + 1 FROM GC_BENEFIT_PARTCPTN
|
||||
</selectKey>
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_PARTCPTN (
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BNF_INNB, -- 혜택 설정 고유번호
|
||||
MBR_INNB, -- 회원 고유번호
|
||||
MBR_DV_CD, -- 회원 구분 코드
|
||||
BNF_PRT_DT, -- 혜택 참여 일시
|
||||
PRT_LEAF_CNT, -- 참여 초록잎 개수 (추가)
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록 일시
|
||||
) VALUES (
|
||||
#{bnfPrtInnb}, -- 혜택 참여 고유번호
|
||||
#{bnfInnb}, -- 혜택 설정 고유번호
|
||||
#{mbrInnb}, -- 회원 고유번호
|
||||
#{mbrDvCd}, -- 회원 구분 코드
|
||||
NOW(), -- 혜택 참여 일시 (현재 시간)
|
||||
#{paidLeafCnt}, -- 초록잎 지급량 (추가)
|
||||
#{regusr}, -- 등록자
|
||||
NOW() -- 등록 일시 (현재 시간)
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- 마지막으로 삽입된 참여 고유번호 조회 -->
|
||||
<select id="selectLastInsertedParticipationId" resultType="long">
|
||||
<![CDATA[
|
||||
SELECT LAST_INSERT_ID()
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 혜택 보상 수령 정보 저장 -->
|
||||
<insert id="insertRougameReceipt" parameterType="com.wb.domainserver.domain.gcone.bnft.rougame.vo.BORougameVO">
|
||||
<selectKey keyProperty="bnfRcvInnb" resultType="java.math.BigInteger" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_RCV_INNB), 0) + 1 FROM GC_BENEFIT_RECEIPT
|
||||
</selectKey>
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_RECEIPT (
|
||||
BNF_RCV_INNB, -- 혜택 보상수령 고유번호
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
MLG_RWD_AMT, -- 마일리지 금액
|
||||
COUPON_INNB, -- 쿠폰고유번호
|
||||
GOODS_INNB, -- 상품고유번호
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록 일시
|
||||
) VALUES (
|
||||
#{bnfRcvInnb}, -- 혜택 보상수령 고유번호
|
||||
#{bnfPrtInnb}, -- 혜택 참여 고유번호
|
||||
#{bnfRwdCateDvCd}, -- 보상 항목 구분 코드
|
||||
#{bnfRwdGodsDvCd}, -- 보상 상품 구분 코드
|
||||
#{mlgRwdAmt}, -- 마일리지 금액
|
||||
#{couponInnb}, -- 쿠폰고유번호
|
||||
#{goodsInnb}, -- 상품고유번호
|
||||
#{regusr}, -- 등록자
|
||||
NOW() -- 등록 일시 (현재 시간)
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- 보상 당첨 수량 차감 -->
|
||||
<update id="decrementRewardQuantity" parameterType="com.wb.domainserver.domain.gcone.bnft.rougame.vo.BORougameVO">
|
||||
<![CDATA[
|
||||
UPDATE GC_BENEFIT_REWARD
|
||||
SET PRZWIN_QY = CASE
|
||||
WHEN PRZWIN_QY > 0 THEN PRZWIN_QY - 1
|
||||
ELSE 0
|
||||
END
|
||||
WHERE BNF_INNB = #{bnfInnb}
|
||||
AND BNF_RWD_CATE_DV_CD = #{bnfRwdCateDvCd}
|
||||
]]>
|
||||
</update>
|
||||
|
||||
<!-- 혜택 충전 설정 정보 조회 -->
|
||||
<select id="selectBenefitChgConfig" parameterType="com.wb.domainserver.domain.gcone.bnft.rougame.vo.BORougameVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
AMT_FOR_CHG -- 기회 제공 기준 금액
|
||||
FROM
|
||||
GC_BENEFIT_CHG_CONFIG
|
||||
WHERE
|
||||
BNF_DV_CD = '040' -- 룰렛 혜택 구분 코드
|
||||
AND SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드 추가
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 게임 기회 신규 등록 -->
|
||||
<insert id="insertGameChances" parameterType="com.wb.domainserver.domain.gcone.bnft.rougame.vo.BORougameVO">
|
||||
<![CDATA[
|
||||
INSERT INTO GC_BENEFIT_CHARGE (
|
||||
BNF_PURCHS_RCV_LOG_INNB, -- 혜택 구매확정 수신 로그 고유번호
|
||||
SOPMAL_CD, -- 쇼핑몰 코드
|
||||
MBR_INNB, -- 회원 고유번호
|
||||
MBR_DV_CD, -- 회원 구분 코드 추가
|
||||
BNF_DV_CD, -- 혜택 구분 코드
|
||||
CHG_CNT, -- 충전 횟수
|
||||
REGIST_DT -- 등록 일시
|
||||
) VALUES (
|
||||
0, -- 혜택 구매확정 수신 로그 고유번호
|
||||
#{sopmalCd}, -- 쇼핑몰 코드
|
||||
#{mbrInnb}, -- 회원 고유번호
|
||||
#{mbrDvCd}, -- 회원 구분 코드
|
||||
'040', -- 혜택 구분 코드 (룰렛)
|
||||
#{remainingGameChances}, -- 계산된 게임 기회
|
||||
NOW() -- 등록 일시 (현재 시간)
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- 게임 기회 업데이트 -->
|
||||
<update id="updateGameChances" parameterType="com.wb.domainserver.domain.gcone.bnft.rougame.vo.BORougameVO">
|
||||
<![CDATA[
|
||||
UPDATE GC_BENEFIT_CHARGE
|
||||
SET CHG_CNT = #{remainingGameChances},
|
||||
REGIST_DT = NOW()
|
||||
WHERE
|
||||
SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드 조건 추가
|
||||
AND MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd} -- 회원 구분 코드 추가
|
||||
AND BNF_DV_CD = '040'
|
||||
]]>
|
||||
</update>
|
||||
|
||||
<!-- 전체 보상 수량 상태 조회 -->
|
||||
<select id="selectAllRewardsQuantityStatus" parameterType="com.wb.domainserver.domain.gcone.bnft.rougame.vo.BORougameVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
COUNT(*) as totalRewards, -- 전체 보상 종류 수
|
||||
COUNT(CASE WHEN PRZWIN_QY > 0 THEN 1 END) as availableRewards, -- 수량이 있는 보상 수
|
||||
SUM(PRZWIN_QY) as totalQuantity -- 전체 남은 수량 합계
|
||||
FROM
|
||||
GC_BENEFIT_REWARD
|
||||
WHERE
|
||||
BNF_INNB = #{bnfInnb}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 실제 남은 수량을 계산하는 보상 조회 -->
|
||||
<select id="selectAvailableRewards" parameterType="com.wb.domainserver.domain.gcone.bnft.rougame.vo.BORougameVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
r.BNF_INNB,
|
||||
r.BNF_RWD_CATE_DV_CD,
|
||||
r.BNF_RWD_GODS_DV_CD,
|
||||
r.MLG_RWD_AMT,
|
||||
r.COUPON_INNB,
|
||||
r.ITM_NM,
|
||||
r.PRZWIN_QY, -- 설정된 당첨 수량
|
||||
r.PRZWIN_PRC,
|
||||
r.DSCNT_AMT,
|
||||
r.DSCNT_RT,
|
||||
-- 실제 당첨된 수량 계산
|
||||
COALESCE(
|
||||
(SELECT COUNT(*)
|
||||
FROM GC_BENEFIT_RECEIPT rcpt
|
||||
INNER JOIN GC_BENEFIT_PARTCPTN part ON rcpt.BNF_PRT_INNB = part.BNF_PRT_INNB
|
||||
WHERE part.BNF_INNB = r.BNF_INNB
|
||||
AND rcpt.BNF_RWD_CATE_DV_CD = r.BNF_RWD_CATE_DV_CD), 0
|
||||
) as ISSUED_QY, -- 실제 당첨된 수량
|
||||
-- 남은 수량 계산
|
||||
(r.PRZWIN_QY - COALESCE(
|
||||
(SELECT COUNT(*)
|
||||
FROM GC_BENEFIT_RECEIPT rcpt
|
||||
INNER JOIN GC_BENEFIT_PARTCPTN part ON rcpt.BNF_PRT_INNB = part.BNF_PRT_INNB
|
||||
WHERE part.BNF_INNB = r.BNF_INNB
|
||||
AND rcpt.BNF_RWD_CATE_DV_CD = r.BNF_RWD_CATE_DV_CD), 0
|
||||
)) as REMAINING_QY -- 남은 수량
|
||||
FROM
|
||||
GC_BENEFIT_REWARD r
|
||||
WHERE
|
||||
r.BNF_INNB = #{bnfInnb}
|
||||
-- 남은 수량이 0보다 큰 보상만 조회
|
||||
AND (r.PRZWIN_QY - COALESCE(
|
||||
(SELECT COUNT(*)
|
||||
FROM GC_BENEFIT_RECEIPT rcpt
|
||||
INNER JOIN GC_BENEFIT_PARTCPTN part ON rcpt.BNF_PRT_INNB = part.BNF_PRT_INNB
|
||||
WHERE part.BNF_INNB = r.BNF_INNB
|
||||
AND rcpt.BNF_RWD_CATE_DV_CD = r.BNF_RWD_CATE_DV_CD), 0
|
||||
)) > 0
|
||||
ORDER BY r.PRZWIN_PRC DESC
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 회원 디바이스 등록일 조회 -->
|
||||
<select id="selectMemberDeviceRegistDate" parameterType="com.wb.domainserver.domain.gcone.bnft.rougame.vo.BORougameVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
DATE_FORMAT(MDI.REGIST_DT, '%Y-%m-%d') as DEVICE_REGIST_DT
|
||||
FROM
|
||||
GC_MEMBER_DEVICE_INFO MDI
|
||||
INNER JOIN
|
||||
GC_MEMBER M ON MDI.MBR_INNB = M.MBR_INNB
|
||||
AND MDI.MBR_DV_CD = M.MBR_DV_CD
|
||||
WHERE
|
||||
MDI.SOPMAL_CD = #{sopmalCd}
|
||||
AND MDI.MBR_INNB = #{mbrInnb}
|
||||
AND MDI.MBR_DV_CD = #{mbrDvCd}
|
||||
ORDER BY MDI.REGIST_DT ASC
|
||||
LIMIT 1
|
||||
]]>
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,431 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.bnft.stepcnt.mapper.BOStepcntMapper">
|
||||
|
||||
<!-- 현재 회원의 최신 걸음 수 조회 -->
|
||||
<select id="selectCurrentStepCount" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
BP.BNF_PRT_INNB as BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BP.STEP_CNT as STEP_CNT, -- 현재 걸음 수
|
||||
BP.BNF_PRT_DT as participationDate, -- 참여 일시
|
||||
BP.MBR_INNB as memberNo -- 회원 고유번호
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN BP
|
||||
INNER JOIN
|
||||
GC_BENEFIT B ON BP.BNF_INNB = B.BNF_INNB
|
||||
WHERE
|
||||
BP.MBR_INNB = #{mbrInnb} -- 회원 고유번호 조건
|
||||
AND BP.MBR_DV_CD = #{mbrDvCd} -- 회원 구분 코드
|
||||
AND B.BNF_DV_CD = '020' -- 만보기 혜택 코드
|
||||
AND DATE(BP.BNF_PRT_DT) = CURDATE() -- 오늘 날짜 기준
|
||||
ORDER BY
|
||||
BP.BNF_PRT_DT DESC -- 최신 정보 우선
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 이번 달 만보 달성 현황 조회 -->
|
||||
<select id="selectMonthlyStepCountAchievement" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
DATE(BP.BNF_PRT_DT) as achievementDate, -- 달성 일자
|
||||
MAX(BP.STEP_CNT) as stepCount, -- 일별 최대 걸음 수
|
||||
CASE WHEN MAX(BP.STEP_CNT) >= 10000 THEN 'Y' ELSE 'N' END as isAchieved -- 만보 달성 여부
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN BP
|
||||
INNER JOIN
|
||||
GC_BENEFIT B ON BP.BNF_INNB = B.BNF_INNB
|
||||
WHERE
|
||||
BP.MBR_INNB = #{mbrInnb} -- 회원 고유번호 조건
|
||||
AND BP.MBR_DV_CD = #{mbrDvCd} -- 회원 구분 코드
|
||||
AND B.BNF_DV_CD = '020' -- 만보기 혜택 코드
|
||||
AND DATE_FORMAT(BP.BNF_PRT_DT, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m') -- 이번 달 필터링
|
||||
GROUP BY
|
||||
DATE(BP.BNF_PRT_DT) -- 일자별 그룹화
|
||||
ORDER BY
|
||||
DATE(BP.BNF_PRT_DT) -- 날짜순 정렬
|
||||
</select>
|
||||
|
||||
<!-- 이번 달 만보 달성 횟수 조회 -->
|
||||
<select id="selectMonthlyStepCountAchievementCount" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="int">
|
||||
SELECT
|
||||
COUNT(DISTINCT DATE(BP.BNF_PRT_DT)) as achievementCount -- 만보 달성한 날짜 수
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN BP
|
||||
INNER JOIN
|
||||
GC_BENEFIT B ON BP.BNF_INNB = B.BNF_INNB
|
||||
WHERE
|
||||
BP.MBR_INNB = #{mbrInnb} -- 회원 고유번호 조건
|
||||
AND BP.MBR_DV_CD = #{mbrDvCd} -- 회원 구분 코드
|
||||
AND B.BNF_DV_CD = '020' -- 만보기 혜택 코드
|
||||
AND DATE_FORMAT(BP.BNF_PRT_DT, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m') -- 이번 달 필터링
|
||||
AND BP.STEP_CNT >= 10000 -- 만보 이상 조건
|
||||
</select>
|
||||
|
||||
<!-- 선택한 달의 일별 걸음 수 내역 조회 -->
|
||||
<select id="selectDailyStepCounts" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
DATE(BP.BNF_PRT_DT) as recordDate, -- 기록 일자
|
||||
MAX(BP.STEP_CNT) as stepCount, -- 일별 최대 걸음 수
|
||||
CASE
|
||||
WHEN MAX(BP.STEP_CNT) >= 10000 THEN 100
|
||||
ELSE FLOOR(MAX(BP.STEP_CNT) * 100 / 10000)
|
||||
END as achievementRate, -- 달성률(%) 계산
|
||||
CASE
|
||||
WHEN MAX(BP.STEP_CNT) >= 10000 THEN 4 -- 만보 달성
|
||||
WHEN MAX(BP.STEP_CNT) >= 7500 THEN 3 -- 7500 이상
|
||||
WHEN MAX(BP.STEP_CNT) >= 5000 THEN 2 -- 5000 이상
|
||||
WHEN MAX(BP.STEP_CNT) >= 2500 THEN 1 -- 2500 이상
|
||||
ELSE 0 -- 2500 미만
|
||||
END as achievementLevel -- 달성 레벨(0~4)
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN BP
|
||||
INNER JOIN
|
||||
GC_BENEFIT B ON BP.BNF_INNB = B.BNF_INNB
|
||||
WHERE
|
||||
BP.MBR_INNB = #{mbrInnb} -- 회원 고유번호 조건
|
||||
AND BP.MBR_DV_CD = #{mbrDvCd} -- 회원 구분 코드
|
||||
AND B.BNF_DV_CD = '020' -- 만보기 혜택 코드
|
||||
AND DATE_FORMAT(BP.BNF_PRT_DT, '%Y-%m') = #{yearMonth} -- 선택한 년월 기준
|
||||
GROUP BY
|
||||
DATE(BP.BNF_PRT_DT) -- 일자별 그룹화
|
||||
ORDER BY
|
||||
DATE(BP.BNF_PRT_DT) -- 날짜순 정렬
|
||||
</select>
|
||||
|
||||
<!-- 이번 달 만보기 사용 통계 조회 -->
|
||||
<select id="selectMonthlyStepCountStats" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
ROUND((SELECT AVG(STEP_CNT)
|
||||
FROM GC_BENEFIT_PARTCPTN
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND DATE_FORMAT(BNF_PRT_DT, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m')
|
||||
), 0) as avgStepCount, -- 하루 평균 걸음 수 (조인 영향 없이 계산)
|
||||
rewardStats.surpriseGiftCount, -- 깜짝선물 획득 수
|
||||
rewardStats.totalMileage -- 획득한 마일리지 합계
|
||||
FROM (
|
||||
SELECT
|
||||
COUNT(CASE WHEN BR.BNF_RWD_CATE_DV_CD IN ('02030','02031','02032','02033','02034','02035','02036') THEN 1 END) as surpriseGiftCount,
|
||||
SUM(CASE WHEN BR.BNF_RWD_GODS_DV_CD = '010' THEN BR.MLG_RWD_AMT ELSE 0 END) as totalMileage
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN BP
|
||||
LEFT JOIN
|
||||
GC_BENEFIT_RECEIPT BR ON BR.BNF_PRT_INNB = BP.BNF_PRT_INNB
|
||||
LEFT JOIN
|
||||
GC_BENEFIT B ON BP.BNF_INNB = B.BNF_INNB AND B.BNF_DV_CD = '020'
|
||||
WHERE
|
||||
BP.MBR_INNB = #{mbrInnb}
|
||||
AND BP.MBR_DV_CD = #{mbrDvCd}
|
||||
AND DATE_FORMAT(BP.BNF_PRT_DT, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m')
|
||||
) rewardStats
|
||||
</select>
|
||||
|
||||
<!-- 보상 정보 조회 -->
|
||||
<select id="selectStepCountReward" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
B.BNF_INNB as bnfInnb, -- 혜택 고유번호
|
||||
BR.BNF_RWD_CATE_DV_CD as rewardCategoryCode, -- 보상 항목 구분 코드
|
||||
BR.BNF_RWD_GODS_DV_CD as rewardGoodsCode, -- 보상 상품 구분 코드
|
||||
BR.MLG_RWD_AMT as mileageAmount, -- 마일리지 보상 금액
|
||||
BR.COUPON_INNB as couponNo, -- 쿠폰 고유번호
|
||||
BR.RWD_CND_CNT as rewardConditionCount -- 보상 조건 걸음 수
|
||||
FROM
|
||||
GC_BENEFIT B
|
||||
INNER JOIN
|
||||
GC_BENEFIT_REWARD BR ON B.BNF_INNB = BR.BNF_INNB
|
||||
WHERE
|
||||
B.BNF_DV_CD = '020' -- 만보기 혜택 코드
|
||||
AND B.USE_AT = 'Y' -- 사용 여부 체크
|
||||
AND B.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
AND (B.BNF_BGN_DT IS NULL OR B.BNF_BGN_DT <= NOW()) -- 시작일 체크
|
||||
AND (B.BNF_END_DT IS NULL OR B.BNF_END_DT >= NOW()) -- 종료일 체크
|
||||
AND BR.BNF_RWD_CATE_DV_CD = #{bnfRwdCateDvCd} -- 요청한 보상 카테고리
|
||||
</select>
|
||||
|
||||
<!-- 깜짝 선물 위치 정보 조회 (요일에 따라 변경) -->
|
||||
<select id="selectSurpriseGiftPosition" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
B.BNF_INNB as bnfInnb, -- 혜택 고유번호
|
||||
BR.BNF_RWD_CATE_DV_CD as rewardCategoryCode, -- 보상 항목 구분 코드
|
||||
BR.RWD_CND_CNT as surprisePosition -- 깜짝 선물 위치 (테이블에 정의된 값)
|
||||
FROM
|
||||
GC_BENEFIT B
|
||||
INNER JOIN
|
||||
GC_BENEFIT_REWARD BR ON B.BNF_INNB = BR.BNF_INNB
|
||||
WHERE
|
||||
B.BNF_DV_CD = '020' -- 만보기 혜택 코드
|
||||
AND B.USE_AT = 'Y' -- 사용 여부 체크
|
||||
AND B.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
AND (B.BNF_BGN_DT IS NULL OR B.BNF_BGN_DT <= NOW()) -- 시작일 체크
|
||||
AND (B.BNF_END_DT IS NULL OR B.BNF_END_DT >= NOW()) -- 종료일 체크
|
||||
AND BR.BNF_RWD_CATE_DV_CD = CONCAT('0203', WEEKDAY(NOW())) -- 요일에 맞는 깜짝선물 코드
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 초록잎 지급 개수 조회 -->
|
||||
<select id="selectLeafCounts" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
PYMNT_CNT, -- 지급 초록잎 개수
|
||||
SPECIAL_CNT -- 스페셜 지급 초록잎 개수
|
||||
FROM
|
||||
GC_BENEFIT_CPSLMKN
|
||||
WHERE
|
||||
BNF_DV_CD = '020' -- 만보기 혜택 구분 코드로 수정
|
||||
AND SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
</select>
|
||||
|
||||
<!-- 걸음수 정보 저장/업데이트 -->
|
||||
<insert id="insertOrUpdateStepCount" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO">
|
||||
INSERT INTO GC_BENEFIT_PARTCPTN (
|
||||
BNF_INNB,
|
||||
BNF_PRT_DT,
|
||||
MBR_INNB,
|
||||
MBR_DV_CD,
|
||||
STEP_CNT,
|
||||
REGIST_DT,
|
||||
PRT_LEAF_CNT,
|
||||
REGUSR
|
||||
) VALUES (
|
||||
#{bnfInnb}, -- 혜택 고유번호
|
||||
NOW(), -- 현재 시간
|
||||
#{mbrInnb}, -- 회원 고유번호
|
||||
#{mbrDvCd}, -- 회원 구분 코드
|
||||
#{stepCnt}, -- 걸음 수
|
||||
NOW(), -- 등록 시간
|
||||
#{paidLeafCnt}, -- 적립된 초록잎 개수
|
||||
#{regusr} -- 등록자
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
STEP_CNT = #{stepCnt}, -- 걸음 수 업데이트
|
||||
UPDT_DT = NOW(), -- 수정 시간
|
||||
UPDUSR = #{updusr}, -- 수정자
|
||||
PRT_LEAF_CNT = CASE
|
||||
WHEN #{stepCnt} >= 10000 AND STEP_CNT < 10000 THEN #{paidLeafCnt}
|
||||
WHEN #{stepCnt} >= 10000 THEN PRT_LEAF_CNT
|
||||
ELSE PRT_LEAF_CNT
|
||||
END -- 만보 최초 달성 시에만 초록잎 추가
|
||||
</insert>
|
||||
|
||||
<!-- 보상 수령 내역 저장 -->
|
||||
<insert id="insertStepCountReward" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO">
|
||||
<selectKey keyProperty="bnfRcvInnb" resultType="java.math.BigInteger" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_RCV_INNB), 0) + 1 FROM GC_BENEFIT_RECEIPT
|
||||
</selectKey>
|
||||
INSERT INTO GC_BENEFIT_RECEIPT (
|
||||
BNF_RCV_INNB, -- 혜택 보상수령 고유 번호
|
||||
BNF_PRT_INNB,
|
||||
BNF_RWD_CATE_DV_CD,
|
||||
BNF_RWD_GODS_DV_CD,
|
||||
MLG_RWD_AMT,
|
||||
COUPON_INNB,
|
||||
REGUSR,
|
||||
REGIST_DT
|
||||
) VALUES (
|
||||
#{bnfRcvInnb}, -- 생성된 고유 번호
|
||||
#{bnfPrtInnb}, -- 혜택 참여 고유번호
|
||||
#{bnfRwdCateDvCd}, -- 보상 항목 구분 코드
|
||||
#{bnfRwdGodsDvCd}, -- 보상 상품 구분 코드
|
||||
#{mlgRwdAmt}, -- 마일리지 금액
|
||||
#{couponInnb}, -- 쿠폰 고유번호
|
||||
#{regusr}, -- 등록자(회원)
|
||||
NOW() -- 등록 시간
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 10회 달성 시 추가 보상 대상 상품 정보 조회 -->
|
||||
<select id="selectMonthlyAchievementReward" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
B.BNF_INNB as bnfInnb, -- 혜택 고유번호
|
||||
B.BNF_SJ as bnfTitle, -- 혜택 제목
|
||||
B.SCR_RWD_IMG as rewardImageUrl, -- 보상 이미지 URL
|
||||
B.SCR_RWD_LINK_URL as rewardLinkUrl, -- 보상 링크 URL
|
||||
BR.MLG_RWD_AMT as mileageAmount, -- 마일리지 보상 금액
|
||||
BR.ITM_NM as itemName -- 표시명
|
||||
FROM
|
||||
GC_BENEFIT B
|
||||
INNER JOIN
|
||||
GC_BENEFIT_REWARD BR ON B.BNF_INNB = BR.BNF_INNB
|
||||
WHERE
|
||||
B.BNF_DV_CD = '020' -- 만보기 혜택 코드
|
||||
AND B.USE_AT = 'Y' -- 사용 여부 체크
|
||||
AND B.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
AND (B.BNF_BGN_DT IS NULL OR B.BNF_BGN_DT <= NOW()) -- 시작일 체크
|
||||
AND (B.BNF_END_DT IS NULL OR B.BNF_END_DT >= NOW()) -- 종료일 체크
|
||||
AND BR.BNF_RWD_CATE_DV_CD = '02020' -- 만보기 월누적10회 코드
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 만보기 동의 상태 조회 -->
|
||||
<select id="selectStepcntAgreement" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
AGRE_AT
|
||||
FROM
|
||||
GC_BENEFIT_AGREE
|
||||
WHERE
|
||||
SOPMAL_CD = #{sopmalCd}
|
||||
AND MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_DV_CD = '020'
|
||||
AND BNF_AGRE_DV_CD = '020'
|
||||
</select>
|
||||
|
||||
<!-- 만보기 동의 정보 저장/업데이트 -->
|
||||
<insert id="insertStepcntAgreement" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO">
|
||||
INSERT INTO GC_BENEFIT_AGREE (
|
||||
SOPMAL_CD, -- 쇼핑몰 코드
|
||||
MBR_INNB, -- 회원 고유번호
|
||||
MBR_DV_CD, -- 회원 구분 코드
|
||||
BNF_DV_CD, -- 혜택 구분 코드
|
||||
BNF_AGRE_DV_CD, -- 혜택 동의 구분 코드
|
||||
BNF_INNB, -- 혜택 고유번호
|
||||
AGRE_AT, -- 동의 여부
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록 시간
|
||||
) VALUES (
|
||||
#{sopmalCd}, -- 쇼핑몰 코드
|
||||
#{mbrInnb}, -- 회원 고유번호
|
||||
#{mbrDvCd}, -- 회원 구분 코드
|
||||
'020', -- 혜택 구분 코드(만보기)
|
||||
'020', -- 혜택 동의 구분 코드(만보기)
|
||||
#{bnfInnb}, -- 혜택 고유번호
|
||||
#{agreeYn}, -- 동의 여부
|
||||
#{regusr}, -- 등록자(회원)
|
||||
NOW() -- 등록 시간
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 만보기 동의 정보 업데이트 -->
|
||||
<update id="updateStepcntAgreement" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO">
|
||||
UPDATE GC_BENEFIT_AGREE
|
||||
SET AGRE_AT = #{agreeYn}, -- 동의 여부
|
||||
REGIST_DT = NOW(), -- 등록 시간
|
||||
REGUSR = #{regusr} -- 등록자(회원)
|
||||
WHERE SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
AND MBR_INNB = #{mbrInnb} -- 회원 고유번호
|
||||
AND MBR_DV_CD = #{mbrDvCd} -- 회원 구분 코드
|
||||
AND BNF_DV_CD = '020' -- 혜택 구분 코드(만보기)
|
||||
AND BNF_AGRE_DV_CD = '020' -- 혜택 동의 구분 코드(만보기)
|
||||
</update>
|
||||
|
||||
<!-- 만보기 화면의 기본 정보 조회 -->
|
||||
<select id="selectStepcntBaseInfo" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
B.BNF_INNB as BNF_INNB, -- 혜택 고유번호
|
||||
B.BNF_SJ as BNF_TITLE, -- 혜택 제목
|
||||
B.BNF_WORDS_CN as BNF_GUIDANCE, -- 혜택 안내
|
||||
B.SCR_RWD_IMG as REWARD_IMG, -- 화면 대표 이미지
|
||||
B.SCR_REPRSNT_LINK_URL as REPRESENT_LINK_URL, -- 화면 대표 링크 URL
|
||||
B.SCR_RWD_LINK_URL as REWARD_LINK_URL, -- 화면 보상 링크 URL
|
||||
(
|
||||
SELECT BCT.CN_DC
|
||||
FROM GC_BENEFIT_CONTENT BCT
|
||||
WHERE BCT.BNF_INNB = B.BNF_INNB
|
||||
LIMIT 1
|
||||
) as CONTENT_DESCRIPTION, -- 내용 설명
|
||||
(
|
||||
SELECT GROUP_CONCAT(BR.BNF_RWD_CATE_DV_CD)
|
||||
FROM GC_BENEFIT_REWARD BR
|
||||
WHERE BR.BNF_INNB = B.BNF_INNB
|
||||
) as REWARD_CATEGORIES, -- 보상 항목 구분 코드 목록
|
||||
(
|
||||
SELECT BR.ITM_NM
|
||||
FROM GC_BENEFIT_REWARD BR
|
||||
WHERE BR.BNF_INNB = B.BNF_INNB
|
||||
AND BR.BNF_RWD_CATE_DV_CD = '02020' -- 만보기 월누적10회 코드
|
||||
LIMIT 1
|
||||
) as MONTHLY_REWARD_NAME, -- 10회 달성 시 받을 제품 이름
|
||||
(
|
||||
SELECT BR.MLG_RWD_AMT
|
||||
FROM GC_BENEFIT_REWARD BR
|
||||
WHERE BR.BNF_INNB = B.BNF_INNB
|
||||
AND BR.BNF_RWD_CATE_DV_CD = '02020' -- 만보기 월누적10회 코드
|
||||
LIMIT 1
|
||||
) as MONTHLY_REWARD_MILEAGE -- 10회 달성 시 받을 마일리지
|
||||
FROM
|
||||
GC_BENEFIT B
|
||||
WHERE
|
||||
B.BNF_DV_CD = '020' -- 만보기 혜택 코드
|
||||
AND B.USE_AT = 'Y' -- 사용 여부 체크
|
||||
AND B.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
AND (B.BNF_BGN_DT IS NULL OR B.BNF_BGN_DT <= NOW()) -- 시작일 체크
|
||||
AND (B.BNF_END_DT IS NULL OR B.BNF_END_DT >= NOW()) -- 종료일 체크
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 이번 달 깜짝선물 획득 횟수 조회 -->
|
||||
<select id="selectMonthlySurpriseGiftCount" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="int">
|
||||
SELECT
|
||||
COUNT(BR.BNF_RCV_INNB) as surpriseGiftCount
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN BP
|
||||
INNER JOIN
|
||||
GC_BENEFIT_RECEIPT BR ON BR.BNF_PRT_INNB = BP.BNF_PRT_INNB
|
||||
INNER JOIN
|
||||
GC_BENEFIT B ON BP.BNF_INNB = B.BNF_INNB
|
||||
WHERE
|
||||
BP.MBR_INNB = #{mbrInnb}
|
||||
AND BP.MBR_DV_CD = #{mbrDvCd}
|
||||
AND B.BNF_DV_CD = '020' -- 만보기 혜택 코드
|
||||
AND DATE_FORMAT(BP.BNF_PRT_DT, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m') -- 이번 달 필터링
|
||||
AND BR.BNF_RWD_CATE_DV_CD IN ('02030','02031','02032','02033','02034','02035','02036') -- 깜짝선물 카테고리 코드들
|
||||
</select>
|
||||
|
||||
<!-- 오늘 깜짝선물 수령 여부 확인 -->
|
||||
<select id="selectTodayGiftReceiptStatus" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
COUNT(BR.BNF_RCV_INNB) as receiptCount,
|
||||
CASE WHEN COUNT(BR.BNF_RCV_INNB) > 0 THEN 'Y' ELSE 'N' END as isReceived
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN BP
|
||||
INNER JOIN
|
||||
GC_BENEFIT_RECEIPT BR ON BR.BNF_PRT_INNB = BP.BNF_PRT_INNB
|
||||
INNER JOIN
|
||||
GC_BENEFIT B ON BP.BNF_INNB = B.BNF_INNB
|
||||
WHERE
|
||||
BP.MBR_INNB = #{mbrInnb}
|
||||
AND BP.MBR_DV_CD = #{mbrDvCd}
|
||||
AND B.BNF_DV_CD = '020' -- 만보기 혜택 코드
|
||||
AND DATE(BP.BNF_PRT_DT) = CURDATE() -- 오늘 날짜 기준
|
||||
AND BR.BNF_RWD_CATE_DV_CD = #{bnfRwdCateDvCd} -- 오늘의 깜짝선물 카테고리
|
||||
</select>
|
||||
|
||||
<!-- 오늘 마일리지 수령 여부 확인 -->
|
||||
<select id="selectTodayMileageReceiptStatus" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
COUNT(BR.BNF_RCV_INNB) as receiptCount,
|
||||
CASE WHEN COUNT(BR.BNF_RCV_INNB) > 0 THEN 'Y' ELSE 'N' END as isReceived
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN BP
|
||||
INNER JOIN
|
||||
GC_BENEFIT_RECEIPT BR ON BR.BNF_PRT_INNB = BP.BNF_PRT_INNB
|
||||
INNER JOIN
|
||||
GC_BENEFIT B ON BP.BNF_INNB = B.BNF_INNB
|
||||
WHERE
|
||||
BP.MBR_INNB = #{mbrInnb}
|
||||
AND BP.MBR_DV_CD = #{mbrDvCd}
|
||||
AND B.BNF_DV_CD = '020' -- 만보기 혜택 코드
|
||||
AND DATE(BP.BNF_PRT_DT) = CURDATE() -- 오늘 날짜 기준
|
||||
AND BR.BNF_RWD_CATE_DV_CD = #{bnfRwdCateDvCd} -- 보상 카테고리 (02010: 일일만보, 02020: 월누적10회)
|
||||
</select>
|
||||
|
||||
<!-- 만보기 참여 안내 조회-->
|
||||
<select id="selectStepcntGuide" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
BNF_WORDS_CN
|
||||
FROM
|
||||
GC_BENEFIT
|
||||
WHERE
|
||||
BNF_INNB = #{bnfInnb}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
</select>
|
||||
|
||||
<!-- BNF_INNB 조회 -->
|
||||
<select id="selectBnfInnb" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
BNF_INNB
|
||||
FROM
|
||||
GC_BENEFIT
|
||||
WHERE
|
||||
BNF_DV_CD = '020'
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND USE_AT = 'Y'
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,336 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.common.mapper.BOCommonMapper">
|
||||
|
||||
<!-- 이미지 정보 수정 -->
|
||||
<update id="updateBOFileInfo" parameterType="com.wb.domainserver.domain.gcone.common.vo.BOCommonVO">
|
||||
<!-- 인트라넷 게시판 첨부파일 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'ITRB')">
|
||||
<![CDATA[
|
||||
DELETE FROM GC_INTRANET_BOARDDATA_FILE A
|
||||
WHERE A.SOPMAL_CD = #{shopCd} AND A.BBSCTT_ATCHMNFIL_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
<!-- 게시판 첨부파일 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'BDFL')">
|
||||
<![CDATA[
|
||||
DELETE FROM GC_BOARDDATA_FILE A
|
||||
WHERE A.SOPMAL_CD = #{shopCd} AND A.BBSCTT_ATCHMNFIL_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
<!-- 게시판 대표이미지 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'BDIG')">
|
||||
<![CDATA[
|
||||
UPDATE GC_BOARDDATA
|
||||
SET REPRSNT_IMG_ORGINL_FIL_NM=null, REPRSNT_IMG_SYS_FIL_NM=null
|
||||
WHERE SOPMAL_CD = #{shopCd} AND BBSCTT_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
<!-- 배너관리 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'BANR')">
|
||||
<![CDATA[
|
||||
UPDATE GC_GOODS_BANNER
|
||||
SET ORGINL_FIL_NM=null, SYS_FIL_NM=null, FIL_MG=null, FIL_TY=null, FIL_COURS=null
|
||||
WHERE SOPMAL_CD = #{shopCd} AND BANNER_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
<!-- 회원관리 등급이미지 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'MBRG')">
|
||||
<![CDATA[
|
||||
UPDATE GC_MEMBER_GRAD
|
||||
SET MBR_GRAD_ICON_COURS = null
|
||||
WHERE SOPMAL_CD = #{shopCd} AND MBR_GRAD_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
|
||||
<!-- 팝업관리 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'POUP')">
|
||||
<![CDATA[
|
||||
UPDATE GC_DESIGN_POPUP
|
||||
SET ORGINL_FIL_NM=null, SYS_FIL_NM=null, FIL_MG=null, FIL_TY=null, FIL_COURS=null
|
||||
WHERE SOPMAL_CD = #{shopCd} AND POPUP_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
<!-- 이벤트관리 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'EVNT')">
|
||||
<![CDATA[
|
||||
UPDATE GC_EVENT
|
||||
SET ORGINL_FIL_NM=null, SYS_FIL_NM=null, FIL_MG=null, FIL_TY=null, FIL_COURS=null
|
||||
WHERE SOPMAL_CD = #{shopCd} AND EVT_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
<!-- 메인화면관리(상단) -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'MANT')">
|
||||
<![CDATA[
|
||||
UPDATE GC_DESIGN
|
||||
SET TOP_ORGINL_FIL_NM=null, TOP_SYS_FIL_NM=null, TOP_FIL_MG=null, TOP_FIL_TY=null, TOP_FIL_COURS=null
|
||||
WHERE SOPMAL_CD = #{shopCd} AND MAIN_SITE_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
<!-- 메인화면관리(하단) -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'MANB')">
|
||||
<![CDATA[
|
||||
UPDATE GC_DESIGN
|
||||
SET FOOTER_ORGINL_FIL_NM=null, FOOTER_SYS_FIL_NM=null, FOOTER_FIL_MG=null, FOOTER_FIL_TY=null, FOOTER_FIL_COURS=null
|
||||
WHERE SOPMAL_CD = #{shopCd} AND MAIN_SITE_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
<!-- 메인컨텐츠관리 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'MANC')">
|
||||
<![CDATA[
|
||||
UPDATE GC_DESIGN_CONTENTS_ITEM
|
||||
SET ORGINL_FIL_NM=null, SYS_FIL_NM=null, FIL_MG=null, FIL_TY=null, FIL_COURS=null
|
||||
WHERE MAIN_SETUP_ITEM_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
|
||||
<!-- 메시지관리(인트라넷) -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'SMSI')">
|
||||
<![CDATA[
|
||||
DELETE FROM GC_INTRANET_SMS_FILE A
|
||||
WHERE A.F_SEQ = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
|
||||
<!-- 메시지관리 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'SMSF')">
|
||||
<![CDATA[
|
||||
DELETE FROM GC_SMS_FILE A
|
||||
WHERE A.SMS_FILE_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
|
||||
<!-- 대용량메시지관리 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'SMSQ')">
|
||||
<![CDATA[
|
||||
UPDATE GC_LGQY_SMS
|
||||
SET ORGINL_FIL_NM=null, SYS_FIL_NM=null, FIL_MG=null, FIL_TY=null, FIL_COURS=null
|
||||
WHERE SMS_LGQY_SNDNG_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
<!-- 매장관리(대표이미지) -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'STOR')">
|
||||
<![CDATA[
|
||||
UPDATE GC_STORE
|
||||
SET STR_REPRSNT_IMG=null
|
||||
WHERE STR_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
</update>
|
||||
|
||||
|
||||
<!-- 상품 이미지 정보 수정 -->
|
||||
<!-- 상품정보 조회 -->
|
||||
<select id="selectGoodsInfo"
|
||||
parameterType="com.wb.domainserver.domain.gcone.common.vo.BOCommonVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT A.CUT_NB, A.GOODS_INNB FROM GC_GOODS_IMAGE A WHERE A.GOODS_IMG_INNB = #{fileSeq} AND A.SOPMAL_CD = #{shopCd}
|
||||
]]>
|
||||
</select>
|
||||
<delete id="updateBOGoodsFileInfo" parameterType="com.wb.domainserver.domain.gcone.common.vo.BOCommonVO">
|
||||
<![CDATA[
|
||||
DELETE FROM GC_GOODS_IMAGE
|
||||
WHERE SOPMAL_CD = #{shopCd} and GOODS_INNB = #{goodsInnb} and CUT_NB = #{cutNb}
|
||||
]]>
|
||||
</delete>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- 이미지 경로 조회 -->
|
||||
<select id = "selectBOFileInfo"
|
||||
parameterType="com.wb.domainserver.domain.gcone.common.vo.BOCommonVO"
|
||||
resultType="dataMap">
|
||||
<!-- 인트라넷 게시판 첨부파일 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'ITRB')">
|
||||
<![CDATA[
|
||||
SELECT concat(A.FIL_COURS , CASE WHEN RIGHT(FIL_COURS, 1) = '/' THEN '' ELSE '/' END , A.SYS_FIL_NM) AS FILE_FULL_PATH
|
||||
, FIL_DV_CD, ORGINL_FIL_NM
|
||||
FROM GC_INTRANET_BOARDDATA_FILE A
|
||||
WHERE A.SOPMAL_CD = #{shopCd} AND A.BBSCTT_ATCHMNFIL_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
<!-- 게시판 첨부파일 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'BDFL')">
|
||||
<![CDATA[
|
||||
SELECT concat(A.FIL_COURS , CASE WHEN RIGHT(FIL_COURS, 1) = '/' THEN '' ELSE '/' END , A.SYS_FIL_NM) AS FILE_FULL_PATH
|
||||
, FIL_DV_CD, ORGINL_FIL_NM
|
||||
FROM GC_BOARDDATA_FILE A
|
||||
WHERE A.SOPMAL_CD = #{shopCd} AND A.BBSCTT_ATCHMNFIL_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
<!-- 게시판 대표이미지 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'BDIG')">
|
||||
<![CDATA[
|
||||
SELECT REPRSNT_IMG_SYS_FIL_NM AS FILE_FULL_PATH
|
||||
, '01' FIL_DV_CD , '' ORGINL_FIL_NM
|
||||
FROM GC_BOARDDATA
|
||||
WHERE SOPMAL_CD = #{shopCd} AND BBSCTT_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
<!-- 배너관리 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'BANR')">
|
||||
<![CDATA[
|
||||
SELECT concat(A.FIL_COURS ,'/', A.SYS_FIL_NM) AS FILE_FULL_PATH
|
||||
, '01' FIL_DV_CD , ORGINL_FIL_NM
|
||||
FROM GC_GOODS_BANNER A
|
||||
WHERE SOPMAL_CD = #{shopCd} AND BANNER_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
<!-- 회원관리 등급이미지 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'MBRG')">
|
||||
<![CDATA[
|
||||
SELECT MBR_GRAD_ICON_COURS AS FILE_FULL_PATH
|
||||
, '01' FIL_DV_CD , '' ORGINL_FIL_NM
|
||||
FROM GC_MEMBER_GRAD
|
||||
WHERE MBR_GRAD_INNB = #{fileSeq}
|
||||
AND SOPMAL_CD = #{shopCd}
|
||||
]]>
|
||||
</if>
|
||||
<!-- 상품 이미지 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'GDIG')">
|
||||
<![CDATA[
|
||||
SELECT IMG AS FILE_FULL_PATH
|
||||
, '01' FIL_DV_CD , '' ORGINL_FIL_NM
|
||||
FROM GC_GOODS_IMAGE A
|
||||
WHERE A.SOPMAL_CD = 'NC' AND A.GOODS_IMG_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
<!-- 팝업관리 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'POUP')">
|
||||
<![CDATA[
|
||||
SELECT concat(A.FIL_COURS ,'/', A.SYS_FIL_NM ) AS FILE_FULL_PATH
|
||||
, '01' FIL_DV_CD, ORGINL_FIL_NM
|
||||
FROM GC_DESIGN_POPUP A
|
||||
WHERE A.POPUP_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
<!-- 이벤트관리 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'EVNT')">
|
||||
<![CDATA[
|
||||
SELECT concat(A.FIL_COURS ,'/', A.SYS_FIL_NM) AS FILE_FULL_PATH
|
||||
, '01' FIL_DV_CD , ORGINL_FIL_NM
|
||||
FROM GC_EVENT A
|
||||
WHERE SOPMAL_CD = #{shopCd} AND EVT_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
<!-- 메인화면관리(상단) -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'MANT')">
|
||||
<![CDATA[
|
||||
SELECT concat(A.TOP_FIL_COURS ,'/', A.TOP_SYS_FIL_NM) AS FILE_FULL_PATH
|
||||
, '01' FIL_DV_CD , TOP_ORGINL_FIL_NM AS ORGINL_FIL_NM
|
||||
FROM GC_DESIGN A
|
||||
WHERE SOPMAL_CD = #{shopCd} AND MAIN_SITE_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
<!-- 메인화면관리(하단) -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'MANB')">
|
||||
<![CDATA[
|
||||
SELECT concat(A.FOOTER_FIL_COURS ,'/', A.FOOTER_SYS_FIL_NM) AS FILE_FULL_PATH
|
||||
, '01' FIL_DV_CD , FOOTER_ORGINL_FIL_NM AS ORGINL_FIL_NM
|
||||
FROM GC_DESIGN A
|
||||
WHERE SOPMAL_CD = #{shopCd} AND MAIN_SITE_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
<!-- 메인컨텐츠관리 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'MANC')">
|
||||
<![CDATA[
|
||||
SELECT concat(A.FIL_COURS ,'/', A.SYS_FIL_NM) AS FILE_FULL_PATH
|
||||
, '01' FIL_DV_CD , ORGINL_FIL_NM
|
||||
FROM GC_DESIGN_CONTENTS_ITEM A
|
||||
WHERE MAIN_SETUP_ITEM_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
|
||||
<!-- 메시지관리(인트라넷) -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'SMSI')">
|
||||
<![CDATA[
|
||||
SELECT CONCAT(A.F_COURSE ,'/', A.F_NAME) AS FILE_FULL_PATH
|
||||
, '01' FIL_DV_CD , F_NAME_ORG AS ORGINL_FIL_NM
|
||||
FROM GC_INTRANET_SMS_FILE A
|
||||
WHERE A.F_SEQ = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
|
||||
<!-- 메시지관리 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'SMSF')">
|
||||
<![CDATA[
|
||||
SELECT concat(A.FIL_COURS ,'/', A.SYS_FIL_NM) AS FILE_FULL_PATH
|
||||
, '01' FIL_DV_CD , ORGINL_FIL_NM
|
||||
FROM GC_SMS_FILE A
|
||||
WHERE A.SMS_FILE_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
|
||||
<!-- 대용량메시지관리 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'SMSQ')">
|
||||
<![CDATA[
|
||||
SELECT concat(A.FIL_COURS ,'/', A.SYS_FIL_NM) AS FILE_FULL_PATH
|
||||
, '01' FIL_DV_CD , ORGINL_FIL_NM
|
||||
FROM GC_LGQY_SMS A
|
||||
WHERE A.SMS_LGQY_SNDNG_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
<!-- 카테고리조회 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'CTGY')">
|
||||
<![CDATA[
|
||||
SELECT concat(FIL_COURS ,'/', SYS_FIL_NM) AS FILE_FULL_PATH
|
||||
, '01' FIL_DV_CD , ORGINL_FIL_NM
|
||||
FROM GC_CATEGORY
|
||||
WHERE CTGRY_ID = #{fileSeq}
|
||||
AND SOPMAL_CD = #{shopCd}
|
||||
]]>
|
||||
</if>
|
||||
|
||||
<!-- 매장관리(대표이미지) -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(menuGb, 'STOR')">
|
||||
<![CDATA[
|
||||
SELECT STR_REPRSNT_IMG AS FILE_FULL_PATH
|
||||
, '01' FIL_DV_CD
|
||||
FROM GC_STORE
|
||||
WHERE STR_INNB = #{fileSeq}
|
||||
]]>
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id = "selectEncptKey"
|
||||
parameterType="com.wb.domainserver.domain.gcone.common.vo.BOCommonVO"
|
||||
resultType = "java.lang.String">
|
||||
<![CDATA[
|
||||
SELECT ENCPT_KEY
|
||||
FROM GC_ENCPT_KEY A
|
||||
WHERE ENCPT_KEY_DV_CD = #{encptKeyDvCd}
|
||||
AND IDNTFC_INNB = #{idntfcInnb}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<insert id="insertEncptKey" parameterType="com.wb.domainserver.domain.gcone.common.vo.BOCommonVO">
|
||||
|
||||
<selectKey order="BEFORE" keyProperty="encptKeyInnb" resultType="java.lang.String">
|
||||
<![CDATA[
|
||||
SELECT IFNULL(MAX(ENCPT_KEY_INNB), 0)+1
|
||||
FROM GC_ENCPT_KEY
|
||||
]]>
|
||||
</selectKey>
|
||||
<![CDATA[
|
||||
INSERT INTO GC_ENCPT_KEY (
|
||||
ENCPT_KEY_INNB,
|
||||
ENCPT_KEY_DV_CD,
|
||||
IDNTFC_INNB,
|
||||
ENCPT_KEY,
|
||||
REGUSR,
|
||||
REGIST_DT
|
||||
)
|
||||
VALUES (
|
||||
#{encptKeyInnb},
|
||||
#{encptKeyDvCd},
|
||||
#{idntfcInnb},
|
||||
#{encptKey},
|
||||
${regusr},
|
||||
SYSDATE()
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,376 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.goods.banner.mapper.BOBannerMapper">
|
||||
|
||||
<!-- 배너 상세조회, 수정, 삭제 조건절-->
|
||||
<sql id="selectBOMapperKeyWhere">
|
||||
<![CDATA[
|
||||
WHERE 1=1
|
||||
AND BANNER_INNB = #{bannerInnb}
|
||||
]]>
|
||||
</sql>
|
||||
|
||||
<!-- 배너목록 카운트 -->
|
||||
<select id="selectBOBannerListCnt"
|
||||
parameterType="com.wb.domainserver.domain.gcone.goods.banner.vo.BOBannerVO"
|
||||
resultType="java.lang.Integer">
|
||||
<![CDATA[
|
||||
SELECT count(*)
|
||||
FROM (SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM
|
||||
, TB.*
|
||||
FROM (SELECT BANNER_INNB
|
||||
, BANNER_NM
|
||||
, EXPSRLC_DV
|
||||
, EXPSRLC_DV_CD
|
||||
, DATE_FORMAT(EXPSR_BGN_DT, '%Y-%m-%d %h:%i:%s') AS EXPSR_BGN_DT
|
||||
, DATE_FORMAT(EXPSR_END_DT, '%Y-%m-%d %h:%i:%s') AS EXPSR_END_DT
|
||||
, REGUSR
|
||||
, REGIST_DT
|
||||
, DATE_FORMAT(REGIST_DT, '%Y-%m-%d') AS REGIST_DE
|
||||
, UPDUSR
|
||||
, UPDT_DT
|
||||
, DATE_FORMAT(UPDT_DT, '%Y-%m-%d') AS UPDT_DE
|
||||
, (SELECT COUNT(1) FROM GC_SHOP_GOODS_BANNER FSGB WHERE FSGB.BANNER_INNB = FGB.BANNER_INNB) AS GOODS_CNT
|
||||
FROM GC_GOODS_BANNER FGB
|
||||
WHERE 1=1
|
||||
AND USE_AT = 'Y'
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
ORDER BY
|
||||
BANNER_INNB DESC ) TB
|
||||
WHERE (@ROWNUM:=0) = 0 ) PV
|
||||
WHERE 1=1
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 배너 목록 조회 -->
|
||||
<select id="selectBOBannerList"
|
||||
parameterType="com.wb.domainserver.domain.gcone.goods.banner.vo.BOBannerVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT *
|
||||
FROM (SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM
|
||||
, TB.*
|
||||
FROM (SELECT BANNER_INNB
|
||||
, BANNER_NM
|
||||
, EXPSRLC_DV
|
||||
, EXPSRLC_DV_CD
|
||||
, DATE_FORMAT(EXPSR_BGN_DT, '%Y-%m-%d %h:%i:%s') AS EXPSR_BGN_DT
|
||||
, DATE_FORMAT(EXPSR_END_DT, '%Y-%m-%d %h:%i:%s') AS EXPSR_END_DT
|
||||
, REGUSR
|
||||
, REGIST_DT
|
||||
, DATE_FORMAT(REGIST_DT, '%Y-%m-%d') AS REGIST_DE
|
||||
, UPDUSR
|
||||
, UPDT_DT
|
||||
, DATE_FORMAT(UPDT_DT, '%Y-%m-%d') AS UPDT_DE
|
||||
, (SELECT COUNT(FSGB.GOODS_INNB) FROM GC_SHOP_GOODS_BANNER FSGB WHERE FSGB.BANNER_INNB = FGB.BANNER_INNB) AS GOODS_CNT
|
||||
, (SELECT COUNT(FSGB.CTGRY_ID) FROM GC_SHOP_GOODS_BANNER FSGB WHERE FSGB.BANNER_INNB = FGB.BANNER_INNB) AS CTGRY_CNT
|
||||
FROM GC_GOODS_BANNER FGB
|
||||
WHERE 1=1
|
||||
AND USE_AT = 'Y'
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
ORDER BY
|
||||
BANNER_INNB DESC ) TB
|
||||
WHERE (@ROWNUM:=0) = 0 ) PV
|
||||
WHERE 1=1
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 배너 등록 -->
|
||||
<insert id="insertBOBanner"
|
||||
parameterType="com.wb.domainserver.domain.gcone.goods.banner.vo.BOBannerVO">
|
||||
<selectKey order="BEFORE" keyProperty="bannerInnb" resultType="java.lang.Integer">
|
||||
SELECT IFNULL(MAX(BANNER_INNB), 0)+1
|
||||
FROM GC_GOODS_BANNER
|
||||
</selectKey>
|
||||
INSERT INTO GC_GOODS_BANNER (
|
||||
BANNER_INNB
|
||||
, SOPMAL_CD
|
||||
, BANNER_NM
|
||||
, EXPSRLC_DV
|
||||
, EXPSRLC_DV_CD
|
||||
, EXPSR_BGN_DT
|
||||
, EXPSR_END_DT
|
||||
, GOODS_APPLC_DV_CD
|
||||
, BANNER_URL
|
||||
, ORGINL_FIL_NM
|
||||
, SYS_FIL_NM
|
||||
, FIL_MG
|
||||
, FIL_TY
|
||||
, FIL_COURS
|
||||
, BANNER_ORDR
|
||||
, USE_AT
|
||||
, REGUSR
|
||||
, REGIST_DT
|
||||
, UPDUSR
|
||||
, UPDT_DT
|
||||
)
|
||||
VALUES (
|
||||
#{bannerInnb}
|
||||
, #{sopmalCd}
|
||||
, #{bannerNm}
|
||||
, #{expsrlcDv}
|
||||
, #{expsrlcDvCd}
|
||||
<if test="expsrlcDvCd != '03'">
|
||||
, NULL
|
||||
, NULL
|
||||
</if>
|
||||
<if test="expsrlcDvCd == '03'">
|
||||
, #{expsrBgnDt}
|
||||
, #{expsrEndDt}
|
||||
</if>
|
||||
,#{goodsApplcDvCd}
|
||||
,#{bannerUrl}
|
||||
<choose>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(orginlFilNm)">
|
||||
, #{orginlFilNm}
|
||||
, #{sysFilNm}
|
||||
, #{filMg}
|
||||
, #{filTy}
|
||||
, #{filCours}
|
||||
</when>
|
||||
<otherwise>
|
||||
, NULL
|
||||
, NULL
|
||||
, NULL
|
||||
, NULL
|
||||
, NULL
|
||||
</otherwise>
|
||||
</choose>
|
||||
, '99' -- 새로 등록한 배너 순서 맨뒤 지정
|
||||
, 'Y'
|
||||
, #{regusr}
|
||||
, now()
|
||||
, #{updusr}
|
||||
, now()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 배너 연결 상품 등록 -->
|
||||
<insert id="insertBOBannerIncludeGoods"
|
||||
parameterType="DataMap">
|
||||
<selectKey order="BEFORE" keyProperty="shopGoodsBannerInnb" resultType="java.lang.Integer">
|
||||
SELECT IFNULL(MAX(SHOP_GOODS_BANNER_INNB), 0)+1
|
||||
FROM GC_SHOP_GOODS_BANNER
|
||||
</selectKey>
|
||||
INSERT INTO GC_SHOP_GOODS_BANNER (
|
||||
SHOP_GOODS_BANNER_INNB
|
||||
, GOODS_INNB
|
||||
, SOPMAL_CD
|
||||
, BANNER_INNB
|
||||
, REGUSR
|
||||
, REGIST_DT
|
||||
)
|
||||
VALUES (
|
||||
#{shopGoodsBannerInnb}
|
||||
, #{goodsInnb}
|
||||
, #{sopmalCd}
|
||||
, #{bannerInnb}
|
||||
, #{regusr}
|
||||
, now()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 배너 연결 상품 카테고리ID 등록 -->
|
||||
<insert id="insertBOBannerIncludeGoodsCtgryId"
|
||||
parameterType="DataMap">
|
||||
<selectKey order="BEFORE" keyProperty="shopGoodsBannerInnb" resultType="java.lang.Integer">
|
||||
SELECT IFNULL(MAX(SHOP_GOODS_BANNER_INNB), 0)+1
|
||||
FROM GC_SHOP_GOODS_BANNER
|
||||
</selectKey>
|
||||
INSERT INTO GC_SHOP_GOODS_BANNER (
|
||||
SHOP_GOODS_BANNER_INNB
|
||||
, CTGRY_ID
|
||||
, SOPMAL_CD
|
||||
, BANNER_INNB
|
||||
, REGUSR
|
||||
, REGIST_DT
|
||||
)
|
||||
VALUES (
|
||||
#{shopGoodsBannerInnb}
|
||||
, #{ctgryId}
|
||||
, #{sopmalCd}
|
||||
, #{bannerInnb}
|
||||
, #{regusr}
|
||||
, now()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 배너수정 -->
|
||||
<update id="updateBOBannerDtl" parameterType="com.wb.domainserver.domain.gcone.goods.banner.vo.BOBannerVO">
|
||||
UPDATE GC_GOODS_BANNER
|
||||
SET
|
||||
BANNER_NM = #{bannerNm}
|
||||
, EXPSRLC_DV = #{expsrlcDv}
|
||||
, EXPSRLC_DV_CD = #{expsrlcDvCd}
|
||||
<if test="expsrlcDvCd == '03'">
|
||||
, EXPSR_BGN_DT = #{expsrBgnDt}
|
||||
, EXPSR_END_DT = #{expsrEndDt}
|
||||
</if>
|
||||
<if test="expsrlcDvCd != '03'">
|
||||
, EXPSR_BGN_DT = NULL
|
||||
, EXPSR_END_DT = NULL
|
||||
</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}
|
||||
, GOODS_APPLC_DV_CD = #{goodsApplcDvCd}
|
||||
, UPDUSR = #{updusr}
|
||||
, UPDT_DT = now()
|
||||
<include refid="selectBOMapperKeyWhere"/>
|
||||
</update>
|
||||
|
||||
<!-- 배너 삭제 -->
|
||||
<update id="deleteBOBanner" parameterType="com.wb.domainserver.domain.gcone.goods.banner.vo.BOBannerVO">
|
||||
<![CDATA[
|
||||
UPDATE GC_GOODS_BANNER
|
||||
SET USE_AT = 'N'
|
||||
, UPDUSR = #{updusr}
|
||||
, UPDT_DT = now()
|
||||
]]>
|
||||
<include refid="selectBOMapperKeyWhere"/>
|
||||
</update>
|
||||
|
||||
<!-- 배너 상세 조회 -->
|
||||
<select id="selectBOBannerDtlForm"
|
||||
parameterType="com.wb.domainserver.domain.gcone.goods.banner.vo.BOBannerVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT GGB.BANNER_INNB
|
||||
, GGB.SOPMAL_CD
|
||||
, GGB.BANNER_NM
|
||||
, GGB.EXPSRLC_DV
|
||||
, GGB.EXPSRLC_DV_CD
|
||||
, DATE_FORMAT(GGB.EXPSR_BGN_DT, '%Y-%m-%d %h:%i:%s') AS EXPSR_BGN_DT
|
||||
, DATE_FORMAT(GGB.EXPSR_END_DT, '%Y-%m-%d %h:%i:%s') AS EXPSR_END_DT
|
||||
, DATE_FORMAT(GGB.EXPSR_BGN_DT, '%Y-%m-%d') AS EXPSR_BGN_YMD
|
||||
, DATE_FORMAT(GGB.EXPSR_END_DT, '%Y-%m-%d') AS EXPSR_END_YMD
|
||||
, DATE_FORMAT(GGB.EXPSR_BGN_DT, '%h:%i') AS EXPSR_BGN_TIME
|
||||
, DATE_FORMAT(GGB.EXPSR_END_DT, '%h:%i') AS EXPSR_END_TIME
|
||||
, GGB.BANNER_URL
|
||||
, GGB.ORGINL_FIL_NM
|
||||
, GGB.SYS_FIL_NM
|
||||
, GGB.FIL_MG
|
||||
, GGB.FIL_TY
|
||||
, GGB.FIL_COURS
|
||||
, GGB.REGUSR
|
||||
, GGB.REGIST_DT
|
||||
, DATE_FORMAT(GGB.REGIST_DT, '%Y-%m-%d') AS REGIST_DE
|
||||
, GGB.UPDUSR
|
||||
, GGB.UPDT_DT
|
||||
, DATE_FORMAT(GGB.UPDT_DT, '%Y-%m-%d') AS UPDT_DE
|
||||
, GGB.GOODS_APPLC_DV_CD
|
||||
FROM GC_GOODS_BANNER GGB
|
||||
WHERE 1=1
|
||||
AND GGB.BANNER_INNB =#{bannerInnb}
|
||||
AND GGB.SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 배너 연결 상품 조회 -->
|
||||
<select id="selectBOBannerIncludeGoods"
|
||||
parameterType="com.wb.domainserver.domain.gcone.goods.banner.vo.BOBannerVO"
|
||||
resultType="String">
|
||||
SELECT GOODS_INNB
|
||||
FROM GC_SHOP_GOODS_BANNER
|
||||
WHERE 1=1
|
||||
AND SOPMAL_CD =#{sopmalCd}
|
||||
AND BANNER_INNB = #{bannerInnb}
|
||||
</select>
|
||||
|
||||
<!--배너 카테고리 정보 조회-->
|
||||
<select id="selectBOBannerCtgry" parameterType="dataMap" resultType="dataMap">
|
||||
WITH RECURSIVE category AS (
|
||||
SELECT CTGRY_ID, CTGRY_NM, UPPER_CTGRY_ID, SOPMAL_CD, CTGRY_NM as full_path
|
||||
FROM GC_CATEGORY
|
||||
where SOPMAL_CD = #{sopmalCd}
|
||||
AND UPPER_CTGRY_ID = 2
|
||||
UNION ALL
|
||||
SELECT c.CTGRY_ID, c.CTGRY_NM, c.UPPER_CTGRY_ID, c.SOPMAL_CD, CONCAT(ch.full_path , ' > ', c.CTGRY_NM ) AS full_path
|
||||
FROM GC_CATEGORY c
|
||||
INNER JOIN category ch
|
||||
ON c.UPPER_CTGRY_ID = ch.CTGRY_ID
|
||||
AND c.sopmal_cd = ch.sopmal_cd
|
||||
)
|
||||
SELECT
|
||||
cc.CTGRY_ID,
|
||||
cc.CTGRY_NM,
|
||||
cc.UPPER_CTGRY_ID,
|
||||
cc.SOPMAL_CD,
|
||||
cc.full_path,
|
||||
GSGB.GOODS_INNB
|
||||
FROM category cc
|
||||
JOIN GC_SHOP_GOODS_BANNER GSGB
|
||||
where GSGB.SOPMAL_CD = cc.sopmal_cd
|
||||
AND GSGB.CTGRY_ID = cc.CTGRY_ID
|
||||
AND GSGB.sopmal_cd = #{sopmalCd}
|
||||
AND GSGB.BANNER_INNB = #{bannerInnb}
|
||||
ORDER BY CTGRY_ID;
|
||||
</select>
|
||||
|
||||
<!-- 배너 연결 상품 삭제 -->
|
||||
<delete id="deleteBOBannerIncludeGoods"
|
||||
parameterType="java.lang.Integer">
|
||||
DELETE FROM GC_SHOP_GOODS_BANNER
|
||||
WHERE 1=1
|
||||
AND BANNER_INNB = #{bannerInnb}
|
||||
</delete>
|
||||
|
||||
<!-- 배너 연결 상품 조회 -->
|
||||
<select id="selectBOBannerIncludeGoodsCnt"
|
||||
parameterType="com.wb.domainserver.domain.gcone.goods.banner.vo.BOBannerVO"
|
||||
resultType="java.lang.Integer">
|
||||
SELECT count(1)
|
||||
FROM GC_SHOP_GOODS_BANNER
|
||||
WHERE 1=1
|
||||
AND BANNER_INNB = #{bannerInnb}
|
||||
</select>
|
||||
|
||||
<!--배너 순서지정팝업조회-->
|
||||
<select id="selectBOBannerOrdrPopup" parameterType="com.wb.domainserver.domain.gcone.goods.banner.vo.BOBannerVO" resultType="dataMap">
|
||||
SELECT
|
||||
GGB.BANNER_INNB,
|
||||
GGB.SOPMAL_CD,
|
||||
GGB.BANNER_NM,
|
||||
GGB.EXPSRLC_DV, -- 상단, 하단
|
||||
GGB.BANNER_ORDR
|
||||
FROM
|
||||
GC_GOODS_BANNER GGB
|
||||
WHERE
|
||||
1 = 1
|
||||
AND GGB.USE_AT = 'Y'
|
||||
AND GGB.SOPMAL_CD = #{sopmalCd}
|
||||
AND(CASE WHEN GGB.EXPSRLC_DV_CD = '01' THEN 'Y'
|
||||
WHEN GGB.EXPSRLC_DV_CD = '03' AND DATE_FORMAT(SYSDATE(), '%Y-%m-%d') BETWEEN GGB.EXPSR_BGN_DT AND GGB.EXPSR_END_DT THEN 'Y'
|
||||
ELSE 'N' END )='Y' -- 노출구분이 01 이거나 노출예약이면서 노출기간이 오늘 기준안에 있으면 Y 미노출이면 N)
|
||||
ORDER BY GGB.BANNER_ORDR ASC
|
||||
</select>
|
||||
<!--배너순서수정-->
|
||||
<update id="updateBOBannerOrdr" parameterType="com.wb.domainserver.domain.gcone.goods.banner.vo.BOBannerVO">
|
||||
UPDATE
|
||||
GC_GOODS_BANNER GGB
|
||||
SET
|
||||
GGB.BANNER_ORDR = #{bannerOrdr},
|
||||
GGB.UPDUSR = #{updusr},
|
||||
GGB.UPDT_DT = SYSDATE()
|
||||
WHERE 1=1
|
||||
AND GGB.SOPMAL_CD = #{sopmalCd}
|
||||
AND GGB.BANNER_INNB = #{bannerInnb}
|
||||
</update>
|
||||
</mapper>
|
||||
@@ -0,0 +1,108 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.goods.cmnuse.mapper.BOCmnuseMapper">
|
||||
|
||||
<!-- 상품 공용정보 목록 조회 -->
|
||||
<select id="selectBOCmnuseInfoList"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.goods.cmnuse.vo.BOCmnuseVO" >
|
||||
SELECT
|
||||
ROW_NUMBER() OVER(ORDER BY i.REGIST_DT ASC) RNUM
|
||||
,i.CMNUSE_INFO_INNB as CMNUSE_INFO_INNB
|
||||
,i.CMNUSE_INFO_SJ as CMNUSE_INFO_SJ
|
||||
,DATE_FORMAT(i.REGIST_DT, '%Y-%m-%d %H:%i') as REGIST_DT
|
||||
, IFNULL(fg.LINKGOODS, 0) as LINKGOODS
|
||||
FROM GC_GOODS_INFO i
|
||||
LEFT JOIN
|
||||
(
|
||||
SELECT
|
||||
CMNUSE_INFO_INNB
|
||||
,COUNT(GOODS_INNB) as LINKGOODS
|
||||
,SOPMAL_CD
|
||||
FROM GC_GOODS
|
||||
WHERE 1=1
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
GROUP BY CMNUSE_INFO_INNB
|
||||
) fg
|
||||
ON i.CMNUSE_INFO_INNB = fg.CMNUSE_INFO_INNB
|
||||
WHERE 1=1
|
||||
AND i.SOPMAL_CD =#{sopmalCd}
|
||||
AND i.USE_AT ='Y'
|
||||
ORDER BY REGIST_DT DESC
|
||||
</select>
|
||||
|
||||
<!-- 상품 공용정보 상세 조회 -->
|
||||
<select id="selectBOCmnuseInfoDtl">
|
||||
SELECT
|
||||
CMNUSE_INFO_INNB,
|
||||
SOPMAL_CD,
|
||||
CMNUSE_INFO_SJ,
|
||||
INFO_CN
|
||||
FROM GC_GOODS_INFO
|
||||
WHERE 1=1
|
||||
AND CMNUSE_INFO_INNB = #{cmnuseInfoInnb}
|
||||
AND USE_AT ='Y'
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
</select>
|
||||
|
||||
<!-- 상품 공용정보 등록 -->
|
||||
<insert id="insertBOCmnuseInfo"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.goods.cmnuse.vo.BOCmnuseVO" >
|
||||
<selectKey keyProperty="cmnuseInfoInnb" resultType="String" order="BEFORE">
|
||||
SELECT IFNULL(MAX(CMNUSE_INFO_INNB), 0) + 1
|
||||
FROM GC_GOODS_INFO
|
||||
</selectKey>
|
||||
INSERT INTO GC_GOODS_INFO
|
||||
(
|
||||
CMNUSE_INFO_INNB,
|
||||
SOPMAL_CD,
|
||||
<if test="bsnmInnb != null and bsnmInnb != ''">
|
||||
BSNM_INNB,
|
||||
</if>
|
||||
<if test="cmnuseInfoSj != null and cmnuseInfoSj != ''">
|
||||
CMNUSE_INFO_SJ,
|
||||
</if>
|
||||
<if test="infoCn != null and infoCn != ''">
|
||||
INFO_CN,
|
||||
</if>
|
||||
USE_AT,
|
||||
REGUSR,
|
||||
REGIST_DT
|
||||
)
|
||||
VALUES (
|
||||
#{cmnuseInfoInnb},
|
||||
#{sopmalCd},
|
||||
<if test="bsnmInnb != null and bsnmInnb != ''">
|
||||
#{bsnmInnb},
|
||||
</if>
|
||||
<if test="cmnuseInfoSj != null and cmnuseInfoSj != ''">
|
||||
#{cmnuseInfoSj},
|
||||
</if>
|
||||
<if test="infoCn != null and infoCn != ''">
|
||||
#{infoCn},
|
||||
</if>
|
||||
'Y',
|
||||
#{regusr},
|
||||
SYSDATE()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 상품 공용정보 수정 -->
|
||||
<update id="updateBOCmnuseInfoDtl">
|
||||
UPDATE GC_GOODS_INFO
|
||||
SET CMNUSE_INFO_SJ = #{cmnuseInfoSj},
|
||||
INFO_CN = #{infoCn},
|
||||
UPDUSR = #{updusr},
|
||||
UPDT_DT = now()
|
||||
WHERE CMNUSE_INFO_INNB = #{cmnuseInfoInnb}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
</update>
|
||||
|
||||
<!-- 상품 공용정보 삭제 -->
|
||||
<update id="deleteBOCmnuseInfo">
|
||||
update GC_GOODS_INFO
|
||||
SET USE_AT = 'N'
|
||||
WHERE CMNUSE_INFO_INNB = #{cmnuseInfoInnb}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.wb.domainserver.domain.gcone.goods.ctgry.mapper.BOCtgryMapper"></mapper>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,298 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.goods.goodsinfo.mapper.BOGoodsinfoMapper">
|
||||
|
||||
<!-- 상품 정보 목록 조회 -->
|
||||
<select id="selectBOGoodsInfoList"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.goods.goodsinfo.vo.BOGoodsInfoVO"
|
||||
resultType = "com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT
|
||||
CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM, BM.*
|
||||
FROM (
|
||||
SELECT
|
||||
GOODS_EXPSR_INFO_INNB,
|
||||
GOODS_INFO_SETUP_SJ,
|
||||
GOODS_NM_EXPSR_AT,
|
||||
GOODS_NM_EXPSR_ORDR,
|
||||
REPRSNT_DC_EXPSR_AT,
|
||||
REPRSNT_DC_EXPSR_ORDR,
|
||||
PRIC_EXPSR_AT,
|
||||
PRIC_EXPSR_ORDR,
|
||||
DLVY_EXPSR_AT,
|
||||
DLVY_EXPSR_ORDR,
|
||||
RVW_EVL_SCRE_EXPSR_AT,
|
||||
RVW_EVL_SCRE_EXPSR_ORDR,
|
||||
ICON_EXPSR_AT,
|
||||
ICON_EXPSR_ORDR,
|
||||
REGUSR,
|
||||
REGIST_DT,
|
||||
UPDUSR,
|
||||
UPDT_DT
|
||||
FROM
|
||||
GC_GOODS_EXPSR_INFO
|
||||
WHERE
|
||||
USE_AT = 'Y'
|
||||
) BM
|
||||
WHERE
|
||||
(@ROWNUM:=0)=0
|
||||
ORDER BY RNUM DESC
|
||||
) PV
|
||||
WHERE 1=1
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
</select>
|
||||
<select id="selectBOGoodsInfoListCnt"
|
||||
parameterType="com.wb.domainserver.domain.gcone.goods.goodsinfo.vo.BOGoodsInfoVO" resultType="Integer">
|
||||
SELECT
|
||||
COUNT(1)
|
||||
FROM
|
||||
GC_GOODS_EXPSR_INFO
|
||||
WHERE
|
||||
USE_AT = 'Y'
|
||||
</select>
|
||||
<select id="selectBOGoodsInfoDtl"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.goods.goodsinfo.vo.BOGoodsInfoVO"
|
||||
resultType = "com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
GOODS_EXPSR_INFO_INNB,
|
||||
GOODS_INFO_SETUP_SJ,
|
||||
GOODS_NM_EXPSR_AT,
|
||||
GOODS_NM_EXPSR_ORDR,
|
||||
REPRSNT_DC_EXPSR_AT,
|
||||
REPRSNT_DC_EXPSR_ORDR,
|
||||
PRIC_EXPSR_AT,
|
||||
PRIC_EXPSR_ORDR,
|
||||
DLVY_EXPSR_AT,
|
||||
DLVY_EXPSR_ORDR,
|
||||
RVW_EVL_SCRE_EXPSR_AT,
|
||||
RVW_EVL_SCRE_EXPSR_ORDR,
|
||||
ICON_EXPSR_AT,
|
||||
ICON_EXPSR_ORDR,
|
||||
REGUSR,
|
||||
REGIST_DT,
|
||||
UPDUSR,
|
||||
UPDT_DT
|
||||
FROM
|
||||
GC_GOODS_EXPSR_INFO
|
||||
WHERE
|
||||
1=1
|
||||
AND
|
||||
SOPMAL_CD = #{sopmalCd}
|
||||
</select>
|
||||
<!-- 상품 정보 등록 -->
|
||||
<insert id="insertBOGoodsInfo"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.goods.goodsinfo.vo.BOGoodsInfoVO" >
|
||||
<selectKey keyProperty = "goodsExpsrInfoInnb" resultType = "String" order="BEFORE">
|
||||
SELECT IFNULL(MAX(GOODS_EXPSR_INFO_INNB),0) + 1
|
||||
FROM GC_GOODS_EXPSR_INFO
|
||||
</selectKey>
|
||||
INSERT
|
||||
INTO
|
||||
GC_GOODS_EXPSR_INFO (
|
||||
GOODS_EXPSR_INFO_INNB,
|
||||
SOPMAL_CD,
|
||||
GOODS_INFO_SETUP_SJ,
|
||||
<if test="goodsNmExpsrAt != null and goodsNmExpsrAt != ''">
|
||||
GOODS_NM_EXPSR_AT,
|
||||
</if>
|
||||
<if test="goodsNmExpsrOrdr != null and goodsNmExpsrOrdr != ''">
|
||||
GOODS_NM_EXPSR_ORDR,
|
||||
</if>
|
||||
<if test="reprsntDcExpsrAt != null and reprsntDcExpsrAt != ''">
|
||||
REPRSNT_DC_EXPSR_AT,
|
||||
</if>
|
||||
<if test="reprsntDcExpsrOrdr != null and reprsntDcExpsrOrdr != ''">
|
||||
REPRSNT_DC_EXPSR_ORDR,
|
||||
</if>
|
||||
<if test="pricExpsrAt != null and pricExpsrAt != ''">
|
||||
PRIC_EXPSR_AT,
|
||||
</if>
|
||||
<if test="pricExpsrOrdr != null and pricExpsrOrdr != ''">
|
||||
PRIC_EXPSR_ORDR,
|
||||
</if>
|
||||
<if test="dlvyExpsrAt != null and dlvyExpsrAt != ''">
|
||||
DLVY_EXPSR_AT,
|
||||
</if>
|
||||
<if test="dlvyExpsrOrdr != null and dlvyExpsrOrdr != ''">
|
||||
DLVY_EXPSR_ORDR,
|
||||
</if>
|
||||
<if test="rvwEvlScreExpsrAt != null and rvwEvlScreExpsrAt != ''">
|
||||
RVW_EVL_SCRE_EXPSR_AT,
|
||||
</if>
|
||||
<if test="rvwEvlScreExpsrOrdr != null and rvwEvlScreExpsrOrdr != ''">
|
||||
RVW_EVL_SCRE_EXPSR_ORDR,
|
||||
</if>
|
||||
<if test="iconExpsrAt != null and iconExpsrAt != ''">
|
||||
ICON_EXPSR_AT,
|
||||
</if>
|
||||
<if test="iconExpsrOrdr != null and iconExpsrOrdr != ''">
|
||||
ICON_EXPSR_ORDR,
|
||||
</if>
|
||||
USE_AT,
|
||||
REGUSR,
|
||||
REGIST_DT,
|
||||
UPDUSR,
|
||||
UPDT_DT
|
||||
)
|
||||
VALUES (
|
||||
#{goodsExpsrInfoInnb},
|
||||
#{sopmalCd},
|
||||
#{goodsInfoSetupSj},
|
||||
<if test="goodsNmExpsrAt != null and goodsNmExpsrAt != ''">
|
||||
#{goodsNmExpsrAt},
|
||||
</if>
|
||||
<if test="goodsNmExpsrOrdr != null and goodsNmExpsrOrdr != ''">
|
||||
#{goodsNmExpsrOrdr},
|
||||
</if>
|
||||
<if test="reprsntDcExpsrAt != null and reprsntDcExpsrAt != ''">
|
||||
#{reprsntDcExpsrAt},
|
||||
</if>
|
||||
<if test="reprsntDcExpsrOrdr != null and reprsntDcExpsrOrdr != ''">
|
||||
#{reprsntDcExpsrOrdr},
|
||||
</if>
|
||||
<if test="pricExpsrAt != null and pricExpsrAt != ''">
|
||||
#{pricExpsrAt},
|
||||
</if>
|
||||
<if test="pricExpsrOrdr != null and pricExpsrOrdr != ''">
|
||||
#{pricExpsrOrdr},
|
||||
</if>
|
||||
<if test="dlvyExpsrAt != null and dlvyExpsrAt != ''">
|
||||
#{dlvyExpsrAt},
|
||||
</if>
|
||||
<if test="dlvyExpsrOrdr != null and dlvyExpsrOrdr != ''">
|
||||
#{dlvyExpsrOrdr},
|
||||
</if>
|
||||
<if test="rvwEvlScreExpsrAt != null and rvwEvlScreExpsrAt != ''">
|
||||
#{rvwEvlScreExpsrAt},
|
||||
</if>
|
||||
<if test="rvwEvlScreExpsrOrdr != null and rvwEvlScreExpsrOrdr != ''">
|
||||
#{rvwEvlScreExpsrOrdr},
|
||||
</if>
|
||||
<if test="iconExpsrAt != null and iconExpsrAt != ''">
|
||||
#{iconExpsrAt},
|
||||
</if>
|
||||
<if test="iconExpsrOrdr != null and iconExpsrOrdr != ''">
|
||||
#{iconExpsrOrdr},
|
||||
</if>
|
||||
#{useAt},
|
||||
#{regusr},
|
||||
now(),
|
||||
#{regusr},
|
||||
now()
|
||||
)
|
||||
</insert>
|
||||
<!-- 상품 정보 수정 -->
|
||||
<update id="updateBOGoodsInfoDtl"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.bbs.bbs.vo.BOBbsVO">
|
||||
UPDATE
|
||||
GC_GOODS_EXPSR_INFO
|
||||
SET
|
||||
GOODS_INFO_SETUP_SJ = #{goodsInfoSetupSj},
|
||||
<if test="goodsNmExpsrAt != null and goodsNmExpsrAt != ''">
|
||||
GOODS_NM_EXPSR_AT = #{goodsNmExpsrAt},
|
||||
</if>
|
||||
<if test="goodsNmExpsrOrdr != null and goodsNmExpsrOrdr != ''">
|
||||
GOODS_NM_EXPSR_ORDR = #{goodsNmExpsrOrdr},
|
||||
</if>
|
||||
<if test="reprsntDcExpsrAt != null and reprsntDcExpsrAt != ''">
|
||||
REPRSNT_DC_EXPSR_AT = #{reprsntDcExpsrAt},
|
||||
</if>
|
||||
<if test="reprsntDcExpsrOrdr != null and reprsntDcExpsrOrdr != ''">
|
||||
REPRSNT_DC_EXPSR_ORDR = #{reprsntDcExpsrOrdr},
|
||||
</if>
|
||||
<if test="pricExpsrAt != null and pricExpsrAt != ''">
|
||||
PRIC_EXPSR_AT = #{pricExpsrAt},
|
||||
</if>
|
||||
<if test="pricExpsrOrdr != null and pricExpsrOrdr != ''">
|
||||
PRIC_EXPSR_ORDR = #{pricExpsrOrdr},
|
||||
</if>
|
||||
<if test="dlvyExpsrAt != null and dlvyExpsrAt != ''">
|
||||
DLVY_EXPSR_AT = #{dlvyExpsrAt},
|
||||
</if>
|
||||
<if test="dlvyExpsrOrdr != null and dlvyExpsrOrdr != ''">
|
||||
DLVY_EXPSR_ORDR = #{dlvyExpsrOrdr},
|
||||
</if>
|
||||
<if test="rvwEvlScreExpsrAt != null and rvwEvlScreExpsrAt != ''">
|
||||
RVW_EVL_SCRE_EXPSR_AT = #{rvwEvlScreExpsrAt},
|
||||
</if>
|
||||
<if test="rvwEvlScreExpsrOrdr != null and rvwEvlScreExpsrOrdr != ''">
|
||||
RVW_EVL_SCRE_EXPSR_ORDR = #{rvwEvlScreExpsrOrdr},
|
||||
</if>
|
||||
<if test="iconExpsrAt != null and iconExpsrAt != ''">
|
||||
ICON_EXPSR_AT = #{iconExpsrAt},
|
||||
</if>
|
||||
<if test="iconExpsrOrdr != null and iconExpsrOrdr != ''">
|
||||
ICON_EXPSR_ORDR = #{iconExpsrOrdr},
|
||||
</if>
|
||||
UPDUSR = #{updusr},
|
||||
UPDT_DT = now()
|
||||
WHERE
|
||||
1=1
|
||||
AND
|
||||
GOODS_EXPSR_INFO_INNB = #{goodsExpsrInfoInnb}
|
||||
</update>
|
||||
<!-- 상품정보 삭제 -->
|
||||
<update id="updateBOGoodsInfoDel"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.goods.goodsinfo.vo.BOGoodsInfoVO">
|
||||
UPDATE
|
||||
GC_GOODS_EXPSR_INFO
|
||||
SET
|
||||
USE_AT = 'N'
|
||||
WHERE
|
||||
1=1
|
||||
AND
|
||||
GOODS_EXPSR_INFO_INNB = #{goodsExpsrInfoInnb}
|
||||
|
||||
|
||||
</update>
|
||||
<!-- 상품정보 삭제 -->
|
||||
<!-- <delete id="deleteBOGoodsInfo"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.goods.goodsinfo.vo.BOGoodsInfoVO">
|
||||
DELETE FROM
|
||||
GC_GOODS_EXPSR_INFO
|
||||
WHERE
|
||||
1=1
|
||||
AND
|
||||
GOODS_EXPSR_INFO_INNB = #{goodsExpsrInfoInnb}
|
||||
|
||||
|
||||
</delete> -->
|
||||
|
||||
<select id="selectBOGoodsInfoListNotLimit" resultType = "DataMap">
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT
|
||||
CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM, BM.*
|
||||
FROM (
|
||||
SELECT
|
||||
GOODS_EXPSR_INFO_INNB,
|
||||
GOODS_INFO_SETUP_SJ,
|
||||
GOODS_NM_EXPSR_AT,
|
||||
GOODS_NM_EXPSR_ORDR,
|
||||
REPRSNT_DC_EXPSR_AT,
|
||||
REPRSNT_DC_EXPSR_ORDR,
|
||||
PRIC_EXPSR_AT,
|
||||
PRIC_EXPSR_ORDR,
|
||||
DLVY_EXPSR_AT,
|
||||
DLVY_EXPSR_ORDR,
|
||||
RVW_EVL_SCRE_EXPSR_AT,
|
||||
RVW_EVL_SCRE_EXPSR_ORDR,
|
||||
ICON_EXPSR_AT,
|
||||
ICON_EXPSR_ORDR,
|
||||
REGUSR,
|
||||
REGIST_DT,
|
||||
UPDUSR,
|
||||
UPDT_DT
|
||||
FROM
|
||||
GC_GOODS_EXPSR_INFO
|
||||
WHERE
|
||||
USE_AT = 'Y'
|
||||
) BM
|
||||
WHERE
|
||||
(@ROWNUM:=0)=0
|
||||
ORDER BY RNUM DESC
|
||||
) PV
|
||||
WHERE 1=1
|
||||
</select>
|
||||
</mapper>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,87 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.login.mapper.LoginMapper">
|
||||
|
||||
|
||||
<!--회원 정보조회-->
|
||||
<select id="selectMbrInfo" parameterType="com.wb.domainserver.domain.gcone.login.vo.LoginRequest" resultType="com.wb.domainserver.domain.gcone.login.vo.LoginUser">
|
||||
SELECT GM.MBR_INNB AS USER_INNB
|
||||
, GM.MBR_ID AS USER_ID
|
||||
, GM.MBR_DV_CD
|
||||
, GM.MBR_NM AS USER_NAME
|
||||
, GM.MBTLNB
|
||||
, GM.MBR_PASSWORD AS PASSWORD
|
||||
, #{sopmalCd} AS SOPMAL_CD
|
||||
, '01' AS SYS_DV_CD
|
||||
FROM GC_MEMBER GM
|
||||
WHERE 1=1
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(username)">
|
||||
AND GM.MBR_ID = #{username}
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(userInnb) and userInnb != 0 ">
|
||||
AND GM.MBR_INNB = #{userInnb}
|
||||
</if>
|
||||
AND GM.USE_AT = 'Y'
|
||||
AND GM.MBR_DV_CD = #{mbrDvCd}
|
||||
</select>
|
||||
|
||||
<!--회원 마지막 로그인일시 업데이트 -->
|
||||
<update id="updateMbrLastLoginDt" parameterType="com.wb.domainserver.domain.gcone.login.vo.LoginUser">
|
||||
UPDATE GC_MEMBER_SITE
|
||||
SET VISIT_CNT = VISIT_CNT+1
|
||||
, LAST_LOGIN_DT = NOW()
|
||||
, FRST_LOGIN_DT = CASE WHEN FRST_LOGIN_DT IS NULL THEN NOW() ELSE FRST_LOGIN_DT END
|
||||
WHERE MBR_INNB = #{userInnb}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
|
||||
</update>
|
||||
|
||||
<!--관리자 정보조회-->
|
||||
<select id="selectMngrInfo" parameterType="com.wb.domainserver.domain.gcone.login.vo.LoginRequest" resultType="com.wb.domainserver.domain.gcone.login.vo.LoginUser">
|
||||
SELECT
|
||||
MNGR_INNB AS USER_INNB
|
||||
,MNGR_NM AS USER_NAME
|
||||
,MNGR_ID AS USER_ID
|
||||
,PASSWORD
|
||||
,PARTNM
|
||||
,EMAIL
|
||||
,TELNB
|
||||
,MBTLNB
|
||||
, MNGR_DV
|
||||
,(SELECT SYS_DV_CD FROM site WHERE #{accessUrl} LIKE CONCAT('%',URL,'%')) AS SYS_DV_CD
|
||||
,#{sopmalCd} AS SOPMAL_CD
|
||||
FROM GC_MANAGER
|
||||
WHERE 1=1
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(username)">
|
||||
AND MNGR_ID = #{username}
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(userInnb) and userInnb != 0 ">
|
||||
AND MNGR_INNB = #{userInnb}
|
||||
</if>
|
||||
AND MNGR_STTUS_CD = '01'
|
||||
</select>
|
||||
|
||||
<!--관리자 마지막 로그인일시 업데이트 -->
|
||||
<update id="updateMngrLastLoginDt" parameterType="com.wb.domainserver.domain.gcone.login.vo.LoginUser">
|
||||
UPDATE GC_MANAGER
|
||||
SET LAST_CONECT_DT = NOW()
|
||||
WHERE MNGR_ID = #{userId}
|
||||
</update>
|
||||
|
||||
<!--관리자 접속이력 저장-->
|
||||
<insert id="insertMngrConectLog" parameterType="com.wb.domainserver.domain.gcone.login.vo.LoginUser">
|
||||
INSERT INTO
|
||||
GC_MANAGER_CONECT_LOG
|
||||
(MNGR_INNB
|
||||
, CONECT_IP
|
||||
, CONECT_BRWSR
|
||||
, CONECT_DT)
|
||||
VALUES (
|
||||
#{userInnb} -- 관리자 고유번호
|
||||
, #{conectIp} -- 접속IP
|
||||
, #{conectBrwsr} -- 접속 브라우저
|
||||
,NOW() -- 접속일시
|
||||
)
|
||||
|
||||
</insert>
|
||||
</mapper>
|
||||
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.wb.domainserver.domain.gcone.markt.markt.mapper.BOMarktMapper"></mapper>
|
||||
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.match.mapper.BOMatchMemberMapper">
|
||||
|
||||
<resultMap id="matchMemberResultMap" type="com.wb.domainserver.domain.gcone.match.vo.BOMatchMemberVO">
|
||||
<result property="mbtlnb" column="MBTLNB"/>
|
||||
<result property="mbrInnb" column="MBR_INNB"/>
|
||||
<result property="cnt" column="cnt"/>
|
||||
<result property="joinMthCd" column="JOIN_MTH_CD"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="selectMatchMember" resultMap="matchMemberResultMap">
|
||||
SELECT
|
||||
MBTLNB,
|
||||
MIN(MBR_INNB) AS MBR_INNB,
|
||||
SUM(cnt) AS cnt
|
||||
FROM (
|
||||
SELECT REPLACE(AES_DECRYPT(UNHEX(M.MBTLNB), #{secretKey}), '-', '') AS MBTLNB,
|
||||
M.MBR_INNB AS MBR_INNB,
|
||||
COUNT(O.ORDR_INNB) AS cnt
|
||||
FROM GC_MEMBER M
|
||||
LEFT JOIN GC_ORDER O
|
||||
ON O.MBR_INNB = M.MBR_INNB
|
||||
AND O.MBR_DV_CD = (SELECT CASE WHEN SOPMAL_TY_CD = '02' THEN SOPMAL_CD ELSE 'GC' END FROM GC_SHOP WHERE SOPMAL_CD = #{sopmalCd})
|
||||
AND O.ORDR_STTUS_CD BETWEEN 25 AND 75
|
||||
WHERE M.USE_AT = 'Y'
|
||||
AND M.MBTLNB IN
|
||||
<foreach item="item" collection="telnbList" open="(" separator="," close=")">
|
||||
HEX(AES_ENCRYPT(REPLACE(#{item}, '-', ''), #{secretKey}))
|
||||
</foreach>
|
||||
AND M.MBR_DV_CD = (SELECT CASE WHEN SOPMAL_TY_CD = '02' THEN SOPMAL_CD ELSE 'GC' END FROM GC_SHOP WHERE SOPMAL_CD = #{sopmalCd})
|
||||
GROUP BY MBTLNB, MBR_INNB
|
||||
) T
|
||||
GROUP BY MBTLNB
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
|
||||
4550
src/main/resources/mybatis/xml/mapper/gcone/mbr/mbr/BOMbrMapper.xml
Normal file
4550
src/main/resources/mybatis/xml/mapper/gcone/mbr/mbr/BOMbrMapper.xml
Normal file
File diff suppressed because it is too large
Load Diff
2102
src/main/resources/mybatis/xml/mapper/gcone/mbr/mlg/BOMlgMapper.xml
Normal file
2102
src/main/resources/mybatis/xml/mapper/gcone/mbr/mlg/BOMlgMapper.xml
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,443 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.mngrstr.mapper.BOMngrStrMapper">
|
||||
|
||||
<!-- 공통코드 조회 -->
|
||||
<select id = "selectBOMngrStrComnCd"
|
||||
parameterType="java.lang.String"
|
||||
resultType = "dataMap">
|
||||
<![CDATA[
|
||||
SELECT CD,
|
||||
CD_NM,
|
||||
CD_DV
|
||||
FROM GC_CODE
|
||||
WHERE GROUP_CD = #{param}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 매장 검색 조건 WHERE -->
|
||||
<sql id="mngrStrListWhere">
|
||||
<![CDATA[
|
||||
WHERE 1 = 1
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(manageCpr)">
|
||||
<![CDATA[
|
||||
AND gs.MANAGE_CPR = #{manageCpr}
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(reprsntBrand)">
|
||||
<![CDATA[
|
||||
AND gs.REPRSNT_BRAND = #{reprsntBrand}
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(trtmntBrand)">
|
||||
<![CDATA[
|
||||
AND (
|
||||
]]>
|
||||
<foreach collection="trtmntBrand" item="trtmntBrand" open="" separator="OR" close="">
|
||||
<![CDATA[
|
||||
gs.TRTMNT_BRAND LIKE CONCAT('%', #{trtmntBrand}, '%')
|
||||
]]>
|
||||
</foreach>
|
||||
<![CDATA[
|
||||
)
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(strEstblDvCd)">
|
||||
<![CDATA[
|
||||
AND gs.STR_ESTBL_DV_CD IN
|
||||
]]>
|
||||
<foreach collection="strEstblDvCd" item="strEstblDvCd" open="(" separator="," close=")">
|
||||
<![CDATA[
|
||||
#{strEstblDvCd}
|
||||
]]>
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(strOperDv)">
|
||||
<![CDATA[
|
||||
AND gs.STR_OPER_DV IN
|
||||
]]>
|
||||
<foreach collection="strOperDv" item="strOperDv" open="(" separator="," close=")">
|
||||
<![CDATA[
|
||||
#{strOperDv}
|
||||
]]>
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(tentSttus)">
|
||||
<![CDATA[
|
||||
AND gs.TENT_STTUS IN
|
||||
]]>
|
||||
<foreach collection="tentSttus" item="tentSttus" open="(" separator="," close=")">
|
||||
<![CDATA[
|
||||
#{tentSttus}
|
||||
]]>
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(posCdDvVal)">
|
||||
<![CDATA[
|
||||
AND gs.POS_CD_DV_VAL = #{posCdDvVal}
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(posCdPassivInputVal)">
|
||||
<![CDATA[
|
||||
AND gs.pos_Cd_Passiv_Input_Val = #{posCdPassivInputVal}
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(tentcpnNm)">
|
||||
<![CDATA[
|
||||
AND gs.TENTCPN_NM like CONCAT('%', #{tentcpnNm}, '%')
|
||||
]]>
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
<!-- 매장 개수 조회 -->
|
||||
<select id = "selectBOMngrStrListCnt"
|
||||
parameterType="com.wb.domainserver.domain.gcone.mngrstr.vo.BOMngrStrVO"
|
||||
resultType = "java.lang.Integer">
|
||||
<![CDATA[
|
||||
SELECT COUNT(1)
|
||||
FROM GC_STORE gs
|
||||
]]>
|
||||
<include refid="mngrStrListWhere"/>
|
||||
</select>
|
||||
|
||||
<!-- 매장 목록 조회 -->
|
||||
<select id = "selectBOMngrStrListInqire"
|
||||
parameterType="com.wb.domainserver.domain.gcone.mngrstr.vo.BOMngrStrVO"
|
||||
resultType = "dataMap">
|
||||
<![CDATA[
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM,
|
||||
TB.*
|
||||
FROM (
|
||||
SELECT gs.STR_INNB,
|
||||
FN_GET_COMMCODE_NAME('MANAGE_CPR', gs.MANAGE_CPR) AS MANAGE_CPR,
|
||||
FN_GET_COMMCODE_NAME('REPRSNT_BRAND', gs.REPRSNT_BRAND) AS REPRSNT_BRAND,
|
||||
GROUP_CONCAT(gc.CD_NM ORDER BY FIND_IN_SET(gc.CD, REPLACE(gs.TRTMNT_BRAND, '/', ',')) SEPARATOR '/') AS TRTMNT_BRAND,
|
||||
FN_GET_COMMCODE_NAME('STR_DV', gs.STR_OPER_DV) AS STR_OPER_DV,
|
||||
TENT_STTUS AS TENT_STTUS_CD,
|
||||
FN_GET_COMMCODE_NAME('TENT_STTUS', gs.TENT_STTUS) AS TENT_STTUS,
|
||||
DATE_FORMAT(gs.OPBIZ_DE, '%Y-%m-%d') AS OPBIZ_DE,
|
||||
DATE_FORMAT(gs.CLSTR_DE, '%Y-%m-%d') AS CLSTR_DE,
|
||||
gs.POS_CD_DV_VAL,
|
||||
gs.POS_CD_PASSIV_INPUT_VAL,
|
||||
gs.TENTCPN_ID,
|
||||
gs.TENTCPN_NM,
|
||||
gs.REGIST_DT
|
||||
FROM GC_STORE gs
|
||||
LEFT JOIN GC_CODE gc
|
||||
ON FIND_IN_SET(gc.CD, REPLACE(gs.TRTMNT_BRAND, '/', ',')) > 0
|
||||
AND gc.GROUP_CD = 'TRTMNT_BRAND'
|
||||
]]>
|
||||
<include refid="mngrStrListWhere"/>
|
||||
<![CDATA[
|
||||
GROUP BY gs.STR_INNB,
|
||||
MANAGE_CPR,
|
||||
REPRSNT_BRAND,
|
||||
gs.TRTMNT_BRAND,
|
||||
STR_OPER_DV,
|
||||
TENT_STTUS_CD,
|
||||
TENT_STTUS,
|
||||
OPBIZ_DE,
|
||||
CLSTR_DE,
|
||||
gs.POS_CD_DV_VAL,
|
||||
gs.POS_CD_PASSIV_INPUT_VAL,
|
||||
gs.TENTCPN_ID,
|
||||
gs.TENTCPN_NM
|
||||
) TB
|
||||
WHERE (@rownum:=0)=0
|
||||
ORDER BY
|
||||
]]>
|
||||
<choose>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(sortDv)">
|
||||
<![CDATA[
|
||||
TB.REGIST_DT DESC
|
||||
]]>
|
||||
</when>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(sortDv, 'registDt')">
|
||||
<![CDATA[
|
||||
TB.REGIST_DT DESC
|
||||
]]>
|
||||
</when>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(sortDv, 'tentcpnNm')">
|
||||
<![CDATA[
|
||||
TB.TENTCPN_NM ASC
|
||||
]]>
|
||||
</when>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(sortDv, 'tentcpnId')">
|
||||
<![CDATA[
|
||||
TB.TENTCPN_ID ASC
|
||||
]]>
|
||||
</when>
|
||||
</choose>
|
||||
<![CDATA[
|
||||
) PV
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 매장 상세 조회 -->
|
||||
<select id = "selectBOMngrStrDtlInqire"
|
||||
parameterType="com.wb.domainserver.domain.gcone.mngrstr.vo.BOMngrStrVO"
|
||||
resultType = "dataMap">
|
||||
<![CDATA[
|
||||
SELECT gs.STR_INNB,
|
||||
-- 기본정보
|
||||
DATE_FORMAT(gs.REGIST_DT, '%Y-%m-%d %H:%i:%s') AS REGIST_DT,
|
||||
DATE_FORMAT(gs.LAST_LOGIN_DT, '%Y-%m-%d %H:%i:%s') AS LAST_LOGIN_DT,
|
||||
FN_GET_COMMCODE_NAME('MANAGE_CPR', gs.MANAGE_CPR) AS MANAGE_CPR,
|
||||
gs.MANAGE_CPR AS MANAGE_CPR_CD,
|
||||
FN_GET_COMMCODE_NAME('REPRSNT_BRAND', gs.REPRSNT_BRAND) AS REPRSNT_BRAND,
|
||||
gs.REPRSNT_BRAND AS REPRSNT_BRAND_CD,
|
||||
GROUP_CONCAT(gc.CD_NM ORDER BY FIND_IN_SET(gc.CD, REPLACE(gs.TRTMNT_BRAND, '/', ',')) SEPARATOR ' ■') AS TRTMNT_BRAND,
|
||||
FN_GET_COMMCODE_NAME('POS_HDQRTRS', gs.POS_CD_DV_VAL) AS POS_HDQRTRS,
|
||||
gs.POS_CD_DV_VAL,
|
||||
gs.POS_CD_PASSIV_INPUT_VAL,
|
||||
gs.STR_CD,
|
||||
FN_GET_COMMCODE_NAME('STR_ESTBL_DV', gs.STR_ESTBL_DV_CD) AS STR_ESTBL_DV_CD,
|
||||
FN_GET_COMMCODE_NAME('STR_DV', gs.STR_OPER_DV) AS STR_OPER_DV,
|
||||
FN_GET_COMMCODE_NAME('STR_KND', gs.DV) AS DV,
|
||||
FN_GET_COMMCODE_NAME('STR_KND_STTUS', gs.STR_KND_DTL) AS STR_KND_DTL,
|
||||
gs.SITE_EXPSR_AT,
|
||||
FN_GET_COMMCODE_NAME('TENT_STTUS', gs.TENT_STTUS) AS TENT_STTUS,
|
||||
DATE_FORMAT(gs.OPBIZ_DE, '%Y-%m-%d') AS OPBIZ_DE,
|
||||
DATE_FORMAT(gs.CLSTR_DE, '%Y-%m-%d') AS CLSTR_DE,
|
||||
gs.AW_LOGIN_AT,
|
||||
gs.TENTCPN_NM,
|
||||
gs.STR_NM,
|
||||
gs.TENTCPN_ID,
|
||||
gs.TENTCPN_PASSWORD,
|
||||
-- 매장정보
|
||||
gs.CHR_DSPTCH_NB,
|
||||
gs.STR_TELNB,
|
||||
gs.LOC,
|
||||
gs.CTY_DO,
|
||||
gs.CTY_GUN_GU,
|
||||
gs.STR_ADRES_DV,
|
||||
gs.STR_ZIP,
|
||||
gs.STR_ADRES,
|
||||
gs.STR_RNM_ADRES,
|
||||
gs.STR_DTL_ADRES,
|
||||
-- 지도
|
||||
gs.LA,
|
||||
gs.LO,
|
||||
gs.HTGH_PBTRNSP,
|
||||
gs.HTGH_PVTCAR,
|
||||
gs.HVOF_DE,
|
||||
gs.HVOF_DE_ADIT,
|
||||
gs.BSN_TME,
|
||||
-- 매장이미지
|
||||
gs.STR_REPRSNT_IMG,
|
||||
gs.STR_DTL_IMG,
|
||||
-- 사업자정보
|
||||
gs.ENTRPS_NM,
|
||||
gs.BSNM_NB,
|
||||
gs.REPRSNTVNM,
|
||||
FN_GET_COMMCODE_NAME('INDVDL_CPR_DV', gs.INDVDL_CPR_DV) AS INDVDL_CPR_DV,
|
||||
gs.BIZCND_INDUTY,
|
||||
gs.SVC,
|
||||
-- 사업자등록증 사본
|
||||
gs.ADRES_DV,
|
||||
gs.ENTRPS_ZIP,
|
||||
gs.ENTRPS_ADRES,
|
||||
gs.RNM_ADRES,
|
||||
gs.ENTRPS_DTL_ADRES,
|
||||
gs.COMM_SLE_DCL_NB,
|
||||
gs.SELER_TELNB,
|
||||
gs.SELER_EMAIL,
|
||||
gs.SELER_FAX,
|
||||
-- 대표자정보
|
||||
gs.REPRSNTV_INFO_REPRSNTVNM,
|
||||
gs.REPRSNTV_INFO_TELNB,
|
||||
gs.REPRSNTV_INFO_ADRES_DV,
|
||||
gs.REPRSNTV_INFO_ZIP,
|
||||
gs.REPRSNTV_INFO_ADRES,
|
||||
gs.REPRSNTV_INFO_RNM_ADRES,
|
||||
gs.REPRSNTV_INFO_DTL_ADRES,
|
||||
-- 고정지출비용
|
||||
gs.FIXING_EXPNDTR_RNTCHRG,
|
||||
gs.FIXING_EXPNDTR_MANAGECT,
|
||||
gs.FIXING_EXPNDTR_RYALTY,
|
||||
gs.FIXING_EXPNDTR_SYS_RNTFEE,
|
||||
gs.FIXING_EXPNDTR_LBCT,
|
||||
gs.FIXING_EXPNDTR_CARD_FEE,
|
||||
gs.FIXING_EXPNDTR_PRCT,
|
||||
gs.FIXING_EXPNDTR_STR_OPERCT,
|
||||
-- 처리내역
|
||||
gs.UPDT_DTLS
|
||||
FROM GC_STORE gs
|
||||
LEFT JOIN GC_CODE gc
|
||||
ON FIND_IN_SET(gc.CD, REPLACE(gs.TRTMNT_BRAND, '/', ',')) > 0
|
||||
AND gc.GROUP_CD = 'TRTMNT_BRAND'
|
||||
WHERE 1 = 1
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(strInnb)">
|
||||
<![CDATA[
|
||||
AND gs.STR_INNB = #{strInnb}
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(posCdPassivInputVal)">
|
||||
<![CDATA[
|
||||
AND CONCAT(gs.POS_CD_DV_VAL, gs.POS_CD_PASSIV_INPUT_VAL) = #{posCdPassivInputVal}
|
||||
]]>
|
||||
</if>
|
||||
<![CDATA[
|
||||
GROUP BY gs.STR_INNB,
|
||||
-- 기본정보
|
||||
REGIST_DT,
|
||||
LAST_LOGIN_DT,
|
||||
MANAGE_CPR,
|
||||
REPRSNT_BRAND,
|
||||
TRTMNT_BRAND,
|
||||
POS_HDQRTRS,
|
||||
gs.POS_CD_DV_VAL,
|
||||
gs.POS_CD_PASSIV_INPUT_VAL,
|
||||
gs.STR_CD,
|
||||
STR_ESTBL_DV_CD,
|
||||
STR_OPER_DV,
|
||||
DV,
|
||||
STR_KND_DTL,
|
||||
gs.SITE_EXPSR_AT,
|
||||
TENT_STTUS,
|
||||
OPBIZ_DE,
|
||||
CLSTR_DE,
|
||||
gs.AW_LOGIN_AT,
|
||||
gs.TENTCPN_NM,
|
||||
gs.STR_NM,
|
||||
gs.TENTCPN_ID,
|
||||
-- 매장정보
|
||||
gs.CHR_DSPTCH_NB,
|
||||
gs.STR_TELNB,
|
||||
gs.LOC,
|
||||
gs.CTY_DO,
|
||||
gs.CTY_GUN_GU,
|
||||
gs.STR_ADRES_DV,
|
||||
gs.STR_ZIP,
|
||||
gs.STR_ADRES,
|
||||
gs.STR_RNM_ADRES,
|
||||
gs.STR_DTL_ADRES,
|
||||
-- 지도
|
||||
gs.LA,
|
||||
gs.LO,
|
||||
gs.HTGH_PBTRNSP,
|
||||
gs.HTGH_PVTCAR,
|
||||
gs.HVOF_DE,
|
||||
gs.HVOF_DE_ADIT,
|
||||
gs.BSN_TME,
|
||||
-- 매장이미지
|
||||
gs.STR_REPRSNT_IMG,
|
||||
gs.STR_DTL_IMG,
|
||||
-- 사업자정보
|
||||
gs.ENTRPS_NM,
|
||||
gs.BSNM_NB,
|
||||
gs.REPRSNTVNM,
|
||||
INDVDL_CPR_DV,
|
||||
gs.BIZCND_INDUTY,
|
||||
gs.SVC,
|
||||
-- 사업자등록증 사본
|
||||
gs.ADRES_DV,
|
||||
gs.ENTRPS_ZIP,
|
||||
gs.ENTRPS_ADRES,
|
||||
gs.RNM_ADRES,
|
||||
gs.ENTRPS_DTL_ADRES,
|
||||
gs.COMM_SLE_DCL_NB,
|
||||
gs.SELER_TELNB,
|
||||
gs.SELER_EMAIL,
|
||||
gs.SELER_FAX,
|
||||
-- 대표자정보
|
||||
gs.REPRSNTV_INFO_REPRSNTVNM,
|
||||
gs.REPRSNTV_INFO_TELNB,
|
||||
gs.REPRSNTV_INFO_ADRES_DV,
|
||||
gs.REPRSNTV_INFO_ZIP,
|
||||
gs.REPRSNTV_INFO_ADRES,
|
||||
gs.REPRSNTV_INFO_RNM_ADRES,
|
||||
gs.REPRSNTV_INFO_DTL_ADRES,
|
||||
-- 고정지출비용
|
||||
gs.FIXING_EXPNDTR_RNTCHRG,
|
||||
gs.FIXING_EXPNDTR_MANAGECT,
|
||||
gs.FIXING_EXPNDTR_RYALTY,
|
||||
gs.FIXING_EXPNDTR_SYS_RNTFEE,
|
||||
gs.FIXING_EXPNDTR_LBCT,
|
||||
gs.FIXING_EXPNDTR_CARD_FEE,
|
||||
gs.FIXING_EXPNDTR_PRCT,
|
||||
gs.FIXING_EXPNDTR_STR_OPERCT,
|
||||
-- 처리내역
|
||||
gs.UPDT_DTLS
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!--매장 아이디 중복 조회 -->
|
||||
<select id = "selectBOIdDplctCnfirm"
|
||||
parameterType="com.wb.domainserver.domain.gcone.mngrstr.vo.BOMngrStrVO"
|
||||
resultType = "Integer">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
COUNT(1)
|
||||
FROM
|
||||
GC_STORE
|
||||
WHERE 1 = 1
|
||||
AND TENTCPN_ID = #{tentcpnId}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 매장 상세 수정 -->
|
||||
<update id="updateBOMngrStrDtlU"
|
||||
parameterType="com.wb.domainserver.domain.gcone.mngrstr.vo.BOMngrStrVO">
|
||||
<![CDATA[
|
||||
UPDATE
|
||||
GC_STORE
|
||||
SET
|
||||
SITE_EXPSR_AT = #{siteExpsrAt},
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(awLoginAt)">
|
||||
<![CDATA[
|
||||
AW_LOGIN_AT = #{awLoginAt},
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(changeIdAt, 'Y')">
|
||||
<![CDATA[
|
||||
TENTCPN_ID = #{tentcpnId},
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(changePasswordAt, 'Y')">
|
||||
<![CDATA[
|
||||
TENTCPN_PASSWORD = #{newPassword},
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(chrDsptchNb)">
|
||||
<![CDATA[
|
||||
CHR_DSPTCH_NB = #{chrDsptchNb},
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(strReprsntImg)">
|
||||
<![CDATA[
|
||||
STR_REPRSNT_IMG = null,
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(strReprsntImg)">
|
||||
<![CDATA[
|
||||
STR_REPRSNT_IMG = #{strReprsntImg},
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(strDtlImg)">
|
||||
<![CDATA[
|
||||
STR_DTL_IMG = null,
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(strDtlImg)">
|
||||
<![CDATA[
|
||||
STR_DTL_IMG = #{strDtlImg},
|
||||
]]>
|
||||
</if>
|
||||
<![CDATA[
|
||||
HVOF_DE = #{hvofDe},
|
||||
HVOF_DE_ADIT = #{hvofDeAdit},
|
||||
BSN_TME = #{bsnTme},
|
||||
UPDUSR = #{updusr},
|
||||
UPDT_DT = SYSDATE()
|
||||
WHERE 1 = 1
|
||||
AND STR_INNB = #{strInnb}
|
||||
]]>
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,353 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.ntcn.atmcsndng.mapper.BOAtmcSndngMapper">
|
||||
<!-- sms 발송 관리 목록 조회 FROM 절 -->
|
||||
<sql id = "SmsSndngDtlsListFrom">
|
||||
FROM GC_SMS_TO SMSTO
|
||||
INNER JOIN GC_SMS SMS
|
||||
ON SMSTO.SMS_INNB = SMS.SMS_INNB
|
||||
AND SMSTO.SOPMAL_CD = SMS.SOPMAL_CD
|
||||
</sql>
|
||||
|
||||
<!-- sms 발송 관리 목록 조회 WHERE 절 -->
|
||||
<sql id = "SmsSndngDtlsListWhere">
|
||||
<![CDATA[
|
||||
WHERE 1=1
|
||||
]]>
|
||||
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sopmalCd)">
|
||||
<![CDATA[
|
||||
AND SMS.SOPMAL_CD = #{sopmalCd}
|
||||
AND SMSTO.SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</if>
|
||||
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSopmalCd)">
|
||||
<![CDATA[
|
||||
AND SMS.SOPMAL_CD = #{srchSopmalCd}
|
||||
AND SMSTO.SOPMAL_CD = #{srchSopmalCd}
|
||||
]]>
|
||||
</if>
|
||||
<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)) = REPLACE(#{srchRecptnNb},'-','')
|
||||
]]>
|
||||
</if>
|
||||
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStr)">
|
||||
<choose>
|
||||
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchNbDv, '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(srchNbDv, 'sndngNb')">
|
||||
<![CDATA[
|
||||
AND SMS.SNDNG_NB LIKE CONCAT('%', #{srchStr}, '%')
|
||||
]]>
|
||||
</when>
|
||||
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchNbDv, 'cstmrIdnb')">
|
||||
<![CDATA[
|
||||
AND SMSTO.CSTMR_IDNB LIKE CONCAT('%', #{srchStr}, '%')
|
||||
]]>
|
||||
</when>
|
||||
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchNbDv, 'cn')">
|
||||
<![CDATA[
|
||||
AND (
|
||||
SMS.CN LIKE CONCAT('%', #{srchStr}, '%')
|
||||
OR SMSTO.SUBST_DATA 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)">
|
||||
<![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>
|
||||
<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>
|
||||
</choose>
|
||||
</if>
|
||||
<!-- 등록일 -->
|
||||
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDtDv, 'registDt')">
|
||||
<choose>
|
||||
<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>
|
||||
<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>
|
||||
</choose>
|
||||
</if>
|
||||
<choose>
|
||||
<when 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>
|
||||
</when>
|
||||
<otherwise>
|
||||
AND SMSTO.DV != 'AT'
|
||||
AND SMSTO.DV != 'AI'
|
||||
</otherwise>
|
||||
</choose>
|
||||
<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(srchRegusrDv)">
|
||||
<![CDATA[
|
||||
AND SMS.REGUSR_DV = #{srchRegusrDv}
|
||||
]]>
|
||||
</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="selectBOAtmcSndngManageListInqire"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.atmcsndng.vo.BOAtmcSndngVO"
|
||||
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 SNDNG.SOPMAL_CD = #{sopmalCd}
|
||||
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.gcone.ntcn.atmcsndng.vo.BOAtmcSndngVO">
|
||||
<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.gcone.ntcn.atmcsndng.vo.BOAtmcSndngVO">
|
||||
<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.gcone.ntcn.atmcsndng.vo.BOAtmcSndngVO">
|
||||
<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.gcone.ntcn.atmcsndng.vo.BOAtmcSndngVO">
|
||||
<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>
|
||||
<!-- sms 발송 목록 조회 -->
|
||||
<select id = "selectBOSmsSndngDtlsListInqire"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.mssage.vo.BOMssageSrchVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
ROW_NUMBER() OVER (ORDER BY SMS.SNDNG_DT, SMSTO.SMS_TO_INNB ASC) AS RNUM,
|
||||
SMS.SNDNG_NB,
|
||||
SMSTO.DV,
|
||||
DATE_FORMAT(SMS.REGIST_DT,'%Y-%m-%d %H:%i:%S') AS REGIST_DT,
|
||||
CASE
|
||||
WHEN SMS.RESVE_DT IS NULL THEN DATE_FORMAT(SMS.SNDNG_DT ,'%Y-%m-%d %H:%i:%S')
|
||||
ELSE DATE_FORMAT(SMS.RESVE_DT, '%Y-%m-%d %H:%i:%S')
|
||||
END AS SNDNG_DT, -- 예약날짜가 있을경우 예약날짜로 발송시간 표출
|
||||
CAST(AES_DECRYPT(UNHEX(SMSTO.RECPTN_NB) , '1df5be2f7e90ae36') AS CHAR(50)) AS RECPTN_NB,
|
||||
SMS.CN AS CN,
|
||||
SMS.SMS_INNB,
|
||||
SMSTO.SMS_TO_INNB,
|
||||
SMSTO.STTUS,
|
||||
SMS.SUCCES_CNT,
|
||||
SMS.FAILR_CNT,
|
||||
SMS.CHR_STTUS,
|
||||
SMS.SOPMAL_CD ,
|
||||
SMSTO.RSLT_SJ,
|
||||
SMSTO.SUBST_DATA,
|
||||
SHOP.SOPMAL_NM
|
||||
]]>
|
||||
<include refid="SmsSndngDtlsListFrom"/>
|
||||
INNER JOIN GC_SHOP SHOP
|
||||
ON SMS.SOPMAL_CD = SHOP.SOPMAL_CD
|
||||
<include refid="SmsSndngDtlsListWhere"/>
|
||||
<![CDATA[
|
||||
-- ) TB
|
||||
ORDER BY RNUM DESC
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!--sms 발송 상세 조회 -->
|
||||
<select id = "selectBOSmsSndngDtlInfo"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.mssage.vo.BOMssageSrchVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
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,
|
||||
CAST(AES_DECRYPT(UNHEX(SMSTO.RECPTN_NB) , '1df5be2f7e90ae36') AS CHAR(50)) AS RECPTN_NB,
|
||||
SMS.CN AS CN,
|
||||
SMS.SMS_INNB,
|
||||
SMSTO.SMS_TO_INNB,
|
||||
SMSTO.STTUS,
|
||||
SMS.SUCCES_CNT,
|
||||
SMS.FAILR_CNT,
|
||||
SMS.CHR_STTUS,
|
||||
SMSTO.RSLT_SJ,
|
||||
SMSTO.SUBST_DATA
|
||||
]]>
|
||||
<include refid="SmsSndngDtlsListFrom"/>
|
||||
<include refid="SmsSndngDtlsListWhere"/>
|
||||
</select>
|
||||
|
||||
<!--sms 발송 관리 건수 조회 -->
|
||||
<select id = "selectBOSmsSndngDtlsListTotCnt"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.mssage.vo.BOMssageSrchVO"
|
||||
resultType="Integer">
|
||||
<![CDATA[
|
||||
SELECT COUNT(1)
|
||||
]]>
|
||||
<include refid="SmsSndngDtlsListFrom"/>
|
||||
<include refid="SmsSndngDtlsListWhere"/>
|
||||
</select>
|
||||
|
||||
<!--sms 발송 관리 발신 목록 성공 건수 -->
|
||||
<select id = "selectBOSmsSndngresultOkCnt"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.mssage.vo.BOMssageSrchVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
COUNT(SMSTO.STTUS) OKCNT
|
||||
]]>
|
||||
<include refid="SmsSndngDtlsListFrom"/>
|
||||
<include refid="SmsSndngDtlsListWhere"/>
|
||||
<![CDATA[
|
||||
AND SMSTO.STTUS IN ('OK')
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!--sms 발송 관리 발신 목록 실패 건수 -->
|
||||
<select id = "selectBOSmsSndngresultFailCnt"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.mssage.vo.BOMssageSrchVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
COUNT(SMSTO.STTUS) FAILCNT
|
||||
]]>
|
||||
<include refid="SmsSndngDtlsListFrom"/>
|
||||
<include refid="SmsSndngDtlsListWhere"/>
|
||||
<![CDATA[
|
||||
AND SMSTO.STTUS IN ('FAIL')
|
||||
]]>
|
||||
</select>
|
||||
<!-- 자동발송 가능 시간 조회 -->
|
||||
<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>
|
||||
</mapper>
|
||||
@@ -0,0 +1,99 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.ntcn.email.mapper.BOEmailMapper">
|
||||
<!-- 이메일 발송내역 등록 -->
|
||||
<insert id="insertBOEmailSndngDtls"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.email.vo.BOEmailVO"
|
||||
useGeneratedKeys="true"
|
||||
keyProperty="emailSndngInnb">
|
||||
INSERT INTO GC_EMAIL (
|
||||
SOPMAL_CD
|
||||
, SNDNG_LC
|
||||
, SJ
|
||||
, CN
|
||||
, SNDR_EMAIL
|
||||
, RECPTN_RJCT_URL
|
||||
, REGUSR_DV
|
||||
, REGUSR
|
||||
, REGIST_DT
|
||||
)
|
||||
VALUES (
|
||||
#{sopmalCd}
|
||||
, #{sndngLc}
|
||||
, #{sj}
|
||||
, #{cn}
|
||||
, HEX(AES_ENCRYPT(#{sndrEmail}, #{secretKey}))
|
||||
, #{recptnRjctUrl}
|
||||
, #{regusrDv}
|
||||
, #{regusr}
|
||||
, SYSDATE()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 이메일 발송대상 등록 -->
|
||||
<insert id="insertBOEmailSndngTo"
|
||||
parameterType="java.util.List"
|
||||
useGeneratedKeys="true"
|
||||
keyProperty="trgetSnb">
|
||||
INSERT INTO GC_EMAIL_TO (
|
||||
EMAIL_SNDNG_INNB
|
||||
, MBR_INNB
|
||||
, RECPNT_EMAIL
|
||||
, RECPNT_NM
|
||||
, STTUS
|
||||
, SNDNG_DT
|
||||
, RSLT_CD
|
||||
)
|
||||
VALUES
|
||||
<foreach collection="list" item="dto" separator=",">
|
||||
(
|
||||
#{dto.emailSndngInnb}
|
||||
, #{dto.mbrInnb}
|
||||
, HEX(AES_ENCRYPT(#{dto.recpntEmail}, #{dto.secretKey}))
|
||||
, #{dto.recpntNm}
|
||||
, #{dto.sttus}
|
||||
, #{dto.sndngDt}
|
||||
, #{dto.rsltCd}
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<!-- 이메일 발송대상 순번 조회 -->
|
||||
<select id = "selectBOEmailSndngTrgetSnb"
|
||||
parameterType="java.lang.Integer"
|
||||
resultType="java.lang.Integer">
|
||||
<![CDATA[
|
||||
SELECT TRGET_SNB
|
||||
FROM GC_EMAIL_TO
|
||||
WHERE EMAIL_SNDNG_INNB = #{emailSndngInnb}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 이메일 발신자명(쇼핑몰 이름) 조회 -->
|
||||
<select id = "selectBOEmailSopmalNm"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.email.vo.BOEmailVO"
|
||||
resultType="java.lang.String">
|
||||
<![CDATA[
|
||||
SELECT SOPMAL_NM
|
||||
FROM GC_SHOP
|
||||
WHERE SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 이메일 발송여부 업데이트 -->
|
||||
<update id="updateBOEmailSndng"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.email.vo.BOEmailVO">
|
||||
<foreach collection="list" item="dto" separator=";">
|
||||
<![CDATA[
|
||||
UPDATE GC_EMAIL_TO
|
||||
SET
|
||||
STTUS = #{dto.sttus}
|
||||
, SNDNG_DT = SYSDATE()
|
||||
, RSLT_CD = #{dto.rsltCd}
|
||||
WHERE EMAIL_SNDNG_INNB = #{dto.emailSndngInnb}
|
||||
AND TRGET_SNB = #{dto.trgetSnb}
|
||||
]]>
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,512 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.ntcn.lgqymssage.mapper.BOLgqyMssageMapper">
|
||||
<!-- 대량 발송 관리 목록 조회 WHERE 절 -->
|
||||
<sql id="MssageLgqySndngDtlsListWhere">
|
||||
WHERE 1=1
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSmsLgqySndngInnb)">
|
||||
<![CDATA[
|
||||
AND LGQYSMS.SMS_LGQY_SNDNG_INNB = #{srchSmsLgqySndngInnb}
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchBrandCd)">
|
||||
<![CDATA[
|
||||
AND LGQYSMS.BRAND_CD = #{srchBrandCd}
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSopmalCd)">
|
||||
<![CDATA[
|
||||
AND LGQYSMS.SOPMAL_CD = #{srchSopmalCd}
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSndngCn)">
|
||||
<![CDATA[
|
||||
AND LGQYSMS.SNDNG_CN LIKE CONCAT('%', #{srchSndngCn}, '%')
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStrtRegistDt)">
|
||||
<![CDATA[
|
||||
AND DATE_FORMAT(LGQYSMS.REGIST_DT ,'%Y-%m-%d') >= #{srchStrtRegistDt}
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndRegistDt)">
|
||||
<![CDATA[
|
||||
AND DATE_FORMAT(LGQYSMS.REGIST_DT ,'%Y-%m-%d') <= #{srchEndRegistDt}
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSndngSttus)">
|
||||
<![CDATA[
|
||||
AND LGQYSMS.SNDNG_STTUS = #{srchSndngSttus}
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSndngReqstDt)">
|
||||
<![CDATA[
|
||||
AND LGQYSMS.SNDNG_REQST_DT = #{srchSndngReqstDt}
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSndngDvCd)">
|
||||
<![CDATA[
|
||||
AND LGQYSMS.SNDNG_DV_CD = #{srchSndngDvCd}
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchSndngDvCd)">
|
||||
<![CDATA[
|
||||
AND LGQYSMS.SNDNG_DV_CD <> '02' -- 소멸예정 마일리지 제외
|
||||
]]>
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
<!-- 대량메시지 쇼핑몰 정보 조회 -->
|
||||
<select id="selectBOShopInfoInqire" resultType="DataMap">
|
||||
SELECT *
|
||||
FROM GC_SHOP
|
||||
WHERE 1 = 1
|
||||
AND SOPMAL_CD = #{srchSopmalCd}
|
||||
</select>
|
||||
|
||||
<!-- 쇼핑몰 리스트 조회 -->
|
||||
<select id="selectBOShopListInqire" resultType="DataMap">
|
||||
SELECT SOPMAL_CD,
|
||||
SOPMAL_NM
|
||||
FROM GC_SHOP
|
||||
WHERE 1 = 1
|
||||
AND OPER_AT = 'Y'
|
||||
</select>
|
||||
|
||||
<!--대량 메시지 발송 관리 건수 조회 -->
|
||||
<select id="selectBOMssageLgqySndngListTotCnt"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.mssage.vo.BOLgqyMssageSrchVO"
|
||||
resultType="Integer">
|
||||
SELECT
|
||||
COUNT(1)
|
||||
FROM GC_LGQY_SMS LGQYSMS
|
||||
<include refid="MssageLgqySndngDtlsListWhere"/>
|
||||
</select>
|
||||
<!--대량 메시지 발송 내역 조회 -->
|
||||
<select id="selectBOMssageLgqySndngListInqire"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.mssage.vo.BOLgqyMssageSrchVO"
|
||||
resultType="dataMap">
|
||||
SELECT
|
||||
*
|
||||
FROM (
|
||||
SELECT
|
||||
CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM
|
||||
, TB.*
|
||||
FROM (
|
||||
SELECT
|
||||
LGQYSMS.SMS_LGQY_SNDNG_INNB,
|
||||
FN_GET_SOPMAL_NAME(LGQYSMS.SOPMAL_CD) AS BRAND_CD,
|
||||
LGQYSMS.SOPMAL_CD,
|
||||
LGQYSMS.SNDNG_SJ,
|
||||
DATE_FORMAT(LGQYSMS.REGIST_DT,'%Y-%m-%d %H:%i:%S') AS REGIST_DT,
|
||||
DATE_FORMAT(LGQYSMS.SNDNG_REQST_DT ,'%Y-%m-%d %H:%i:%S') AS SNDNG_REQST_DT,
|
||||
DATE_FORMAT(LGQYSMS.SNDNG_DT ,'%Y-%m-%d %H:%i:%S') AS SNDNG_DT,
|
||||
CONCAT(LEFT(LGQYSMS.SNDNG_CN, 30),'...') SNDNG_CN,
|
||||
LGQYSMS.ALL_CNT,
|
||||
LGQYSMS.SUCCES_CNT,
|
||||
LGQYSMS.SNDNG_STTUS,
|
||||
LGQYSMS.SNDNG_PROCS_DV_CD
|
||||
FROM GC_LGQY_SMS LGQYSMS
|
||||
<include refid="MssageLgqySndngDtlsListWhere"/>
|
||||
) TB
|
||||
WHERE (@ROWNUM:=0)=0
|
||||
) PV
|
||||
ORDER BY RNUM DESC
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
</select>
|
||||
<!-- 대량 메시지 상세 조회 -->
|
||||
<select id="selectBOMssageLgqySndngDtlInqire"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.mssage.vo.BOLgqyMssageSrchVO"
|
||||
resultType="dataMap">
|
||||
SELECT
|
||||
LGQYSMS.SMS_LGQY_SNDNG_INNB
|
||||
, LGQYSMS.SOPMAL_CD
|
||||
, LGQYSMS.BRAND_CD
|
||||
, LGQYSMS.SNDNG_SJ
|
||||
, LGQYSMS.SNDNG_CN
|
||||
, LGQYSMS.LINK_URL1
|
||||
, LGQYSMS.LINK_URL2
|
||||
, LGQYSMS.LINK_URL3
|
||||
, LGQYSMS.SNDNG_CND_PARAM
|
||||
, LGQYSMS.SNDNG_TRGET_QRY
|
||||
, DATE_FORMAT(LGQYSMS.REGIST_DT,'%Y-%m-%d %H:%i:%S') AS REGIST_DT
|
||||
, DATE_FORMAT(LGQYSMS.SNDNG_REQST_DT ,'%Y-%m-%d %H:%i:%S') AS SNDNG_REQST_DT
|
||||
, DATE_FORMAT(LGQYSMS.SNDNG_REQST_DT ,'%Y-%m-%d') AS SNDNG_REQST
|
||||
, DATE_FORMAT(LGQYSMS.SNDNG_REQST_DT ,'%H') AS SNDNG_REQST_HOUR
|
||||
, DATE_FORMAT(LGQYSMS.SNDNG_REQST_DT ,'%i') AS SNDNG_REQST_MINUTE
|
||||
, DATE_FORMAT(LGQYSMS.SNDNG_REQST_DT ,'%S') AS SNDNG_REQST_SEC
|
||||
, DATE_FORMAT(LGQYSMS.SNDNG_DT ,'%Y-%m-%d %H:%i:%S') AS SNDNG_DT
|
||||
, LGQYSMS.SNDNG_CN
|
||||
, LGQYSMS.ALL_CNT
|
||||
, LGQYSMS.SUCCES_CNT
|
||||
, LGQYSMS.SNDNG_STTUS
|
||||
, LGQYSMS.REQUSR_NM
|
||||
, LGQYSMS.SNDNG_DV_CD
|
||||
, LGQYSMS.FIL_COURS
|
||||
, LGQYSMS.ORGINL_FIL_NM
|
||||
, LGQYSMS.SYS_FIL_NM
|
||||
, LGQYSMS.LANDING_TY
|
||||
, LGQYSMS.LANDING_USE_AT
|
||||
, LGQYSMS.LANDING_POSITION
|
||||
, LGQYSMS.RECPNT_DV
|
||||
, (SELECT REPLACE(MBL_DOMN_ADRES, 'http://', '') FROM GC_SHOP SHOP WHERE SHOP.SOPMAL_CD = LGQYSMS.SOPMAL_CD) AS URL
|
||||
, FN_GET_COMMCODE_NAME('SNDNG_DV', LGQYSMS.SNDNG_DV_CD) AS SNDNG_DV_CD_NM
|
||||
FROM GC_LGQY_SMS LGQYSMS
|
||||
WHERE LGQYSMS.SMS_LGQY_SNDNG_INNB = #{srchSmsLgqySndngInnb}
|
||||
</select>
|
||||
<!-- 대량 메시지 대상 조회 -->
|
||||
<select id="selectBOMssageLgqySndngToInqire"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.lgqymssage.vo.BOLgqyMssageSrchVO"
|
||||
resultType="dataMap">
|
||||
SELECT SMS_LGQY_SNDNG_INNB
|
||||
, LGQY_SNDNG_TRGET_INNB
|
||||
, MNGR_INNB
|
||||
, CAST(AES_DECRYPT(UNHEX(MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)) AS MBTLNB
|
||||
, NM
|
||||
, MBR_ID
|
||||
, STTUS
|
||||
, SUBST_CHR_1
|
||||
, SUBST_CHR_2
|
||||
, SUBST_CHR_3
|
||||
, SUBST_CHR_4
|
||||
, SUBST_CHR_5
|
||||
FROM GC_LGQY_SMS_TO LGQYSMSTO
|
||||
WHERE 1 = 1
|
||||
AND SMS_LGQY_SNDNG_INNB = #{srchSmsLgqySndngInnb}
|
||||
</select>
|
||||
|
||||
<!-- 대량 메시지 발송내역 등록 -->
|
||||
<insert id="insertBOMssageLgqySndngRegist"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.lgqymssage.vo.BOLgqyMssageVO"
|
||||
keyProperty="smsLgqySndngInnb" useGeneratedKeys="true">
|
||||
INSERT INTO GC_LGQY_SMS (
|
||||
SOPMAL_CD
|
||||
, BRAND_CD
|
||||
, SNDNG_SJ
|
||||
, SNDNG_CN
|
||||
, SNDNG_PROCS_DV_CD
|
||||
, SNDNG_CND_PARAM
|
||||
, SNDNG_TRGET_QRY
|
||||
, RECPNT_DV
|
||||
, CALL_PGE_USE_AT
|
||||
, LINK_URL1
|
||||
, LINK_URL2
|
||||
, LINK_URL3
|
||||
, SNDNG_REQST_DT
|
||||
, SNDNG_DT
|
||||
, ALL_CNT
|
||||
, SUCCES_CNT
|
||||
, SNDNG_STTUS
|
||||
, LANDING_USE_AT
|
||||
, REQUSR_NM
|
||||
, REGUSR
|
||||
, REGIST_DT
|
||||
, SNDNG_DV_CD
|
||||
, UPDUSR
|
||||
, UPDT_DT
|
||||
)
|
||||
VALUES (
|
||||
#{sopmalCd}
|
||||
, #{brandCd}
|
||||
, #{sndngSj}
|
||||
, #{sndngCn}
|
||||
, '00'
|
||||
, #{sndngCndParam}
|
||||
, #{sndngTrgetQry}
|
||||
, #{recpntDv}
|
||||
, #{callPgeUseAt}
|
||||
, #{linkUrl1}
|
||||
, #{linkUrl2}
|
||||
, #{linkUrl3}
|
||||
, #{sndngReqstDt}
|
||||
, #{sndngDt}
|
||||
, #{allCnt}
|
||||
, #{succesCnt}
|
||||
, 'SAVE'
|
||||
, #{landingUseAt}
|
||||
, #{requsrNm}
|
||||
, #{regusr}
|
||||
, NOW()
|
||||
, #{sndngDvCd}
|
||||
, #{regusr}
|
||||
, NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 대량 메시지 발송대상 등록 -->
|
||||
<insert id="insertBOMssageLgqySndngToRegist"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.lgqymssage.vo.BOLgqyMssageVO">
|
||||
INSERT INTO GC_LGQY_SMS_TO (
|
||||
SMS_LGQY_SNDNG_INNB
|
||||
, MNGR_INNB
|
||||
, MBTLNB
|
||||
, NM
|
||||
, MBR_ID
|
||||
, CHOISE_DT
|
||||
, STTUS
|
||||
, MEMO
|
||||
, SUBST_CHR_1
|
||||
, SUBST_CHR_2
|
||||
, SUBST_CHR_3
|
||||
, SUBST_CHR_4
|
||||
, SUBST_CHR_5
|
||||
, LINK_AT
|
||||
, REGUSR
|
||||
, REGIST_DT
|
||||
)
|
||||
VALUES
|
||||
<foreach collection="list" item="lgqyTo" index="index" separator=",">
|
||||
(
|
||||
#{lgqyTo.smsLgqySndngInnb}
|
||||
, #{lgqyTo.mngrInnb}
|
||||
, HEX(AES_ENCRYPT( #{lgqyTo.mbtlnb} , #{lgqyTo.secretKey}))
|
||||
, #{lgqyTo.nm}
|
||||
, #{lgqyTo.mbrId}
|
||||
, #{lgqyTo.choiseDt}
|
||||
, #{lgqyTo.sttus}
|
||||
, #{lgqyTo.memo}
|
||||
, #{lgqyTo.substChr1}
|
||||
, #{lgqyTo.substChr2}
|
||||
, #{lgqyTo.substChr3}
|
||||
, #{lgqyTo.substChr4}
|
||||
, #{lgqyTo.substChr5}
|
||||
, #{lgqyTo.linkAt}
|
||||
, #{lgqyTo.regusr}
|
||||
, NOW()
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<!-- 상태 변경-->
|
||||
<update id="updateBOMssageLgqySttusUpdate">
|
||||
UPDATE
|
||||
GC_LGQY_SMS GLS
|
||||
SET
|
||||
SNDNG_PROCS_DV_CD = #{sndngProcsDvCd}
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sndngSttus)">
|
||||
,SNDNG_STTUS = #{sndngSttus}
|
||||
</if>
|
||||
WHERE 1=1
|
||||
AND SMS_LGQY_SNDNG_INNB = #{smsLgqySndngInnb}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
</update>
|
||||
|
||||
<!-- 대량 메시지 상세 - 발송요청현황 확인 -->
|
||||
<select id="selectBOMssageLgqySndngReqInqire"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.lgqymssage.vo.BOLgqyMssageSrchVO"
|
||||
resultType="dataMap">
|
||||
SELECT SNDNG_REQST_DT
|
||||
, BRAND_CD
|
||||
, SNDNG_STTUS
|
||||
, SNDNG_DV_CD
|
||||
FROM GC_LGQY_SMS
|
||||
WHERE 1 = 1
|
||||
AND SMS_LGQY_SNDNG_INNB = #{srchSmsLgqySndngInnb}
|
||||
</select>
|
||||
|
||||
<!--수정 가능 여부 체크-->
|
||||
<update id="updateBOMssageLgqySmsUpdt">
|
||||
UPDATE
|
||||
GC_LGQY_SMS
|
||||
SET SNDNG_SJ = #{sndngSj}
|
||||
, SNDNG_CN = #{sndngCn}
|
||||
, LINK_URL1 = #{linkUrl1}
|
||||
, LINK_URL2 = #{linkUrl2}
|
||||
, LINK_URL3 = #{linkUrl3}
|
||||
, SNDNG_REQST_DT = #{sndngReqstDt}
|
||||
, UPDUSR = #{updusr}
|
||||
, UPDT_DT = NOW()
|
||||
, SNDNG_DV_CD = #{sndngDvCd}
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(orginlFilNm)">
|
||||
, ORGINL_FIL_NM = #{orginlFilNm}
|
||||
, SYS_FIL_NM = #{sysFilNm}
|
||||
, FIL_MG = #{filMg}
|
||||
, FIL_TY = #{filTy}
|
||||
, FIL_COURS = #{filCours}
|
||||
, LANDING_TY = 1/*#{landingTy}*/
|
||||
</if>
|
||||
, LANDING_USE_AT = #{landingUseAt}
|
||||
, LANDING_POSITION = #{landingPosition}
|
||||
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sndngTrgetQry)">
|
||||
, SNDNG_TRGET_QRY = #{sndngTrgetQry}
|
||||
</if>
|
||||
, SNDNG_CND_PARAM = #{sndngCndParam}
|
||||
, BRAND_CD = #{brandCd}
|
||||
<if test="(@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(sndngDvCd, '04') and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(sndngSttus, 'SAVE'))
|
||||
or(@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(sndngDvCd, '03') and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(sndngSttus, 'REG'))">
|
||||
,ALL_CNT = #{allCnt}
|
||||
</if>
|
||||
WHERE 1 = 1
|
||||
AND SMS_LGQY_SNDNG_INNB = #{smsLgqySndngInnb}
|
||||
</update>
|
||||
|
||||
<!-- lgqy_sms 수정-->
|
||||
<select id="selectBOMssageLgqySndngUpdtAt" resultType="String"> /*처리 중이거나 요청, 완료상태는 수정 못함*/
|
||||
SELECT CASE
|
||||
WHEN SNDNG_PROCS_DV_CD IN ('P', '02') THEN 'N'
|
||||
ELSE 'Y'
|
||||
END AS UPDT_AT
|
||||
FROM GC_LGQY_SMS
|
||||
WHERE SMS_LGQY_SNDNG_INNB = #{smsLgqySndngInnb}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
</select>
|
||||
|
||||
<!-- 대상 삭제 -->
|
||||
<delete id="deleteBoMssageLgqySmsToDelete">
|
||||
DELETE
|
||||
FROM GC_LGQY_SMS_TO
|
||||
WHERE SMS_LGQY_SNDNG_INNB = #{smsLgqySndngInnb}
|
||||
</delete>
|
||||
|
||||
<!-- 클릭 수 통계 -->
|
||||
<select id="selectBOMssageLgqyClickStat" resultType="dataMap">
|
||||
SELECT COUNT(*) AS TOT_CNT
|
||||
, COUNT(DISTINCT GLSTL.LGQY_SNDNG_TRGET_INNB) AS CLICK_CNT
|
||||
, IFNULL(COUNT(DISTINCT GLSTL.LGQY_SNDNG_TRGET_INNB)
|
||||
/ NULLIF((SELECT GLM.SUCCES_CNT
|
||||
FROM GC_LGQY_SMS GLM
|
||||
WHERE GLM.SMS_LGQY_SNDNG_INNB = GLSTL.SMS_LGQY_SNDNG_INNB), 0) * 100,
|
||||
0) AS CLICK_RATE
|
||||
FROM GC_LGQY_SMS_TO_LINK GLSTL
|
||||
WHERE 1 = 1
|
||||
AND GLSTL.SMS_LGQY_SNDNG_INNB = #{srchSmsLgqySndngInnb}
|
||||
</select>
|
||||
|
||||
<!-- url 별 클릭 수 통계 -->
|
||||
<select id="selectBOMssageLgqyUrlClickStat"
|
||||
resultType="dataMap">
|
||||
SELECT SUM(CASE WHEN A.CNT = 1 AND A.LINK_NB = '1' THEN 1 ELSE 0 END) AS URL1_CNT1
|
||||
, ROUND(SUM(CASE WHEN A.CNT = 1 AND A.LINK_NB = '1' THEN 1 ELSE 0 END) / COUNT(*), 2) *
|
||||
100 AS URL1_CNT1_RT
|
||||
, SUM(CASE WHEN A.CNT = 2 AND A.LINK_NB = '1' THEN 1 ELSE 0 END) AS URL1_CNT2
|
||||
, ROUND(SUM(CASE WHEN A.CNT = 2 AND A.LINK_NB = '1' THEN 1 ELSE 0 END) / COUNT(*), 2) *
|
||||
100 AS URL1_CNT2_RT
|
||||
, SUM(CASE WHEN A.CNT >= 3 AND A.LINK_NB = '1' THEN 1 ELSE 0 END) AS URL1_CNT3
|
||||
, ROUND(SUM(CASE WHEN A.CNT >= 3 AND A.LINK_NB = '1' THEN 1 ELSE 0 END) / COUNT(*), 2) *
|
||||
100 AS URL1_CNT3_RT
|
||||
, SUM(CASE WHEN A.CNT = 1 AND A.LINK_NB = '2' THEN 1 ELSE 0 END) AS URL2_CNT1
|
||||
, ROUND(SUM(CASE WHEN A.CNT = 1 AND A.LINK_NB = '2' THEN 1 ELSE 0 END) / COUNT(*), 2) *
|
||||
100 AS URL2_CNT1_RT
|
||||
, SUM(CASE WHEN A.CNT = 2 AND A.LINK_NB = '2' THEN 1 ELSE 0 END) AS URL2_CNT2
|
||||
, ROUND(SUM(CASE WHEN A.CNT = 2 AND A.LINK_NB = '2' THEN 1 ELSE 0 END) / COUNT(*), 2) *
|
||||
100 AS URL2_CNT2_RT
|
||||
, SUM(CASE WHEN A.CNT >= 3 AND A.LINK_NB = '2' THEN 1 ELSE 0 END) AS URL2_CNT3
|
||||
, ROUND(SUM(CASE WHEN A.CNT >= 3 AND A.LINK_NB = '2' THEN 1 ELSE 0 END) / COUNT(*), 2) *
|
||||
100 AS URL2_CNT3_RT
|
||||
, SUM(CASE WHEN A.CNT = 1 AND A.LINK_NB = '3' THEN 1 ELSE 0 END) AS URL3_CNT1
|
||||
, ROUND(SUM(CASE WHEN A.CNT = 1 AND A.LINK_NB = '3' THEN 1 ELSE 0 END) / COUNT(*), 2) *
|
||||
100 AS URL3_CNT1_RT
|
||||
, SUM(CASE WHEN A.CNT = 2 AND A.LINK_NB = '3' THEN 1 ELSE 0 END) AS URL3_CNT2
|
||||
, ROUND(SUM(CASE WHEN A.CNT = 2 AND A.LINK_NB = '3' THEN 1 ELSE 0 END) / COUNT(*), 2) *
|
||||
100 AS URL3_CNT2_RT
|
||||
, SUM(CASE WHEN A.CNT >= 3 AND A.LINK_NB = '3' THEN 1 ELSE 0 END) AS URL3_CNT3
|
||||
, ROUND(SUM(CASE WHEN A.CNT >= 3 AND A.LINK_NB = '3' THEN 1 ELSE 0 END) / COUNT(*), 2) *
|
||||
100 AS URL3_CNT3_RT
|
||||
FROM (SELECT COUNT(*) CNT
|
||||
, GLSTL.LINK_NB AS LINK_NB
|
||||
FROM GC_LGQY_SMS_TO_LINK GLSTL
|
||||
WHERE 1 = 1
|
||||
AND SMS_LGQY_SNDNG_INNB = #{srchSmsLgqySndngInnb}
|
||||
GROUP BY LGQY_SNDNG_TRGET_INNB, LINK_NB) A
|
||||
</select>
|
||||
|
||||
<!-- 시간별 클릭 통계 -->
|
||||
<select id="selectBOMssageLgqyClickStatList"
|
||||
resultType="dataMap"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.lgqymssage.vo.BOLgqyMssageSrchVO">
|
||||
SELECT DATE_FORMAT(REGIST_DT, '%Y-%m-%d') DAY
|
||||
, CONCAT(DATE_FORMAT(REGIST_DT, '%H:'), LPAD(FLOOR(MINUTE(REGIST_DT) / 10) * 10, 2, '0')) AS HOUR
|
||||
, SUM(IF(LINK_NB = 1, IF(LGQY_SNDNG_TRGET_INNB IS NOT NULL, 1, 0), 0)) CNT1
|
||||
, SUM(IF(LINK_NB = 2, IF(LGQY_SNDNG_TRGET_INNB IS NOT NULL, 1, 0), 0)) CNT2
|
||||
, SUM(IF(LINK_NB = 3, IF(LGQY_SNDNG_TRGET_INNB IS NOT NULL, 1, 0), 0)) CNT3
|
||||
, SUM(IF(LINK_NB = 3, IF(ETC = 'r', 1, 0), 0)) R_CNT1
|
||||
, SUM(IF(LINK_NB = 3, IF(ETC = 'r', 1, 0), 0)) R_CNT2
|
||||
, SUM(IF(LINK_NB = 3, IF(ETC = 'r', 1, 0), 0)) R_CNT3
|
||||
, COUNT(DISTINCT LGQY_SNDNG_TRGET_INNB) P_CNT
|
||||
FROM GC_LGQY_SMS_TO_LINK
|
||||
WHERE 1 = 1
|
||||
AND SMS_LGQY_SNDNG_INNB = #{srchSmsLgqySndngInnb}
|
||||
GROUP BY DAY, HOUR
|
||||
</select>
|
||||
|
||||
<!-- 출생년도별 클릭 통계 -->
|
||||
<select id="selectBOMssageLgqySndngBirthStat" resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT A.BIRTH
|
||||
, A.SEX
|
||||
, SUM(A.CNT) PCNT
|
||||
FROM (SELECT CASE
|
||||
WHEN LEFT(M.BRTH_DE, 4) > YEAR(NOW()) THEN 'none'
|
||||
WHEN LEFT(M.BRTH_DE, 4) <= '1900' THEN 'none'
|
||||
ELSE LEFT(M.BRTH_DE, 4)
|
||||
END BIRTH,
|
||||
IF(M.SEX = '', 'none', M.SEX) SEX,
|
||||
COUNT(1) CNT
|
||||
FROM GC_MEMBER M
|
||||
WHERE M.MBTLNB IN (SELECT CAST(AES_DECRYPT(UNHEX(MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)) AS MBTLNB
|
||||
FROM GC_LGQY_SMS_TO
|
||||
WHERE 1 = 1
|
||||
AND SMS_LGQY_SNDNG_INNB = #{srchSmsLgqySndngInnb})
|
||||
AND M.SEX <> 'none'
|
||||
AND M.SEX > ''
|
||||
GROUP BY M.BRTH_DE, M.SEX
|
||||
ORDER BY LEFT(M.BRTH_DE, 4) DESC) A
|
||||
WHERE 1 = 1
|
||||
AND A.BIRTH <> 'none'
|
||||
AND A.SEX <> 'none'
|
||||
GROUP BY A.BIRTH, A.SEX
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 클릭자 중 구매자수 통계 -->
|
||||
<select id="selectBOMssageLgqySndngOrdrStat" resultType="dataMap">
|
||||
SELECT IF(O.DIFF > 0, O.DIFF * 3, O.DIFF) DIFF,
|
||||
O.CNT
|
||||
FROM (SELECT FLOOR(DIFF / 3) DIFF
|
||||
, COUNT(MOBILE) CNT
|
||||
FROM (
|
||||
SELECT
|
||||
CAST(AES_DECRYPT(UNHEX(FO.ORDRR_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)) AS MOBILE
|
||||
, TIMESTAMPDIFF(HOUR, #{sndngDt}, FO.ORDR_RCEPT_DT) DIFF
|
||||
FROM GC_ORDER FO
|
||||
LEFT JOIN GC_ORDER_ITEM FOI
|
||||
ON FOI.ORDR_INNB = FO.ORDR_INNB
|
||||
LEFT JOIN GC_ORDER_ITEM_OPTION FOIO
|
||||
ON FOIO.ORDR_INNB = FO.ORDR_INNB
|
||||
WHERE 1 = 1
|
||||
AND FOIO.ORDR_STTUS_CD BETWEEN 25 AND 75
|
||||
AND FO.MBR_INNB > 0
|
||||
AND FO.ORDR_RCEPT_DT BETWEEN #{sndngDt} AND DATE_ADD(#{sndngDt}, INTERVAL +7 DAY)
|
||||
AND FO.mbtlnb IN (HEX(AES_ENCRYPT(#{mbtlnb}), #{secretKey}))
|
||||
)
|
||||
GROUP BY FLOOR(DIFF / 3)
|
||||
) O
|
||||
|
||||
</select>
|
||||
|
||||
<!-- 대량 메시지 달력 조회 -->
|
||||
<select id="selectBOMssageLgqySndngReqstCldr"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.mssage.vo.BOLgqyMssageSrchVO"
|
||||
resultType="dataMap">
|
||||
SELECT
|
||||
LGQYSMS.SMS_LGQY_SNDNG_INNB,
|
||||
LGQYSMS.SNDNG_REQST_DT,
|
||||
FN_GET_SOPMAL_NAME(LGQYSMS.SOPMAL_CD) AS BRAND_NM
|
||||
FROM
|
||||
GC_LGQY_SMS LGQYSMS
|
||||
WHERE 1=1
|
||||
AND LGQYSMS.SNDNG_REQST_DT BETWEEN #{srchStrtRegistDt} ' 00:00:00' AND #{srchEndRegistDt} ' 23:59:59'
|
||||
<choose>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSndngSttus)">
|
||||
AND SNDNG_STTUS = #{srchSndngSttus}
|
||||
</when>
|
||||
<otherwise>
|
||||
AND SNDNG_STTUS IN ('S','I','Y','SAVE','REG','END')
|
||||
</otherwise>
|
||||
</choose>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSopmalCd)">
|
||||
AND SOPMAL_CD = #{srchSopmalCd}
|
||||
</if>
|
||||
ORDER BY LGQYSMS.SNDNG_REQST_DT DESC
|
||||
</select>
|
||||
</mapper>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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.gcone.ntcn.tmplt.mapper.BOTmpltMapper">
|
||||
|
||||
<!-- 이메일 템플릿 조회 조건 -->
|
||||
<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.gcone.ntcn.tmplt.vo.BOTmpltVO"
|
||||
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.gcone.ntcn.tmplt.vo.BOTmpltVO"
|
||||
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.gcone.ntcn.tmplt.vo.BOTmpltVO"
|
||||
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.gcone.ntcn.tmplt.vo.BOTmpltVO">
|
||||
<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.gcone.ntcn.tmplt.vo.BOTmpltVO">
|
||||
<![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.gcone.ntcn.tmplt.vo.BOTmpltVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
FORM.SMS_SNDNG_FORM_INNB
|
||||
, FORM.FORM_DV_CD
|
||||
, FORM.FORM_DTL_DV_CD
|
||||
, CODE.CD_NM
|
||||
, FORM.SMS_CN
|
||||
FROM GC_SMS_FORM FORM
|
||||
INNER JOIN GC_MESSAGE_SNDNG GMS
|
||||
ON FORM.FORM_DV_CD = GMS.FORM_DV_CD
|
||||
AND FORM.FORM_DTL_DV_CD = GMS.FORM_DTL_DV_CD
|
||||
AND FORM.SOPMAL_CD = GMS.SOPMAL_CD
|
||||
AND GMS.EXPSR_AT = 'Y'
|
||||
AND GMS.MNGR_DV = '01'
|
||||
JOIN GC_CODE CODE
|
||||
ON FORM.FORM_DV_CD = CODE.GROUP_CD
|
||||
AND FORM.FORM_DTL_DV_CD = CODE.CD
|
||||
WHERE 1=1
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sopmalCd)">
|
||||
<![CDATA[
|
||||
AND GMS.SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(formDvCd)">
|
||||
<![CDATA[
|
||||
AND GMS.FORM_DV_CD = #{formDvCd}
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(formDtlDvCd)">
|
||||
<![CDATA[
|
||||
AND GMS.FORM_DTL_DV_CD = #{formDtlDvCd}
|
||||
]]>
|
||||
</if>
|
||||
<![CDATA[
|
||||
ORDER BY GMS.FORM_DTL_DV_CD;
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 메시지 템플릿 등록(사용안함) -->
|
||||
<insert id="insertBOMssageTmplat"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.tmplt.vo.BOTmpltVO">
|
||||
<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.gcone.ntcn.tmplt.vo.BOTmpltVO">
|
||||
<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.gcone.ntcn.tmplt.vo.BOTmpltVO"
|
||||
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
|
||||
INNER JOIN GC_MESSAGE_SNDNG GMS
|
||||
ON FORM.FORM_DV_CD = GMS.FORM_DV_CD
|
||||
AND FORM.FORM_DTL_DV_CD = GMS.FORM_DTL_DV_CD
|
||||
AND FORM.SOPMAL_CD = GMS.SOPMAL_CD
|
||||
AND GMS.EXPSR_AT = 'Y'
|
||||
AND GMS.MNGR_DV = '01'
|
||||
JOIN GC_CODE CODE
|
||||
ON FORM.FORM_DV_CD = CODE.GROUP_CD
|
||||
AND FORM.FORM_DTL_DV_CD = CODE.CD
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sopmalCd)">
|
||||
<![CDATA[
|
||||
AND GMS.SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(formDvCd)">
|
||||
<![CDATA[
|
||||
AND GMS.FORM_DV_CD = #{formDvCd}
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(formDtlDvCd)">
|
||||
<![CDATA[
|
||||
AND GMS.FORM_DTL_DV_CD = #{formDtlDvCd}
|
||||
]]>
|
||||
</if>
|
||||
<![CDATA[
|
||||
ORDER BY GMS.FORM_DTL_DV_CD;
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 알림톡 템플릿 조회_팝업 -->
|
||||
<select id="selectBONtcntalkAtmcSndngTmplatUpdtPopupForm"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ntcn.tmplt.vo.BOTmpltVO"
|
||||
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.gcone.ntcn.tmplt.vo.BOTmpltVO">
|
||||
<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.gcone.ntcn.tmplt.vo.BOTmpltVO">
|
||||
<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.gcone.ntcn.tmplt.vo.BOTmpltVO">
|
||||
<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.gcone.ntcn.tmplt.vo.BOTmpltVO">
|
||||
<![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="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 GMS.SOPMAL_CD = #{sopmalCd}
|
||||
AND GMS.EXPSR_AT = 'Y'
|
||||
AND GMS.MNGR_DV = '01'
|
||||
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 = '01'
|
||||
]]>
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,517 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.mapper.BOAtmcrcpmnyMapper">
|
||||
|
||||
<!-- 입금내역 목록 조회 FROM 절 -->
|
||||
<sql id="selectBOAtmcRcpmnyDtlsListInqireFrom">
|
||||
<![CDATA[
|
||||
FROM TBLBANK T
|
||||
LEFT JOIN GC_ORDER_SETLE S
|
||||
ON T.SOPMAL_CD = S.SOPMAL_CD
|
||||
AND T.ORDR_INNB = S.ORDR_INNB
|
||||
LEFT JOIN GC_ORDER O
|
||||
ON T.SOPMAL_CD = O.SOPMAL_CD
|
||||
AND T.ORDR_INNB = O.ORDR_INNB
|
||||
LEFT JOIN GC_MEMO M
|
||||
ON T.SOPMAL_CD = M.SOPMAL_CD
|
||||
AND T.Bkcode = M.BK_CODE
|
||||
]]>
|
||||
</sql>
|
||||
|
||||
<!-- 입금내역 목록 조회 WHERE 절 -->
|
||||
<sql id="selectBOAtmcRcpmnyDtlsListInqireWhere">
|
||||
<![CDATA[
|
||||
WHERE 1=1
|
||||
AND T.SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(searchWord)">
|
||||
<![CDATA[
|
||||
AND (
|
||||
T.BKJUKYO LIKE CONCAT('%', #{searchWord}, '%') OR
|
||||
T.BKNAME LIKE CONCAT('%', #{searchWord}, '%') OR
|
||||
T.BKINPUT LIKE CONCAT('%', #{searchWord}, '%') OR
|
||||
T.ORDR_INNB LIKE CONCAT('%', #{searchWord}, '%')
|
||||
)
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(searchAccount)">
|
||||
<choose>
|
||||
<when test="searchAccount=='all'">
|
||||
AND T.BKACCTNO LIKE CONCAT('%', '', '%')
|
||||
</when>
|
||||
<otherwise>
|
||||
AND T.BKACCTNO LIKE CONCAT('%', #{searchAccount}, '%')
|
||||
</otherwise>
|
||||
</choose>
|
||||
</if>
|
||||
|
||||
<if test='@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStartDate) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndDate)'>
|
||||
AND T.BKDATE BETWEEN REPLACE(#{srchStartDate}, '-', '') AND REPLACE(#{srchEndDate}, '-', '')
|
||||
</if>
|
||||
|
||||
<!-- 입금 확인 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStatus)">
|
||||
<![CDATA[
|
||||
AND
|
||||
]]>
|
||||
<foreach collection="srchStatus" item="srchStatus" open="(" close=")" separator="OR">
|
||||
<choose>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchStatus, 'N')">
|
||||
<![CDATA[
|
||||
O.AUTODEPOSIT_TY IS NULL
|
||||
]]>
|
||||
</when>
|
||||
<otherwise>
|
||||
<![CDATA[
|
||||
O.AUTODEPOSIT_TY = #{srchStatus}
|
||||
]]>
|
||||
</otherwise>
|
||||
</choose>
|
||||
</foreach>
|
||||
</if>
|
||||
ORDER BY BKDATE DESC , BKTIME DESC
|
||||
|
||||
</sql>
|
||||
|
||||
<!-- 입금내역 목록 건수 조회 -->
|
||||
<select id = "selectBOAtmcRcpmnyDtlsListCnt"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO"
|
||||
resultType="java.lang.Integer">
|
||||
SELECT COUNT(1)
|
||||
FROM (
|
||||
SELECT
|
||||
T.BKDATE
|
||||
<include refid = "selectBOAtmcRcpmnyDtlsListInqireFrom"/>
|
||||
<include refid = "selectBOAtmcRcpmnyDtlsListInqireWhere"/>
|
||||
) AS A
|
||||
</select>
|
||||
|
||||
<!-- 입금내역 목록 조회 -->
|
||||
<select id="selectBOAtmcRcpmnyDtlsListInqire"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO"
|
||||
resultType = "dataMap">
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT
|
||||
CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM, TB.*
|
||||
FROM (
|
||||
SELECT
|
||||
T.BKID,
|
||||
T.BKDATE,
|
||||
T.BKNAME,
|
||||
T.BKACCTNO,
|
||||
T.BKJUKYO,
|
||||
T.BKINPUT,
|
||||
T.BKTIME,
|
||||
T.SOPMAL_CD,
|
||||
T.ORDR_INNB,
|
||||
T.BKCODE,
|
||||
S.SETLE_DT,
|
||||
S.MEMOR_SETLE_AT,
|
||||
M.MEMO_CN,
|
||||
O.AUTODEPOSIT_TY,
|
||||
S.SETLE_AMT,
|
||||
S.BNNK_NM,
|
||||
S.DPSTR_NM,
|
||||
S.RCPMNY_ACNTNB,
|
||||
S.RCPMNYER_NM
|
||||
<include refid = "selectBOAtmcRcpmnyDtlsListInqireFrom"/>
|
||||
<include refid = "selectBOAtmcRcpmnyDtlsListInqireWhere"/>
|
||||
<![CDATA[
|
||||
) TB
|
||||
WHERE (@rownum:=0)=0
|
||||
) PV
|
||||
WHERE 1=1
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 자동입금확인 메모 테이블 글 유무 조회 -->
|
||||
<select id="selectBORcpmnyDtlsMngrMemoRegistCnt"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmMemoVO"
|
||||
resultType="java.lang.Integer">
|
||||
SELECT COUNT(*)
|
||||
FROM GC_MEMO
|
||||
WHERE 1=1
|
||||
AND BK_CODE = #{bkcode}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
</select>
|
||||
|
||||
<!-- 자동입금확인 메모 글 작성 insert or update -->
|
||||
<insert id="insertBORcpmnyDtlsMngrMemoRegist"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmMemoVO">
|
||||
|
||||
<choose>
|
||||
<when test="insertOrUpdate > 0">
|
||||
<![CDATA[
|
||||
UPDATE GC_MEMO
|
||||
SET MEMO_CN = TRIM(#{memoCn}),
|
||||
UPDT_DT = SYSDATE()
|
||||
WHERE 1=1
|
||||
AND BK_CODE = #{bkcode}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</when>
|
||||
<otherwise>
|
||||
<![CDATA[
|
||||
INSERT INTO GC_MEMO (
|
||||
MEMO_SNB,
|
||||
SOPMAL_CD,
|
||||
BK_CODE,
|
||||
MEMO_CN,
|
||||
UPDT_DT)
|
||||
SELECT
|
||||
COALESCE(MAX(MEMO_SNB), 0) + 1,
|
||||
#{sopmalCd},
|
||||
#{bkcode},
|
||||
TRIM(#{memoCn}),
|
||||
SYSDATE()
|
||||
FROM GC_MEMO
|
||||
]]>
|
||||
</otherwise>
|
||||
</choose>
|
||||
</insert>
|
||||
|
||||
<!-- 입금내역 추가 -->
|
||||
<insert id="insertBORcpmnyDtlsColct"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO">
|
||||
|
||||
<selectKey order="BEFORE" keyProperty="bkid" resultType="java.lang.Integer">
|
||||
<![CDATA[
|
||||
SELECT IFNULL(MAX(BKID), 0)+1
|
||||
FROM TBLBANK
|
||||
]]>
|
||||
</selectKey>
|
||||
|
||||
<![CDATA[
|
||||
INSERT INTO TBLBANK (
|
||||
BKID,
|
||||
BKACCTNO,
|
||||
BKDATE,
|
||||
BKJUKYO,
|
||||
BKINPUT,
|
||||
BKOUTPUT,
|
||||
BKCODE,
|
||||
MID,
|
||||
BKNAME,
|
||||
BKTIME,
|
||||
BKCONTENT,
|
||||
BKETC,
|
||||
BKJANGO,
|
||||
BKXFERDATETIME,
|
||||
ORDR_INNB,
|
||||
ORDR_SETLE_INNB
|
||||
)
|
||||
VALUES (
|
||||
#{bkid},
|
||||
#{bkacctno},
|
||||
#{bkdate},
|
||||
#{bkjukyo},
|
||||
#{bkinput},
|
||||
#{bkoutput},
|
||||
#{bkcode},
|
||||
#{mid},
|
||||
#{bkname},
|
||||
#{bktime},
|
||||
#{bkcontent},
|
||||
#{bketc},
|
||||
#{bkjango},
|
||||
DATE_FORMAT(SYSDATE(), '%Y%m%d%H%i%s'),
|
||||
"0",
|
||||
"0"
|
||||
)
|
||||
]]>
|
||||
|
||||
</insert>
|
||||
|
||||
<!-- 입금내역 자동 매칭 될 데이터 리스트 조회 -->
|
||||
<select id="selectBORcpmnyCnfirmExecut"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO"
|
||||
resultType="com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO">
|
||||
|
||||
<![CDATA[
|
||||
SELECT
|
||||
BKID,
|
||||
BKACCTNO,
|
||||
BKDATE,
|
||||
BKJUKYO,
|
||||
BKINPUT,
|
||||
BKTIME,
|
||||
SOPMAL_CD
|
||||
FROM TBLBANK
|
||||
WHERE 1=1
|
||||
AND ORDR_SETLE_INNB = 0
|
||||
AND BKDATE >= DATE_SUB(SYSDATE(), INTERVAL 1 WEEK)
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sopmalCd)">
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<!-- 입금내역 자동 매칭 될 데이터 조회 -->
|
||||
<select id="selectBORcpmnyCnfirmTrget"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO"
|
||||
resultType="com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO">
|
||||
|
||||
<![CDATA[
|
||||
SELECT
|
||||
FOS.SOPMAL_CD,
|
||||
FOS.ORDR_INNB,
|
||||
FOS.ORDR_SETLE_INNB,
|
||||
FO.ORDR_RCEPT_DT,
|
||||
FO.ORDR_STTUS_CD AS CURR_ORDR_STTUS_CD
|
||||
FROM GC_ORDER_SETLE FOS
|
||||
INNER JOIN GC_ORDER FO
|
||||
ON FOS.ORDR_INNB = FO.ORDR_INNB
|
||||
AND FOS.SOPMAL_CD = FO.SOPMAL_CD
|
||||
WHERE 1=1
|
||||
AND FOS.SOPMAL_CD = #{sopmalCd}
|
||||
AND FOS.SETLE_TY_CD = '02'
|
||||
AND FOS.SETLE_COMPT_AT = 'N'
|
||||
AND FO.ORDR_STTUS_CD = '15'
|
||||
AND FO.AUTODEPOSIT_TY IS NULL
|
||||
AND FO.ORDR_RCEPT_DT >= DATE_SUB(SYSDATE(), INTERVAL 1 WEEK)
|
||||
AND FO.ORDR_RCEPT_DT <= STR_TO_DATE(CONCAT(#{bkdate}, #{bktime}), '%Y%m%d%H%i%s')
|
||||
AND FOS.RCPMNYER_NM = #{bkjukyo}
|
||||
AND REPLACE(FOS.RCPMNY_ACNTNB, '-', '') = ${bkacctno}
|
||||
AND FOS.SETLE_AMT = #{bkinput}
|
||||
ORDER BY FOS.ORDR_SETLE_INNB ASC
|
||||
LIMIT 1
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 수동 매칭 입금내역 업데이트 -->
|
||||
<update id="updateBORcpmnyCnfirmExecutRcpmny"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO">
|
||||
|
||||
<![CDATA[
|
||||
UPDATE TBLBANK
|
||||
SET ORDR_INNB = #{ordrInnb}
|
||||
,ORDR_SETLE_INNB = #{ordrSetleInnb}
|
||||
WHERE 1=1
|
||||
AND BKID = #{bkid}
|
||||
]]>
|
||||
</update>
|
||||
|
||||
<!-- 수동 매칭 주문 업데이트 -->
|
||||
<update id="updateBORcpmnyCnfirmExecutOrdr"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO">
|
||||
|
||||
<![CDATA[
|
||||
UPDATE GC_ORDER
|
||||
SET AUTODEPOSIT_TY = #{autodepositTy}
|
||||
WHERE 1=1
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND ORDR_INNB = #{ordrInnb}
|
||||
]]>
|
||||
</update>
|
||||
|
||||
<!-- 수동 매칭 주문결제 업데이트 -->
|
||||
<update id="updateBORcpmnyCnfirmExecutOrdrSetle"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO">
|
||||
|
||||
<![CDATA[
|
||||
UPDATE GC_ORDER_SETLE
|
||||
SET SETLE_COMPT_AT = #{setleComptAt}
|
||||
,SETLE_DT = STR_TO_DATE(CONCAT(#{bkdate}, #{bktime}), '%Y%m%d%H%i%s')
|
||||
WHERE 1=1
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND ORDR_SETLE_INNB = #{ordrSetleInnb}
|
||||
]]>
|
||||
</update>
|
||||
|
||||
<!-- 수동 매칭 뱅크다 데이터 유무 조회 -->
|
||||
<select id="selectBORcpmnyDtlsLastVal" resultType="String">
|
||||
<![CDATA[
|
||||
SELECT max(Bkcode)
|
||||
FROM TBLBANK
|
||||
WHERE 1=1
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 주문조회 팝업 목록 조회 where절 -->
|
||||
<sql id="selectBOAtmcRcpmnyOrdrInqireWhere">
|
||||
WHERE 1=1
|
||||
AND FOS.SOPMAL_CD = #{sopmalCd}
|
||||
<!-- 은행명 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchBnnkNm)">
|
||||
<![CDATA[
|
||||
AND FOS.BNNK_NM LIKE CONCAT('%', #{srchBnnkNm}, '%')
|
||||
]]>
|
||||
</if>
|
||||
<!-- 입금자명 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchRcpmnyerNm)">
|
||||
<![CDATA[
|
||||
AND FOS.RCPMNYER_NM LIKE CONCAT('%', #{srchRcpmnyerNm}, '%')
|
||||
]]>
|
||||
</if>
|
||||
<!-- 계좌번호 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchRcpmnyAcntnb)">
|
||||
<![CDATA[
|
||||
AND REPLACE(FOS.RCPMNY_ACNTNB, '-', '') = #{srchRcpmnyAcntnb}
|
||||
]]>
|
||||
</if>
|
||||
|
||||
<!-- 입금금액1 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSetleAmt1)">
|
||||
<![CDATA[
|
||||
AND FOS.SETLE_AMT >= #{srchSetleAmt1}
|
||||
]]>
|
||||
</if>
|
||||
<!-- 입금금액2 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSetleAmt2)">
|
||||
<![CDATA[
|
||||
AND FOS.SETLE_AMT <= #{srchSetleAmt2}
|
||||
]]>
|
||||
</if>
|
||||
|
||||
<!-- 주문일1 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStartDate)">
|
||||
<![CDATA[
|
||||
AND FO.ORDR_RCEPT_DT >= #{srchStartDate} ' 00:00:00'
|
||||
]]>
|
||||
</if>
|
||||
<!-- 주문일2 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndDate)">
|
||||
<![CDATA[
|
||||
AND FO.ORDR_RCEPT_DT <= #{srchEndDate} ' 23:59:59'
|
||||
]]>
|
||||
</if>
|
||||
|
||||
<!-- 입금미확인만 체크 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrSttusCd1) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchOrdrSttusCd2) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchOrdrSttusCd3)">
|
||||
<![CDATA[
|
||||
AND FO.AUTODEPOSIT_TY IS NULL
|
||||
]]>
|
||||
</if>
|
||||
<!-- 입금확인 체크 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchOrdrSttusCd1) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrSttusCd2) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchOrdrSttusCd3)">
|
||||
<![CDATA[
|
||||
AND FO.AUTODEPOSIT_TY IS NOT NULL
|
||||
]]>
|
||||
</if>
|
||||
<!-- 주문무효 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchOrdrSttusCd1) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchOrdrSttusCd2) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrSttusCd3)">
|
||||
<![CDATA[
|
||||
AND FO.ORDR_STTUS_CD = '95'
|
||||
]]>
|
||||
</if>
|
||||
<!-- 입금미확인, 입금확인 체크 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrSttusCd1) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrSttusCd2) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchOrdrSttusCd3)">
|
||||
<![CDATA[
|
||||
AND FO.ORDR_STTUS_CD BETWEEN '15' AND '75'
|
||||
]]>
|
||||
</if>
|
||||
<!-- 입금확인, 주문무효 체크 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchOrdrSttusCd1) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrSttusCd2) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrSttusCd3)">
|
||||
<![CDATA[
|
||||
AND (FO.AUTODEPOSIT_TY IS NOT NULL OR FO.ORDR_STTUS_CD = '95')
|
||||
]]>
|
||||
</if>
|
||||
<!-- 입금미확인, 주문무효 체크 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrSttusCd1) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchOrdrSttusCd2) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrSttusCd3)">
|
||||
<![CDATA[
|
||||
AND (FO.AUTODEPOSIT_TY IS NULL OR FO.ORDR_STTUS_CD = '95')
|
||||
]]>
|
||||
</if>
|
||||
<!-- 입금미확인, 입금확인, 주문무효 체크 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrSttusCd1) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrSttusCd2) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrSttusCd3)">
|
||||
<![CDATA[
|
||||
AND FO.ORDR_STTUS_CD BETWEEN '15' AND '95'
|
||||
]]>
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
<!-- 주문조회 팝업 목록 주문조회 from절 -->
|
||||
<sql id="selectBOAtmcRcpmnyOrdrInqireFrom">
|
||||
FROM GC_ORDER_SETLE FOS
|
||||
INNER JOIN GC_ORDER FO
|
||||
ON FOS.ORDR_INNB = FO.ORDR_INNB
|
||||
AND FOS.SOPMAL_CD = FO.SOPMAL_CD
|
||||
</sql>
|
||||
|
||||
<!-- 주문조회 팝업 목록 주문조회 건수 -->
|
||||
<select id = "selectBOAtmcRcpmnyOrdrInqireCnt"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO"
|
||||
resultType="java.lang.Integer">
|
||||
|
||||
SELECT COUNT(*)
|
||||
<include refid = "selectBOAtmcRcpmnyOrdrInqireFrom" />
|
||||
<include refid = "selectBOAtmcRcpmnyOrdrInqireWhere" />
|
||||
</select>
|
||||
|
||||
<!-- 주문조회 팝업 목록 주문조회 -->
|
||||
<select id = "selectBOAtmcRcpmnyOrdrInqire"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM
|
||||
,TB.*
|
||||
FROM (
|
||||
SELECT
|
||||
FOS.ORDR_SETLE_INNB,
|
||||
FOS.ORDR_INNB,
|
||||
FOS.SOPMAL_CD,
|
||||
FOS.BNNK_NM,
|
||||
FOS.RCPMNY_ACNTNB,
|
||||
FOS.DPSTR_NM,
|
||||
FOS.RCPMNYER_NM,
|
||||
FOS.SETLE_AMT,
|
||||
FOS.SETLE_DT,
|
||||
FO.ORDR_RCEPT_DT,
|
||||
FO.ORDRR_NM,
|
||||
FO.ORDR_STTUS_CD,
|
||||
FN_GET_COMMCODE_NAME('ORDR_STTUS',FO.ORDR_STTUS_CD) AS ORDR_STTUS_CD_NM,
|
||||
FO.AUTODEPOSIT_TY
|
||||
]]>
|
||||
<include refid = "selectBOAtmcRcpmnyOrdrInqireFrom" />
|
||||
<include refid = "selectBOAtmcRcpmnyOrdrInqireWhere" />
|
||||
ORDER BY ORDR_RCEPT_DT DESC
|
||||
) TB
|
||||
WHERE (@rownum:=0)=0
|
||||
) PV
|
||||
WHERE 1=1
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
</select>
|
||||
|
||||
<!-- 입금내역 테이블 계좌번호 조회 -->
|
||||
<select id = "selectRcpmnyDtlsAcntnbList"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
BKACCTNO
|
||||
FROM TBLBANK
|
||||
WHERE 1=1
|
||||
AND SOPMAL_CD IS NULL
|
||||
GROUP BY BKACCTNO
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 입금내역 테이블 쇼핑몰코드 추가 -->
|
||||
<update id="updateBORcpmnyDtlsColct"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO">
|
||||
|
||||
<![CDATA[
|
||||
UPDATE TBLBANK SET
|
||||
SOPMAL_CD = #{sopmalCd}
|
||||
WHERE 1=1
|
||||
AND SOPMAL_CD IS NULL
|
||||
AND BKACCTNO = #{bkacctno}
|
||||
]]>
|
||||
</update>
|
||||
|
||||
<!-- 현재 주문상태 조회 -->
|
||||
<select id = "selectCurrOrdrSttusCd" parameterType = "com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO"
|
||||
resultType="String">
|
||||
<![CDATA[
|
||||
SELECT ORDR_STTUS_CD
|
||||
FROM GC_ORDER
|
||||
WHERE 1=1
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND ORDR_INNB = #{ordrInnb}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.ordr.npay.mapper.BoIfLogMapper">
|
||||
|
||||
<!-- if 로그 등록 -->
|
||||
<insert id = "insertBoIfLog"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ordr.npay.vo.BOIfLogVO">
|
||||
<selectKey keyProperty="ifSeq" resultType = "String" order="BEFORE">
|
||||
SELECT IFNULL(MAX(CAST(IF_SEQ AS UNSIGNED)), 0) + 1
|
||||
FROM GC_NPAY_IF_LOG
|
||||
WHERE SOPMAL_CD = #{sopmalCd}
|
||||
AND IF_KND_CD = #{ifKndCd}
|
||||
</selectKey>
|
||||
INSERT INTO GC_NPAY_IF_LOG (
|
||||
SOPMAL_CD,
|
||||
IF_KND_CD,
|
||||
IF_SEQ,
|
||||
IF_STTUS_CD,
|
||||
SEND_PARAM,
|
||||
RECEIVE_PARAM,
|
||||
REGIST_DT,
|
||||
TRAN_STTUS_CD,
|
||||
ERROR_MESSAGE,
|
||||
REQUEST_ID
|
||||
)VALUES(
|
||||
#{sopmalCd},
|
||||
#{ifKndCd},
|
||||
#{ifSeq},
|
||||
#{ifSttusCd},
|
||||
#{sendParam},
|
||||
#{receiveParam},
|
||||
SYSDATE(),
|
||||
#{tranSttusCd},
|
||||
#{errorMessage},
|
||||
#{requestId}
|
||||
)
|
||||
</insert>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,105 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.ordr.npay.mapper.BONpayConfigMapper">
|
||||
|
||||
<!-- insert GC_NPAY_CONFIG SQL -->
|
||||
<insert id="insertNpayConfig" parameterType="com.wb.domainserver.domain.gcone.ordr.npay.vo.BONpayConfigVO">
|
||||
INSERT INTO GC_NPAY_CONFIG(
|
||||
SOPMAL_CD
|
||||
, SHOP_ID
|
||||
, CERTIFICATION_KEY
|
||||
, ACCESS_LICENSE
|
||||
, SECRET_KEY
|
||||
, BUTTON_KEY
|
||||
, COMMON_CERTI_KEY
|
||||
, REGIST_DT
|
||||
, REGUSR
|
||||
, UPDT_DT
|
||||
, UPDUSR
|
||||
) VALUES (
|
||||
#{sopmalCd}
|
||||
, #{shopId}
|
||||
, #{certificationKey}
|
||||
, #{accessLicense}
|
||||
, #{secretKey}
|
||||
, #{buttonKey}
|
||||
, #{commonCertiKey}
|
||||
, SYSDATE()
|
||||
, #{regusr}
|
||||
, SYSDATE()
|
||||
, #{updusr}
|
||||
)
|
||||
</insert>
|
||||
|
||||
|
||||
<!-- Update GC_NPAY_CONFIG SQL -->
|
||||
<update id="updateNpayConfig" parameterType="com.wb.domainserver.domain.gcone.ordr.npay.vo.BONpayConfigVO">
|
||||
UPDATE GC_NPAY_CONFIG SET
|
||||
SHOP_ID = #{shopId}
|
||||
, CERTIFICATION_KEY = #{certificationKey}
|
||||
, ACCESS_LICENSE = #{accessLicense}
|
||||
, SECRET_KEY = #{secretKey}
|
||||
, BUTTON_KEY = #{buttonKey}
|
||||
, COMMON_CERTI_KEY = #{commonCertiKey}
|
||||
, UPDT_DT = SYSDATE()
|
||||
, UPDUSR = #{updusr}
|
||||
WHERE
|
||||
SOPMAL_CD = #{sopmalCd}
|
||||
</update>
|
||||
|
||||
|
||||
<!-- Delete GC_NPAY_CONFIG SQL -->
|
||||
<delete id="deleteNpayConfig" parameterType="com.wb.domainserver.domain.gcone.ordr.npay.vo.BONpayConfigVO">
|
||||
DELETE FROM GC_NPAY_CONFIG
|
||||
WHERE
|
||||
SOPMAL_CD = #{sopmalCd}
|
||||
</delete>
|
||||
|
||||
|
||||
<!-- Select Detail GC_NPAY_CONFIG SQL -->
|
||||
<select id="selectNpayConfigDetail" parameterType="com.wb.domainserver.domain.gcone.ordr.npay.vo.BONpayConfigVO" resultType="com.wb.domainserver.domain.gcone.ordr.npay.vo.BONpayConfigVO">
|
||||
SELECT
|
||||
SOPMAL_CD
|
||||
,SHOP_ID
|
||||
,CERTIFICATION_KEY
|
||||
,ACCESS_LICENSE
|
||||
,SECRET_KEY
|
||||
,BUTTON_KEY
|
||||
,COMMON_CERTI_KEY
|
||||
,ENVRN
|
||||
,DATE_FORMAT(REGIST_DT, '%Y.%m.%d %H:%i:%s') AS REGIST_DE
|
||||
,REGIST_DT
|
||||
,REGUSR
|
||||
,DATE_FORMAT(UPDT_DT, '%Y.%m.%d %H:%i:%s') AS UPDT_DE
|
||||
,UPDT_DT
|
||||
,UPDUSR
|
||||
FROM
|
||||
GC_NPAY_CONFIG
|
||||
WHERE
|
||||
SOPMAL_CD = #{sopmalCd}
|
||||
</select>
|
||||
|
||||
|
||||
<!-- Select List GC_NPAY_CONFIG SQL -->
|
||||
<select id="selectNpayConfigList" parameterType="com.wb.domainserver.domain.gcone.ordr.npay.vo.BONpayConfigVO" resultType="com.wb.domainserver.domain.gcone.ordr.npay.vo.BONpayConfigVO">
|
||||
SELECT
|
||||
SOPMAL_CD
|
||||
,SHOP_ID
|
||||
,CERTIFICATION_KEY
|
||||
,ACCESS_LICENSE
|
||||
,SECRET_KEY
|
||||
,BUTTON_KEY
|
||||
,COMMON_CERTI_KEY
|
||||
,DATE_FORMAT(REGIST_DT, '%Y.%m.%d %H:%i:%s') AS REGIST_DE
|
||||
,REGIST_DT
|
||||
,REGUSR
|
||||
,DATE_FORMAT(UPDT_DT, '%Y.%m.%d %H:%i:%s') AS UPDT_DE
|
||||
,UPDT_DT
|
||||
,UPDUSR
|
||||
FROM
|
||||
GC_NPAY_CONFIG
|
||||
WHERE
|
||||
SOPMAL_CD = #{sopmalCd}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,730 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.ordr.selngpruf.mapper.BOSelngprufMapper">
|
||||
|
||||
<!-- 매출증빙 목록 조회 FROM 절 -->
|
||||
<sql id="selectBOSelngPrufListInqireFrom">
|
||||
<![CDATA[
|
||||
FROM GC_SALES FS
|
||||
LEFT JOIN GC_ORDER_SETLE FOS
|
||||
ON FS.ORDR_SETLE_INNB = FOS.ORDR_SETLE_INNB
|
||||
INNER JOIN GC_ORDER FO
|
||||
ON FOS.ORDR_INNB = FO.ORDR_INNB
|
||||
AND FOS.SOPMAL_CD = FO.SOPMAL_CD
|
||||
LEFT JOIN GC_ORDER_REFUND FOR1
|
||||
ON FO.ORDR_INNB = FOR1.ORDR_INNB
|
||||
AND FO.SOPMAL_CD = FOR1.SOPMAL_CD
|
||||
LEFT JOIN GC_MEMBER FM
|
||||
ON FO.MBR_INNB = FM.MBR_INNB
|
||||
AND FO.MBR_DV_CD = FM.MBR_DV_CD
|
||||
]]>
|
||||
</sql>
|
||||
|
||||
<!-- 매출증빙 목록 조회 WHERE 절 -->
|
||||
<sql id="selectBOSelngPrufListInqireWhere">
|
||||
WHERE 1=1
|
||||
AND FO.SOPMAL_CD = #{sopmalCd}
|
||||
AND FO.ORDR_STTUS_CD NOT IN ('0', '95', '99')
|
||||
<!-- AND fo.ORDR_RCEPT_DT between '2022-07-19' and '2022-07-25' -->
|
||||
<!-- 검색어 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchWord)">
|
||||
AND (
|
||||
FO.ORDRR_NM LIKE CONCAT('%', #{srchWord}, '%') OR
|
||||
FO.ORDR_INNB LIKE CONCAT('%', #{srchWord}, '%')
|
||||
)
|
||||
</if>
|
||||
|
||||
<!-- 날짜 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchDate)">
|
||||
<choose>
|
||||
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDate, '1')">
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStartDate)">
|
||||
<![CDATA[
|
||||
AND FO.ORDR_RCEPT_DT >= #{srchStartDate} ' 00:00:00'
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndDate)">
|
||||
<![CDATA[
|
||||
AND FO.ORDR_RCEPT_DT <= #{srchEndDate} ' 23:59:59'
|
||||
]]>
|
||||
</if>
|
||||
</when>
|
||||
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDate, '2')">
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStartDate)">
|
||||
<![CDATA[
|
||||
AND FS.REGIST_DT >= #{srchStartDate} ' 00:00:00'
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndDate)">
|
||||
<![CDATA[
|
||||
AND FS.REGIST_DT <= #{srchEndDate} ' 23:59:59'
|
||||
]]>
|
||||
</if>
|
||||
</when>
|
||||
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDate, '3')">
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStartDate)">
|
||||
<![CDATA[
|
||||
AND FS.UPDT_DT >= #{srchStartDate} ' 00:00:00'
|
||||
]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndDate)">
|
||||
<![CDATA[
|
||||
AND FS.UPDT_DT <= #{srchEndDate} ' 23:59:59'
|
||||
]]>
|
||||
</if>
|
||||
</when>
|
||||
</choose>
|
||||
</if>
|
||||
|
||||
<!-- 증빙서류 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchReqst)">
|
||||
<![CDATA[
|
||||
AND FS.REQST_DV_CD IN
|
||||
]]>
|
||||
<foreach collection="srchReqst" item="srchReqst" open="(" close=")" separator=",">
|
||||
<choose>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchReqst, '02')">
|
||||
<![CDATA[
|
||||
'02', '03'
|
||||
]]>
|
||||
</when>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchReqst, '04')">
|
||||
#{srchReqst}
|
||||
</when>
|
||||
</choose>
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
<!-- 결제여부 입금 체크 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchRcpmny1) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchRcpmny2)">
|
||||
<![CDATA[
|
||||
AND FO.ORDR_STTUS_CD > 15
|
||||
]]>
|
||||
</if>
|
||||
<!-- 결제여부 미입금 체크 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchRcpmny1) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchRcpmny2)">
|
||||
<![CDATA[
|
||||
AND FO.ORDR_STTUS_CD = 15
|
||||
]]>
|
||||
</if>
|
||||
|
||||
<!-- 환불유무 있음 체크 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchRefund1) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchRefund2)">
|
||||
<![CDATA[
|
||||
AND FOR1.ORDER_REFUND_INNB IS NOT NULL
|
||||
]]>
|
||||
</if>
|
||||
<!-- 환불유무 없음 체크 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchRefund1) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchRefund2)">
|
||||
<![CDATA[
|
||||
AND FOR1.ORDER_REFUND_INNB IS NULL
|
||||
]]>
|
||||
</if>
|
||||
|
||||
<!-- 상태 -->
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStatus)">
|
||||
<![CDATA[
|
||||
AND
|
||||
]]>
|
||||
<foreach collection="srchStatus" item="srchStatus" open="(" close=")" separator="OR">
|
||||
<![CDATA[
|
||||
FS.ISSU_STTUS_CD = #{srchStatus}
|
||||
]]>
|
||||
</foreach>
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
<!-- 매출증빙 목록 조회 GROUP BY 절 -->
|
||||
<sql id="selectBOSelngPrufListInqireGroupBy">
|
||||
GROUP BY FO.ORDR_INNB
|
||||
,FO.ORDR_RCEPT_DT
|
||||
,FO.ORDRR_NM
|
||||
,FM.MBR_ID
|
||||
,FOS.SETLE_TY_CD
|
||||
,FOS.SETLE_AMT
|
||||
,FO.ORDR_STTUS_CD
|
||||
,FS.REGIST_DT
|
||||
,FS.REQST_DV_CD
|
||||
,FS.SPLPRIC
|
||||
,FS.VAT_AMT
|
||||
,FS.AMT
|
||||
,FS.CANCL_AMT
|
||||
,FS.ISSU_DT
|
||||
,FS.ISSU_STTUS_CD
|
||||
,FS.MNGR_MEMO_CN
|
||||
,FS.SELNG_PRUF_INNB
|
||||
ORDER BY FO.ORDR_INNB DESC
|
||||
</sql>
|
||||
|
||||
<!-- 매출증빙 목록 건수 조회 -->
|
||||
<select id = "selectBOSelngPrufListCnt"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
|
||||
resultType="java.lang.Integer">
|
||||
SELECT
|
||||
COUNT(*)
|
||||
FROM (
|
||||
SELECT FO.ORDR_INNB
|
||||
<include refid = "selectBOSelngPrufListInqireFrom"/>
|
||||
<include refid = "selectBOSelngPrufListInqireWhere"/>
|
||||
<include refid = "selectBOSelngPrufListInqireGroupBy"/>
|
||||
) AS TEMP
|
||||
</select>
|
||||
|
||||
<!-- 매출증빙 목록 조회 -->
|
||||
<select id = "selectBOSelngPrufListInqire"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
|
||||
resultType="dataMap">
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT
|
||||
CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM, TB.*
|
||||
FROM (
|
||||
SELECT FO.ORDR_INNB
|
||||
,FO.ORDR_RCEPT_DT
|
||||
,FO.ORDRR_NM
|
||||
,FM.MBR_ID
|
||||
,FOS.SETLE_TY_CD
|
||||
,FOS.SETLE_AMT
|
||||
,FO.ORDR_STTUS_CD AS ORDR_STTUS_CD
|
||||
,FN_GET_COMMCODE_NAME('ORDR_STTUS',FO.ORDR_STTUS_CD) AS ORDR_STTUS_CD_NM
|
||||
,FS.REGIST_DT
|
||||
,FS.REQST_DV_CD AS REQST_DV_CD
|
||||
,FN_GET_COMMCODE_NAME('REQST_DV', FS.REQST_DV_CD) AS REQST_DV_CD_NM
|
||||
,FS.SPLPRIC
|
||||
,FS.VAT_AMT
|
||||
,FS.AMT
|
||||
,FS.CANCL_AMT
|
||||
,FS.ISSU_DT
|
||||
,FS.ISSU_STTUS_CD AS ISSU_STTUS_CD
|
||||
,FN_GET_COMMCODE_NAME('ISSU_STTUS', FS.ISSU_STTUS_CD) AS ISSU_STTUS_CD_NM
|
||||
,FS.MNGR_MEMO_CN
|
||||
,FO.SOPMAL_CD
|
||||
,GROUP_CONCAT(FOR1.ORDER_REFUND_INNB) AS ORDER_REFUND_INNB
|
||||
,FS.SELNG_PRUF_INNB
|
||||
,FS.ORDR_SETLE_INNB
|
||||
,FS.CSH_RCIPT_DELNG_NB
|
||||
,FS.CRTNB
|
||||
,FOS.PG_CMPNY_NM
|
||||
,FOS.PG_INNB
|
||||
,FS.UPDT_DT
|
||||
<include refid = "selectBOSelngPrufListInqireFrom"/>
|
||||
<include refid = "selectBOSelngPrufListInqireWhere"/>
|
||||
<include refid = "selectBOSelngPrufListInqireGroupBy"/>
|
||||
<![CDATA[
|
||||
) TB
|
||||
WHERE (@rownum:=0)=0
|
||||
) PV
|
||||
WHERE 1=1
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 매출증빙 관리자 메모 조회 -->
|
||||
<select id = "selectBOSelngPrufMngrMemoRegistPopupForm"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT DISTINCT
|
||||
ORDR_INNB,
|
||||
SOPMAL_CD,
|
||||
MNGR_MEMO_CN,
|
||||
SELNG_PRUF_INNB
|
||||
FROM GC_SALES
|
||||
WHERE 1=1
|
||||
AND SELNG_PRUF_INNB = #{selngPrufInnb}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 매출증빙 관리자 메모 등록, 수정 -->
|
||||
<update id = "updateBOSelngPrufMngrMemoRegistPopup"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO">
|
||||
<![CDATA[
|
||||
UPDATE GC_SALES
|
||||
SET MNGR_MEMO_CN = TRIM(#{mngrMemoCn})
|
||||
,UPDUSR = #{updusr}
|
||||
,UPDT_DT = SYSDATE()
|
||||
WHERE 1=1
|
||||
AND SELNG_PRUF_INNB = #{selngPrufInnb}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</update>
|
||||
|
||||
<!-- 매출증빙 전송로그 건수 조회 -->
|
||||
<select id = "selectBOSelngPrufTrnsmisLogInqireCnt"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
|
||||
resultType="java.lang.Integer">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
COUNT(*)
|
||||
FROM GC_SALES_LOG
|
||||
WHERE 1=1
|
||||
AND SELNG_PRUF_INNB = #{selngPrufInnb}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 매출증빙 전송로그 조회 -->
|
||||
<select id = "selectBOSelngPrufTrnsmisLogInqire"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
*
|
||||
FROM GC_SALES_LOG
|
||||
WHERE 1=1
|
||||
AND SELNG_PRUF_INNB = #{selngPrufInnb}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 매출증빙 테이블 조회 -->
|
||||
<select id = "selectBOCshRcipt"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
FS.ISSU_STTUS_CD,
|
||||
FN_GET_COMMCODE_NAME("ISSU_STTUS", FS.ISSU_STTUS_CD) AS ISSU_STTUS_CD_NM,
|
||||
FS.REGIST_DT,
|
||||
FS.ISSU_TRGET_DV_CD,
|
||||
FN_GET_COMMCODE_NAME("ISSU_TRGET_DV",FS.ISSU_TRGET_DV_CD) AS ISSU_TRGET_DV_CD_NM,
|
||||
FS.CRTNB,
|
||||
FS.ORDRR_NM,
|
||||
CAST(AES_DECRYPT(UNHEX(FS.ORDRR_EMAIL) , '1df5be2f7e90ae36') AS CHAR(50)) AS ORDRR_EMAIL,
|
||||
FS.GOODS_NM,
|
||||
FS.AMT,
|
||||
FS.SPLPRIC,
|
||||
FS.VAT_AMT,
|
||||
FS.ORDR_INNB,
|
||||
FS.SOPMAL_CD,
|
||||
FS.ORDR_SETLE_INNB,
|
||||
FS.SELNG_PRUF_INNB
|
||||
FROM GC_SALES FS
|
||||
WHERE 1=1
|
||||
AND FS.SELNG_PRUF_INNB = #{selngPrufInnb}
|
||||
AND FS.SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 매출증빙 현금영수증 정보 수정 -->
|
||||
<update id = "updateBOCshRcipt"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO">
|
||||
<![CDATA[
|
||||
UPDATE GC_SALES
|
||||
SET ISSU_TRGET_DV_CD = #{issuTrgetDvCd}
|
||||
,CRTNB = #{crtnb}
|
||||
]]>
|
||||
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ordrrNm)">
|
||||
,ORDRR_NM = #{ordrrNm}
|
||||
</if>
|
||||
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ordrrEmail)">
|
||||
,ORDRR_EMAIL = HEX(AES_ENCRYPT(#{ordrrEmail}, '1df5be2f7e90ae36'))
|
||||
</if>
|
||||
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(goodsNm)">
|
||||
,GOODS_NM = #{goodsNm}
|
||||
</if>
|
||||
<![CDATA[
|
||||
,UPDT_DT = SYSDATE()
|
||||
,UPDUSR = #{updusr}
|
||||
WHERE 1=1
|
||||
AND SELNG_PRUF_INNB = #{selngPrufInnb}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</update>
|
||||
|
||||
<!-- 매출증빙 현금영수증 api 응답 값 업데이트
|
||||
<update id = "updateBOCashRciptRegistSelngPruf"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO">
|
||||
|
||||
<choose>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(cshRciptDelngNb)">
|
||||
<![CDATA[
|
||||
UPDATE GC_SALES
|
||||
SET CSH_RCIPT_DELNG_NB = #{cshRciptDelngNb}
|
||||
,CSH_RCIPT_APVLNB = #{cshRciptApvlnb}
|
||||
,CSH_RCIPT_CONFM_DT = #{cshRciptConfmDt}
|
||||
,ISSU_TRGET_DV_CD = #{issuTrgetDvCd}
|
||||
,CRTNB = #{crtnb}
|
||||
,ORDRR_NM = #{ordrrNm}
|
||||
,ORDRR_EMAIL = HEX(AES_ENCRYPT(#{ordrrEmail}, '1df5be2f7e90ae36'))
|
||||
,ISSU_STTUS_CD = #{issuSttusCd}
|
||||
,UPDT_DT = SYSDATE()
|
||||
WHERE 1=1
|
||||
AND SELNG_PRUF_INNB = #{selngPrufInnb}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</when>
|
||||
<otherwise>
|
||||
<![CDATA[
|
||||
UPDATE GC_SALES
|
||||
SET ISSU_STTUS_CD = #{issuSttusCd}
|
||||
,UPDT_DT = SYSDATE()
|
||||
WHERE 1=1
|
||||
AND SELNG_PRUF_INNB = #{selngPrufInnb}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</otherwise>
|
||||
</choose>
|
||||
</update>
|
||||
-->
|
||||
|
||||
<!-- 매출증빙 현금영수증 api 응답 값 업데이트 -->
|
||||
<update id = "updateBOCashRciptRegistSelngPruf"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO">
|
||||
|
||||
<![CDATA[
|
||||
UPDATE GC_SALES
|
||||
SET CSH_RCIPT_DELNG_NB = #{cshRciptDelngNb}
|
||||
,CSH_RCIPT_APVLNB = #{cshRciptApvlnb}
|
||||
,CSH_RCIPT_CONFM_DT = #{cshRciptConfmDt}
|
||||
,ISSU_TRGET_DV_CD = #{issuTrgetDvCd}
|
||||
,CRTNB = #{crtnb}
|
||||
,ORDRR_NM = #{ordrrNm}
|
||||
,ORDRR_EMAIL = HEX(AES_ENCRYPT(#{ordrrEmail}, '1df5be2f7e90ae36'))
|
||||
,GOODS_NM = #{goodsNm}
|
||||
,ISSU_STTUS_CD = #{issuSttusCd}
|
||||
,UPDT_DT = SYSDATE()
|
||||
,ISSU_DT = SYSDATE()
|
||||
,UPDUSR = #{updusr}
|
||||
WHERE 1=1
|
||||
AND SELNG_PRUF_INNB = #{selngPrufInnb}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</update>
|
||||
|
||||
<!-- 매출증빙로그 추가 -->
|
||||
<update id = "insertBOSelngPrufLogRegist"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO">
|
||||
<![CDATA[
|
||||
INSERT INTO GC_SALES_LOG (
|
||||
SELNG_PRUF_LOG_INNB,
|
||||
SELNG_PRUF_INNB,
|
||||
REGIST_DT,
|
||||
LOG_MSG
|
||||
)
|
||||
SELECT
|
||||
COALESCE(MAX(SELNG_PRUF_LOG_INNB), 0) + 1,
|
||||
#{selngPrufInnb},
|
||||
SYSDATE(),
|
||||
#{logMsg}
|
||||
FROM GC_SALES_LOG
|
||||
]]>
|
||||
</update>
|
||||
|
||||
<!-- 엑셀다운로드(전체) -->
|
||||
<select id = "selectBOSopmalExcelAllList"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
|
||||
resultType="dataMap">
|
||||
|
||||
SELECT FO.ORDR_INNB
|
||||
,DATE_FORMAT(FO.ORDR_RCEPT_DT, '%Y-%m-%d %H:%i:%s') AS ORDR_RCEPT_DT
|
||||
,FO.ORDRR_NM
|
||||
,FM.MBR_ID
|
||||
,FOS.SETLE_TY_CD
|
||||
,FN_GET_COMMCODE_NAME('SETLE_MTH',FOS.SETLE_TY_CD) AS SETLE_TY_CD_NM
|
||||
,FOS.SETLE_AMT
|
||||
,FO.ORDR_STTUS_CD AS ORDR_STTUS_CD
|
||||
,FN_GET_COMMCODE_NAME('ORDR_STTUS',FO.ORDR_STTUS_CD) AS ORDR_STTUS_CD_NM
|
||||
,DATE_FORMAT(FS.REGIST_DT, '%Y-%m-%d %H:%i:%s') AS REGIST_DT
|
||||
,FS.REQST_DV_CD AS REQST_DV_CD
|
||||
,FN_GET_COMMCODE_NAME('REQST_DV', FS.REQST_DV_CD) AS REQST_DV_CD_NM
|
||||
,FS.SPLPRIC
|
||||
,FS.VAT_AMT
|
||||
,FS.AMT
|
||||
,FS.CANCL_AMT
|
||||
,DATE_FORMAT(FS.UPDT_DT, '%Y-%m-%d %H:%i:%s') AS UPDT_DT
|
||||
,FS.ISSU_STTUS_CD AS ISSU_STTUS_CD
|
||||
,FN_GET_COMMCODE_NAME('ISSU_STTUS', FS.ISSU_STTUS_CD) AS ISSU_STTUS_CD_NM
|
||||
,FS.MNGR_MEMO_CN
|
||||
,FO.SOPMAL_CD
|
||||
,GROUP_CONCAT(FOR1.ORDER_REFUND_INNB) AS ORDER_REFUND_INNB
|
||||
,FS.SELNG_PRUF_INNB
|
||||
,FS.ORDR_SETLE_INNB
|
||||
,FS.CSH_RCIPT_DELNG_NB
|
||||
,FS.CRTNB
|
||||
,FOS.PG_CMPNY_NM
|
||||
,FOS.PG_INNB
|
||||
<include refid = "selectBOSelngPrufListInqireFrom"/>
|
||||
<include refid = "selectBOSelngPrufListInqireWhere"/>
|
||||
<include refid = "selectBOSelngPrufListInqireGroupBy"/>
|
||||
</select>
|
||||
|
||||
<!-- 엑셀다운로드(선택) -->
|
||||
<select id = "selectBOSopmalExcelList"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
|
||||
resultType="dataMap">
|
||||
|
||||
SELECT FO.ORDR_INNB
|
||||
,DATE_FORMAT(FO.ORDR_RCEPT_DT, '%Y-%m-%d %H:%i:%s') AS ORDR_RCEPT_DT
|
||||
,FO.ORDRR_NM
|
||||
,FM.MBR_ID
|
||||
,FOS.SETLE_TY_CD
|
||||
,FN_GET_COMMCODE_NAME('SETLE_MTH',FOS.SETLE_TY_CD) AS SETLE_TY_CD_NM
|
||||
,FOS.SETLE_AMT
|
||||
,FO.ORDR_STTUS_CD AS ORDR_STTUS_CD
|
||||
,FN_GET_COMMCODE_NAME('ORDR_STTUS',FO.ORDR_STTUS_CD) AS ORDR_STTUS_CD_NM
|
||||
,DATE_FORMAT(FS.REGIST_DT, '%Y-%m-%d %H:%i:%s') AS REGIST_DT
|
||||
,FS.REQST_DV_CD AS REQST_DV_CD
|
||||
,FN_GET_COMMCODE_NAME('REQST_DV', FS.REQST_DV_CD) AS REQST_DV_CD_NM
|
||||
,FS.SPLPRIC
|
||||
,FS.VAT_AMT
|
||||
,FS.AMT
|
||||
,FS.CANCL_AMT
|
||||
,DATE_FORMAT(FS.UPDT_DT, '%Y-%m-%d %H:%i:%s') AS UPDT_DT
|
||||
,FS.ISSU_STTUS_CD AS ISSU_STTUS_CD
|
||||
,FN_GET_COMMCODE_NAME('ISSU_STTUS', FS.ISSU_STTUS_CD) AS ISSU_STTUS_CD_NM
|
||||
,FS.MNGR_MEMO_CN
|
||||
,FO.SOPMAL_CD
|
||||
,GROUP_CONCAT(FOR1.ORDER_REFUND_INNB) AS ORDER_REFUND_INNB
|
||||
,FS.SELNG_PRUF_INNB
|
||||
,FS.ORDR_SETLE_INNB
|
||||
,FS.CSH_RCIPT_DELNG_NB
|
||||
,FS.CRTNB
|
||||
,FOS.PG_CMPNY_NM
|
||||
,FOS.PG_INNB
|
||||
<include refid = "selectBOSelngPrufListInqireFrom"/>
|
||||
WHERE 1=1
|
||||
<![CDATA[
|
||||
AND FS.SELNG_PRUF_INNB IN
|
||||
]]>
|
||||
<foreach collection="selngPrufInnbArr" item="selngPrufInnbArr" open="(" close=")" separator=",">
|
||||
<![CDATA[
|
||||
#{selngPrufInnbArr}
|
||||
]]>
|
||||
</foreach>
|
||||
<include refid = "selectBOSelngPrufListInqireGroupBy"/>
|
||||
</select>
|
||||
|
||||
<!-- 쇼핑몰결제설정 테이블 조회 -->
|
||||
<select id = "selectBOSopmalSetleSetup"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
|
||||
resultType="com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
IF(PG_CMPNY_NM = 'kcp', 'kcp', 'toss') AS PG_CMPNY_NM,
|
||||
CASE WHEN IFNULL(OS.SETLE_MID, '') <> '' THEN OS.SETLE_MID
|
||||
WHEN OS.PG_CMPNY_NM = 'kcp' THEN PL.KCP_MID
|
||||
ELSE PL.OLD_TOSS_MID
|
||||
END AS MID
|
||||
FROM GC_ORDER_SETLE OS
|
||||
INNER JOIN GC_PAY_LINK PL
|
||||
ON OS.SOPMAL_CD = PL.SOPMAL_CD
|
||||
WHERE OS.SOPMAL_CD = #{sopmalCd}
|
||||
AND OS.ORDR_INNB = #{ordrInnb}
|
||||
ORDER BY PL.SETLE_SETUP_INNB
|
||||
LIMIT 1
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 매출증빙 테이블 현금영수증 취소 조회 -->
|
||||
<select id = "selectBOCshRciptCancel"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
|
||||
resultType="com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
SELNG_PRUF_INNB,
|
||||
ORDR_SETLE_INNB,
|
||||
ORDR_INNB,
|
||||
SOPMAL_CD,
|
||||
ROUND(AMT) AMT,
|
||||
ROUND(SPLPRIC) SPLPRIC,
|
||||
ROUND(VAT_AMT) VAT_AMT,
|
||||
GOODS_NM,
|
||||
REQST_DV_CD,
|
||||
ISSU_TRGET_DV_CD,
|
||||
CRTNB,
|
||||
CSH_RCIPT_DELNG_NB,
|
||||
CSH_RCIPT_APVLNB,
|
||||
CSH_RCIPT_CONFM_DT,
|
||||
ORDRR_NM,
|
||||
CAST(AES_DECRYPT(UNHEX(ORDRR_EMAIL) , '1df5be2f7e90ae36') AS CHAR(50)) AS ORDRR_EMAIL,
|
||||
ISSU_STTUS_CD,
|
||||
UPDUSR_DV_CD,
|
||||
REGUSR,
|
||||
REGIST_DT,
|
||||
UPDUSR,
|
||||
UPDT_DT,
|
||||
ISSU_DT,
|
||||
MNGR_MEMO_CN,
|
||||
CANCL_AMT,
|
||||
CANCL_SPLPRIC,
|
||||
CANCL_VAT_AMT
|
||||
FROM GC_SALES
|
||||
WHERE 1=1
|
||||
AND REQST_DV_CD = '02'
|
||||
AND ORDR_SETLE_INNB = #{ordrSetleInnb}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND ISSU_STTUS_CD != '03'
|
||||
]]>
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 매출증빙 현금영수증 취소 update -->
|
||||
<update id = "updateBOCshRciptCancel"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO">
|
||||
|
||||
<![CDATA[
|
||||
UPDATE GC_SALES
|
||||
SET CANCL_AMT = #{canclAmt}
|
||||
,CANCL_SPLPRIC = #{canclSplpric}
|
||||
,CANCL_VAT_AMT = #{canclVatAmt}
|
||||
,ISSU_STTUS_CD = #{issuSttusCd}
|
||||
,UPDT_DT = SYSDATE()
|
||||
,UPDUSR = #{updusr}
|
||||
,UPDUSR_DV_CD = #{updusrDvCd}
|
||||
WHERE 1=1
|
||||
AND SELNG_PRUF_INNB = #{selngPrufInnb}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</update>
|
||||
|
||||
|
||||
<!-- 매출증빙 테이블 추가 -->
|
||||
<insert id = "insertBOSelngPrufRegist"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
|
||||
keyProperty="selngPrufInnb"
|
||||
useGeneratedKeys="true">
|
||||
|
||||
<![CDATA[
|
||||
INSERT INTO GC_SALES (
|
||||
ORDR_SETLE_INNB,
|
||||
ORDR_INNB,
|
||||
SOPMAL_CD,
|
||||
AMT,
|
||||
SPLPRIC,
|
||||
VAT_AMT,
|
||||
GOODS_NM,
|
||||
REQST_DV_CD,
|
||||
ISSU_TRGET_DV_CD,
|
||||
CRTNB,
|
||||
CSH_RCIPT_DELNG_NB,
|
||||
CSH_RCIPT_APVLNB,
|
||||
CSH_RCIPT_CONFM_DT,
|
||||
ORDRR_NM,
|
||||
ORDRR_EMAIL,
|
||||
ISSU_STTUS_CD,
|
||||
UPDUSR_DV_CD,
|
||||
REGUSR,
|
||||
REGIST_DT,
|
||||
UPDUSR,
|
||||
UPDT_DT,
|
||||
ISSU_DT,
|
||||
MNGR_MEMO_CN,
|
||||
CANCL_AMT,
|
||||
CANCL_SPLPRIC,
|
||||
CANCL_VAT_AMT
|
||||
)
|
||||
SELECT
|
||||
#{ordrSetleInnb},
|
||||
#{ordrInnb},
|
||||
#{sopmalCd},
|
||||
#{amt},
|
||||
#{splpric},
|
||||
#{vatAmt},
|
||||
#{goodsNm},
|
||||
#{reqstDvCd},
|
||||
#{issuTrgetDvCd},
|
||||
#{crtnb},
|
||||
#{cshRciptDelngNb},
|
||||
#{cshRciptApvlnb},
|
||||
#{cshRciptConfmDt},
|
||||
#{ordrrNm},
|
||||
HEX(AES_ENCRYPT(#{ordrrEmail}, '1df5be2f7e90ae36')),
|
||||
#{issuSttusCd},
|
||||
#{updusrDvCd},
|
||||
#{regusr},
|
||||
SYSDATE(),
|
||||
#{updusr},
|
||||
SYSDATE(),
|
||||
#{issuDt},
|
||||
#{mngrMemoCn},
|
||||
#{canclAmt},
|
||||
#{canclSplpric},
|
||||
#{canclVatAmt}
|
||||
FROM GC_SALES
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
|
||||
<!-- 매출증빙 테이블 주문번호로 주문결제 번호 찾기 -->
|
||||
<select id = "selectBOCashRciptUpdt"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
|
||||
resultType="com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
SELNG_PRUF_INNB,
|
||||
ORDR_SETLE_INNB,
|
||||
ORDR_INNB,
|
||||
SOPMAL_CD,
|
||||
ROUND(AMT) AMT,
|
||||
ROUND(SPLPRIC) SPLPRIC,
|
||||
ROUND(VAT_AMT) VAT_AMT,
|
||||
GOODS_NM,
|
||||
REQST_DV_CD,
|
||||
ISSU_TRGET_DV_CD,
|
||||
CRTNB,
|
||||
CSH_RCIPT_DELNG_NB,
|
||||
CSH_RCIPT_APVLNB,
|
||||
CSH_RCIPT_CONFM_DT,
|
||||
ORDRR_NM,
|
||||
CAST(AES_DECRYPT(UNHEX(ORDRR_EMAIL) , '1df5be2f7e90ae36') AS CHAR(50)) AS ORDRR_EMAIL,
|
||||
ISSU_STTUS_CD,
|
||||
UPDUSR_DV_CD,
|
||||
REGUSR,
|
||||
REGIST_DT,
|
||||
UPDUSR,
|
||||
UPDT_DT,
|
||||
ISSU_DT,
|
||||
MNGR_MEMO_CN,
|
||||
CANCL_AMT,
|
||||
CANCL_SPLPRIC,
|
||||
CANCL_VAT_AMT
|
||||
FROM GC_SALES GS
|
||||
WHERE 1=1
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND ORDR_INNB = #{ordrInnb}
|
||||
AND REQST_DV_CD = '02'
|
||||
]]>
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 매출증빙 테이블 쇼핑몰코드, 주문번호로 현금영수증 대상조회 -->
|
||||
<select id = "selectBOCshRciptRegist"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
|
||||
resultType="com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
FS.SELNG_PRUF_INNB,
|
||||
FS.SOPMAL_CD,
|
||||
FS.ORDR_INNB,
|
||||
FS.ORDR_SETLE_INNB,
|
||||
FS.ORDRR_NM,
|
||||
CAST(AES_DECRYPT(UNHEX(FS.ORDRR_EMAIL) , '1df5be2f7e90ae36') AS CHAR(50)) AS ORDRR_EMAIL,
|
||||
FS.CRTNB,
|
||||
FS.GOODS_NM,
|
||||
FS.ISSU_TRGET_DV_CD,
|
||||
FS.ISSU_STTUS_CD,
|
||||
ROUND(FS.AMT) AS AMT,
|
||||
ROUND(FS.SPLPRIC) AS SPLPRIC,
|
||||
ROUND(FS.VAT_AMT) AS VAT_AMT
|
||||
FROM GC_SALES FS
|
||||
INNER JOIN GC_ORDER_SETLE FOS
|
||||
ON FS.SOPMAL_CD = FOS.SOPMAL_CD
|
||||
AND FS.ORDR_SETLE_INNB = FOS.ORDR_SETLE_INNB
|
||||
INNER JOIN GC_ORDER FO
|
||||
ON FOS.SOPMAL_CD = FO.SOPMAL_CD
|
||||
AND FOS.ORDR_INNB = FO.ORDR_INNB
|
||||
WHERE 1=1
|
||||
AND FS.SOPMAL_CD = #{sopmalCd}
|
||||
AND FS.ORDR_INNB = #{ordrInnb}
|
||||
AND FS.REQST_DV_CD = '02'
|
||||
AND FS.ISSU_STTUS_CD = '01'
|
||||
AND FOS.SETLE_TY_CD = #{setleTyCd}
|
||||
AND FO.ORDR_STTUS_CD = '25'
|
||||
]]>
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,90 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.pos.easywell.mapper.EasyWellMapper">
|
||||
|
||||
<!--이지웰 로그 등록-->
|
||||
<insert id="insertEasyWellLog" useGeneratedKeys="true" keyColumn="EZWELL_LOG_INNB" keyProperty="ezwellLogInnb" parameterType="map">
|
||||
INSERT INTO GC_EZWELL_LOG
|
||||
( EW_PROCS_STTUS,
|
||||
ORDR_INNB,
|
||||
ORDR_CD,
|
||||
STR_INNB,
|
||||
POS_HDQRTRS_CD,
|
||||
STR_CD,
|
||||
POSNB,
|
||||
RCIPT_NB,
|
||||
EW_JOB_DV,
|
||||
EW_DELNG_NB,
|
||||
EW_BRCD_NB,
|
||||
EW_ORDR_INNB,
|
||||
EW_USE_CANCL_AMT,
|
||||
EW_BLCE_NB,
|
||||
EW_CONFM_NB,
|
||||
EW_MBR_NB,
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(org_approv)">
|
||||
DELNG_CONFM_NB,
|
||||
</if>
|
||||
EW_RES_CD,
|
||||
EW_RES_MSG,
|
||||
REQ_DT
|
||||
)
|
||||
VALUES(
|
||||
'01',
|
||||
0,
|
||||
#{order_code},
|
||||
0,
|
||||
#{pgubun},
|
||||
#{pcode},
|
||||
#{poscode},
|
||||
#{pnumb},
|
||||
#{ew_act_cd},
|
||||
'',
|
||||
#{ew_code},
|
||||
#{ew_order_code},
|
||||
0,
|
||||
0,
|
||||
'',
|
||||
'',
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(org_approv)">
|
||||
#{org_approv},
|
||||
</if>
|
||||
'',
|
||||
'',
|
||||
SYSDATE()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!--이지웰 로그 수정-->
|
||||
<update id="updateEasyWellLog" parameterType="map">
|
||||
UPDATE GC_EZWELL_LOG
|
||||
SET EW_PROCS_STTUS= '02',
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ew_remain)">
|
||||
EW_BLCE_NB = #{ew_remain},
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ew_price)">
|
||||
EW_USE_CANCL_AMT = #{ew_price},
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ew_approv)">
|
||||
EW_CONFM_NB = #{ew_approv},
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ew_member)">
|
||||
EW_MBR_NB = #{ew_member},
|
||||
</if>
|
||||
EW_RES_CD = #{logcode},
|
||||
EW_RES_MSG = #{msg},
|
||||
RES_DT = SYSDATE()
|
||||
WHERE 1=1
|
||||
AND EZWELL_LOG_INNB = #{ezwellLogInnb}
|
||||
</update>
|
||||
|
||||
<!--이지웰 로그 조회-->
|
||||
<select id="selectEasyWellLog" parameterType="map" resultType="dataMap">
|
||||
SELECT EW_USE_CANCL_AMT
|
||||
FROM GC_EZWELL_LOG
|
||||
WHERE 1=1
|
||||
AND EW_BRCD_NB = #{ew_code}
|
||||
AND EW_CONFM_NB= #{org_approv}
|
||||
AND ORDR_CD= #{org_order}
|
||||
AND EW_PROCS_STTUS = '02'
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,361 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.pos.pos.mapper.PosCouponMapper">
|
||||
|
||||
<!-- 포스 쿠폰 조회 -->
|
||||
<select id="selectPosCouponInqire">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
PC.POS_HDQRTRS_CD
|
||||
,PC.POS_COUPON_REGIST_YEAR
|
||||
,PC.POS_COUPON_CD
|
||||
,PC.COUPON_INNB
|
||||
,PC.SOPMAL_CD
|
||||
,#{AUTH_NO} AS OFLNE_COUPON_CRTNB
|
||||
FROM GC_COUPON_POS PC
|
||||
WHERE 1 = 1
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(pgubun)">
|
||||
AND PC.POS_HDQRTRS_CD = #{pgubun}
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(COUPON_YEAR)">
|
||||
AND PC.POS_COUPON_REGIST_YEAR = #{COUPON_YEAR}
|
||||
</if>
|
||||
<![CDATA[
|
||||
AND PC.POS_COUPON_CD = #{COUPON_CODE}
|
||||
AND SUBSTRING(PC.COUPON_INNB, -3) = SUBSTRING(#{AUTH_NO}, 3, 3)
|
||||
AND PC.SOPMAL_CD = (
|
||||
SELECT
|
||||
SH.SOPMAL_CD
|
||||
FROM GC_SHOP SH
|
||||
WHERE SH.SOPMAL_NB = SUBSTRING(#{AUTH_NO}, 1, 2)
|
||||
)
|
||||
]]>
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 유효 쿠폰 정보 조회 -->
|
||||
<select id="selectPosOflneCouponInqire">
|
||||
<![CDATA[
|
||||
(
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT
|
||||
DW.SOPMAL_CD AS coupon_site
|
||||
,DW.COUPON_INNB AS coupon_seq
|
||||
,DW.COUPON_DC AS coupon_desc
|
||||
,IFNULL(DW.VALIDPD_BGN_DT, C.VALIDPD_BGN_DT) AS issue_startdate
|
||||
,IFNULL(DW.VALIDPD_END_DT, C.VALIDPD_END_DT) AS issue_enddate
|
||||
,C.VALIDPD_KND_CD AS issue_priod_type
|
||||
,C.VALIDPD_DE_CNT AS after_issue_day
|
||||
,CASE
|
||||
WHEN DW.VALIDPD_BGN_DT <= SYSDATE() THEN 'Y'
|
||||
ELSE 'N'
|
||||
END AS START_DATE
|
||||
,CASE
|
||||
WHEN DW.VALIDPD_END_DT >= SYSDATE() THEN 'Y'
|
||||
ELSE 'N'
|
||||
END AS END_DATE
|
||||
,OFC.OFLNE_COUPON_INNB AS offline_seq
|
||||
,OFC.REGIST_DT AS OFLNE_REGIST_DT
|
||||
,OFC.OFLNE_COUPON_CRTNB AS offline_serialnumber
|
||||
,SD.COUPON_SNDNG_INNB
|
||||
,SD.COUPON_SNDNG_USE_AT AS issue_stop
|
||||
,DW.DWLD_COUPON_INNB AS download_seq
|
||||
,DW.MBR_DV_CD AS mbr_dv_cd
|
||||
,DW.MBR_INNB AS member_seq
|
||||
,DW.REGIST_DT AS DWLD_REGIST_DT
|
||||
,DW.COUPON_STTUS_CD AS use_status
|
||||
,DW.COUPON_USE_DT AS use_date
|
||||
FROM GC_COUPON C
|
||||
INNER JOIN GC_OFFLINE_COUPON OFC
|
||||
ON OFC.OFLNE_COUPON_CRTNB = #{oflneCouponCrtnb}
|
||||
AND C.SOPMAL_CD = OFC.SOPMAL_CD
|
||||
AND C.COUPON_INNB = OFC.COUPON_INNB
|
||||
INNER JOIN GC_DOWNLOAD DW
|
||||
ON OFC.OFLNE_COUPON_INNB = DW.OFLNE_COUPON_INNB
|
||||
AND OFC.SOPMAL_CD = DW.SOPMAL_CD
|
||||
AND OFC.COUPON_INNB = DW.COUPON_INNB
|
||||
AND DW.USE_AT = 'Y'
|
||||
INNER JOIN GC_COUPON_SNDNG SD
|
||||
ON DW.COUPON_SNDNG_INNB = SD.COUPON_SNDNG_INNB
|
||||
WHERE C.USE_AT = 'Y'
|
||||
AND C.SOPMAL_CD = #{sopmalCd}
|
||||
AND C.COUPON_INNB = #{couponInnb}
|
||||
LIMIT 1
|
||||
) AS primary_result
|
||||
)
|
||||
UNION ALL
|
||||
(
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT
|
||||
C.SOPMAL_CD AS coupon_site
|
||||
,C.COUPON_INNB AS coupon_seq
|
||||
,C.COUPON_DC AS coupon_desc
|
||||
,C.VALIDPD_BGN_DT AS issue_startdate
|
||||
,C.VALIDPD_END_DT AS issue_enddate
|
||||
,C.VALIDPD_KND_CD AS issue_priod_type
|
||||
,C.VALIDPD_DE_CNT AS after_issue_day
|
||||
,CASE
|
||||
WHEN C.VALIDPD_KND_CD = '01' AND C.VALIDPD_BGN_DT > SYSDATE() THEN 'N'
|
||||
WHEN C.VALIDPD_KND_CD = '01' AND C.VALIDPD_BGN_DT < SYSDATE() THEN 'Y'
|
||||
WHEN C.VALIDPD_KND_CD = '02' THEN 'Y'
|
||||
END AS START_DATE
|
||||
,CASE
|
||||
WHEN C.VALIDPD_KND_CD = '01' AND C.VALIDPD_END_DT < SYSDATE() THEN 'N'
|
||||
WHEN C.VALIDPD_KND_CD = '01' AND C.VALIDPD_END_DT > SYSDATE() THEN 'Y'
|
||||
WHEN C.VALIDPD_KND_CD = '02' AND C.VALIDPD_DE_CNT > 0 THEN 'Y'
|
||||
WHEN C.VALIDPD_KND_CD = '02' AND C.VALIDPD_DE_CNT <= 0 THEN 'N'
|
||||
END AS END_DATE
|
||||
,OFC.OFLNE_COUPON_INNB AS offline_seq
|
||||
,OFC.REGIST_DT AS OFLNE_REGIST_DT
|
||||
,OFC.OFLNE_COUPON_CRTNB AS offline_serialnumber
|
||||
,SD.COUPON_SNDNG_INNB
|
||||
,SD.COUPON_SNDNG_USE_AT AS issue_stop
|
||||
,'0' AS download_seq
|
||||
,'' AS mbr_dv_cd
|
||||
,0 AS member_seq
|
||||
,C.REGIST_DT AS DWLD_REGIST_DT
|
||||
,'02' AS use_status
|
||||
,'' AS use_date
|
||||
FROM GC_COUPON C
|
||||
INNER JOIN GC_OFFLINE_COUPON OFC
|
||||
ON OFC.OFLNE_COUPON_CRTNB = #{oflneCouponCrtnb}
|
||||
AND C.SOPMAL_CD = OFC.SOPMAL_CD
|
||||
AND C.COUPON_INNB = OFC.COUPON_INNB
|
||||
INNER JOIN GC_COUPON_SNDNG SD
|
||||
ON OFC.COUPON_SNDNG_INNB = SD.COUPON_SNDNG_INNB
|
||||
WHERE C.USE_AT = 'Y'
|
||||
AND C.SOPMAL_CD = #{sopmalCd}
|
||||
AND C.COUPON_INNB = #{couponInnb}
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM GC_COUPON C
|
||||
INNER JOIN GC_OFFLINE_COUPON OFC
|
||||
ON OFC.OFLNE_COUPON_CRTNB = #{oflneCouponCrtnb}
|
||||
AND C.SOPMAL_CD = OFC.SOPMAL_CD
|
||||
AND C.COUPON_INNB = OFC.COUPON_INNB
|
||||
INNER JOIN GC_DOWNLOAD DW
|
||||
ON OFC.OFLNE_COUPON_INNB = DW.OFLNE_COUPON_INNB
|
||||
AND OFC.SOPMAL_CD = DW.SOPMAL_CD
|
||||
AND OFC.COUPON_INNB = DW.COUPON_INNB
|
||||
AND DW.USE_AT = 'Y'
|
||||
INNER JOIN GC_COUPON_SNDNG SD
|
||||
ON DW.COUPON_SNDNG_INNB = SD.COUPON_SNDNG_INNB
|
||||
WHERE C.USE_AT = 'Y'
|
||||
AND C.SOPMAL_CD = #{sopmalCd}
|
||||
AND C.COUPON_INNB = #{couponInnb}
|
||||
)
|
||||
LIMIT 1
|
||||
) AS fallback_result
|
||||
)
|
||||
]]>
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 다운로드 쿠폰 사용처리 -->
|
||||
<update id="updatePosDwldCouponSttusCdUpdt">
|
||||
<![CDATA[
|
||||
UPDATE GC_DOWNLOAD SET
|
||||
USEPLC_DV_CD = '02'
|
||||
,COUPON_STTUS_CD = '03'
|
||||
,COUPON_USE_DT = SYSDATE()
|
||||
,UPDUSR = #{useq}
|
||||
,UPDT_DT = SYSDATE()
|
||||
WHERE 1=1
|
||||
AND DWLD_COUPON_INNB = #{download_seq}
|
||||
]]>
|
||||
</update>
|
||||
|
||||
|
||||
<!-- 오프라인 쿠폰 다운로드 insert -->
|
||||
<insert id="insertPosDwldCouponRegist"
|
||||
keyProperty="download_seq"
|
||||
useGeneratedKeys="true">
|
||||
<![CDATA[
|
||||
INSERT INTO GC_DOWNLOAD (
|
||||
OFLNE_COUPON_INNB
|
||||
,COUPON_INNB
|
||||
,COUPON_SNDNG_INNB
|
||||
,SOPMAL_CD
|
||||
,MBR_INNB
|
||||
,MBR_DV_CD
|
||||
,CUPNPK_INNB
|
||||
,COUPON_SNDNG_TY_CD
|
||||
,CUPNPK_NM
|
||||
,CUPNPK_DC
|
||||
,COUP_NM
|
||||
,COUPON_DC
|
||||
,USE_ENVRN_CD
|
||||
,OTR_COUPON_SMTM_USE_AT
|
||||
,DPLCT_DWLD_AT
|
||||
,DPLCT_DSCNT_AT
|
||||
,USE_POSBL_AMT
|
||||
,GOODS_APPLC_DV_CD
|
||||
,VALIDPD_BGN_DT
|
||||
,VALIDPD_END_DT
|
||||
,OFLNE_COUPON_CRTNB
|
||||
,USEPLC_DV_CD
|
||||
,COUPON_STTUS_CD
|
||||
,COUPON_USE_DT
|
||||
,RECOVRY_ORGINL_COUPON
|
||||
,MBR_NM
|
||||
,MBTLNB
|
||||
,BNEF_DV_CD
|
||||
,ADIT_DSCNT_CD
|
||||
,ADIT_DSCNT_AMT
|
||||
,DSCNT_MXMM_AMT
|
||||
,DLVY_AMT_DSCNT_DV_CD
|
||||
,DLVY_AMT_DSCNT_AMT
|
||||
,DLVY_AMT_MXMM_DSCNT_AMT
|
||||
,USE_AT
|
||||
,REGUSR
|
||||
,REGIST_DT
|
||||
,UPDUSR
|
||||
,UPDT_DT
|
||||
) SELECT
|
||||
OFC.OFLNE_COUPON_INNB
|
||||
,OFC.COUPON_INNB
|
||||
,OFC.COUPON_SNDNG_INNB
|
||||
,OFC.SOPMAL_CD
|
||||
,#{useq} AS MBR_INNB
|
||||
,#{mbr_dv_cd} AS MBR_DV_CD
|
||||
,NULL AS CUPNPK_INNB
|
||||
,'03' AS COUPON_SNDN_TY_CD
|
||||
,NULL AS CUPNPK_NM
|
||||
,NULL AS CUPNPK_DC
|
||||
,C.COUP_NM
|
||||
,C.COUPON_DC
|
||||
,C.USE_ENVRN_CD
|
||||
,C.OTR_COUPON_SMTM_USE_AT
|
||||
,C.DPLCT_DWLD_AT
|
||||
,C.DPLCT_DSCNT_AT
|
||||
,C.USE_POSBL_AMT
|
||||
,C.GOODS_APPLC_DV_CD
|
||||
,CASE
|
||||
WHEN C.VALIDPD_KND_CD = '01' THEN C.VALIDPD_BGN_DT
|
||||
WHEN C.VALIDPD_KND_CD = '02' THEN CONCAT(CURDATE(), ' 00:00:00')
|
||||
END AS VALIDPD_BGN_DT
|
||||
,CASE
|
||||
WHEN C.VALIDPD_KND_CD = '01' THEN C.VALIDPD_END_DT
|
||||
WHEN C.VALIDPD_KND_CD = '02' THEN CONCAT(DATE(DATE_ADD(SYSDATE(), INTERVAL C.VALIDPD_DE_CNT DAY)), ' 23:59:59')
|
||||
END AS VALIDPD_END_DT
|
||||
,OFC.OFLNE_COUPON_CRTNB
|
||||
,'02' USEPLC_DV_CD
|
||||
,'03' AS COUPON_STTUS_CD
|
||||
,NOW() COUPON_USE_DT
|
||||
,NULL RECOVRY_ORGINL_COUPON
|
||||
,OFC.SNDNG_TRGTER_NM AS MBR_NM
|
||||
,OFC.SNDNG_TRGET_TELNB AS MBTLNB
|
||||
,C.BNEF_DV_CD
|
||||
,C.ADIT_DSCNT_CD
|
||||
,C.ADIT_DSCNT_AMT
|
||||
,C.DSCNT_MXMM_AMT
|
||||
,C.DLVY_AMT_DSCNT_DV_CD
|
||||
,C.DLVY_AMT_DSCNT_AMT
|
||||
,C.DLVY_AMT_MXMM_DSCNT_AMT
|
||||
,'Y' AS USE_AT
|
||||
,OFC.REGUSR AS REGUSR
|
||||
,SYSDATE() REGIST_DT
|
||||
,OFC.UPDUSR AS UPDUSR
|
||||
,SYSDATE() UPDT_DT
|
||||
FROM GC_OFFLINE_COUPON OFC
|
||||
INNER JOIN GC_COUPON C
|
||||
ON OFC.SOPMAL_CD = C.SOPMAL_CD
|
||||
AND OFC.COUPON_INNB = C.COUPON_INNB
|
||||
WHERE 1 = 1
|
||||
AND OFC.SOPMAL_CD = #{coupon_site}
|
||||
AND OFC.OFLNE_COUPON_CRTNB = #{offline_serialnumber}
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
|
||||
<!-- 다운로드 쿠폰 사용 내역(로그) insert -->
|
||||
<insert id="insertPosDwldCouponUsedLogRegist" keyProperty="couponUseDtlsIdnb" useGeneratedKeys="true">
|
||||
<![CDATA[
|
||||
INSERT INTO GC_ORDER_COUPON (
|
||||
DWLD_COUPON_INNB,
|
||||
SOPMAL_CD,
|
||||
ORDR_INNB,
|
||||
COUPON_ISSU_SOPMAL_CD,
|
||||
OFLNE_COUPON_CRTNB,
|
||||
MANAGE_MEMO,
|
||||
CANCL_AT,
|
||||
REGUSR,
|
||||
REGIST_DT,
|
||||
UPDUSR,
|
||||
UPDT_DT
|
||||
) SELECT
|
||||
#{download_seq},
|
||||
#{sopmalCd},
|
||||
#{ordrInnb},
|
||||
#{coupon_site},
|
||||
DW.OFLNE_COUPON_CRTNB,
|
||||
#{manageMemo},
|
||||
'N',
|
||||
#{useq},
|
||||
SYSDATE(),
|
||||
#{useq},
|
||||
SYSDATE()
|
||||
FROM GC_DOWNLOAD DW
|
||||
LEFT JOIN GC_COUPON_SNDNG SD
|
||||
ON DW.COUPON_SNDNG_INNB = SD.COUPON_SNDNG_INNB
|
||||
WHERE DWLD_COUPON_INNB = #{download_seq}
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
|
||||
<!-- 복원 쿠폰 조회 -->
|
||||
<select id="selectPosUseCouponListInqire">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
OC.DWLD_COUPON_INNB
|
||||
,OC.SOPMAL_CD
|
||||
,OC.ORDR_INNB
|
||||
,OC.COUPON_ISSU_SOPMAL_CD
|
||||
,OC.OFLNE_COUPON_CRTNB
|
||||
,OC.MANAGE_MEMO
|
||||
,OC.CANCL_AT
|
||||
,OC.CANCL_DT
|
||||
FROM GC_ORDER_COUPON OC
|
||||
WHERE 1 = 1
|
||||
AND OC.SOPMAL_CD = #{sopmalCd}
|
||||
AND OC.ORDR_INNB = #{ordrInnb}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 다운로드 쿠폰 복원처리 -->
|
||||
<update id="updatePosDwldCouponRecvryUpdt">
|
||||
<![CDATA[
|
||||
UPDATE GC_DOWNLOAD SET
|
||||
COUP_NM = CASE
|
||||
WHEN COUP_NM LIKE '[복원]%' THEN COUP_NM
|
||||
ELSE CONCAT('[복원]', COUP_NM)
|
||||
END
|
||||
,COUPON_STTUS_CD = '02'
|
||||
,UPDUSR = #{mbrInnb}
|
||||
,UPDT_DT = SYSDATE()
|
||||
WHERE 1=1
|
||||
AND DWLD_COUPON_INNB = #{dwldCouponInnb}
|
||||
]]>
|
||||
</update>
|
||||
|
||||
|
||||
<!-- 다운로드 쿠폰 사용내역 취소처리 상태 업데이트 -->
|
||||
<update id="updatePosOrderCouponCancelUpdt">
|
||||
<![CDATA[
|
||||
UPDATE GC_ORDER_COUPON SET
|
||||
CANCL_AT = 'Y'
|
||||
,CANCL_DT = SYSDATE()
|
||||
,UPDUSR = #{mbrInnb}
|
||||
,UPDT_DT = SYSDATE()
|
||||
WHERE 1=1
|
||||
AND DWLD_COUPON_INNB = #{dwldCouponInnb }
|
||||
]]>
|
||||
</update>
|
||||
|
||||
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,369 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.pos.pos.mapper.PosMapper">
|
||||
<!--포스 - 매장 정보 조회-->
|
||||
<select id="selectBOPosStrSrch" parameterType="map" resultType="dataMap">
|
||||
SELECT
|
||||
STR_INNB
|
||||
,TENTCPN_NM -- 매장명
|
||||
,CONCAT('S', CAST(STR_OPER_DV AS UNSIGNED)) AS STR_OPER_DV -- 매장운영구분
|
||||
,POS_CD_DV_VAL
|
||||
,POS_CD_PASSIV_INPUT_VAL
|
||||
,STR_OPER_DV AS STR_OPER_DV_CD
|
||||
FROM GC_STORE
|
||||
WHERE 1=1
|
||||
AND MRHST_AT='Y'
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(search_corporate,'Y')">
|
||||
AND MANAGE_CPR = #{search_corporate}
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(provider_status)">
|
||||
AND TENT_STTUS = #{provider_status}
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(pgubun)">
|
||||
AND POS_CD_DV_VAL = #{pgubun}
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(pcode)">
|
||||
AND POS_CD_PASSIV_INPUT_VAL = #{pcode}
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(order_by)">
|
||||
ORDER BY #{order_by}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<!--포스 - 매장 방문기록 수정-->
|
||||
<update id="updateMbrStrVisit" parameterType="map">
|
||||
UPDATE
|
||||
GC_MEMBER_SITE
|
||||
SET
|
||||
POS_STR_INNB = #{posStrInnb},
|
||||
POS_RECENT_VISIT_DT = SYSDATE(),
|
||||
UPDUSR = #{useq},
|
||||
UPDT_DT = SYSDATE()
|
||||
WHERE 1=1
|
||||
AND MBR_INNB = #{useq}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND MBR_DV_CD = 'GC'
|
||||
</update>
|
||||
|
||||
<!-- 포스-주문 가져오기 (get_order_posinfo) -->
|
||||
<select id="selectOrderPosInfo" parameterType="map" resultType="dataMap">
|
||||
SELECT
|
||||
P.*
|
||||
, IFNULL(O.MBR_INNB, 0) MBR_INNB
|
||||
, O.SOPMAL_CD
|
||||
, O.MBR_INNB
|
||||
, O.MBR_DV_CD
|
||||
FROM GC_ORDER_POSINFO P
|
||||
LEFT JOIN GC_ORDER O ON(O.ORDR_INNB=P.ORDER_SEQ)
|
||||
WHERE 1=1
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(storeSeq)">
|
||||
AND P.STORE_SEQ = #{storeSeq}
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(pdate)">
|
||||
AND P.PDATE = DATE(#{pdate})
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(pono)">
|
||||
AND P.PONO = #{pono}
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(pnumb)">
|
||||
AND P.PNUMB = #{pnumb}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<!-- 주문 아이템 가져오기 (get_order_item) -->
|
||||
<select id="selectOrderItem" parameterType="map" resultType="dataMap">
|
||||
SELECT ORDER_SEQ, ITEM_OPTION_SEQ, ITEM_SEQ, STEP, PRICE, ORI_PRICE, CONSUMER_PRICE, EA, REFUND_EA, UNIT_EMONEY, EMONEY_SALE_UNIT, EMONEY_SALE_REST
|
||||
FROM FM_ORDER_ITEM_OPTION
|
||||
WHERE 1=1
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(order_seq)">
|
||||
AND ORDER_SEQ = #{order_seq}
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(g_poscode)">
|
||||
AND G_POSCODE = #{g_poscode}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<!-- 포스 주문 결제 등록 -->
|
||||
<insert id="insertPosOrder" parameterType="map" useGeneratedKeys="true" keyProperty="seq">
|
||||
INSERT INTO GC_ORDER_POSINFO (
|
||||
ORDER_SEQ -- 주문번호
|
||||
, STORE_SEQ
|
||||
, PGUBUN
|
||||
, PCODE
|
||||
, PONO
|
||||
, PDATE
|
||||
, PNUMB
|
||||
, EMP_CODE -- 판매사원 코드
|
||||
, EMP_NAME -- 판매사원 이름
|
||||
) VALUES (
|
||||
#{order_seq}
|
||||
, #{store_seq}
|
||||
, #{pgubun}
|
||||
, #{pcode}
|
||||
, #{pono}
|
||||
, #{pdate}
|
||||
, #{pnumb}
|
||||
, #{emp_code}
|
||||
, #{emp_name}
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 매출 - 매출검색 (as_is 쿼리임. 데이터 이관 후 테이블 보면서 to_be 작성예정 )-->
|
||||
<select id="selectBOPosOrderSrchList" parameterType="map" resultType="dataMap">
|
||||
select M.order_seq,
|
||||
date_format(M.deposit_date, '%Y%m%d') order_date,
|
||||
M.skintype,
|
||||
M.step,
|
||||
O.step,
|
||||
S.provider_seq,
|
||||
S.provider_name_home,
|
||||
S.corp_brand,
|
||||
P.pgubun,
|
||||
P.pcode,
|
||||
P.pono,
|
||||
P.pdate,
|
||||
P.pnumb,
|
||||
D.goods_seq,
|
||||
D.goods_code,
|
||||
D.goods_name,
|
||||
O.item_seq,
|
||||
O.ea,
|
||||
O.price,
|
||||
(O.price * O.ea) price_sum,
|
||||
(O.member_sale + O.member_sale_rest
|
||||
+ (O.mobile_sale_unit * O.ea) + O.mobile_sale_rest
|
||||
+ (O.fblike_sale_unit * O.ea) + O.fblike_sale_rest
|
||||
+ (O.coupon_sale_unit * O.ea) + O.coupon_sale_rest
|
||||
+ (O.code_sale_unit * O.ea) + O.code_sale_rest
|
||||
+ (O.referer_sale_unit * O.ea) + O.referer_sale_rest
|
||||
+ (O.emoney_sale_unit * O.ea) + O.emoney_sale_rest
|
||||
+ (O.cash_sale_unit * O.ea) + O.cash_sale_rest
|
||||
+ (O.enuri_sale_unit * O.ea) + O.enuri_sale_rest
|
||||
+ (O.npay_point_sale_unit * O.ea) + O.npay_point_sale_rest
|
||||
) sale_sum
|
||||
from fm_order M
|
||||
left join fm_order_item D on (D.order_seq = M.order_seq)
|
||||
left join fm_order_item_option O on (O.item_seq = D.item_seq)
|
||||
left join fm_order_posInfo P on (P.order_seq = M.order_seq)
|
||||
left join fm_provider S on (S.provider_seq = P.store_seq)
|
||||
where M.member_seq = #{member_seq}
|
||||
and M.deposit_date between #{from_date} ' 00:00:00' and #{to_date}' 23:59:59'
|
||||
and O.step between '25' and '85'
|
||||
order by order_date asc
|
||||
</select>
|
||||
|
||||
<!-- 주문 정보 가져오기 (get_order) -->
|
||||
<select id="selectOrder" parameterType="map" resultType="dataMap">
|
||||
SELECT O.ORDER_SEQ, O.MEMBER_SEQ, O.STEP, O.SETTLEPRICE, O.EMONEY, O.REGIST_DATE, O.DEPOSIT_DATE
|
||||
FROM FM_ORDER O
|
||||
WHERE 1=1
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(order_seq)">
|
||||
AND O.ORDER_SEQ = #{order_seq}
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(member_seq)">
|
||||
AND O.MEMBER_SEQ = #{member_seq}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<!-- 포스-주문 가져오기 (get_order_posinfo : g_poscode) -->
|
||||
<select id="selectOrderGPosInfo" parameterType="String" resultType="dataMap">
|
||||
SELECT
|
||||
P.*, IFNULL(O.MEMBER_SEQ, 0) MEMBER_SEQ
|
||||
FROM FM_ORDER_POSINFO P
|
||||
LEFT JOIN FM_ORDER O ON(O.ORDER_SEQ=P.ORDER_SEQ)
|
||||
WHERE 1=1
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(gPoscode)">
|
||||
AND P.G_POSCODE = #{g_poscode}
|
||||
</if>
|
||||
limit 1
|
||||
</select>
|
||||
|
||||
<!-- 주문 상품 가져오기 (get_goods) -->
|
||||
<select id="selectGoods" parameterType="dataMap" resultType="dataMap">
|
||||
SELECT GOODS_SEQ,
|
||||
PROVIDER_SEQ,
|
||||
GOODS_NAME,
|
||||
GOODS_CODE,
|
||||
GOODS_TYPE,
|
||||
GOODS_KIND,
|
||||
DEFAULT_CONSUMER_PRICE,
|
||||
DEFAULT_PRICE
|
||||
FROM GC_GOODS
|
||||
WHERE GOODS_SEQ = #{goods_seq}
|
||||
</select>
|
||||
|
||||
<!-- 주문 상품옵션 가져오기 (get_goods) -->
|
||||
<select id="selectGoodsItem" parameterType="dataMap" resultType="dataMap">
|
||||
SELECT OPTION_TITLE,
|
||||
OPTION1,
|
||||
OPTION2,
|
||||
OPTION3,
|
||||
OPTION4,
|
||||
OPTION5,
|
||||
PRICE,
|
||||
CONSUMER_PRICE
|
||||
FROM FM_GOODS_OPTION
|
||||
WHERE GOODS_SEQ = #{goods_seq}
|
||||
AND OPTION_SEQ = #{option_seq}
|
||||
</select>
|
||||
|
||||
<!-- 포스주문 날짜 업데이트 -->
|
||||
<update id="updateSetPosDay" parameterType="map">
|
||||
<![CDATA[
|
||||
UPDATE FM_MEMBER
|
||||
SET POS_DAY = #{posday} -- SYSDATE() yyyymmdd
|
||||
WHERE MEMBER_SEQ = #{memberSeq}
|
||||
AND (POS_DAY IS NULL OR POS_DAY < #{posday})
|
||||
]]>
|
||||
</update>
|
||||
|
||||
<!--포스 - 회원 건수 조회-->
|
||||
<select id="selectPosMbrCnt" parameterType="map" resultType="int">
|
||||
SELECT
|
||||
COUNT(1)
|
||||
FROM
|
||||
GC_MEMBER GM
|
||||
WHERE GM.USE_AT = 'Y'
|
||||
AND GM.MBR_DV_CD = 'GC'
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(search_key)">
|
||||
<choose>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(search_item, 'uid')">
|
||||
AND GM.MBR_ID = #{search_key}
|
||||
</when>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(search_item, 'username')">
|
||||
AND GM.MBR_NM = #{search_key}
|
||||
</when>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(search_item, 'cp')">
|
||||
AND GM.MBTLNB = HEX(AES_ENCRYPT(REPLACE(#{search_key},'-',''), #{secretKey}))
|
||||
</when>
|
||||
</choose>
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<!--포스 - 회원 리스트 조회-->
|
||||
<select id="selectBOPosMbrList" parameterType="map" resultType="DataMap">
|
||||
SELECT
|
||||
A.MBR_INNB AS USEQ,
|
||||
A.MBR_ID AS UID,
|
||||
A.MBR_DV_CD,
|
||||
CASE
|
||||
WHEN A.APPN_CNT > 0 THEN CONCAT('[판매금지]',A.MBR_NM)
|
||||
WHEN A.APPN_CNT = 0 AND CONCAT(A.POS_CD_DV_VAL,A.POS_CD_PASSIV_INPUT_VAL) = #{storecode} THEN CONCAT(A.MBR_NM , ' (MY)')
|
||||
ELSE A.MBR_NM
|
||||
END AS USERNAME,
|
||||
A.MBR_NM AS DISPLAYNAME,
|
||||
A.BRTH_DE AS BIRTHDAY,
|
||||
A.ADDR1,
|
||||
A.ADDR2,
|
||||
CASE
|
||||
WHEN LENGTH(A.MBTLNB) = 11 THEN
|
||||
CONCAT(SUBSTR(A.MBTLNB, 1, 3), '-', SUBSTR(A.MBTLNB, 4, 4), '-', SUBSTR(A.MBTLNB, 8, 4))
|
||||
WHEN LENGTH(A.MBTLNB) = 10 AND A.MBTLNB LIKE '02%' THEN
|
||||
CONCAT(SUBSTR(A.MBTLNB, 1, 2), '-', SUBSTR(A.MBTLNB, 3, 4), '-', SUBSTR(A.MBTLNB, 7, 4))
|
||||
WHEN LENGTH(A.MBTLNB) = 10 AND A.MBTLNB NOT LIKE '02%' THEN
|
||||
CONCAT(SUBSTR(A.MBTLNB, 1, 3), '-', SUBSTR(A.MBTLNB, 4, 3), '-', SUBSTR(A.MBTLNB, 7, 4))
|
||||
WHEN LENGTH(A.MBTLNB) = 9 THEN
|
||||
CONCAT(SUBSTR(A.MBTLNB, 1, 2), '-', SUBSTR(A.MBTLNB, 3, 3), '-', SUBSTR(A.MBTLNB, 6, 4))
|
||||
WHEN LENGTH(A.MBTLNB) = 8 THEN
|
||||
CONCAT(SUBSTR(A.MBTLNB, 1, 4), '-', SUBSTR(A.MBTLNB, 5, 4))
|
||||
ELSE
|
||||
A.MBTLNB -- 포맷팅하지 않은 원본 값 반환
|
||||
END AS PHONE,
|
||||
CASE
|
||||
WHEN LENGTH(A.MBTLNB) = 11 THEN
|
||||
CONCAT(SUBSTR(A.MBTLNB, 1, 3), '-', SUBSTR(A.MBTLNB, 4, 4), '-', SUBSTR(A.MBTLNB, 8, 4))
|
||||
WHEN LENGTH(A.MBTLNB) = 10 AND A.MBTLNB LIKE '02%' THEN
|
||||
CONCAT(SUBSTR(A.MBTLNB, 1, 2), '-', SUBSTR(A.MBTLNB, 3, 4), '-', SUBSTR(A.MBTLNB, 7, 4))
|
||||
WHEN LENGTH(A.MBTLNB) = 10 AND A.MBTLNB NOT LIKE '02%' THEN
|
||||
CONCAT(SUBSTR(A.MBTLNB, 1, 3), '-', SUBSTR(A.MBTLNB, 4, 3), '-', SUBSTR(A.MBTLNB, 7, 4))
|
||||
WHEN LENGTH(A.MBTLNB) = 9 THEN
|
||||
CONCAT(SUBSTR(A.MBTLNB, 1, 2), '-', SUBSTR(A.MBTLNB, 3, 3), '-', SUBSTR(A.MBTLNB, 6, 4))
|
||||
WHEN LENGTH(A.MBTLNB) = 8 THEN
|
||||
CONCAT(SUBSTR(A.MBTLNB, 1, 4), '-', SUBSTR(A.MBTLNB, 5, 4))
|
||||
ELSE
|
||||
A.MBTLNB -- 포맷팅하지 않은 원본 값 반환
|
||||
END AS CP,
|
||||
CAST(ROUND(IFNULL(A.MLG,0),0) AS CHAR CHARACTER SET utf8mb4) AS TOTALPOINT
|
||||
FROM(SELECT
|
||||
GM.MBR_INNB,
|
||||
GM.MBR_ID,
|
||||
GM.MBR_NM,
|
||||
GM.MBR_DV_CD,
|
||||
DATE_FORMAT(GM.BRTH_DE,'%Y-%m-%d') AS BRTH_DE,
|
||||
CASE
|
||||
WHEN GM.ADRES_DV = '02' THEN GM.LNB_ADRES
|
||||
ELSE GM.RNM_ADRES
|
||||
END AS ADDR1,
|
||||
GM.DTL_ADRES AS ADDR2,
|
||||
CAST(AES_DECRYPT(UNHEX(GM.MBTLNB) ,#{secretKey}) AS CHAR(50))AS MBTLNB,
|
||||
GM.REGIST_DT,
|
||||
GS.STR_INNB,
|
||||
GS.STR_OPER_DV,
|
||||
GM.JOIN_MTH_CD,
|
||||
GS.POS_CD_DV_VAL,
|
||||
GS.POS_CD_PASSIV_INPUT_VAL,
|
||||
FN_GET_COMMCODE_NAME('STR_DV', GS.STR_OPER_DV) STR_OPER_NM,
|
||||
SUM( FMI.BLCE ) AS MLG,
|
||||
COUNT(GMA.APPN_INNB) AS APPN_CNT
|
||||
FROM GC_MEMBER GM
|
||||
LEFT JOIN GC_EXTRL_MEMBER GEM
|
||||
ON GM.MBR_INNB = GEM.MBR_INNB
|
||||
AND GM.MBR_DV_CD = GEM.MBR_DV_CD
|
||||
AND GEM.SOPMAL_CD = (SELECT REPRSNT_BRAND FROM GC_STORE WHERE CONCAT(POS_CD_DV_VAL,POS_CD_PASSIV_INPUT_VAL) = #{storecode})
|
||||
AND GEM.EXTRL_INTRLCK_DV_CD = '03'
|
||||
LEFT JOIN GC_STORE GS
|
||||
ON GEM.STR_INNB = GS.STR_INNB
|
||||
AND GEM.SOPMAL_CD = GS.REPRSNT_BRAND
|
||||
LEFT JOIN GC_MEMBER_APPN GMA
|
||||
ON GMA.MBR_IDNTFC_INFO = GM.MBR_INNB
|
||||
AND GMA.MBR_DV_CD = GM.MBR_DV_CD
|
||||
AND GMA.APPN_DV_CD = '02'
|
||||
LEFT JOIN GC_MILEAGE FMI
|
||||
ON GM.MBR_INNB = FMI.MBR_INNB
|
||||
AND GM.MBR_DV_CD = FMI.MBR_DV_CD
|
||||
AND FMI.BLCE > 0
|
||||
AND FMI.USE_POSBL_END_DT >= DATE_FORMAT(NOW(), '%Y-%m-01')
|
||||
AND FMI.MLG_ACCML_DV_CD IN ('add', 'up')
|
||||
AND FMI.CANCL_AT = 'N'
|
||||
WHERE 1=1
|
||||
AND GM.USE_AT = 'Y'
|
||||
AND GM.MBR_DV_CD = 'GC'
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(search_key)">
|
||||
<choose>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(search_item, 'uid')">
|
||||
AND GM.MBR_ID = #{search_key}
|
||||
</when>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(search_item, 'username')">
|
||||
AND GM.MBR_NM = #{search_key}
|
||||
</when>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(search_item, 'cp')">
|
||||
AND GM.MBTLNB = HEX(AES_ENCRYPT(REPLACE(#{search_key},'-',''), #{secretKey}))
|
||||
</when>
|
||||
</choose>
|
||||
</if>
|
||||
GROUP BY
|
||||
GM.MBR_INNB,
|
||||
GM.MBR_ID,
|
||||
GM.MBR_NM,
|
||||
GM.BRTH_DE,
|
||||
ADDR1,
|
||||
ADDR2,
|
||||
MBTLNB,
|
||||
GM.REGIST_DT,
|
||||
GS.STR_INNB,
|
||||
GS.STR_OPER_DV,
|
||||
GM.JOIN_MTH_CD,
|
||||
GS.POS_CD_DV_VAL,
|
||||
GS.POS_CD_PASSIV_INPUT_VAL,
|
||||
STR_OPER_NM
|
||||
)A
|
||||
ORDER BY A.MBR_NM
|
||||
LIMIT 40 OFFSET 0
|
||||
</select>
|
||||
|
||||
<select id = "selectPosMbrAppn" parameterType="map" resultType="int">
|
||||
SELECT COUNT(1) FROM GC_MEMBER_APPN WHERE IDNTFC_STDR_CD = 'order_mbtlnb' AND IDNTFC_INFO = HEX(AES_ENCRYPT(REPLACE(#{search_key},'-',''), #{secretKey})) AND APPN_DV_CD = '02'
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,447 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.puri.mapper.BOPuriMapper">
|
||||
|
||||
|
||||
<!-- 정수기 판매 및 설치 내역 조회 WHERE 절 -->
|
||||
<sql id="selectBOPuriOrderListFormWhere">
|
||||
<![CDATA[
|
||||
WHERE 1=1
|
||||
AND gpo.status != 'delete'
|
||||
]]>
|
||||
<choose>
|
||||
<when test="srchOrderDateType == 'purchsDe'">
|
||||
<if test="sndngOrderReqstSDate != null and sndngOrderReqstEDate != null">
|
||||
<![CDATA[
|
||||
AND gpo.purchs_de between #{sndngOrderReqstSDate} AND #{sndngOrderReqstEDate}
|
||||
]]>
|
||||
</if>
|
||||
</when>
|
||||
<when test="srchOrderDateType == 'dlivyDe'">
|
||||
<if test="sndngOrderReqstSDate != null and sndngOrderReqstEDate != null">
|
||||
<![CDATA[
|
||||
AND gpo.dlivy_de between #{sndngOrderReqstSDate} AND #{sndngOrderReqstEDate}
|
||||
]]>
|
||||
</if>
|
||||
</when>
|
||||
<when test="srchOrderDateType == 'visitDe'">
|
||||
<if test="sndngOrderReqstSDate != null and sndngOrderReqstEDate != null">
|
||||
<![CDATA[
|
||||
AND gpo.visit_de between #{sndngOrderReqstSDate} AND #{sndngOrderReqstEDate}
|
||||
]]>
|
||||
</if>
|
||||
</when>
|
||||
|
||||
</choose>
|
||||
<choose>
|
||||
<when test="srchOrderInfoType == 'purchsrNm'">
|
||||
<if test="srchOrdrText != null and srchOrdrText != ''">
|
||||
<![CDATA[
|
||||
AND gpo.purchsr_nm = #{srchOrdrText}
|
||||
]]>
|
||||
</if>
|
||||
</when>
|
||||
<when test="srchOrderInfoType == 'cttpc'">
|
||||
<if test="srchOrdrText != null and srchOrdrText != ''">
|
||||
<![CDATA[
|
||||
AND gpo.cttpc = HEX(AES_ENCRYPT(#{srchOrdrText}, #{secretKey}))
|
||||
]]>
|
||||
</if>
|
||||
</when>
|
||||
<when test="srchOrderInfoType == 'dlivyNm'">
|
||||
<if test="srchOrdrText != null and srchOrdrText != ''">
|
||||
<![CDATA[
|
||||
AND gpo.dlivy_nm = #{srchOrdrText}
|
||||
]]>
|
||||
</if>
|
||||
</when>
|
||||
<when test="srchOrderInfoType == 'dlivyCttpc'">
|
||||
<if test="srchOrdrText != null and srchOrdrText != ''">
|
||||
<![CDATA[
|
||||
AND gpo.dlivy_cttpc = HEX(AES_ENCRYPT(#{srchOrdrText}, #{secretKey}))
|
||||
]]>
|
||||
</if>
|
||||
</when>
|
||||
<when test="srchOrderInfoType == 'goodsCd'">
|
||||
<if test="srchOrdrText != null and srchOrdrText != ''">
|
||||
<![CDATA[
|
||||
AND gpo.goods_cd = #{srchOrdrText}
|
||||
]]>
|
||||
</if>
|
||||
</when>
|
||||
<when test="srchOrderInfoType == 'erpCode'">
|
||||
<if test="srchOrdrText != null and srchOrdrText != ''">
|
||||
<![CDATA[
|
||||
AND gpo.erp_code = #{srchOrdrText}
|
||||
]]>
|
||||
</if>
|
||||
</when>
|
||||
|
||||
</choose>
|
||||
|
||||
<choose>
|
||||
<when test="srchMallCdType != ''">
|
||||
<![CDATA[
|
||||
AND gpo.purchs_cd = #{srchMallCdType}
|
||||
]]>
|
||||
</when>
|
||||
|
||||
</choose>
|
||||
|
||||
<choose>
|
||||
<when test="srchGoodsType != ''">
|
||||
<![CDATA[
|
||||
AND gpo.goods_cd = #{srchGoodsType}
|
||||
]]>
|
||||
</when>
|
||||
|
||||
</choose>
|
||||
|
||||
<choose>
|
||||
<when test="srchVisitType != ''">
|
||||
<![CDATA[
|
||||
AND gpo.visit_trgter_at = #{srchVisitType}
|
||||
]]>
|
||||
</when>
|
||||
|
||||
</choose>
|
||||
|
||||
<choose>
|
||||
<when test="srchAlimType != ''">
|
||||
<![CDATA[
|
||||
AND gpa.status = #{srchAlimType}
|
||||
]]>
|
||||
</when>
|
||||
|
||||
</choose>
|
||||
|
||||
<choose>
|
||||
<when test="srchSndngType == 'installDe'">
|
||||
<if test="sndngAllimReqstSDate != null and sndngAllimReqstEDate != null">
|
||||
<![CDATA[
|
||||
AND gpa.install_de between #{sndngAllimReqstSDate} AND #{sndngAllimReqstEDate}
|
||||
]]>
|
||||
</if>
|
||||
</when>
|
||||
<when test="srchSndngType == 'frstSndngDe'">
|
||||
<if test="sndngAllimReqstSDate != null and sndngAllimReqstEDate != null">
|
||||
<![CDATA[
|
||||
AND gpa.frst_sndng_de between #{sndngAllimReqstSDate} AND #{sndngAllimReqstEDate}
|
||||
]]>
|
||||
</if>
|
||||
</when>
|
||||
<when test="srchSndngType == 'prevSndngDe'">
|
||||
<if test="sndngAllimReqstSDate != null and sndngAllimReqstEDate != null">
|
||||
<![CDATA[
|
||||
AND gpa.prev_sndng_de between #{sndngAllimReqstSDate} AND #{sndngAllimReqstEDate}
|
||||
]]>
|
||||
</if>
|
||||
</when>
|
||||
<when test="srchSndngType == 'nextSndngResveDe'">
|
||||
<if test="sndngAllimReqstSDate != null and sndngAllimReqstEDate != null">
|
||||
<![CDATA[
|
||||
AND gpa.next_sndng_resve_de between #{sndngAllimReqstSDate} AND #{sndngAllimReqstEDate}
|
||||
]]>
|
||||
</if>
|
||||
</when>
|
||||
|
||||
</choose>
|
||||
|
||||
<choose>
|
||||
<when test="srchAlimInfoType == 'cstmrNm'">
|
||||
<if test="srchAllimText != null and srchAllimText != ''">
|
||||
<![CDATA[
|
||||
AND gpa.cstmr_nm = #{srchAllimText}
|
||||
]]>
|
||||
</if>
|
||||
</when>
|
||||
<when test="srchAlimInfoType == 'telnb'">
|
||||
<if test="srchAllimText != null and srchAllimText != ''">
|
||||
<![CDATA[
|
||||
AND gpa.telnb = HEX(AES_ENCRYPT(#{srchAllimText}, #{secretKey}))
|
||||
]]>
|
||||
</if>
|
||||
</when>
|
||||
|
||||
</choose>
|
||||
</sql>
|
||||
|
||||
<select id="selectBOPuriOrderList"
|
||||
parameterType="com.wb.domainserver.domain.gcone.puri.vo.BOPuriSrchVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
ROW_NUMBER() OVER (ORDER BY gpo.puri_order_seq DESC) AS rnum,
|
||||
gpo.puri_order_seq,
|
||||
gpo.status,
|
||||
gpo.regist_dt,
|
||||
gpo.erp_code,
|
||||
gpo.purchs_dv,
|
||||
gpo.purchs_cd,
|
||||
gpo.purchs_nm,
|
||||
gpo.ordr_cd,
|
||||
gpo.purchs_de,
|
||||
gpo.purchs_dtls,
|
||||
gpo.ordr_rm,
|
||||
CONCAT(LEFT(gpo.purchsr_nm, 1), '*', RIGHT(gpo.purchsr_nm, 1)) AS purchsr_nm,
|
||||
gpo.purchsr_nm AS no_mask_purchsr_nm,
|
||||
CAST(
|
||||
CONCAT(
|
||||
LEFT(AES_DECRYPT(UNHEX(gpo.cttpc), #{secretKey}), 3),
|
||||
'-****-',
|
||||
RIGHT(AES_DECRYPT(UNHEX(gpo.cttpc), #{secretKey}), 4)
|
||||
) AS CHAR(50)
|
||||
) AS cttpc,
|
||||
CAST(
|
||||
CONCAT(
|
||||
LEFT(AES_DECRYPT(UNHEX(gpo.cttpc), #{secretKey}), 3),
|
||||
'-',
|
||||
SUBSTR(AES_DECRYPT(UNHEX(gpo.cttpc), #{secretKey}), 4, 4),
|
||||
'-',
|
||||
RIGHT(AES_DECRYPT(UNHEX(gpo.cttpc), #{secretKey}), 4)
|
||||
) AS CHAR(50)
|
||||
) AS no_mask_cttpc,
|
||||
gpo.goods_cd,
|
||||
gpo.goods_nm,
|
||||
gpo.dlivy_de,
|
||||
CONCAT(LEFT(gpo.dlivy_nm, 1), '*', RIGHT(gpo.dlivy_nm, 1)) AS dlivyNm,
|
||||
gpo.dlivy_nm AS no_mask_dlivy_nm,
|
||||
CAST(
|
||||
CONCAT(
|
||||
LEFT(AES_DECRYPT(UNHEX(gpo.dlivy_cttpc), #{secretKey}), 3),
|
||||
'-****-',
|
||||
RIGHT(AES_DECRYPT(UNHEX(gpo.dlivy_cttpc), #{secretKey}), 4)
|
||||
) AS CHAR(50)
|
||||
) AS dlivy_cttpc,
|
||||
CAST(
|
||||
CONCAT(
|
||||
LEFT(AES_DECRYPT(UNHEX(gpo.dlivy_cttpc), #{secretKey}), 3),
|
||||
'-',
|
||||
SUBSTR(AES_DECRYPT(UNHEX(gpo.dlivy_cttpc), #{secretKey}), 4, 4),
|
||||
'-',
|
||||
RIGHT(AES_DECRYPT(UNHEX(gpo.dlivy_cttpc), #{secretKey}), 4)
|
||||
) AS CHAR(50)
|
||||
) AS no_mask_dlivy_cttpc,
|
||||
gpo.visit_trgter_at,
|
||||
IF(gpo.visit_de > '2020-01-01', gpo.visit_de, NULL) AS visitDe,
|
||||
gpa.puri_allim_seq,
|
||||
CASE gpa.status
|
||||
WHEN 'wait' THEN '대기'
|
||||
WHEN 'send' THEN '발송'
|
||||
WHEN 'stop' THEN '중지'
|
||||
ELSE ''
|
||||
END AS allimStatus,
|
||||
gpa.cstmr_nm,
|
||||
CAST(
|
||||
CONCAT(
|
||||
LEFT(AES_DECRYPT(UNHEX(gpa.telnb), #{secretKey}), 3),
|
||||
'-',
|
||||
SUBSTR(AES_DECRYPT(UNHEX(gpa.telnb), #{secretKey}), 4, 4),
|
||||
'-',
|
||||
RIGHT(AES_DECRYPT(UNHEX(gpa.telnb), #{secretKey}), 4)
|
||||
) AS CHAR(50)
|
||||
) AS noMasktelnb,
|
||||
gpa.regist_dt AS allimRegistDt,
|
||||
gpa.install_de,
|
||||
IF(gpa.frst_sndng_de > '2020-01-01', gpa.frst_sndng_de, NULL) AS frstSndngDe,
|
||||
IF(gpa.prev_sndng_de > '2020-01-01', gpa.prev_sndng_de, NULL) AS prevSndngDe,
|
||||
IF(gpa.next_sndng_resve_de > '2020-01-01', gpa.next_sndng_resve_de, NULL) AS nextSndngResveDe
|
||||
FROM
|
||||
GC_PURI_ORDER gpo
|
||||
LEFT JOIN
|
||||
GC_PURI_ALLIM gpa ON (gpo.puri_order_seq = gpa.puri_order_seq)
|
||||
LEFT JOIN
|
||||
(SELECT puri_allim_seq, MAX(reg_date) AS latest_log_dt
|
||||
FROM GC_PURI_ALLIM_LOG
|
||||
GROUP BY puri_allim_seq) gpal ON (gpa.puri_allim_seq = gpal.puri_allim_seq)
|
||||
]]>
|
||||
<include refid = "selectBOPuriOrderListFormWhere"/>
|
||||
<![CDATA[
|
||||
ORDER BY gpo.puri_order_seq DESC
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectBOPuriOrderListCnt"
|
||||
parameterType="com.wb.domainserver.domain.gcone.puri.vo.BOPuriSrchVO">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
COUNT(1)
|
||||
FROM GC_PURI_ORDER gpo
|
||||
LEFT JOIN GC_PURI_ALLIM gpa
|
||||
ON (gpo.puri_order_seq = gpa.puri_order_seq)
|
||||
]]>
|
||||
<include refid = "selectBOPuriOrderListFormWhere"/>
|
||||
</select>
|
||||
|
||||
<select id="selectPuriAllimList"
|
||||
parameterType="com.wb.domainserver.domain.gcone.puri.vo.BOPuriSrchVO"
|
||||
resultType="dataMap">
|
||||
SELECT
|
||||
@rownum := @rownum + 1 AS rnum,
|
||||
gpal.sndng_de,
|
||||
CAST(
|
||||
CONCAT(
|
||||
LEFT(AES_DECRYPT(UNHEX(gpal.telnb), #{secretKey}), 3),
|
||||
'-',
|
||||
SUBSTR(AES_DECRYPT(UNHEX(gpal.telnb), #{secretKey}), 4,4),
|
||||
'-',
|
||||
RIGHT(AES_DECRYPT(UNHEX(gpal.telnb), #{secretKey}), 4)
|
||||
) AS CHAR(50)
|
||||
) AS telnb,
|
||||
gpal.sndng_cn
|
||||
FROM (SELECT @rownum := 0) r,
|
||||
GC_PURI_ALLIM_LOG gpal
|
||||
WHERE puri_allim_seq = #{puriAllimSeq}
|
||||
AND act = 'send'
|
||||
</select>
|
||||
|
||||
<update id="updatePuriOrder">
|
||||
|
||||
UPDATE GC_PURI_ORDER set
|
||||
status = #{status},
|
||||
visit_trgter_at = #{visitTrgterAt},
|
||||
ordr_rm = #{ordrRm}
|
||||
WHERE puri_order_seq = #{puriOrderSeq}
|
||||
|
||||
</update>
|
||||
|
||||
<update id="updatePuriAllim">
|
||||
|
||||
UPDATE GC_PURI_ALLIM set
|
||||
status = #{alimStatus},
|
||||
cstmr_nm = #{cstmrNm},
|
||||
telnb = HEX(AES_ENCRYPT(#{telnb}, #{secretKey})),
|
||||
install_de = #{installDe}
|
||||
WHERE puri_allim_seq = #{puriAllimSeq}
|
||||
|
||||
</update>
|
||||
|
||||
<insert id="insertPuriAllim">
|
||||
INSERT INTO GC_PURI_ALLIM (status,regist_dt,puri_order_seq,cstmr_nm,telnb)
|
||||
VALUES('wait',NOW(),#{puriOrderSeq},#{cstmrNm},HEX(AES_ENCRYPT(#{telnb}, #{secretKey})))
|
||||
</insert>
|
||||
|
||||
<select id="selectPuriVisitUpdate">
|
||||
SELECT
|
||||
gpo.puri_order_seq AS puriOrderSeq,
|
||||
gpo.purchsr_nm AS purchsrNm,
|
||||
CAST(AES_DECRYPT(UNHEX(gpo.cttpc), #{secretKey}) AS CHAR(50)) AS cttpc,
|
||||
gpo.visit_de as visitDe,
|
||||
gpa.puri_allim_seq as puriAllimSeq,
|
||||
gpa.install_de as installDe,
|
||||
CAST(AES_DECRYPT(UNHEX(gpo.dlivy_cttpc), #{secretKey}) AS CHAR(50)) AS dlivyCttpc
|
||||
FROM GC_PURI_ORDER gpo
|
||||
LEFT JOIN GC_PURI_ALLIM gpa ON (gpo.puri_order_seq=gpa.puri_order_seq)
|
||||
where gpo.ordr_cd = #{ordrCd}
|
||||
|
||||
</select>
|
||||
|
||||
<update id="updatePuriVisitDate" parameterType="map">
|
||||
<foreach collection="puriOrderSeqArr" item="orderSeq" index="index" separator=";">
|
||||
UPDATE GC_PURI_ORDER SET
|
||||
visit_trgter_at = 'Y',
|
||||
visit_de = #{realUpdateVisitDateArr[${index}]}
|
||||
WHERE puri_order_seq = #{orderSeq}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<update id="updatePuriVisitCancelDate" parameterType="map">
|
||||
<![CDATA[
|
||||
UPDATE GC_PURI_ORDER SET
|
||||
visit_trgter_at = 'N',
|
||||
visit_de = ''
|
||||
WHERE puri_order_seq in
|
||||
]]>
|
||||
<foreach collection="item.puriOrderSeqArr" item="seq" open="(" separator="," close=")">
|
||||
#{seq}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<select id="selectDupPuriOrderAllimList">
|
||||
<![CDATA[
|
||||
select puri_order_seq, puri_allim_seq from GC_PURI_ALLIM
|
||||
where puri_order_seq = #{puriOrderSeq}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<insert id="insertPuriAllimList">
|
||||
<foreach collection="list" item="item" separator=";">
|
||||
<![CDATA[
|
||||
INSERT INTO gcone.GC_PURI_ALLIM (
|
||||
STATUS,
|
||||
REGIST_DT,
|
||||
PURI_ORDER_SEQ,
|
||||
CSTMR_NM,
|
||||
TELNB,
|
||||
INSTALL_DE,
|
||||
NEXT_SNDNG_RESVE_DE,
|
||||
CHNG_LOG
|
||||
) VALUES (
|
||||
#{item.status},
|
||||
SYSDATE(),
|
||||
#{item.puriOrderSeq},
|
||||
#{item.cstmrNm},
|
||||
HEX(AES_ENCRYPT(#{item.telnb}, #{item.secretKey})),
|
||||
#{item.installDe},
|
||||
#{item.nextSndngResveDe},
|
||||
#{item.chngLog}
|
||||
)
|
||||
]]>
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
|
||||
<delete id="deletePuriAllim">
|
||||
<foreach collection="list" item="item" separator=";">
|
||||
<![CDATA[
|
||||
delete from GC_PURI_ALLIM
|
||||
where puri_allim_seq = #{item.puriAllimSeq}
|
||||
]]>
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<update id="updatePuriAllimSeq" parameterType="java.util.List">
|
||||
<foreach collection="list" item="item" separator=";">
|
||||
<![CDATA[
|
||||
UPDATE GC_PURI_ORDER SET PURI_ALLIM_SEQ = #{item.puriAllimSeq}
|
||||
WHERE PURI_ORDER_SEQ = #{item.puriOrderSeq}
|
||||
]]>
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<select id="selectSameNumber">
|
||||
<foreach collection="list" item="item" separator=";">
|
||||
<![CDATA[
|
||||
select puri_allim_seq from GC_PURI_ALLIM
|
||||
where telnb = HEX(AES_ENCRYPT(#{item.telnb}, #{item.secretkey}))
|
||||
and puri_allim_seq != #{item.puriOrderSeq}
|
||||
and status in ('wait','send')
|
||||
]]>
|
||||
</foreach>
|
||||
</select>
|
||||
|
||||
<insert id="insertPuriAllimLogFirst">
|
||||
<foreach collection="list" item="item" separator=";">
|
||||
<![CDATA[
|
||||
insert into GC_PURI_ALLIM_LOG (reg_date,puri_allim_seq,act,telnb,sndng_de,sndng_ty,sndng_cn)
|
||||
values (now(),#{item.puriAllimSeq},#{item.act},HEX(AES_ENCRYPT(#{item.telnb}, #{item.secretkey}),'','',#{item.sndngCn}))
|
||||
]]>
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<update id="updateStopAllim">
|
||||
<![CDATA[
|
||||
UPDATE GC_PURI_ALLIM
|
||||
SET status = 'stop',
|
||||
chng_log = #{item.chngLog}
|
||||
WHERE puri_allim_seq IN ]]>
|
||||
<foreach collection="item.puriAllimSeq" item="seq" open="(" separator="," close=")">
|
||||
#{seq}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
<?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.sample.mapper.SampleMapper">
|
||||
|
||||
<insert id="insertGconeCheck" parameterType="com.wb.domainserver.domain.sample.vo.SampleVO">
|
||||
INSERT INTO tmp_order (message1, message2) VALUES(#{message1},#{message2})
|
||||
</insert>
|
||||
</mapper>
|
||||
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.setup.adscript.mapper.BOAdScriptMapper">
|
||||
|
||||
<!--광고스크립트 목록 조회-->
|
||||
<select id="selectBOAdScriptList"
|
||||
parameterType="com.wb.domainserver.domain.gcone.setup.adscript.vo.BOAdScriptVO"
|
||||
resultType="dataMap">
|
||||
SELECT
|
||||
AD_SCRIPT_INNB,
|
||||
GAS.SOPMAL_CD,
|
||||
AD_MEDIA_DV_CD,
|
||||
AD_MEDIA_ID,
|
||||
INSTL_PGE_DV_CD,
|
||||
INSTL_PGE_LBL,
|
||||
INSTL_PGE_ENVRN_CD,
|
||||
GNC.BUTTON_KEY AS NPAY_BUTTON_ID,
|
||||
TRIGR_DV_CD
|
||||
FROM
|
||||
GC_AD_SCRIPT GAS
|
||||
LEFT JOIN GC_NPAY_CONFIG GNC
|
||||
ON GAS.SOPMAL_CD = GNC.SOPMAL_CD
|
||||
WHERE
|
||||
1 = 1
|
||||
AND GAS.SOPMAL_CD = #{sopmalCd}
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,316 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.setup.dlvygrp.mapper.BODlvygrpMapper">
|
||||
<!-- 배송그룹 목록조회 조건절 -->
|
||||
<sql id="selectDlvyListWhere">
|
||||
<![CDATA[
|
||||
WHERE 1=1
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND USE_AT = 'Y'
|
||||
]]>
|
||||
</sql>
|
||||
|
||||
<!-- 배송그룹 상세조회, 수정, 삭제 조건절 -->
|
||||
<sql id="selectDlvyKeyWhere">
|
||||
<![CDATA[
|
||||
WHERE 1=1
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND DLVY_GROUP_INNB = #{dlvyGroupInnb}
|
||||
]]>
|
||||
</sql>
|
||||
|
||||
<!-- 배송그룹 목록조회 From절 -->
|
||||
<sql id="selectDlvyFrom">
|
||||
<![CDATA[
|
||||
FROM GC_SHIPPING_GROUPING
|
||||
]]>
|
||||
</sql>
|
||||
|
||||
<!-- 배송그룹 목록건수조회 -->
|
||||
<select id="selectDlvyListCnt"
|
||||
parameterType="com.wb.domainserver.domain.gcone.setup.dlvygrp.vo.BODlvygrpVO"
|
||||
resultType="java.lang.Integer">
|
||||
SELECT
|
||||
COUNT(1)
|
||||
<include refid="selectDlvyFrom"/>
|
||||
<include refid="selectDlvyListWhere"/>
|
||||
</select>
|
||||
<select id="selectDlvyListCntOld"
|
||||
parameterType="com.wb.domainserver.domain.gcone.setup.dlvygrp.vo.BODlvygrpVO"
|
||||
resultType="java.lang.Integer">
|
||||
SELECT
|
||||
COUNT(1)
|
||||
-- FROM (
|
||||
-- SELECT
|
||||
-- CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM
|
||||
-- , TB.*
|
||||
-- FROM (
|
||||
-- SELECT DLVY_GROUP_INNB
|
||||
-- ,DLVY_GROUP_DV_CD
|
||||
-- ,DLVY_GROUP_NM
|
||||
-- ,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="selectDlvyFrom"/>
|
||||
<include refid="selectDlvyListWhere"/>
|
||||
-- ORDER BY DLVY_GROUP_INNB DESC ) TB
|
||||
-- WHERE (@ROWNUM:=0) = 0 ) PV
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 배송그룹 목록 -->
|
||||
<select id="selectBODlvyGroupList"
|
||||
parameterType="com.wb.domainserver.domain.gcone.setup.dlvygrp.vo.BODlvygrpVO"
|
||||
resultType="datamap">
|
||||
SELECT
|
||||
*
|
||||
FROM (
|
||||
SELECT
|
||||
CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM, TB.*
|
||||
FROM (
|
||||
SELECT DLVY_GROUP_INNB
|
||||
,DLVY_GROUP_DV_CD
|
||||
,DLVY_GROUP_NM
|
||||
,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="selectDlvyFrom"/>
|
||||
<include refid="selectDlvyListWhere"/>
|
||||
ORDER BY
|
||||
DLVY_GROUP_INNB DESC ) TB
|
||||
WHERE (@ROWNUM:=0) = 0 ) PV
|
||||
WHERE 1=1
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
</select>
|
||||
|
||||
<!-- 배송그룹 목록 -->
|
||||
<select id="selectBODlvyGroupAllList"
|
||||
parameterType="com.wb.domainserver.domain.gcone.setup.dlvygrp.vo.BODlvygrpVO"
|
||||
resultType="datamap">
|
||||
SELECT DLVY_GROUP_INNB
|
||||
,DLVY_GROUP_DV_CD
|
||||
,DLVY_GROUP_NM
|
||||
,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="selectDlvyFrom"/>
|
||||
<include refid="selectDlvyListWhere"/>
|
||||
ORDER BY DLVY_GROUP_INNB DESC
|
||||
</select>
|
||||
|
||||
<!-- 배송그룹 등록 -->
|
||||
<insert id="insertBODlvyGroup"
|
||||
parameterType="com.wb.domainserver.domain.gcone.setup.dlvygrp.vo.BODlvygrpVO">
|
||||
<selectKey keyProperty="dlvyGroupInnb"
|
||||
resultType="java.lang.Integer"
|
||||
order="BEFORE">
|
||||
SELECT IFNULL(MAX(DLVY_GROUP_INNB),0) + 1 FROM GC_SHIPPING_GROUPING
|
||||
</selectKey>
|
||||
<![CDATA[
|
||||
INSERT
|
||||
INTO GC_SHIPPING_GROUPING
|
||||
(
|
||||
DLVY_GROUP_INNB
|
||||
,SOPMAL_CD
|
||||
,RTNLC_INNB
|
||||
,DLVY_GROUP_DV_CD
|
||||
,DLVY_GROUP_NM
|
||||
,DFT_DLVY_AMT
|
||||
,AMT_CND_USE_AT
|
||||
,AMT_CND_ADIT_AMT
|
||||
,CNT_CND_USE_AT
|
||||
,CNT_CND_ADIT_AMT
|
||||
,DLVY_AREA_ADIT_AT
|
||||
,AREA_ADIT_DLVY_AMT
|
||||
,BUNDLE_DLVY_USE_AT
|
||||
,BUNDLE_DLVY_CND_AMT
|
||||
,RETURN_DLVY_APPLC_AT
|
||||
,RETURN_DLVY_AMT
|
||||
,EXCHNG_DLVY_AMT
|
||||
,USE_AT
|
||||
,REGUSR
|
||||
,REGIST_DT
|
||||
,UPDUSR
|
||||
,UPDT_DT
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#{dlvyGroupInnb}
|
||||
,#{sopmalCd}
|
||||
,#{rtnlcInnb}
|
||||
,#{dlvyGroupDvCd}
|
||||
,#{dlvyGroupNm}
|
||||
,#{dftDlvyAmt}
|
||||
,#{amtCndUseAt}
|
||||
,#{amtCndAditAmt}
|
||||
,#{cntCndUseAt}
|
||||
,#{cntCndAditAmt}
|
||||
,#{dlvyAreaAditAt}
|
||||
,#{areaAditDlvyAmt}
|
||||
,#{bundleDlvyUseAt}
|
||||
,#{bundleDlvyCndAmt}
|
||||
,#{returnDlvyApplcAt}
|
||||
,#{returnDlvyAmt}
|
||||
,#{exchngDlvyAmt}
|
||||
,'Y'
|
||||
,#{regusr}
|
||||
,now()
|
||||
,#{regusr}
|
||||
,now()
|
||||
)
|
||||
]]>
|
||||
</insert>
|
||||
|
||||
<!-- 배송 반송지 등록 -->
|
||||
<insert id="insertBODlvyGroupAddress" parameterType="com.wb.domainserver.domain.gcone.setup.dlvygrp.vo.BODlvygrpVO">
|
||||
<selectKey keyProperty="rtnlcInnb"
|
||||
resultType="java.lang.Integer"
|
||||
order="BEFORE">
|
||||
SELECT IFNULL(MAX(RTNLC_INNB),0) + 1 FROM GC_SHIPPING_ADDRESS WHERE SOPMAL_CD = #{sopmalCd}
|
||||
</selectKey>
|
||||
INSERT INTO GC_SHIPPING_ADDRESS
|
||||
(
|
||||
RTNLC_INNB
|
||||
, SOPMAL_CD
|
||||
, RTNLC_ZIP
|
||||
, RTNLC_ADRES
|
||||
, RTNLC_DTL_ADRES
|
||||
, RTNLC_TELNB
|
||||
, USE_AT
|
||||
, REGUSR
|
||||
, REGIST_DT
|
||||
, UPDUSR
|
||||
, UPDT_DT
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#{rtnlcInnb}
|
||||
, #{sopmalCd}
|
||||
, #{rtnlcZip}
|
||||
, #{rtnlcAdres}
|
||||
, #{rtnlcDtlAdres}
|
||||
, #{rtnlcTelnb}
|
||||
, 'Y'
|
||||
, #{regusr}
|
||||
, now()
|
||||
, #{regusr}
|
||||
, now()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 배송그룹 정보 조회 -->
|
||||
<select id="selectBODlvyGroupDtlForm"
|
||||
parameterType="com.wb.domainserver.domain.gcone.setup.dlvygrp.vo.BODlvygrpVO"
|
||||
resultType="com.wb.domainserver.domain.gcone.setup.dlvygrp.vo.BODlvygrpVO">
|
||||
SELECT
|
||||
SG.DLVY_GROUP_INNB
|
||||
,SG.DLVY_GROUP_DV_CD
|
||||
,SG.DLVY_GROUP_NM
|
||||
,SG.DFT_DLVY_AMT
|
||||
,SG.AMT_CND_USE_AT
|
||||
,SG.AMT_CND_ADIT_AMT
|
||||
,SG.CNT_CND_USE_AT
|
||||
,SG.CNT_CND_ADIT_AMT
|
||||
,SG.DLVY_AREA_ADIT_AT
|
||||
,SG.AREA_ADIT_DLVY_AMT
|
||||
,SG.BUNDLE_DLVY_USE_AT
|
||||
,SG.BUNDLE_DLVY_CND_AMT
|
||||
,SG.RETURN_DLVY_APPLC_AT
|
||||
,SG.RETURN_DLVY_AMT
|
||||
,SG.EXCHNG_DLVY_AMT
|
||||
,SG.RTNLC_INNB
|
||||
,SA.RTNLC_ZIP
|
||||
,SA.RTNLC_ADRES
|
||||
,SA.RTNLC_DTL_ADRES
|
||||
,SA.RTNLC_TELNB
|
||||
,SG.RETURN_DLVY_AMT
|
||||
,SG.EXCHNG_DLVY_AMT
|
||||
FROM GC_SHIPPING_GROUPING SG
|
||||
LEFT JOIN GC_SHIPPING_ADDRESS SA
|
||||
ON SG.RTNLC_INNB = SA.RTNLC_INNB
|
||||
AND SG.SOPMAL_CD = SA.SOPMAL_CD
|
||||
AND SG.USE_AT = 'Y'
|
||||
AND SA.USE_AT = 'Y'
|
||||
WHERE 1=1
|
||||
AND SG.SOPMAL_CD = #{sopmalCd}
|
||||
AND DLVY_GROUP_INNB = #{dlvyGroupInnb}
|
||||
</select>
|
||||
|
||||
<!-- 배송그룹 수정 -->
|
||||
<update id="updateBODlvyGroupDtl"
|
||||
parameterType="com.wb.domainserver.domain.gcone.setup.dlvygrp.vo.BODlvygrpVO">
|
||||
<![CDATA[
|
||||
UPDATE GC_SHIPPING_GROUPING
|
||||
SET DLVY_GROUP_DV_CD = #{dlvyGroupDvCd}
|
||||
,DLVY_GROUP_NM = #{dlvyGroupNm}
|
||||
,DFT_DLVY_AMT = #{dftDlvyAmt}
|
||||
,AMT_CND_USE_AT = #{amtCndUseAt}
|
||||
,AMT_CND_ADIT_AMT = #{amtCndAditAmt}
|
||||
,CNT_CND_USE_AT = #{cntCndUseAt}
|
||||
,CNT_CND_ADIT_AMT = #{cntCndAditAmt}
|
||||
,DLVY_AREA_ADIT_AT = #{dlvyAreaAditAt}
|
||||
,AREA_ADIT_DLVY_AMT = #{areaAditDlvyAmt}
|
||||
,BUNDLE_DLVY_USE_AT = #{bundleDlvyUseAt}
|
||||
,BUNDLE_DLVY_CND_AMT = #{bundleDlvyCndAmt}
|
||||
,RETURN_DLVY_APPLC_AT = #{returnDlvyApplcAt}
|
||||
,RETURN_DLVY_AMT = #{returnDlvyAmt}
|
||||
,EXCHNG_DLVY_AMT = #{exchngDlvyAmt}
|
||||
,UPDUSR = #{updusr}
|
||||
,UPDT_DT = NOW()
|
||||
]]>
|
||||
<include refid="selectDlvyKeyWhere"/>
|
||||
</update>
|
||||
|
||||
<!-- 배송그룹 수정 -->
|
||||
<update id="updateBODlvyGroupRtnlc"
|
||||
parameterType="com.wb.domainserver.domain.gcone.setup.dlvygrp.vo.BODlvygrpVO">
|
||||
UPDATE GC_SHIPPING_ADDRESS
|
||||
SET RTNLC_ZIP = #{rtnlcZip}
|
||||
, RTNLC_ADRES = #{rtnlcAdres}
|
||||
, RTNLC_DTL_ADRES = #{rtnlcDtlAdres}
|
||||
, RTNLC_TELNB = #{rtnlcTelnb}
|
||||
, UPDUSR = #{updusr}
|
||||
, UPDT_DT = NOW()
|
||||
WHERE 1=1
|
||||
AND RTNLC_INNB = #{rtnlcInnb}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
</update>
|
||||
|
||||
<!-- 배송그룹 삭제(사용여부 Update y > n) -->
|
||||
<update id="deleteBODlvyGroup" parameterType="com.wb.domainserver.domain.gcone.setup.dlvygrp.vo.BODlvygrpVO">
|
||||
<![CDATA[
|
||||
UPDATE GC_SHIPPING_GROUPING
|
||||
SET USE_AT = 'N'
|
||||
]]>
|
||||
<include refid="selectDlvyKeyWhere"/>
|
||||
</update>
|
||||
|
||||
<!-- 배송그룹 삭제(사용여부 Update y > n) -->
|
||||
<update id="deleteBODlvyGroupRtnlc" parameterType="com.wb.domainserver.domain.gcone.setup.dlvygrp.vo.BODlvygrpVO">
|
||||
UPDATE GC_SHIPPING_ADDRESS
|
||||
SET USE_AT = 'N'
|
||||
WHERE RTNLC_INNB = #{rtnlcInnb}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
</update>
|
||||
|
||||
<!-- 배송그룹 고유키로 연결 상품의 갯수 검색 -->
|
||||
<select id="isIncludeGoods"
|
||||
parameterType="com.wb.domainserver.domain.gcone.setup.dlvygrp.vo.BODlvygrpVO"
|
||||
resultType="java.lang.Integer">
|
||||
SELECT COUNT(1)
|
||||
FROM GC_GOODS
|
||||
WHERE DLVY_GROUP_INNB = #{dlvyGroupInnb}
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 배송 반송지 조회 -->
|
||||
<select id="selectBOReturnAddressInqire">
|
||||
<![CDATA[
|
||||
SELECT * FROM GC_SHIPPING_ADDRESS WHERE SOPMAL_CD = #{sopmalCd} AND USE_AT = 'Y' LIMIT 1
|
||||
]]>
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,193 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.setup.gradbnef.mapper.BOGradbnefMapper">
|
||||
<!--회원 등급 상세 where절 -->
|
||||
<sql id="gradBnefDtlWhere">
|
||||
<![CDATA[
|
||||
WHERE 1=1
|
||||
AND FMGS.MBR_GRAD_INNB = #{mbrGradInnb}
|
||||
]]>
|
||||
</sql>
|
||||
<!--회원 등급 총 개수 -->
|
||||
<select id = "selectBOMbrGradListInqireTotCnt"
|
||||
parameterType="com.wb.domainserver.domain.gcone.setup.gradbnef.vo.BOGradbnefVO"
|
||||
resultType="java.lang.Integer">
|
||||
SELECT
|
||||
COUNT(1)
|
||||
FROM GC_MEMBER_GRAD FMG
|
||||
WHERE 1=1
|
||||
AND FMG.SOPMAL_CD = #{sopmalCd}
|
||||
AND FMG.USE_AT = 'Y'
|
||||
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(searchGradNm)">
|
||||
AND FMG.MBR_GRAD_NM LIKE CONCAT('%',#{searchGradNm},'%')
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<!--회원 등급 목록 조회-->
|
||||
<select id = "selectBOMbrGradListInqire"
|
||||
parameterType="com.wb.domainserver.domain.gcone.setup.gradbnef.vo.BOGradbnefVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED ) AS RNUM
|
||||
,TB.*
|
||||
FROM (
|
||||
SELECT
|
||||
FMG.MBR_GRAD_INNB ,
|
||||
FMG.MBR_GRAD_GROUP_INNB ,
|
||||
(
|
||||
SELECT
|
||||
SOPMAL_NM
|
||||
FROM GC_SHOP
|
||||
WHERE SOPMAL_CD = #{sopmalCd}
|
||||
) AS SOPMAL_NM,
|
||||
FMG.MBR_GRAD_NM,
|
||||
FMG.MLG_ACCML_UNIT_DV_CD ,
|
||||
FN_GET_COMMCODE_NAME('MLG_ACCML_UNIT_DV',FMG.MLG_ACCML_UNIT_DV_CD)MLG_ACCML_UNIT_DV_CD_NM,
|
||||
ROUND(FMG.MLG_ACCML_AMT) AS MLG_ACCML_AMT,
|
||||
ROUND(FMG.MLG_MXMM_ACCML_AMT) AS MLG_MXMM_ACCML_AMT,
|
||||
FMG.MLG_VALID_MT_CNT,
|
||||
ROUND(FMG.MBR_GRAD_AMT) AS MBR_GRAD_AMT,
|
||||
CASE
|
||||
WHEN FMG.MBR_GRAD_AMT >= 10000 THEN CONCAT(IFNULL(ROUND(FMG.MBR_GRAD_AMT / 10000), 0), '만원')
|
||||
WHEN FMG.MBR_GRAD_AMT < 10000 AND FMG.MBR_GRAD_AMT > 0 THEN CONCAT(FORMAT(ROUND(FMG.MBR_GRAD_AMT), 0), '원')
|
||||
ELSE ''
|
||||
END AS MBR_GRAD_AMT_SOP,
|
||||
FMG.MBR_GRAD_CND_CD ,
|
||||
FMG.SOPMAL_CD,
|
||||
FMG.REGUSR,
|
||||
FMG.REGIST_DT,
|
||||
FMG.UPDUSR,
|
||||
FMG.UPDT_DT,
|
||||
FN_GET_COMMCODE_NAME('MBR_GRAD_CND',FMG.MBR_GRAD_CND_CD)MBR_GRAD_CND_CD_NM,
|
||||
FMG.MBR_GRAD_ICON_COURS
|
||||
FROM GC_MEMBER_GRAD FMG
|
||||
WHERE 1=1
|
||||
AND FMG.SOPMAL_CD = #{sopmalCd}
|
||||
AND FMG.USE_AT = 'Y'
|
||||
]]>
|
||||
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(searchGradNm)">
|
||||
AND FMG.MBR_GRAD_NM LIKE CONCAT('%',#{searchGradNm},'%')
|
||||
</if>
|
||||
<![CDATA[
|
||||
ORDER BY FMG.MBR_GRAD_ORDR ASC
|
||||
)TB
|
||||
WHERE (@ROWNUM:=0)=0
|
||||
) PV
|
||||
WHERE 1=1
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 회원 등급 상세 조회 -->
|
||||
<select id = "selectBOGradBnefRegistInqire"
|
||||
parameterType="com.wb.domainserver.domain.gcone.setup.gradbnef.vo.BOGradbnefVO"
|
||||
resultType="dataMap">
|
||||
SELECT
|
||||
FMG.MBR_GRAD_CND_CD,
|
||||
FN_GET_COMMCODE_NAME('MBR_GRAD_CND',FMG.MBR_GRAD_CND_CD)MBR_GRAD_CND_CD_NM,
|
||||
FMG.MBR_GRAD_INNB,
|
||||
FMG.MBR_GRAD_NM,
|
||||
FMG.MBR_GRAD_AMT,
|
||||
FMG.SOPMAL_CD,
|
||||
FMG.MLG_ACCML_UNIT_DV_CD ,
|
||||
FMG.MLG_ACCML_AMT ,
|
||||
FMG.MLG_MXMM_ACCML_AMT ,
|
||||
FMG.MLG_VALID_MT_CNT
|
||||
FROM
|
||||
GC_MEMBER_GRAD FMG
|
||||
WHERE
|
||||
1 = 1
|
||||
AND FMG.SOPMAL_CD = #{sopmalCd}
|
||||
AND FMG.MBR_GRAD_INNB = #{mbrGradInnb}
|
||||
</select>
|
||||
|
||||
<!-- 회원 등급 혜택 값 있을 시 수정 없으면 추가 -->
|
||||
<update id="updateBOGradBnefUpdt"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.setup.gradbnef.vo.BOGradbnefVO">
|
||||
<![CDATA[
|
||||
UPDATE
|
||||
GC_MEMBER_GRAD GMG , (SELECT MLG_VALID_PD FROM GC_SHOP WHERE SOPMAL_CD = #{sopmalCd}) AS GS
|
||||
SET
|
||||
GMG.MLG_ACCML_UNIT_DV_CD = #{mlgAccmlUnitDvCd},
|
||||
GMG.MLG_ACCML_AMT = IFNULL(REPLACE(#{mlgAccmlAmt}, ',', ''), NULL),
|
||||
GMG.MLG_MXMM_ACCML_AMT = IFNULL(REPLACE(#{mlgMxmmAccmlAmt}, ',', ''), NULL),
|
||||
GMG.MLG_VALID_MT_CNT = GS.MLG_VALID_PD,
|
||||
GMG.UPDUSR = #{updusr},
|
||||
GMG.UPDT_DT = SYSDATE()
|
||||
WHERE
|
||||
GMG.MBR_GRAD_INNB = #{mbrGradInnb}
|
||||
AND GMG.SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</update>
|
||||
|
||||
|
||||
<!--회원 등급 목록 조회 without pagination -->
|
||||
<select id = "selectBOMbrGradListInqireWithoutPaging"
|
||||
parameterType="com.wb.domainserver.domain.gcone.setup.gradbnef.vo.BOGradbnefVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
FMG.MBR_GRAD_INNB ,
|
||||
FMG.MBR_GRAD_GROUP_INNB,
|
||||
(
|
||||
SELECT
|
||||
SOPMAL_NM
|
||||
FROM GC_SHOP
|
||||
WHERE SOPMAL_CD = #{sopmalCd}
|
||||
) AS SOPMAL_NM,
|
||||
FMG.MBR_GRAD_NM,
|
||||
FMG.MLG_ACCML_UNIT_DV_CD ,
|
||||
FN_GET_COMMCODE_NAME('MLG_ACCML_UNIT_DV',FMG.MLG_ACCML_UNIT_DV_CD)MLG_ACCML_UNIT_DV_CD_NM,
|
||||
FORMAT(ROUND(FMG.MLG_ACCML_AMT), 0) AS MLG_ACCML_AMT,
|
||||
FORMAT(ROUND(FMG.MLG_MXMM_ACCML_AMT), 0) AS MLG_MXMM_ACCML_AMT,
|
||||
FMG.MLG_VALID_MT_CNT,
|
||||
FORMAT(ROUND(FMG.MBR_GRAD_AMT), 0) AS MBR_GRAD_AMT,
|
||||
FMG.MBR_GRAD_CND_CD ,
|
||||
FN_GET_COMMCODE_NAME('MBR_GRAD_CND',FMG.MBR_GRAD_CND_CD)MBR_GRAD_CND_CD_NM,
|
||||
FMG.SOPMAL_CD,
|
||||
FMG.REGUSR,
|
||||
FMG.REGIST_DT,
|
||||
FMG.UPDUSR,
|
||||
FMG.UPDT_DT,
|
||||
FMG.MBR_GRAD_ICON_COURS,
|
||||
FN_GET_COMMCODE_NAME('MBR_GRAD_CND',FMG.MBR_GRAD_CND_CD)MBR_GRAD_CND_CD_NM
|
||||
FROM GC_MEMBER_GRAD FMG
|
||||
WHERE FMG.SOPMAL_CD = #{sopmalCd}
|
||||
AND FMG.USE_AT = 'Y'
|
||||
ORDER BY FMG.MBR_GRAD_ORDR ASC
|
||||
]]>
|
||||
</select >
|
||||
|
||||
<!-- 쇼핑몰별 회원 등급 매핑 수정 -->
|
||||
<update id="updateBOMbrGradMapingUpdt"
|
||||
parameterType="com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrVO">
|
||||
UPDATE GC_MEMBER_GRAD_MAPPING
|
||||
SET
|
||||
MBR_GRAD_INNB = #{mbrGradInnb},
|
||||
GRAD_MDAT_DT = SYSDATE()
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
</update>
|
||||
|
||||
<!-- 회원 등급 수정시 이전 회원 등급명, 이후 회원 등급 명 조회 -->
|
||||
<select id="selectMbrChngGradNm" parameterType="com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrVO">
|
||||
SELECT
|
||||
(SELECT
|
||||
MBR_GRAD_NM
|
||||
FROM
|
||||
GC_MEMBER_GRAD
|
||||
WHERE
|
||||
MBR_GRAD_INNB = #{beforeMbrGradInnb})AS BEFORE_GRAD_NM,
|
||||
(SELECT
|
||||
MBR_GRAD_NM
|
||||
FROM
|
||||
GC_MEMBER_GRAD
|
||||
WHERE
|
||||
MBR_GRAD_INNB = #{mbrGradInnb})AS AFTER_GRAD_NM
|
||||
FROM DUAL
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.wb.domainserver.domain.gcone.setup.menu.mapper.BOMenuMapper"></mapper>
|
||||
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.setup.mngr.mapper.BOMngrInfoMapper">
|
||||
<update id="updateBOMngrInfoUpdt" parameterType="com.wb.domainserver.domain.gcone.setup.mngr.vo.BOMngrInfoVO">
|
||||
UPDATE GC_MANAGER
|
||||
SET MNGR_NM = #{mngrNm, jdbcType=VARCHAR}
|
||||
, EMAIL = HEX(AES_ENCRYPT(#{email, jdbcType=VARCHAR}, #{secretKey}))
|
||||
, TELNB = HEX(AES_ENCRYPT(#{telnb, jdbcType=VARCHAR}, #{secretKey}))
|
||||
, MBTLNB = HEX(AES_ENCRYPT(#{mbtlnb, jdbcType=VARCHAR}, #{secretKey}))
|
||||
, UPDUSR = #{updusr, jdbcType=VARCHAR}
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(pwChngAt, 'Y')">
|
||||
, PASSWORD = #{password}
|
||||
</if>
|
||||
WHERE MNGR_INNB = #{mngrInnb}
|
||||
</update>
|
||||
</mapper>
|
||||
@@ -0,0 +1,97 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.setup.nbkk.mapper.BONbkkMapper">
|
||||
<!--무통장 입금 계좌 조회-->
|
||||
<select id = "selectBOAcntSetup" parameterType="com.wb.domainserver.domain.gcone.setup.nbkk.vo.BOSetupNbkkVO" resultType="dataMap" >
|
||||
SELECT
|
||||
SOPMAL_CD,
|
||||
ACNT_DV_CD,
|
||||
ACNT_DTL_DV_CD,
|
||||
BANK_CD,
|
||||
FN_GET_COMMCODE_NAME("BANK_NM_DV",BANK_CD) AS BANK_NM,
|
||||
DPSTR_NM,
|
||||
ACNTNB,
|
||||
USE_AT
|
||||
FROM GC_ACNT_SETUP
|
||||
WHERE ACNT_DV_CD ='01'
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sopmalCd)">
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(useAt)">
|
||||
AND USE_AT = 'Y'
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(acntDtlDvCd)">
|
||||
AND ACNT_DTL_DV_CD = #{acntDtlDvCd}
|
||||
</if>
|
||||
</select>
|
||||
<!--환불 계좌 조회-->
|
||||
<select id = "selectBORefundAcntSetup" parameterType="com.wb.domainserver.domain.gcone.setup.nbkk.vo.BOSetupNbkkVO" resultType="dataMap" >
|
||||
SELECT SOPMAL_CD,
|
||||
ACNT_DV_CD,
|
||||
ACNT_DTL_DV_CD,
|
||||
BANK_CD,
|
||||
DPSTR_NM,
|
||||
ACNTNB,
|
||||
USE_AT
|
||||
FROM GC_ACNT_SETUP
|
||||
WHERE ACNT_DV_CD = '02'
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sopmalCd)">
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(useAt)">
|
||||
AND USE_AT = 'Y'
|
||||
</if>
|
||||
</select>
|
||||
<!--계좌 삭제-->
|
||||
<delete id = "deleteBOSopmalAcnt" parameterType="com.wb.domainserver.domain.gcone.setup.nbkk.vo.NbkkInfoVO" >
|
||||
DELETE FROM GC_ACNT_SETUP GAS WHERE GAS.SOPMAL_CD = #{sopmalCd}
|
||||
</delete>
|
||||
<!--계좌 등록-->
|
||||
<insert id = "insertBOSopmalAcnt" parameterType="com.wb.domainserver.domain.gcone.setup.nbkk.vo.NbkkInfoVO">
|
||||
<selectKey order="BEFORE" keyProperty="acntSetupInnb" resultType="BigInteger">
|
||||
SELECT IFNULL(MAX(ACNT_SETUP_INNB), 0) + 1
|
||||
FROM GC_ACNT_SETUP
|
||||
</selectKey>
|
||||
INSERT INTO GC_ACNT_SETUP
|
||||
(
|
||||
ACNT_SETUP_INNB,
|
||||
SOPMAL_CD,
|
||||
ACNT_DV_CD,
|
||||
ACNT_DTL_DV_CD,
|
||||
BANK_CD,
|
||||
DPSTR_NM,
|
||||
ACNTNB,
|
||||
USE_AT,
|
||||
REGUSR,
|
||||
REGIST_DT,
|
||||
UPDUSR,
|
||||
UPDT_DT
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#{acntSetupInnb},
|
||||
#{sopmalCd},
|
||||
#{acntDvCd},
|
||||
#{acntDtlDvCd},
|
||||
#{bankCd},
|
||||
#{dpstrNm},
|
||||
#{acntnb},
|
||||
#{useAt},
|
||||
#{regusr},
|
||||
NOW(),
|
||||
#{updusr},
|
||||
NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 쇼핑몰 무통장자동입금 사용 여부 반환 -->
|
||||
<select id = "selectBOAcntUseAtInqire" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrSrchVO" resultType="Integer" >
|
||||
SELECT
|
||||
COUNT(1)
|
||||
FROM GC_ACNT_SETUP
|
||||
WHERE ACNT_DV_CD ='01'
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND USE_AT = 'Y'
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,74 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.setup.ordrmngr.mapper.BOOrdrMngrMapper">
|
||||
<!--주문 설정 조회-->
|
||||
<select id="selectBOOrdrSetup">
|
||||
SELECT GS.MLG_PYMNT_AT,
|
||||
GS.MLG_PYMNT_DV_CD,
|
||||
GS.MLG_PYMNT_RT,
|
||||
GS.MLG_MXMM_PYMNT_AMT,
|
||||
GS.MLG_MXMM_PYMNT_AMT_AT,
|
||||
GS.MLG_VALID_PD,
|
||||
GS.MLG_VALID_PD_AT,
|
||||
GS.MULTI_DLVY_AT,
|
||||
GS.FDRM_DLVY_AT,
|
||||
GS.GIFT_DLVY_AT,
|
||||
GS.CASH_AT,
|
||||
GS.GIFT_DLVY_ATMC_CANCL_PD,
|
||||
GS.PC_DOMN_ADRES,
|
||||
GS.MBL_DOMN_ADRES,
|
||||
GS.SOPMAL_NM,
|
||||
GS.SOPMAL_CD,
|
||||
GS.FDRM_DLVY_AT,
|
||||
GS.GIFT_DLVY_AT,
|
||||
GS.FVICON_COURS,
|
||||
GS.CSC_TELNB_ORDR_POSBL_AT,
|
||||
GS.CSC_WKDAY_WORK_TME,
|
||||
GS.CSC_LUNCH_TME,
|
||||
GS.CSC_RSTDE,
|
||||
GS.CSC_TELNB,
|
||||
GS.META_DC,
|
||||
GS.META_KWRD,
|
||||
GS.META_SJ,
|
||||
GS.META_GOODS_AT,
|
||||
GS.META_GOODS_DC,
|
||||
GS.META_GOODS_KWRD,
|
||||
GS.META_GOODS_SJ,
|
||||
GS.SOPMAL_TY_CD
|
||||
FROM GC_SHOP GS
|
||||
WHERE SOPMAL_CD = #{sopmalCd}
|
||||
</select>
|
||||
|
||||
<!--주문 설정 수정-->
|
||||
<update id="updateBOOrdrSetup">
|
||||
UPDATE GC_SHOP
|
||||
SET MLG_PYMNT_AT = #{mlgPymntAt},
|
||||
MLG_PYMNT_DV_CD = #{mlgPymntDvCd},
|
||||
MLG_PYMNT_RT = REPLACE(#{mlgPymntRt},',',''),
|
||||
MLG_MXMM_PYMNT_AMT = REPLACE(#{mlgMxmmPymntAmt},',',''),
|
||||
<choose>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mlgMxmmPymntAmtAt)">
|
||||
MLG_MXMM_PYMNT_AMT_AT = #{mlgMxmmPymntAmtAt},
|
||||
</when>
|
||||
<otherwise>
|
||||
MLG_MXMM_PYMNT_AMT_AT = 'Y',
|
||||
</otherwise>
|
||||
</choose>
|
||||
MLG_VALID_PD = #{mlgValidPd},
|
||||
<choose>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mlgValidPdAt)">
|
||||
MLG_VALID_PD_AT = #{mlgValidPdAt},
|
||||
</when>
|
||||
<otherwise>
|
||||
MLG_VALID_PD_AT = 'Y',
|
||||
</otherwise>
|
||||
</choose>
|
||||
CASH_AT = IFNULL(#{cashAt},'N'),
|
||||
MULTI_DLVY_AT = IFNULL(#{multiDlvyAt},'N'),
|
||||
FDRM_DLVY_AT = IFNULL(#{fdrmDlvyAt},'N'),
|
||||
GIFT_DLVY_AT = IFNULL(#{giftDlvyAt},'N'),
|
||||
GIFT_DLVY_ATMC_CANCL_PD = #{giftDlvyAtmcCanclPd}
|
||||
WHERE SOPMAL_CD = #{sopmalCd}
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,232 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.setup.popup.mapper.BOPopupMapper">
|
||||
|
||||
<!-- 팝업 상세조회, 수정, 삭제 조건절-->
|
||||
<sql id="selectBOPopupKeyWhere">
|
||||
<![CDATA[
|
||||
WHERE 1=1
|
||||
AND POPUP_INNB = #{popupInnb}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</sql>
|
||||
|
||||
<!-- 팝업 등록 -->
|
||||
<insert id="insertBOPopup"
|
||||
parameterType="com.wb.domainserver.domain.gcone.setup.popup.vo.BOPopupVO">
|
||||
<selectKey order="BEFORE" keyProperty="popupInnb" resultType="java.lang.Integer">
|
||||
<![CDATA[
|
||||
SELECT IFNULL(MAX(POPUP_INNB), 0)+1
|
||||
FROM GC_DESIGN_POPUP
|
||||
]]>
|
||||
</selectKey>
|
||||
INSERT INTO GC_DESIGN_POPUP (
|
||||
POPUP_INNB
|
||||
, SOPMAL_CD
|
||||
, POPUP_NM
|
||||
, POPUP_EXPSR_BGN_DT
|
||||
, POPUP_EXPSR_END_DT
|
||||
, CNNC_URL
|
||||
, POPUP_MG_WTH
|
||||
, POPUP_MG_VTC
|
||||
, POPUP_LC_X
|
||||
, POPUP_LC_Y
|
||||
, EXPSR_AT
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(tmeSetup)">
|
||||
, TME_SETUP
|
||||
</if>
|
||||
, USE_AT
|
||||
, ORGINL_FIL_NM
|
||||
, SYS_FIL_NM
|
||||
, FIL_MG
|
||||
, FIL_TY
|
||||
, FIL_COURS
|
||||
, REGUSR
|
||||
, REGIST_DT
|
||||
, UPDUSR
|
||||
, UPDT_DT
|
||||
, MBL_POPUP_MG_WTH
|
||||
, MBL_POPUP_MG_VTC
|
||||
, MBL_POPUP_LC_X
|
||||
, MBL_POPUP_LC_Y
|
||||
, TME_SETUP_AT
|
||||
)
|
||||
VALUES (
|
||||
#{popupInnb}
|
||||
, #{sopmalCd}
|
||||
, #{popupNm}
|
||||
, #{popupExpsrBgnDt}
|
||||
, #{popupExpsrEndDt}
|
||||
, #{cnncUrl}
|
||||
, #{popupMgWth}
|
||||
, #{popupMgVtc}
|
||||
, #{popupLcX}
|
||||
, #{popupLcY}
|
||||
, #{expsrAt}
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(tmeSetup)">
|
||||
, #{tmeSetup}
|
||||
</if>
|
||||
, 'Y'
|
||||
, #{orginlFilNm}
|
||||
, #{sysFilNm}
|
||||
, #{filMg}
|
||||
, #{filTy}
|
||||
, #{filCours}
|
||||
, #{regusr}
|
||||
, SYSDATE()
|
||||
, #{updusr}
|
||||
, SYSDATE()
|
||||
, #{mblPopupMgWth}
|
||||
, #{mblPopupMgVtc}
|
||||
, #{mblPopupLcX}
|
||||
, #{mblPopupLcY}
|
||||
, #{tmeSetupAt}
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 팝업 수정 -->
|
||||
<update id="updateBOPopupDtl" parameterType="com.wb.domainserver.domain.gcone.setup.popup.vo.BOPopupVO">
|
||||
UPDATE GC_DESIGN_POPUP
|
||||
SET
|
||||
POPUP_NM = #{popupNm}
|
||||
, SOPMAL_CD = #{sopmalCd}
|
||||
, POPUP_EXPSR_BGN_DT = #{popupExpsrBgnDt}
|
||||
, POPUP_EXPSR_END_DT = #{popupExpsrEndDt}
|
||||
, CNNC_URL = #{cnncUrl}
|
||||
, POPUP_MG_WTH = #{popupMgWth}
|
||||
, POPUP_MG_VTC = #{popupMgVtc}
|
||||
, POPUP_LC_X = #{popupLcX}
|
||||
, POPUP_LC_Y = #{popupLcY}
|
||||
, EXPSR_AT = #{expsrAt}
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(fileAddAt, 'Y')">
|
||||
, ORGINL_FIL_NM = #{orginlFilNm}
|
||||
, SYS_FIL_NM = #{sysFilNm}
|
||||
, FIL_MG = #{filMg}
|
||||
, FIL_TY = #{filTy}
|
||||
, FIL_COURS = #{filCours}
|
||||
</if>
|
||||
, UPDUSR = #{updusr}
|
||||
, UPDT_DT = SYSDATE()
|
||||
, MBL_POPUP_MG_WTH = #{mblPopupMgWth}
|
||||
, MBL_POPUP_MG_VTC = #{mblPopupMgVtc}
|
||||
, MBL_POPUP_LC_X = #{mblPopupLcX}
|
||||
, MBL_POPUP_LC_Y = #{mblPopupLcY}
|
||||
, TME_SETUP_AT = #{tmeSetupAt}
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(tmeSetupAt, 'Y')">
|
||||
, TME_SETUP = #{tmeSetup}
|
||||
</if>
|
||||
<include refid="selectBOPopupKeyWhere"/>
|
||||
</update>
|
||||
|
||||
<!-- 팝업 삭제 -->
|
||||
<update id="deleteBOPopup" parameterType="com.wb.domainserver.domain.gcone.setup.popup.vo.BOPopupVO">
|
||||
<![CDATA[
|
||||
UPDATE GC_DESIGN_POPUP
|
||||
SET USE_AT = 'N'
|
||||
, UPDUSR = #{updusr}
|
||||
, UPDT_DT = SYSDATE()
|
||||
]]>
|
||||
<include refid="selectBOPopupKeyWhere"/>
|
||||
</update>
|
||||
|
||||
<!-- 팝업 건수 -->
|
||||
<select id="selectBOPopupListCnt"
|
||||
parameterType="com.wb.domainserver.domain.gcone.setup.popup.vo.BOPopupVO"
|
||||
resultType="java.lang.Integer">
|
||||
<![CDATA[
|
||||
SELECT COUNT(1)
|
||||
FROM GC_DESIGN_POPUP
|
||||
WHERE 1=1
|
||||
AND USE_AT = 'Y'
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 팝업 목록 조회 -->
|
||||
<select id="selectBOPopupList"
|
||||
parameterType="com.wb.domainserver.domain.gcone.setup.popup.vo.BOPopupVO"
|
||||
resultType="dataMap">
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT TB.*
|
||||
, CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
|
||||
FROM (SELECT POPUP_INNB
|
||||
, SOPMAL_CD
|
||||
, POPUP_NM
|
||||
, DATE_FORMAT(POPUP_EXPSR_BGN_DT, '%Y-%m-%d %H:%i:%s') AS POPUP_EXPSR_BGN_DT
|
||||
, DATE_FORMAT(POPUP_EXPSR_END_DT, '%Y-%m-%d %H:%i:%s') AS POPUP_EXPSR_END_DT
|
||||
, CNNC_URL
|
||||
, POPUP_MG_WTH
|
||||
, POPUP_MG_VTC
|
||||
, POPUP_LC_X
|
||||
, POPUP_LC_Y
|
||||
, EXPSR_AT
|
||||
, TME_SETUP
|
||||
, USE_AT
|
||||
, ORGINL_FIL_NM
|
||||
, SYS_FIL_NM
|
||||
, FIL_MG
|
||||
, FIL_TY
|
||||
, FIL_COURS
|
||||
, REGUSR
|
||||
, REGIST_DT
|
||||
, DATE_FORMAT(REGIST_DT, '%Y-%m-%d') AS REGIST_DE
|
||||
, UPDUSR
|
||||
, UPDT_DT
|
||||
, DATE_FORMAT(UPDT_DT, '%Y-%m-%d') AS UPDT_DE
|
||||
FROM GC_DESIGN_POPUP
|
||||
WHERE 1=1
|
||||
AND USE_AT = 'Y'
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
ORDER BY REGIST_DT DESC
|
||||
) TB
|
||||
WHERE (@ROWNUM:=0)=0) PV
|
||||
WHERE 1=1
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
</select>
|
||||
|
||||
<!-- 팝업 상세 조회 -->
|
||||
<select id="selectBOPopupDtl"
|
||||
parameterType="com.wb.domainserver.domain.gcone.setup.popup.vo.BOPopupVO"
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT POPUP_INNB
|
||||
, POPUP_NM
|
||||
, SOPMAL_CD
|
||||
, POPUP_EXPSR_BGN_DT
|
||||
, DATE_FORMAT(POPUP_EXPSR_BGN_DT, '%Y-%m-%d') AS POPUP_EXPSR_BGN_DT_YYYYMMDD
|
||||
, DATE_FORMAT(POPUP_EXPSR_BGN_DT, '%H:%i') AS POPUP_EXPSR_BGN_DT_TIME
|
||||
, POPUP_EXPSR_END_DT
|
||||
, DATE_FORMAT(POPUP_EXPSR_END_DT, '%Y-%m-%d') AS POPUP_EXPSR_END_DT_YYYYMMDD
|
||||
, DATE_FORMAT(POPUP_EXPSR_END_DT, '%H:%i') AS POPUP_EXPSR_END_DT_TIME
|
||||
, CNNC_URL
|
||||
, POPUP_MG_WTH
|
||||
, POPUP_MG_VTC
|
||||
, POPUP_LC_X
|
||||
, POPUP_LC_Y
|
||||
, EXPSR_AT
|
||||
, TME_SETUP
|
||||
, DATE_FORMAT(TME_SETUP, '%Y-%m-%d') AS TME_SETUP_YYYYMMDD
|
||||
, DATE_FORMAT(TME_SETUP, '%H:%i') AS TME_SETUP_TIME
|
||||
, USE_AT
|
||||
, ORGINL_FIL_NM
|
||||
, SYS_FIL_NM
|
||||
, FIL_MG
|
||||
, FIL_TY
|
||||
, FIL_COURS
|
||||
, REGUSR
|
||||
, REGIST_DT
|
||||
, DATE_FORMAT(REGIST_DT, '%Y-%m-%d') AS REGIST_DE
|
||||
, UPDUSR
|
||||
, UPDT_DT
|
||||
, DATE_FORMAT(UPDT_DT, '%Y-%m-%d') AS UPDT_DE
|
||||
, MBL_POPUP_MG_WTH
|
||||
, MBL_POPUP_MG_VTC
|
||||
, MBL_POPUP_LC_X
|
||||
, MBL_POPUP_LC_Y
|
||||
, TME_SETUP_AT
|
||||
FROM GC_DESIGN_POPUP
|
||||
]]>
|
||||
<include refid="selectBOPopupKeyWhere"/>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user