merge master into develop - CscListRForm.jsp FAQ 아코디언 버그 수정
This commit is contained in:
@@ -0,0 +1,308 @@
|
||||
<?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.stats.adTraceAnals.mapper.BOAdTraceAnalsMapper">
|
||||
|
||||
<!--일별 추적코드 건수-->
|
||||
<select id="selectBODailyAdTraceCdTableCntInqire"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.stats.adTraceAnals.vo.BOAdTraceAnalsVO"
|
||||
resultType="java.lang.Integer">
|
||||
|
||||
<![CDATA[
|
||||
SELECT
|
||||
COUNT(*)
|
||||
FROM (
|
||||
SELECT
|
||||
ROW_NUMBER() OVER (ORDER BY DT ASC) AS RNUM,
|
||||
AD_TRACE_CD AS AD_TRACE_CD, DT,
|
||||
COALESCE(ACCESS_USER_CNT, 0) AS ACCESS_USER_CNT,
|
||||
COALESCE(ORDR_CNT, 0) AS ORDR_CNT,
|
||||
COALESCE(RL_SETLE_AMT, 0) AS RL_SETLE_AMT,
|
||||
IF(ACCESS_USER_CNT = 0, 0, ROUND(COALESCE(ORDR_CNT / ACCESS_USER_CNT * 100, 0))) AS RL_SETLE_AMT_RT,
|
||||
IF(ACCESS_USER_CNT = 0, 0, ROUND(COALESCE(RL_SETLE_AMT / ACCESS_USER_CNT, 0), 2)) AS ACCESS_USER_RL_SETLE_AMT
|
||||
FROM (
|
||||
SELECT
|
||||
A.AD_TRACE_CD, A.REGIST_DE AS DT,
|
||||
COUNT(DISTINCT A.AGENT_ID) AS ACCESS_USER_CNT,
|
||||
COUNT(DISTINCT gos.ORRE_INNB) AS ORDR_CNT,
|
||||
SUM(gos.RL_SETLE_AMT) AS RL_SETLE_AMT
|
||||
FROM (
|
||||
SELECT REGIST_DE, AD_TRACE_CD, SOPMAL_CD ,AGENT_ID FROM GC_AD_TRACE_LOG
|
||||
GROUP BY REGIST_DE, AD_TRACE_CD, SOPMAL_CD, AGENT_ID
|
||||
) A
|
||||
LEFT JOIN GC_ORRE_STAT gos
|
||||
ON (A.SOPMAL_CD = gos.SOPMAL_CD
|
||||
AND A.AGENT_ID = gos.AGENT_ID
|
||||
AND A.REGIST_DE = DATE(gos.SETLE_COMPT_DT)
|
||||
AND gos.SOPMAL_CD = 'DT'
|
||||
AND gos.SETLE_COMPT_DT between CONCAT(#{srchStrtSndngDt},' 00:00:00') AND CONCAT(#{srchEndSndngDt},' 23:59:59')
|
||||
AND gos.ORDR_STTUS_CD BETWEEN 25 AND 75
|
||||
AND gos.ORRE_DV_CD = '01')
|
||||
WHERE 1=1
|
||||
AND A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.REGIST_DE between #{srchStrtSndngDt} AND #{srchEndSndngDt}
|
||||
GROUP BY DT, AD_TRACE_CD
|
||||
) A2
|
||||
ORDER BY ${ordrFinal}
|
||||
) TB
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!--일별 추적코드 조회-->
|
||||
<select id="selectBODailyAdTraceCdTableInqire"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.stats.adTraceAnals.vo.BOAdTraceAnalsVO"
|
||||
resultType="DataMap">
|
||||
|
||||
<![CDATA[
|
||||
SELECT
|
||||
ROW_NUMBER() OVER (ORDER BY DT ASC) AS RNUM,
|
||||
AD_TRACE_CD AS AD_TRACE_CD, DT,
|
||||
COALESCE(ACCESS_USER_CNT, 0) AS ACCESS_USER_CNT,
|
||||
COALESCE(ORDR_CNT, 0) AS ORDR_CNT,
|
||||
COALESCE(RL_SETLE_AMT, 0) AS RL_SETLE_AMT,
|
||||
IF(ACCESS_USER_CNT = 0, 0, ROUND(COALESCE(ORDR_CNT / ACCESS_USER_CNT * 100, 0))) AS RL_SETLE_AMT_RT,
|
||||
IF(ACCESS_USER_CNT = 0, 0, ROUND(COALESCE(RL_SETLE_AMT / ACCESS_USER_CNT, 0), 2)) AS ACCESS_USER_RL_SETLE_AMT
|
||||
FROM (
|
||||
SELECT
|
||||
A.AD_TRACE_CD, A.REGIST_DE AS DT,
|
||||
COUNT(DISTINCT A.AGENT_ID) AS ACCESS_USER_CNT,
|
||||
COUNT(DISTINCT gos.ORRE_INNB) AS ORDR_CNT,
|
||||
SUM(gos.RL_SETLE_AMT) AS RL_SETLE_AMT
|
||||
FROM (
|
||||
SELECT REGIST_DE, AD_TRACE_CD, SOPMAL_CD ,AGENT_ID FROM GC_AD_TRACE_LOG
|
||||
GROUP BY REGIST_DE, AD_TRACE_CD, SOPMAL_CD, AGENT_ID
|
||||
) A
|
||||
LEFT JOIN GC_ORRE_STAT gos
|
||||
ON (A.SOPMAL_CD = gos.SOPMAL_CD
|
||||
AND A.AGENT_ID = gos.AGENT_ID
|
||||
AND A.REGIST_DE = DATE(gos.SETLE_COMPT_DT)
|
||||
AND gos.SOPMAL_CD = 'DT'
|
||||
AND gos.SETLE_COMPT_DT between CONCAT(#{srchStrtSndngDt},' 00:00:00') AND CONCAT(#{srchEndSndngDt},' 23:59:59')
|
||||
AND gos.ORDR_STTUS_CD BETWEEN 25 AND 75
|
||||
AND gos.ORRE_DV_CD = '01')
|
||||
WHERE 1=1
|
||||
AND A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.REGIST_DE between #{srchStrtSndngDt} AND #{srchEndSndngDt}
|
||||
GROUP BY DT, AD_TRACE_CD
|
||||
) A2
|
||||
ORDER BY ${ordrFinal}
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
]]>
|
||||
</select>
|
||||
<!-- 주별 추적코드 조회 건수 -->
|
||||
<select id="selectBOWeeklyAdTraceCdTableCntInqire"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.stats.adTraceAnals.vo.BOAdTraceAnalsVO"
|
||||
resultType="java.lang.Integer">
|
||||
|
||||
<![CDATA[
|
||||
SELECT
|
||||
COUNT(*)
|
||||
FROM (
|
||||
SELECT
|
||||
AD_TRACE_CD AS AD_TRACE_CD,
|
||||
DT,
|
||||
COALESCE( ACCESS_USER_CNT, 0) AS ACCESS_USER_CNT,
|
||||
COALESCE( ORDR_CNT, 0) AS ORDR_CNT,
|
||||
COALESCE( RL_SETLE_AMT, 0) AS RL_SETLE_AMT,
|
||||
IF( ACCESS_USER_CNT = 0 , 0, ROUND( COALESCE(ORDR_CNT / ACCESS_USER_CNT * 100, 0) )) AS RL_SETLE_AMT_RT,
|
||||
IF(ACCESS_USER_CNT = 0, 0, ROUND(COALESCE(RL_SETLE_AMT / ACCESS_USER_CNT, 0), 2)) AS ACCESS_USER_RL_SETLE_AMT
|
||||
FROM (
|
||||
SELECT
|
||||
AD_TRACE_CD,
|
||||
DAY_T.DT,
|
||||
SUM(ACCESS_USER_CNT) AS ACCESS_USER_CNT,
|
||||
SUM(ORDR_CNT) AS ORDR_CNT,
|
||||
SUM(RL_SETLE_AMT) AS RL_SETLE_AMT
|
||||
FROM (
|
||||
WITH RECURSIVE DateSeries AS (
|
||||
SELECT #{srchStrtSndngDt} AS DT
|
||||
UNION ALL
|
||||
SELECT DT + INTERVAL 1 DAY
|
||||
FROM DateSeries
|
||||
WHERE DT < #{srchEndSndngDt}
|
||||
)
|
||||
SELECT DATE_FORMAT(DS.DT, '%Y-%m-%d') AS DT
|
||||
FROM DateSeries DS
|
||||
) DAY_T
|
||||
INNER JOIN (
|
||||
SELECT A.AD_TRACE_CD
|
||||
, A.REGIST_DE AS DT
|
||||
, COUNT(DISTINCT A.AGENT_ID ) AS ACCESS_USER_CNT
|
||||
, COUNT(DISTINCT gos.ORRE_INNB) AS ORDR_CNT
|
||||
, SUM(gos.RL_SETLE_AMT) AS RL_SETLE_AMT
|
||||
FROM GC_AD_TRACE_LOG A
|
||||
LEFT JOIN GC_ORRE_STAT gos
|
||||
ON (A.SOPMAL_CD = gos.SOPMAL_CD AND A.AGENT_ID = gos.AGENT_ID and gos.SOPMAL_CD = #{sopmalCd} AND DATE(gos.SETLE_COMPT_DT) BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt} AND gos.ORDR_STTUS_CD BETWEEN 25 AND 75 AND gos.ORRE_DV_CD = '01')
|
||||
WHERE 1=1
|
||||
AND A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.REGIST_DE BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt}
|
||||
GROUP BY DT,AD_TRACE_CD
|
||||
) X
|
||||
ON DAY_T.DT = X.DT
|
||||
GROUP BY DT, AD_TRACE_CD
|
||||
)A2
|
||||
ORDER BY ${ordrFinal}
|
||||
) TB
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!--주별 추적코드 조회-->
|
||||
<select id="selectBOWeeklyAdTraceCdTableInqire"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.stats.adTraceAnals.vo.BOAdTraceAnalsVO"
|
||||
resultType="DataMap">
|
||||
|
||||
<![CDATA[
|
||||
SELECT
|
||||
*
|
||||
FROM (
|
||||
SELECT
|
||||
CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM, TB.*
|
||||
FROM (
|
||||
SELECT
|
||||
AD_TRACE_CD AS AD_TRACE_CD,
|
||||
DT,
|
||||
COALESCE( ACCESS_USER_CNT, 0) AS ACCESS_USER_CNT,
|
||||
COALESCE( ORDR_CNT, 0) AS ORDR_CNT,
|
||||
COALESCE( RL_SETLE_AMT, 0) AS RL_SETLE_AMT,
|
||||
IF( ACCESS_USER_CNT = 0 , 0, ROUND( COALESCE(ORDR_CNT / ACCESS_USER_CNT * 100, 0) )) AS RL_SETLE_AMT_RT,
|
||||
IF(ACCESS_USER_CNT = 0, 0, ROUND(COALESCE(RL_SETLE_AMT / ACCESS_USER_CNT, 0), 2)) AS ACCESS_USER_RL_SETLE_AMT
|
||||
FROM (
|
||||
SELECT
|
||||
AD_TRACE_CD,
|
||||
DAY_T.DT,
|
||||
SUM(ACCESS_USER_CNT) AS ACCESS_USER_CNT,
|
||||
SUM(ORDR_CNT) AS ORDR_CNT,
|
||||
SUM(RL_SETLE_AMT) AS RL_SETLE_AMT
|
||||
FROM (
|
||||
WITH RECURSIVE DateSeries AS (
|
||||
SELECT #{srchStrtSndngDt} AS DT
|
||||
UNION ALL
|
||||
SELECT DT + INTERVAL 1 DAY
|
||||
FROM DateSeries
|
||||
WHERE DT < #{srchEndSndngDt}
|
||||
)
|
||||
SELECT DATE_FORMAT(DS.DT, '%Y-%m-%d') AS DT
|
||||
FROM DateSeries DS
|
||||
) DAY_T
|
||||
INNER JOIN (
|
||||
SELECT A.AD_TRACE_CD
|
||||
, A.REGIST_DE AS DT
|
||||
, COUNT(DISTINCT A.AGENT_ID ) AS ACCESS_USER_CNT
|
||||
, COUNT(DISTINCT gos.ORRE_INNB) AS ORDR_CNT
|
||||
, SUM(gos.RL_SETLE_AMT) AS RL_SETLE_AMT
|
||||
FROM GC_AD_TRACE_LOG A
|
||||
LEFT JOIN GC_ORRE_STAT gos
|
||||
ON (A.SOPMAL_CD = gos.SOPMAL_CD AND A.AGENT_ID = gos.AGENT_ID AND DATE(gos.SETLE_COMPT_DT) BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt} AND gos.ORDR_STTUS_CD BETWEEN 25 AND 75 AND gos.ORRE_DV_CD = '01')
|
||||
WHERE 1=1
|
||||
AND A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.REGIST_DE BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt}
|
||||
GROUP BY DT,AD_TRACE_CD
|
||||
) X
|
||||
ON DAY_T.DT = X.DT
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchAdTraceCd)">
|
||||
AND X.AD_TRACE_CD = #{srchAdTraceCd}
|
||||
</if>
|
||||
<![CDATA[
|
||||
GROUP BY DT, AD_TRACE_CD
|
||||
)A2
|
||||
ORDER BY ${ordrFinal}
|
||||
) TB
|
||||
WHERE (@rownum:=0)=0
|
||||
) PV
|
||||
WHERE 1=1
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!--일별 추적코드 건수 (상품)-->
|
||||
<select id="selectBODailyAdTraceCdGoodsTableCntInqire"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.stats.adTraceAnals.vo.BOAdTraceAnalsVO"
|
||||
resultType="java.lang.Integer">
|
||||
|
||||
<![CDATA[
|
||||
SELECT
|
||||
count(*)
|
||||
FROM (
|
||||
SELECT
|
||||
A.AD_TRACE_CD,
|
||||
A.REGIST_DE AS DT,
|
||||
gogs.GOODS_INNB,
|
||||
gogs.GOODS_NM,
|
||||
COUNT(DISTINCT gogs.ORDR_INNB) AS ORDR_CNT,
|
||||
SUM(gogs.ORRE_AMT) AS RL_SETLE_AMT
|
||||
FROM (
|
||||
SELECT REGIST_DE, AD_TRACE_CD, SOPMAL_CD ,AGENT_ID FROM GC_AD_TRACE_LOG
|
||||
GROUP BY REGIST_DE, AD_TRACE_CD, SOPMAL_CD, AGENT_ID
|
||||
) A
|
||||
LEFT JOIN GC_ORRE_STAT gos
|
||||
ON A.SOPMAL_CD = gos.SOPMAL_CD
|
||||
AND A.AGENT_ID = gos.AGENT_ID
|
||||
LEFT JOIN GC_ORRE_GOPTN_STAT gogs
|
||||
ON gos.SOPMAL_CD = gogs.SOPMAL_CD
|
||||
AND gos.ORRE_INNB = gogs.ORDR_INNB
|
||||
AND gogs.SOPMAL_CD = #{sopmalCd}
|
||||
AND gogs.SETLE_COMPT_DT BETWEEN CONCAT(#{srchStrtSndngDt},' 00:00:00') AND CONCAT(#{srchEndSndngDt},' 23:59:59')
|
||||
AND gogs.ORDR_STTUS_CD BETWEEN 25 AND 75
|
||||
AND gogs.ORRE_DV_CD = '01'
|
||||
WHERE A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.REGIST_DE BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt}
|
||||
GROUP BY DT, AD_TRACE_CD, GOODS_INNB, GOODS_NM
|
||||
) t
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!--일별 추적코드 조회(상품)-->
|
||||
<select id="selectBODailyAdTraceCdGoodsTableInqire"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.stats.adTraceAnals.vo.BOAdTraceAnalsVO"
|
||||
resultType="DataMap">
|
||||
|
||||
<![CDATA[
|
||||
SELECT
|
||||
ROW_NUMBER() OVER (ORDER BY DT ASC) AS RNUM,
|
||||
AD_TRACE_CD,
|
||||
DT,
|
||||
GOODS_INNB,
|
||||
GOODS_NM,
|
||||
COALESCE(ORDR_CNT,0) AS ORDR_CNT,
|
||||
COALESCE(RL_SETLE_AMT,0) AS RL_SETLE_AMT
|
||||
FROM (
|
||||
SELECT
|
||||
A.AD_TRACE_CD,
|
||||
A.REGIST_DE AS DT,
|
||||
gogs.GOODS_INNB,
|
||||
gogs.GOODS_NM,
|
||||
COUNT(DISTINCT gogs.ORDR_INNB) AS ORDR_CNT,
|
||||
SUM(gogs.ORRE_AMT) AS RL_SETLE_AMT
|
||||
FROM (
|
||||
SELECT REGIST_DE, AD_TRACE_CD, SOPMAL_CD ,AGENT_ID FROM GC_AD_TRACE_LOG
|
||||
GROUP BY REGIST_DE, AD_TRACE_CD, SOPMAL_CD, AGENT_ID
|
||||
) A
|
||||
LEFT JOIN GC_ORRE_STAT gos
|
||||
ON A.SOPMAL_CD = gos.SOPMAL_CD
|
||||
AND A.AGENT_ID = gos.AGENT_ID
|
||||
LEFT JOIN GC_ORRE_GOPTN_STAT gogs
|
||||
ON gos.SOPMAL_CD = gogs.SOPMAL_CD
|
||||
AND gos.ORRE_INNB = gogs.ORDR_INNB
|
||||
AND gogs.SOPMAL_CD = #{sopmalCd}
|
||||
AND gogs.SETLE_COMPT_DT BETWEEN CONCAT(#{srchStrtSndngDt},' 00:00:00') AND CONCAT(#{srchEndSndngDt},' 23:59:59')
|
||||
AND gogs.ORDR_STTUS_CD BETWEEN 25 AND 75
|
||||
AND gogs.ORRE_DV_CD = '01'
|
||||
WHERE A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.REGIST_DE BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt}
|
||||
GROUP BY DT, AD_TRACE_CD, GOODS_INNB, GOODS_NM
|
||||
) t
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<select id="selectBOMngrAdTraceCdList">
|
||||
<![CDATA[
|
||||
SELECT AD_TRACE_CD
|
||||
FROM GC_AD_TRACE_LOG
|
||||
WHERE SOPMAL_CD = #{sopmalCd}
|
||||
GROUP BY AD_TRACE_CD
|
||||
]]>
|
||||
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,157 @@
|
||||
<?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.stats.adtrace.mapper.BOAdTraceMapper">
|
||||
|
||||
<!--광고추적 목록 조회 개수-->
|
||||
<select id="selectBOAdTraceCount"
|
||||
parameterType="com.wb.domainserver.domain.gcone.stats.adtrace.vo.BOAdTraceVO" resultType="java.lang.Integer">
|
||||
SELECT
|
||||
COUNT(*)
|
||||
FROM
|
||||
GC_AD_TRACE
|
||||
WHERE 1=1
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
<include refid="where"/>
|
||||
</select>
|
||||
<!--광고추적 목록 조회-->
|
||||
<select id="selectBOAdTraceList" parameterType="com.wb.domainserver.domain.gcone.stats.adtrace.vo.BOAdTraceVO" resultType="dataMap">
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT TB.*
|
||||
, CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
|
||||
FROM (
|
||||
SELECT
|
||||
AD_TRACE_INNB
|
||||
, SOPMAL_CD
|
||||
, AD_TRACE_NM
|
||||
, AD_MEDIA_DV_CD
|
||||
, AD_MEDIA_NM
|
||||
, CMPGN_TY
|
||||
, CMPGN_NM
|
||||
, AD_GROUP_NM
|
||||
, MATR_NM
|
||||
, LANDING_URL
|
||||
, RM
|
||||
, REGIST_DT
|
||||
, UPDT_DT
|
||||
FROM
|
||||
GC_AD_TRACE
|
||||
WHERE 1=1
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
<include refid="where"/>
|
||||
ORDER BY REGIST_DT DESC
|
||||
) TB
|
||||
WHERE (@ROWNUM:=0)=0
|
||||
) PV
|
||||
WHERE 1=1
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
</select>
|
||||
<!--광고추적 검색조건-->
|
||||
<sql id="where">
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStr)">
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchTy, 'adTraceNm')">
|
||||
AND AD_TRACE_NM LIKE CONCAT('%',#{srchStr}, '%')
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchTy, 'adMediaNm')">
|
||||
AND AD_MEDIA_NM LIKE CONCAT('%',#{srchStr}, '%')
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchTy, 'cmpgnTy')">
|
||||
AND CMPGN_TY = #{srchStr}
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchTy, 'cmpgnNm')">
|
||||
AND CMPGN_NM LIKE CONCAT('%',#{srchStr}, '%')
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchTy, 'adGroupNm')">
|
||||
AND AD_GROUP_NM LIKE CONCAT('%',#{srchStr}, '%')
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchTy, 'matrNm')">
|
||||
AND MATR_NM LIKE CONCAT('%',#{srchStr}, '%')
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchTy, 'rm')">
|
||||
AND RM LIKE CONCAT('%',#{srchStr}, '%')
|
||||
</if>
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
<!--광고추적 등록-->
|
||||
<insert id="insertBOAdTrace" parameterType="com.wb.domainserver.domain.gcone.stats.adtrace.vo.BOAdTraceVO">
|
||||
<selectKey order="BEFORE" keyProperty="adTraceInnb" resultType="java.lang.String">
|
||||
<![CDATA[
|
||||
SELECT IFNULL(MAX(AD_TRACE_INNB), 0)+1
|
||||
FROM GC_AD_TRACE
|
||||
]]>
|
||||
</selectKey>
|
||||
INSERT INTO GC_AD_TRACE
|
||||
(
|
||||
AD_TRACE_INNB,
|
||||
SOPMAL_CD,
|
||||
AD_TRACE_NM,
|
||||
AD_MEDIA_DV_CD,
|
||||
AD_MEDIA_NM,
|
||||
CMPGN_TY,
|
||||
CMPGN_NM,
|
||||
AD_GROUP_NM,
|
||||
MATR_NM,
|
||||
LANDING_URL,
|
||||
RM,
|
||||
REGUSR,
|
||||
REGIST_DT
|
||||
)
|
||||
VALUES(
|
||||
#{adTraceInnb},
|
||||
#{sopmalCd},
|
||||
#{adTraceNm},
|
||||
#{adMediaDvCd},
|
||||
#{adMediaNm},
|
||||
#{cmpgnTy},
|
||||
#{cmpgnNm},
|
||||
#{adGroupNm},
|
||||
#{matrNm},
|
||||
#{landingUrl},
|
||||
#{rm},
|
||||
#{regusr},
|
||||
SYSDATE()
|
||||
)
|
||||
</insert>
|
||||
<!--광고추적 상세 조회-->
|
||||
<select id="selectBOAdTraceDtlForm" parameterType="com.wb.domainserver.domain.gcone.stats.adtrace.vo.BOAdTraceVO" resultType="dataMap">
|
||||
SELECT
|
||||
AD_TRACE_INNB
|
||||
, SOPMAL_CD
|
||||
, AD_TRACE_NM
|
||||
, AD_MEDIA_DV_CD
|
||||
, AD_MEDIA_NM
|
||||
, CMPGN_TY
|
||||
, CMPGN_NM
|
||||
, AD_GROUP_NM
|
||||
, MATR_NM
|
||||
, LANDING_URL
|
||||
, RM
|
||||
FROM
|
||||
GC_AD_TRACE
|
||||
WHERE 1=1
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND AD_TRACE_INNB = #{adTraceInnb}
|
||||
</select>
|
||||
|
||||
<!--광고추적 수정-->
|
||||
<update id="updateBOAdTraceDtl" parameterType="com.wb.domainserver.domain.gcone.stats.adtrace.vo.BOAdTraceVO">
|
||||
UPDATE GC_AD_TRACE
|
||||
SET
|
||||
AD_TRACE_NM = #{adTraceNm},
|
||||
AD_MEDIA_DV_CD = #{adMediaDvCd},
|
||||
AD_MEDIA_NM = #{adMediaNm},
|
||||
CMPGN_TY = #{cmpgnTy},
|
||||
CMPGN_NM = #{cmpgnNm},
|
||||
AD_GROUP_NM = #{adGroupNm},
|
||||
MATR_NM = #{matrNm},
|
||||
LANDING_URL = #{landingUrl},
|
||||
RM = #{rm},
|
||||
UPDUSR = #{updusr},
|
||||
UPDT_DT = SYSDATE()
|
||||
WHERE 1=1
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND AD_TRACE_INNB = #{adTraceInnb}
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,936 @@
|
||||
<?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.stats.marktAnals.mapper.BOMarktAnalsMapper">
|
||||
|
||||
<!--
|
||||
어제 데이터 조회
|
||||
# 일별 유입수
|
||||
-->
|
||||
<select id="selectBOMngrMainDalyInflowCntInqire"
|
||||
parameterType = "DataMap"
|
||||
resultType="DataMap">
|
||||
|
||||
<![CDATA[
|
||||
SELECT
|
||||
COUNT(DISTINCT AGENT_ID ) AS ACCESS_USER_CNT
|
||||
FROM
|
||||
GC_ACCESS_STAT A
|
||||
WHERE 1 = 1
|
||||
AND A.SOPMAL_CD = #{sopmalCd}
|
||||
AND DATE(A.BGN_DT) = CURDATE() - INTERVAL 1 DAY
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!--
|
||||
#21 일별 시간대별 유입수와 결제수
|
||||
-->
|
||||
<select id="selectBOHourlySetleCntInflowCntInqire"
|
||||
parameterType = "DataMap"
|
||||
resultType="DataMap">
|
||||
|
||||
<![CDATA[
|
||||
WITH RECURSIVE Hours AS (
|
||||
SELECT 1 AS HR
|
||||
UNION ALL
|
||||
SELECT HR + 1
|
||||
FROM Hours
|
||||
WHERE HR < 24
|
||||
)
|
||||
SELECT
|
||||
CONCAT( LPAD(H.HR, 2, '0'), '시') AS DT,
|
||||
COALESCE(SUM(A.ACCESS_USER_CNT), 0) AS ACCESS_USER_CNT,
|
||||
COALESCE(SUM(O.ORDR_CNT), 0) AS ORDR_CNT
|
||||
FROM Hours H
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
DATE_FORMAT(BGN_DT, '%H') AS HR,
|
||||
COUNT(DISTINCT AGENT_ID) AS ACCESS_USER_CNT
|
||||
FROM GC_ACCESS_STAT A
|
||||
WHERE A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.BGN_DT BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt} ' 23:59:59'
|
||||
GROUP BY HR
|
||||
) A ON A.HR = H.HR
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
DATE_FORMAT(SETLE_COMPT_DT, '%H') AS ORD_HR,
|
||||
SUM(CASE WHEN ORRE_DV_CD = '01' and ORDR_STTUS_CD between '25' and '75' THEN 1 ELSE NULL END) AS ORDR_CNT
|
||||
FROM GC_ORRE_STAT O
|
||||
WHERE O.SOPMAL_CD = #{sopmalCd}
|
||||
AND O.SETLE_COMPT_DT BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt} ' 23:59:59'
|
||||
AND O.ORDR_STTUS_CD between '25' and '85'
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrEnvrnCds)">
|
||||
AND O.SLE_ENVRN_CD IN
|
||||
<foreach collection="srchOrdrEnvrnCds" item="srchOrdrEnvrnCd" open="(" close=")" separator=",">
|
||||
#{srchOrdrEnvrnCd}
|
||||
</foreach>
|
||||
</if>
|
||||
<![CDATA[
|
||||
GROUP BY ORD_HR
|
||||
) O ON O.ORD_HR = H.HR
|
||||
GROUP BY H.HR
|
||||
ORDER BY H.HR ASC
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!--
|
||||
# 통계 > 일별 유입수 및 결제수
|
||||
-->
|
||||
<select id="selectBODailyChartSetleCntInflowCntInqire"
|
||||
parameterType = "DataMap"
|
||||
resultType="DataMap">
|
||||
|
||||
<![CDATA[
|
||||
WITH RECURSIVE DateSeries AS (
|
||||
SELECT #{srchStrtSndngDt} AS DT
|
||||
UNION ALL
|
||||
SELECT DATE_ADD(DT, INTERVAL 1 DAY)
|
||||
FROM DateSeries
|
||||
WHERE DT < date_sub( #{srchEndSndngDt}, interval 1 day)
|
||||
)
|
||||
SELECT
|
||||
DATE_FORMAT(DS.DT, '%Y%m%d') AS DT,
|
||||
COALESCE(SUM(X.ACCESS_USER_CNT), 0) AS ACCESS_USER_CNT,
|
||||
COALESCE(SUM(X.ORDR_CNT), 0) AS ORDR_CNT
|
||||
FROM DateSeries DS
|
||||
LEFT JOIN (
|
||||
SELECT DATE_FORMAT(A.BGN_DT, '%Y%m%d') AS DT
|
||||
, COUNT(DISTINCT A.AGENT_ID) AS ACCESS_USER_CNT
|
||||
, 0 AS ORDR_CNT
|
||||
FROM GC_ACCESS_STAT A
|
||||
WHERE 1=1
|
||||
AND A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.BGN_DT BETWEEN #{srchStrtSndngDt} AND CONCAT(#{srchEndSndngDt}, ' 23:59:59')
|
||||
GROUP BY DATE_FORMAT(A.BGN_DT, '%Y%m%d')
|
||||
UNION ALL
|
||||
SELECT DATE_FORMAT(A.SETLE_COMPT_DT, '%Y%m%d') AS ORD_DT
|
||||
, 0 AS ACCESS_USER_CNT
|
||||
, SUM(CASE WHEN A.ORRE_DV_CD = '01' and A.ORDR_STTUS_CD between '25' and '75' THEN 1 ELSE NULL END) AS ORDR_CNT
|
||||
FROM GC_ORRE_STAT A
|
||||
WHERE 1=1
|
||||
AND A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.SETLE_COMPT_DT BETWEEN #{srchStrtSndngDt} AND CONCAT(#{srchEndSndngDt}, ' 23:59:59')
|
||||
AND A.ORRE_DV_CD = '01' /* 25.03.12 수정*/
|
||||
AND A.ORDR_STTUS_CD between '25' and '75' /* 25.03.12 수정*/
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrEnvrnCds)">
|
||||
AND A.SLE_ENVRN_CD IN
|
||||
<foreach collection="srchOrdrEnvrnCds" item="srchOrdrEnvrnCd" open="(" close=")" separator=",">
|
||||
#{srchOrdrEnvrnCd}
|
||||
</foreach>
|
||||
</if>
|
||||
<![CDATA[
|
||||
GROUP BY DATE_FORMAT(A.SETLE_COMPT_DT, '%Y%m%d')
|
||||
) X ON DATE_FORMAT(DS.DT, '%Y%m%d') = X.DT
|
||||
GROUP BY DS.DT
|
||||
ORDER BY DS.DT ASC
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!--
|
||||
#주별 유입수와 결제수
|
||||
-->
|
||||
<select id="selectBOWeeklyChartSetleCntInflowCntInqire"
|
||||
parameterType="DataMap"
|
||||
resultType="DataMap">
|
||||
|
||||
<![CDATA[
|
||||
SELECT
|
||||
WEEK(DATE_SUB(X.DT, INTERVAL (WEEKDAY(X.DT) + 3) % 7 DAY), 1) AS YR_WK,
|
||||
MIN(X.DT) AS DT,
|
||||
COALESCE(SUM(X.ACCESS_USER_CNT), 0) AS ACCESS_USER_CNT,
|
||||
COALESCE(SUM(X.ORDR_CNT), 0) AS ORDR_CNT
|
||||
FROM (
|
||||
SELECT DATE_FORMAT(BGN_DT , '%Y%m%d') AS DT
|
||||
, COUNT(DISTINCT AGENT_ID ) AS ACCESS_USER_CNT
|
||||
, 0 ORDR_CNT
|
||||
FROM GC_ACCESS_STAT A
|
||||
WHERE 1=1
|
||||
AND A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.BGN_DT BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt} ' 23:59:59'
|
||||
GROUP BY DT
|
||||
UNION ALL
|
||||
SELECT DATE_FORMAT(SETLE_COMPT_DT , '%Y%m%d') AS ORD_DT
|
||||
, 0 ACCESS_USER_CNT
|
||||
, SUM(CASE WHEN ORRE_DV_CD = '01' and ORDR_STTUS_CD between '25' and '75' THEN 1 ELSE NULL END ) AS ORDR_CNT
|
||||
FROM GC_ORRE_STAT A
|
||||
WHERE 1=1
|
||||
AND A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.SETLE_COMPT_DT BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt} ' 23:59:59'
|
||||
AND A.ORDR_STTUS_CD NOT IN ('95','99') /* 추가 조건 */
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrEnvrnCds)">
|
||||
AND A.SLE_ENVRN_CD IN
|
||||
<foreach collection="srchOrdrEnvrnCds" item="srchOrdrEnvrnCd" open="(" close=")" separator=",">
|
||||
#{srchOrdrEnvrnCd}
|
||||
</foreach>
|
||||
</if>
|
||||
<![CDATA[
|
||||
GROUP BY ORD_DT
|
||||
) X
|
||||
GROUP BY YR_WK
|
||||
ORDER BY DT ASC, YR_WK ASC
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!--
|
||||
#월별 유입수와 결제수
|
||||
-->
|
||||
<select id="selectBOMonthlyChartSetleCntInflowCntInqire"
|
||||
parameterType="DataMap"
|
||||
resultType="DataMap">
|
||||
|
||||
<![CDATA[
|
||||
SELECT
|
||||
DT ,
|
||||
COALESCE(SUM(X.ACCESS_USER_CNT), 0) AS ACCESS_USER_CNT,
|
||||
COALESCE(SUM(X.ORDR_CNT), 0) AS ORDR_CNT
|
||||
FROM (
|
||||
SELECT DATE_FORMAT(BGN_DT , '%Y%m') AS DT
|
||||
, COUNT(DISTINCT AGENT_ID ) AS ACCESS_USER_CNT
|
||||
, 0 ORDR_CNT
|
||||
FROM GC_ACCESS_STAT A
|
||||
WHERE 1=1
|
||||
AND A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.BGN_DT BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt} ' 23:59:59'
|
||||
GROUP BY DT
|
||||
UNION ALL
|
||||
SELECT DATE_FORMAT(SETLE_COMPT_DT , '%Y%m') AS ORD_DT
|
||||
, 0 ACCESS_USER_CNT
|
||||
, SUM(CASE WHEN ORRE_DV_CD = '01' and A.ORDR_STTUS_CD between '25' and '75' THEN 1 ELSE NULL END ) AS ORDR_CNT
|
||||
FROM GC_ORRE_STAT A
|
||||
WHERE 1=1
|
||||
AND A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.SETLE_COMPT_DT BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt} ' 23:59:59'
|
||||
AND A.ORDR_STTUS_CD NOT IN ('95','99') /* 추가 조건 */
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrEnvrnCds)">
|
||||
AND A.SLE_ENVRN_CD IN
|
||||
<foreach collection="srchOrdrEnvrnCds" item="srchOrdrEnvrnCd" open="(" close=")" separator=",">
|
||||
#{srchOrdrEnvrnCd}
|
||||
</foreach>
|
||||
</if>
|
||||
<![CDATA[
|
||||
GROUP BY ORD_DT
|
||||
) X
|
||||
GROUP BY DT
|
||||
ORDER BY DT ASC
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!--
|
||||
#21 일별 시간대별 결제금액
|
||||
-->
|
||||
<select id="selectBOHourlySetleAmtInqire"
|
||||
parameterType = "DataMap"
|
||||
resultType="DataMap">
|
||||
|
||||
<![CDATA[
|
||||
WITH RECURSIVE cal_hr AS (
|
||||
SELECT 1 AS HR
|
||||
UNION ALL
|
||||
SELECT HR + 1
|
||||
FROM cal_hr
|
||||
WHERE HR < 24
|
||||
)
|
||||
SELECT H.HR
|
||||
, CONCAT( LPAD(H.HR, 2, '0'), '시') AS DT_HR
|
||||
, COALESCE( SUM(ORDR_CNT), 0) AS ORDR_CNT #주문건수
|
||||
, COALESCE( SUM(REFUND_CNT), 0) AS REFUND_CNT #환불건수
|
||||
, COALESCE( SUM(RL_SETLE_AMT), 0) AS RL_SETLE_AMT #결제금액
|
||||
, COALESCE( SUM(REFUND_AMT), 0) AS REFUND_AMT #환불금액
|
||||
FROM cal_hr H
|
||||
LEFT JOIN (
|
||||
SELECT DATE_FORMAT(SETLE_COMPT_DT , '%H') AS HR
|
||||
, SUM(CASE WHEN ORRE_DV_CD = '01' and ORDR_STTUS_CD between '25' and '75' THEN 1 ELSE NULL END ) AS ORDR_CNT
|
||||
, COUNT(DISTINCT CASE WHEN ORRE_DV_CD = '02' THEN PARNTS_ORDR_INNB ELSE NULL END ) AS REFUND_CNT
|
||||
, SUM(case when ORDR_STTUS_CD between '25' and '75' then RL_SETLE_AMT else NULL end ) RL_SETLE_AMT
|
||||
, SUM(REFUND_AMT) REFUND_AMT
|
||||
FROM GC_ORRE_STAT A
|
||||
WHERE A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.SETLE_COMPT_DT BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt} ' 23:59:59'
|
||||
AND ORDR_STTUS_CD between '25' and '85'
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrEnvrnCds)">
|
||||
AND A.SLE_ENVRN_CD IN
|
||||
<foreach collection="srchOrdrEnvrnCds" item="srchOrdrEnvrnCd" open="(" close=")" separator=",">
|
||||
#{srchOrdrEnvrnCd}
|
||||
</foreach>
|
||||
</if>
|
||||
<![CDATA[
|
||||
GROUP BY HR
|
||||
) TOT
|
||||
ON TOT.HR = H.HR
|
||||
GROUP BY H.HR
|
||||
ORDER BY H.HR
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!--
|
||||
#22 일별 유입수와 결제수 표 건수 조회
|
||||
-->
|
||||
<select id="selectBODailySetleCntInflowCntTableCntInqire"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.stats.marktAnals.vo.BOMarktAnalsVO"
|
||||
resultType="java.lang.Integer">
|
||||
|
||||
<![CDATA[
|
||||
SELECT
|
||||
COUNT(*)
|
||||
FROM (
|
||||
SELECT
|
||||
DT,
|
||||
COALESCE( ACCESS_USER_CNT, 0) AS ACCESS_USER_CNT,
|
||||
COALESCE( ORDR_CNT, 0) AS ORDR_CNT,
|
||||
COALESCE( RL_SETLE_AMT, 0) AS RL_SETLE_AMT,
|
||||
IF( ACCESS_USER_CNT = 0 , 0, ROUND( COALESCE(ORDR_CNT / ACCESS_USER_CNT * 100, 0) )) AS RL_SETLE_AMT_RT
|
||||
FROM (
|
||||
SELECT
|
||||
DAY_T.DT,
|
||||
SUM(ACCESS_USER_CNT) AS ACCESS_USER_CNT,
|
||||
SUM(ORDR_CNT) AS ORDR_CNT,
|
||||
SUM(RL_SETLE_AMT) AS RL_SETLE_AMT
|
||||
FROM (
|
||||
WITH RECURSIVE DateSeries AS (
|
||||
SELECT #{srchStrtSndngDt} AS DT
|
||||
UNION ALL
|
||||
SELECT DT + INTERVAL 1 DAY
|
||||
FROM DateSeries
|
||||
WHERE DT < #{srchEndSndngDt}
|
||||
)
|
||||
SELECT DATE_FORMAT(DS.DT, '%Y-%m-%d') AS DT
|
||||
FROM DateSeries DS
|
||||
) DAY_T
|
||||
LEFT JOIN (
|
||||
SELECT DATE_FORMAT(BGN_DT , '%Y-%m-%d') AS DT
|
||||
, COUNT(DISTINCT AGENT_ID ) AS ACCESS_USER_CNT
|
||||
, 0 AS ORDR_CNT
|
||||
, 0 AS RL_SETLE_AMT
|
||||
FROM GC_ACCESS_STAT A
|
||||
WHERE 1=1
|
||||
AND A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.BGN_DT BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt} ' 23:59:59'
|
||||
GROUP BY DT
|
||||
UNION ALL
|
||||
SELECT DATE_FORMAT(SETLE_COMPT_DT , '%Y-%m-%d') AS ORD_DT
|
||||
, 0 AS ACCESS_USER_CNT
|
||||
, SUM(CASE WHEN ORRE_DV_CD = '01' and A.ORDR_STTUS_CD between '25' and '75' THEN 1 ELSE NULL END ) AS ORDR_CNT
|
||||
, SUM(RL_SETLE_AMT) RL_SETLE_AMT
|
||||
FROM GC_ORRE_STAT A
|
||||
WHERE 1=1
|
||||
AND A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.ORRE_DV_CD = '01' /* 25.03.12 수정*/
|
||||
AND A.ORDR_STTUS_CD between '25' and '75' /* 25.03.12 수정*/
|
||||
AND A.SETLE_COMPT_DT BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt} ' 23:59:59'
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrEnvrnCds)">
|
||||
AND A.SLE_ENVRN_CD IN
|
||||
<foreach collection="srchOrdrEnvrnCds" item="srchOrdrEnvrnCd" open="(" close=")" separator=",">
|
||||
#{srchOrdrEnvrnCd}
|
||||
</foreach>
|
||||
</if>
|
||||
<![CDATA[
|
||||
GROUP BY ORD_DT
|
||||
) X
|
||||
ON DAY_T.DT = X.DT
|
||||
GROUP BY DT
|
||||
)A2
|
||||
ORDER BY ${ordrFinal}
|
||||
) AS TEMP
|
||||
]]>
|
||||
</select>
|
||||
|
||||
|
||||
<!--
|
||||
#12, 13.일별 실적 표 조회 표 조회
|
||||
-->
|
||||
<select id="selectBODailySetleCntInflowCntTableInqire"
|
||||
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 (
|
||||
SELECT
|
||||
DT,
|
||||
COALESCE( ACCESS_USER_CNT, 0) AS ACCESS_USER_CNT,
|
||||
COALESCE( ORDR_CNT, 0) AS ORDR_CNT,
|
||||
COALESCE( RL_SETLE_AMT, 0) AS RL_SETLE_AMT,
|
||||
IF( ACCESS_USER_CNT = 0 , 0, ROUND( COALESCE(ORDR_CNT / ACCESS_USER_CNT * 100, 0) )) AS RL_SETLE_AMT_RT
|
||||
FROM (
|
||||
SELECT
|
||||
DAY_T.DT,
|
||||
SUM(ACCESS_USER_CNT) AS ACCESS_USER_CNT,
|
||||
SUM(ORDR_CNT) AS ORDR_CNT,
|
||||
SUM(RL_SETLE_AMT) AS RL_SETLE_AMT
|
||||
FROM (
|
||||
WITH RECURSIVE DateSeries AS (
|
||||
SELECT #{srchStrtSndngDt} AS DT
|
||||
UNION ALL
|
||||
SELECT DT + INTERVAL 1 DAY
|
||||
FROM DateSeries
|
||||
WHERE DT < date_sub( #{srchEndSndngDt}, interval 1 day)
|
||||
)
|
||||
SELECT DATE_FORMAT(DS.DT, '%Y-%m-%d') AS DT
|
||||
FROM DateSeries DS
|
||||
) DAY_T
|
||||
LEFT JOIN (
|
||||
SELECT DATE_FORMAT(BGN_DT , '%Y-%m-%d') AS DT
|
||||
, COUNT(DISTINCT AGENT_ID ) AS ACCESS_USER_CNT
|
||||
, 0 AS ORDR_CNT
|
||||
, 0 AS RL_SETLE_AMT
|
||||
FROM GC_ACCESS_STAT A
|
||||
WHERE 1=1
|
||||
AND A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.BGN_DT BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt} ' 23:59:59'
|
||||
GROUP BY DT
|
||||
UNION ALL
|
||||
SELECT DATE_FORMAT(SETLE_COMPT_DT , '%Y-%m-%d') AS ORD_DT
|
||||
, 0 AS ACCESS_USER_CNT
|
||||
, SUM(CASE WHEN ORRE_DV_CD = '01' and A.ORDR_STTUS_CD between '25' and '75' THEN 1 ELSE NULL END ) AS ORDR_CNT
|
||||
, SUM(RL_SETLE_AMT) RL_SETLE_AMT
|
||||
FROM GC_ORRE_STAT A
|
||||
WHERE 1=1
|
||||
AND A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.ORRE_DV_CD = '01' /* 25.03.12 수정*/
|
||||
AND A.ORDR_STTUS_CD between '25' and '75' /* 25.03.12 수정*/
|
||||
AND A.SETLE_COMPT_DT BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt} ' 23:59:59'
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrEnvrnCds)">
|
||||
AND A.SLE_ENVRN_CD IN
|
||||
<foreach collection="srchOrdrEnvrnCds" item="srchOrdrEnvrnCd" open="(" close=")" separator=",">
|
||||
#{srchOrdrEnvrnCd}
|
||||
</foreach>
|
||||
</if>
|
||||
<![CDATA[
|
||||
GROUP BY ORD_DT
|
||||
) X
|
||||
ON DAY_T.DT = X.DT
|
||||
GROUP BY DT
|
||||
)A2
|
||||
ORDER BY ${ordrFinal}
|
||||
) TB
|
||||
WHERE (@rownum:=0)=0
|
||||
) PV
|
||||
WHERE 1=1
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
|
||||
<!--
|
||||
#22 별 시간대별 유입수와 결제수 표 건수 조회
|
||||
-->
|
||||
<select id="selectBODailyHourlySetleCntInflowCntTableCntInqire"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.stats.marktAnals.vo.BOMarktAnalsVO"
|
||||
resultType="java.lang.Integer">
|
||||
|
||||
<![CDATA[
|
||||
SELECT
|
||||
COUNT(*)
|
||||
FROM (
|
||||
SELECT
|
||||
DT,
|
||||
HR,
|
||||
ACCESS_USER_CNT,
|
||||
COALESCE( ORDR_CNT, 0) AS ORDR_CNT,
|
||||
COALESCE( RL_SETLE_AMT, 0) AS RL_SETLE_AMT,
|
||||
IF( ACCESS_USER_CNT = 0 , 0, ROUND( COALESCE(ORDR_CNT / ACCESS_USER_CNT * 100, 0) )) AS RL_SETLE_AMT_RT
|
||||
FROM (
|
||||
SELECT
|
||||
DT,
|
||||
HR,
|
||||
SUM(ACCESS_USER_CNT) AS ACCESS_USER_CNT,
|
||||
SUM(ORDR_CNT) AS ORDR_CNT,
|
||||
SUM(RL_SETLE_AMT) AS RL_SETLE_AMT
|
||||
FROM (
|
||||
SELECT DT, HR
|
||||
, 0 ACCESS_USER_CNT
|
||||
, 0 ORDR_CNT
|
||||
, 0 RL_SETLE_AMT
|
||||
FROM (
|
||||
-- 시간테이블
|
||||
WITH RECURSIVE cal_day AS (
|
||||
SELECT #{srchStrtSndngDt} DT
|
||||
UNION ALL
|
||||
SELECT
|
||||
DT + interval 1 day
|
||||
FROM
|
||||
cal_day
|
||||
WHERE
|
||||
DT + interval 1 day <= #{srchEndSndngDt}
|
||||
)
|
||||
SELECT DT
|
||||
FROM cal_day
|
||||
) DAY_T
|
||||
JOIN (
|
||||
-- 시간테이블
|
||||
WITH RECURSIVE cal_hr AS (
|
||||
SELECT 1 HR
|
||||
UNION ALL
|
||||
SELECT
|
||||
HR + 1
|
||||
FROM
|
||||
cal_hr
|
||||
WHERE
|
||||
HR + 1 <= 24
|
||||
)
|
||||
SELECT lpad(HR-1, 2, '0') HR
|
||||
FROM cal_hr
|
||||
) HR_T
|
||||
ON 1=1
|
||||
UNION ALL
|
||||
SELECT DATE_FORMAT(BGN_DT , '%Y-%m-%d') AS DT
|
||||
, DATE_FORMAT(BGN_DT , '%H') AS HR
|
||||
, COUNT(DISTINCT AGENT_ID ) AS ACCESS_USER_CNT
|
||||
, 0 AS ORDR_CNT
|
||||
, 0 AS RL_SETLE_AMT
|
||||
FROM GC_ACCESS_STAT A
|
||||
WHERE 1=1
|
||||
AND A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.BGN_DT BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt} ' 23:59:59'
|
||||
GROUP BY DT, HR
|
||||
UNION ALL
|
||||
SELECT DATE_FORMAT(SETLE_COMPT_DT , '%Y-%m-%d') AS ORD_DT
|
||||
, DATE_FORMAT(SETLE_COMPT_DT , '%H') AS ORD_HR
|
||||
, 0 AS ACCESS_USER_CNT
|
||||
, SUM(CASE WHEN ORRE_DV_CD = '01' and A.ORDR_STTUS_CD between '25' and '75' THEN 1 ELSE NULL END ) AS ORDR_CNT
|
||||
, SUM(RL_SETLE_AMT) RL_SETLE_AMT
|
||||
FROM GC_ORRE_STAT A
|
||||
WHERE 1=1
|
||||
AND A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.ORRE_DV_CD = '01' /* 25.03.12 수정*/
|
||||
AND A.ORDR_STTUS_CD between '25' and '75' /* 25.03.12 수정*/
|
||||
AND A.SETLE_COMPT_DT BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt} ' 23:59:59'
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrEnvrnCds)">
|
||||
AND A.SLE_ENVRN_CD IN
|
||||
<foreach collection="srchOrdrEnvrnCds" item="srchOrdrEnvrnCd" open="(" close=")" separator=",">
|
||||
#{srchOrdrEnvrnCd}
|
||||
</foreach>
|
||||
</if>
|
||||
<![CDATA[
|
||||
GROUP BY ORD_DT, ORD_HR
|
||||
) A
|
||||
GROUP BY DT, HR
|
||||
)A2
|
||||
ORDER BY ${ordrFinal}
|
||||
) AS TEMP
|
||||
]]>
|
||||
</select>
|
||||
|
||||
|
||||
<!--
|
||||
#22 일별 시간대별 유입수와 결제수 표 조회
|
||||
-->
|
||||
<select id="selectBODailyHourlySetleCntInflowCntTableInqire"
|
||||
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 (
|
||||
SELECT
|
||||
DT,
|
||||
HR,
|
||||
ACCESS_USER_CNT,
|
||||
COALESCE( ORDR_CNT, 0) AS ORDR_CNT,
|
||||
COALESCE( RL_SETLE_AMT, 0) AS RL_SETLE_AMT,
|
||||
IF( ACCESS_USER_CNT = 0 , 0, ROUND( COALESCE(ORDR_CNT / ACCESS_USER_CNT * 100, 0) )) AS RL_SETLE_AMT_RT
|
||||
FROM (
|
||||
SELECT
|
||||
DT,
|
||||
HR,
|
||||
SUM(ACCESS_USER_CNT) AS ACCESS_USER_CNT,
|
||||
SUM(ORDR_CNT) AS ORDR_CNT,
|
||||
SUM(RL_SETLE_AMT) AS RL_SETLE_AMT
|
||||
FROM (
|
||||
SELECT DT, HR
|
||||
, 0 ACCESS_USER_CNT
|
||||
, 0 ORDR_CNT
|
||||
, 0 RL_SETLE_AMT
|
||||
FROM (
|
||||
-- 시간테이블
|
||||
WITH RECURSIVE cal_day AS (
|
||||
SELECT #{srchStrtSndngDt} DT
|
||||
UNION ALL
|
||||
SELECT
|
||||
DT + interval 1 day
|
||||
FROM
|
||||
cal_day
|
||||
WHERE
|
||||
DT + interval 1 day <= #{srchEndSndngDt}
|
||||
)
|
||||
SELECT DT
|
||||
FROM cal_day
|
||||
) DAY_T
|
||||
JOIN (
|
||||
-- 시간테이블
|
||||
WITH RECURSIVE cal_hr AS (
|
||||
SELECT 1 HR
|
||||
UNION ALL
|
||||
SELECT
|
||||
HR + 1
|
||||
FROM
|
||||
cal_hr
|
||||
WHERE
|
||||
HR + 1 <= 24
|
||||
)
|
||||
SELECT lpad(HR-1, 2, '0') HR
|
||||
FROM cal_hr
|
||||
) HR_T
|
||||
ON 1=1
|
||||
UNION ALL
|
||||
SELECT DATE_FORMAT(BGN_DT , '%Y-%m-%d') AS DT
|
||||
, DATE_FORMAT(BGN_DT , '%H') AS HR
|
||||
, COUNT(DISTINCT AGENT_ID ) AS ACCESS_USER_CNT
|
||||
, 0 AS ORDR_CNT
|
||||
, 0 AS RL_SETLE_AMT
|
||||
FROM GC_ACCESS_STAT A
|
||||
WHERE 1=1
|
||||
AND A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.BGN_DT BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt} ' 23:59:59'
|
||||
GROUP BY DT, HR
|
||||
UNION ALL
|
||||
SELECT DATE_FORMAT(SETLE_COMPT_DT , '%Y-%m-%d') AS ORD_DT
|
||||
, DATE_FORMAT(SETLE_COMPT_DT , '%H') AS ORD_HR
|
||||
, 0 AS ACCESS_USER_CNT
|
||||
, SUM(CASE WHEN ORRE_DV_CD = '01' and A.ORDR_STTUS_CD between '25' and '75' THEN 1 ELSE NULL END ) AS ORDR_CNT
|
||||
, SUM(RL_SETLE_AMT) RL_SETLE_AMT
|
||||
FROM GC_ORRE_STAT A
|
||||
WHERE 1=1
|
||||
AND A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.ORRE_DV_CD = '01' /* 25.03.12 수정*/
|
||||
AND A.ORDR_STTUS_CD between '25' and '75' /* 25.03.12 수정*/
|
||||
AND A.SETLE_COMPT_DT BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt} ' 23:59:59'
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrEnvrnCds)">
|
||||
AND A.SLE_ENVRN_CD IN
|
||||
<foreach collection="srchOrdrEnvrnCds" item="srchOrdrEnvrnCd" open="(" close=")" separator=",">
|
||||
#{srchOrdrEnvrnCd}
|
||||
</foreach>
|
||||
</if>
|
||||
<![CDATA[
|
||||
GROUP BY ORD_DT, ORD_HR
|
||||
) A
|
||||
GROUP BY DT, HR
|
||||
)A2
|
||||
ORDER BY ${ordrFinal}
|
||||
) TB
|
||||
WHERE (@rownum:=0)=0
|
||||
) PV
|
||||
WHERE 1=1
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
|
||||
<!--
|
||||
쿠폰사용금액 표 건수 조회
|
||||
-->
|
||||
<select id="selectBOCoupUseValeTableCntInqire"
|
||||
parameterType = "com.wb.domainserver.domain.gcone.stats.marktAnals.vo.BOMarktAnalsVO"
|
||||
resultType="java.lang.Integer">
|
||||
|
||||
<![CDATA[
|
||||
SELECT
|
||||
COUNT(*)
|
||||
FROM (
|
||||
-- 장바구니 쿠폰
|
||||
SELECT '장바구니' gubun, B.COUPON_INNB, B.COUP_NM, B.COUPON_DWLD_CNT
|
||||
, COALESCE( cart.SLEPRIC_SUM, 0) AS SLEPRIC_SUM
|
||||
, COALESCE( cart.DISCOUNT_AMT, 0) AS DISCOUNT_AMT
|
||||
, COALESCE( cart.COUPON_USE_DCNT, 0) AS COUPON_USE_DCNT
|
||||
FROM (
|
||||
SELECT GD.COUPON_INNB
|
||||
, GD.COUP_NM
|
||||
, COUNT(GD.DWLD_COUPON_INNB) AS COUPON_DWLD_CNT
|
||||
FROM GC_DOWNLOAD GD
|
||||
WHERE GD.SOPMAL_CD = #{sopmalCd}
|
||||
AND GD.COUPON_STTUS_CD <> '04'
|
||||
AND GD.BNEF_DV_CD = '03' -- 장바구니 쿠폰
|
||||
AND GD.REGIST_DT BETWEEN #{srchStrtSndngDt2} AND #{srchEndSndngDt2} ' 23:59:59'
|
||||
GROUP BY GD.COUPON_INNB, GD.COUP_NM
|
||||
) B
|
||||
LEFT JOIN (
|
||||
SELECT '장바구니' COUPON_DV, GD.COUPON_INNB, A.CART_COUP_NM AS COUPON_NM
|
||||
, SUM(A.SLEPRIC * A.ORRE_QY) AS SLEPRIC_SUM
|
||||
, SUM(A.CART_COUPON_DSCNT_UNIT * A.ORRE_QY + A.CART_COUPON_DSCNT_REST) AS DISCOUNT_AMT
|
||||
, COUNT(DISTINCT CASE WHEN GD.COUPON_STTUS_CD = '03' THEN GD.DWLD_COUPON_INNB ELSE NULL END) AS COUPON_USE_DCNT
|
||||
FROM GC_ORRE_GOPTN_STAT A
|
||||
JOIN GC_DOWNLOAD GD
|
||||
ON A.SOPMAL_CD = GD.SOPMAL_CD
|
||||
AND A.CART_DWLD_COUPON_INNB = GD.DWLD_COUPON_INNB
|
||||
WHERE A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.CART_DWLD_COUPON_INNB > ''
|
||||
AND A.ORRE_DV_CD = '01'
|
||||
AND A.ORDR_STTUS_CD between '25' AND '75'
|
||||
AND A.SETLE_COMPT_DT BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt} ' 23:59:59'
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrEnvrnCds)">
|
||||
AND A.SLE_ENVRN_CD IN
|
||||
<foreach collection="srchOrdrEnvrnCds" item="srchOrdrEnvrnCd" open="(" close=")" separator=",">
|
||||
#{srchOrdrEnvrnCd}
|
||||
</foreach>
|
||||
</if>
|
||||
<![CDATA[
|
||||
GROUP BY 1,2,3
|
||||
) cart
|
||||
ON cart.COUPON_INNB = B.COUPON_INNB
|
||||
AND cart.COUPON_NM = B.COUP_NM
|
||||
UNION ALL
|
||||
-- 상품 쿠폰
|
||||
SELECT '상품' gubun, B.COUPON_INNB, B.COUP_NM, B.COUPON_DWLD_CNT
|
||||
, COALESCE( goods.SLEPRIC_SUM, 0) AS SLEPRIC_SUM
|
||||
, COALESCE( goods.DISCOUNT_AMT, 0) AS DISCOUNT_AMT
|
||||
, COALESCE( goods.COUPON_USE_DCNT, 0) AS COUPON_USE_DCNT
|
||||
FROM(
|
||||
SELECT GD.COUPON_INNB
|
||||
, GD.COUP_NM
|
||||
, COUNT(GD.DWLD_COUPON_INNB) AS COUPON_DWLD_CNT
|
||||
FROM GC_DOWNLOAD GD
|
||||
WHERE GD.SOPMAL_CD = #{sopmalCd}
|
||||
AND GD.COUPON_STTUS_CD <> '04'
|
||||
AND GD.BNEF_DV_CD = '01' -- 상품 쿠폰
|
||||
AND GD.REGIST_DT BETWEEN #{srchStrtSndngDt2} AND #{srchEndSndngDt2} ' 23:59:59'
|
||||
GROUP BY GD.COUPON_INNB, GD.COUP_NM
|
||||
) B
|
||||
LEFT JOIN (
|
||||
SELECT '상품' COUPON_DV, GD.COUPON_INNB, A.GOODS_COUP_NM AS COUPON_NM
|
||||
, SUM(A.SLEPRIC * A.ORRE_QY) AS SLEPRIC_SUM
|
||||
, SUM(A.GOODS_COUPON_DSCNT_UNIT * A.ORRE_QY + A.GOODS_COUPON_DSCNT_REST) AS DISCOUNT_AMT
|
||||
, COUNT(DISTINCT CASE WHEN GD.COUPON_STTUS_CD = '03' THEN GD.DWLD_COUPON_INNB ELSE NULL END) AS COUPON_USE_DCNT
|
||||
FROM GC_ORRE_GOPTN_STAT A
|
||||
JOIN GC_DOWNLOAD GD
|
||||
ON A.SOPMAL_CD = GD.SOPMAL_CD
|
||||
AND A.GOODS_DWLD_COUPON_INNB = GD.DWLD_COUPON_INNB
|
||||
WHERE A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.GOODS_DWLD_COUPON_INNB > ''
|
||||
AND A.ORRE_DV_CD = '01'
|
||||
AND A.ORDR_STTUS_CD between '25' AND '75'
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrEnvrnCds)">
|
||||
AND A.SLE_ENVRN_CD IN
|
||||
<foreach collection="srchOrdrEnvrnCds" item="srchOrdrEnvrnCd" open="(" close=")" separator=",">
|
||||
#{srchOrdrEnvrnCd}
|
||||
</foreach>
|
||||
</if>
|
||||
<![CDATA[
|
||||
AND A.SETLE_COMPT_DT BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt} ' 23:59:59'
|
||||
GROUP BY 1,2,3
|
||||
) goods
|
||||
ON goods.COUPON_INNB = B.COUPON_INNB
|
||||
AND goods.COUPON_NM = B.COUP_NM
|
||||
UNION ALL
|
||||
-- 배송비 쿠폰
|
||||
SELECT '배송' gubun, B.COUPON_INNB, B.COUP_NM, B.COUPON_DWLD_CNT
|
||||
, COALESCE( dlvy.SLEPRIC_SUM, 0) AS SLEPRIC_SUM
|
||||
, COALESCE( dlvy.DLVY_DISCOUNT_AMT, 0) AS DISCOUNT_AMT
|
||||
, COALESCE( dlvy.COUPON_USE_DCNT, 0) AS COUPON_USE_DCNT
|
||||
FROM (
|
||||
SELECT GD.COUPON_INNB
|
||||
, GD.COUP_NM
|
||||
, COUNT(GD.DWLD_COUPON_INNB) AS COUPON_DWLD_CNT
|
||||
FROM GC_DOWNLOAD GD
|
||||
WHERE GD.SOPMAL_CD = #{sopmalCd}
|
||||
AND GD.COUPON_STTUS_CD <> '04'
|
||||
AND GD.BNEF_DV_CD = '02' -- 배송비 쿠폰
|
||||
AND GD.REGIST_DT BETWEEN #{srchStrtSndngDt2} AND #{srchEndSndngDt2} ' 23:59:59'
|
||||
GROUP BY GD.COUPON_INNB, GD.COUP_NM
|
||||
) B
|
||||
LEFT JOIN (
|
||||
SELECT '배송' COUPON_DV, GD.COUPON_INNB, GD.COUP_NM AS COUPON_NM
|
||||
, SUM(B.RL_SETLE_AMT) AS SLEPRIC_SUM
|
||||
, SUM(A.DLVY_COUPON_DSCNT_AMT) AS DLVY_DISCOUNT_AMT
|
||||
, COUNT(DISTINCT A.DWLD_COUPON_INNB) AS COUPON_USE_DCNT
|
||||
FROM GC_ORDER_SHIPPING A
|
||||
JOIN GC_ORDER B
|
||||
ON A.SOPMAL_CD = B.SOPMAL_CD
|
||||
AND A.ORDR_INNB = B.ORDR_INNB
|
||||
JOIN GC_DOWNLOAD GD
|
||||
ON A.SOPMAL_CD = GD.SOPMAL_CD
|
||||
AND A.DWLD_COUPON_INNB = GD.DWLD_COUPON_INNB
|
||||
WHERE A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.DWLD_COUPON_INNB > ''
|
||||
AND A.ORDR_STTUS_CD between '25' AND '75'
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrEnvrnCds)">
|
||||
AND B.SLE_ENVRN_CD IN
|
||||
<foreach collection="srchOrdrEnvrnCds" item="srchOrdrEnvrnCd" open="(" close=")" separator=",">
|
||||
#{srchOrdrEnvrnCd}
|
||||
</foreach>
|
||||
</if>
|
||||
<![CDATA[
|
||||
AND B.SETLE_COMPT_DT BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt} ' 23:59:59'
|
||||
GROUP BY 1,2,3
|
||||
) dlvy
|
||||
ON dlvy.COUPON_INNB = B.COUPON_INNB
|
||||
AND dlvy.COUPON_NM = B.COUP_NM
|
||||
ORDER BY ${ordrFinal}
|
||||
) AS TEMP
|
||||
]]>
|
||||
</select>
|
||||
|
||||
|
||||
<!--
|
||||
쿠폰사용금액 표 조회
|
||||
-->
|
||||
<select id="selectBOCoupUseValeTableInqire"
|
||||
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 (
|
||||
-- 장바구니 쿠폰
|
||||
SELECT '장바구니' gubun, B.COUPON_INNB, B.COUP_NM, B.COUPON_DWLD_CNT
|
||||
, COALESCE( cart.SLEPRIC_SUM, 0) AS SLEPRIC_SUM
|
||||
, COALESCE( cart.DISCOUNT_AMT, 0) AS DISCOUNT_AMT
|
||||
, COALESCE( cart.COUPON_USE_DCNT, 0) AS COUPON_USE_DCNT
|
||||
FROM (
|
||||
SELECT GD.COUPON_INNB
|
||||
, GD.COUP_NM
|
||||
, COUNT(GD.DWLD_COUPON_INNB) AS COUPON_DWLD_CNT
|
||||
FROM GC_DOWNLOAD GD
|
||||
WHERE GD.SOPMAL_CD = #{sopmalCd}
|
||||
AND GD.COUPON_STTUS_CD <> '04'
|
||||
AND GD.BNEF_DV_CD = '03' -- 장바구니 쿠폰
|
||||
AND GD.REGIST_DT BETWEEN #{srchStrtSndngDt2} AND #{srchEndSndngDt2} ' 23:59:59'
|
||||
GROUP BY GD.COUPON_INNB, GD.COUP_NM
|
||||
) B
|
||||
LEFT JOIN (
|
||||
SELECT '장바구니' COUPON_DV, GD.COUPON_INNB, A.CART_COUP_NM AS COUPON_NM
|
||||
, SUM(A.SLEPRIC * A.ORRE_QY) AS SLEPRIC_SUM
|
||||
, SUM(A.CART_COUPON_DSCNT_UNIT * A.ORRE_QY + A.CART_COUPON_DSCNT_REST) AS DISCOUNT_AMT
|
||||
, COUNT(DISTINCT CASE WHEN GD.COUPON_STTUS_CD = '03' THEN GD.DWLD_COUPON_INNB ELSE NULL END) AS COUPON_USE_DCNT
|
||||
FROM GC_ORRE_GOPTN_STAT A
|
||||
JOIN GC_DOWNLOAD GD
|
||||
ON A.SOPMAL_CD = GD.SOPMAL_CD
|
||||
AND A.CART_DWLD_COUPON_INNB = GD.DWLD_COUPON_INNB
|
||||
WHERE A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.CART_DWLD_COUPON_INNB > ''
|
||||
AND A.ORRE_DV_CD = '01'
|
||||
AND A.ORDR_STTUS_CD between '25' AND '75'
|
||||
AND A.SETLE_COMPT_DT BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt} ' 23:59:59'
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrEnvrnCds)">
|
||||
AND A.SLE_ENVRN_CD IN
|
||||
<foreach collection="srchOrdrEnvrnCds" item="srchOrdrEnvrnCd" open="(" close=")" separator=",">
|
||||
#{srchOrdrEnvrnCd}
|
||||
</foreach>
|
||||
</if>
|
||||
<![CDATA[
|
||||
GROUP BY 1,2,3
|
||||
) cart
|
||||
ON cart.COUPON_INNB = B.COUPON_INNB
|
||||
AND cart.COUPON_NM = B.COUP_NM
|
||||
UNION ALL
|
||||
-- 상품 쿠폰
|
||||
SELECT '상품' gubun, B.COUPON_INNB, B.COUP_NM, B.COUPON_DWLD_CNT
|
||||
, COALESCE( goods.SLEPRIC_SUM, 0) AS SLEPRIC_SUM
|
||||
, COALESCE( goods.DISCOUNT_AMT, 0) AS DISCOUNT_AMT
|
||||
, COALESCE( goods.COUPON_USE_DCNT, 0) AS COUPON_USE_DCNT
|
||||
FROM(
|
||||
SELECT GD.COUPON_INNB
|
||||
, GD.COUP_NM
|
||||
, COUNT(GD.DWLD_COUPON_INNB) AS COUPON_DWLD_CNT
|
||||
FROM GC_DOWNLOAD GD
|
||||
WHERE GD.SOPMAL_CD = #{sopmalCd}
|
||||
AND GD.COUPON_STTUS_CD <> '04'
|
||||
AND GD.BNEF_DV_CD = '01' -- 상품 쿠폰
|
||||
AND GD.REGIST_DT BETWEEN #{srchStrtSndngDt2} AND #{srchEndSndngDt2} ' 23:59:59'
|
||||
GROUP BY GD.COUPON_INNB, GD.COUP_NM
|
||||
) B
|
||||
LEFT JOIN (
|
||||
SELECT '상품' COUPON_DV, GD.COUPON_INNB, A.GOODS_COUP_NM AS COUPON_NM
|
||||
, SUM(A.SLEPRIC * A.ORRE_QY) AS SLEPRIC_SUM
|
||||
, SUM(A.GOODS_COUPON_DSCNT_UNIT * A.ORRE_QY + A.GOODS_COUPON_DSCNT_REST) AS DISCOUNT_AMT
|
||||
, COUNT(DISTINCT CASE WHEN GD.COUPON_STTUS_CD = '03' THEN GD.DWLD_COUPON_INNB ELSE NULL END) AS COUPON_USE_DCNT
|
||||
FROM GC_ORRE_GOPTN_STAT A
|
||||
JOIN GC_DOWNLOAD GD
|
||||
ON A.SOPMAL_CD = GD.SOPMAL_CD
|
||||
AND A.GOODS_DWLD_COUPON_INNB = GD.DWLD_COUPON_INNB
|
||||
WHERE A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.GOODS_DWLD_COUPON_INNB > ''
|
||||
AND A.ORRE_DV_CD = '01'
|
||||
AND A.ORDR_STTUS_CD between '25' AND '75'
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrEnvrnCds)">
|
||||
AND A.SLE_ENVRN_CD IN
|
||||
<foreach collection="srchOrdrEnvrnCds" item="srchOrdrEnvrnCd" open="(" close=")" separator=",">
|
||||
#{srchOrdrEnvrnCd}
|
||||
</foreach>
|
||||
</if>
|
||||
<![CDATA[
|
||||
AND A.SETLE_COMPT_DT BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt} ' 23:59:59'
|
||||
GROUP BY 1,2,3
|
||||
) goods
|
||||
ON goods.COUPON_INNB = B.COUPON_INNB
|
||||
AND goods.COUPON_NM = B.COUP_NM
|
||||
UNION ALL
|
||||
-- 배송비 쿠폰
|
||||
SELECT '배송' gubun, B.COUPON_INNB, B.COUP_NM, B.COUPON_DWLD_CNT
|
||||
, COALESCE( dlvy.SLEPRIC_SUM, 0) AS SLEPRIC_SUM
|
||||
, COALESCE( dlvy.DLVY_DISCOUNT_AMT, 0) AS DISCOUNT_AMT
|
||||
, COALESCE( dlvy.COUPON_USE_DCNT, 0) AS COUPON_USE_DCNT
|
||||
FROM (
|
||||
SELECT GD.COUPON_INNB
|
||||
, GD.COUP_NM
|
||||
, COUNT(GD.DWLD_COUPON_INNB) AS COUPON_DWLD_CNT
|
||||
FROM GC_DOWNLOAD GD
|
||||
WHERE GD.SOPMAL_CD = #{sopmalCd}
|
||||
AND GD.COUPON_STTUS_CD <> '04'
|
||||
AND GD.BNEF_DV_CD = '02' -- 배송비 쿠폰
|
||||
AND GD.REGIST_DT BETWEEN #{srchStrtSndngDt2} AND #{srchEndSndngDt2} ' 23:59:59'
|
||||
GROUP BY GD.COUPON_INNB, GD.COUP_NM
|
||||
) B
|
||||
LEFT JOIN (
|
||||
SELECT '배송' COUPON_DV, GD.COUPON_INNB, GD.COUP_NM AS COUPON_NM
|
||||
, SUM(B.RL_SETLE_AMT) AS SLEPRIC_SUM
|
||||
, SUM(A.DLVY_COUPON_DSCNT_AMT) AS DLVY_DISCOUNT_AMT
|
||||
, COUNT(DISTINCT A.DWLD_COUPON_INNB) AS COUPON_USE_DCNT
|
||||
FROM GC_ORDER_SHIPPING A
|
||||
JOIN GC_ORDER B
|
||||
ON A.SOPMAL_CD = B.SOPMAL_CD
|
||||
AND A.ORDR_INNB = B.ORDR_INNB
|
||||
JOIN GC_DOWNLOAD GD
|
||||
ON A.SOPMAL_CD = GD.SOPMAL_CD
|
||||
AND A.DWLD_COUPON_INNB = GD.DWLD_COUPON_INNB
|
||||
WHERE A.SOPMAL_CD = #{sopmalCd}
|
||||
AND A.DWLD_COUPON_INNB > ''
|
||||
AND A.ORDR_STTUS_CD between '25' AND '75'
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrEnvrnCds)">
|
||||
AND B.SLE_ENVRN_CD IN
|
||||
<foreach collection="srchOrdrEnvrnCds" item="srchOrdrEnvrnCd" open="(" close=")" separator=",">
|
||||
#{srchOrdrEnvrnCd}
|
||||
</foreach>
|
||||
</if>
|
||||
<![CDATA[
|
||||
AND B.SETLE_COMPT_DT BETWEEN #{srchStrtSndngDt} AND #{srchEndSndngDt} ' 23:59:59'
|
||||
GROUP BY 1,2,3
|
||||
) dlvy
|
||||
ON dlvy.COUPON_INNB = B.COUPON_INNB
|
||||
AND dlvy.COUPON_NM = B.COUP_NM
|
||||
ORDER BY ${ordrFinal}
|
||||
) TB
|
||||
WHERE (@rownum:=0)=0
|
||||
) PV
|
||||
WHERE 1=1
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,30 @@
|
||||
<?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.stats.memberStat.mapper.BOMemberStatMapper">
|
||||
|
||||
|
||||
<!--
|
||||
#일별 유입수와 결제수
|
||||
-->
|
||||
<select id="selectBOMngrMemberStatTableInqire"
|
||||
parameterType = "DataMap"
|
||||
resultType="DataMap">
|
||||
<![CDATA[
|
||||
select T.MBR_DV_CD,
|
||||
T.SOPMAL_CD,
|
||||
T.CNT,
|
||||
T.CNT_MAIN,
|
||||
T.CNT_OFFLINE,
|
||||
T.CNT_AGREE,
|
||||
T.CNT_LOGIN,
|
||||
T.CNT_LOGIN_YEAR,
|
||||
T.CNT_ORDER,
|
||||
T.CNT_ORDER_YEAR
|
||||
from GC_MEMBER_STAT_LOG T
|
||||
WHERE T.DT = DATE_FORMAT(NOW(),'%Y-%m-%d')
|
||||
order by IF(T.MBR_DV_CD='GC',1,2), T.SOPMAL_CD
|
||||
]]>
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user