초기소스
This commit is contained in:
19
src/main/resources/mybatis/xml/config/mapper-config.xml
Normal file
19
src/main/resources/mybatis/xml/config/mapper-config.xml
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
|
||||
<configuration>
|
||||
|
||||
<!--Mybatis 설정 -->
|
||||
<settings>
|
||||
<!-- 전통적인 데이터베이스 컬럼명 형태인 A_COLUMN을 CamelCase형태의 자바 프로퍼티명 형태인 aColumn으로 자동으로 매핑하도록 함 -->
|
||||
<setting name="mapUnderscoreToCamelCase" value="true"></setting>
|
||||
<!-- 파라미터에 Null 값이 있을 경우 에러 처리 -->
|
||||
<setting name="jdbcTypeForNull" value="VARCHAR"></setting>
|
||||
<setting name="callSettersOnNulls" value="true"/>
|
||||
</settings>
|
||||
|
||||
<!-- Type Aliases 설정-->
|
||||
<typeAliases>
|
||||
<typeAlias alias="dataMap" type="com.wb.domainserver.util.dataaccess.DataMap" />
|
||||
</typeAliases>
|
||||
|
||||
</configuration>
|
||||
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>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user