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

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

View File

@@ -0,0 +1,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>

View File

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

View File

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

View File

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