593 lines
26 KiB
XML
593 lines
26 KiB
XML
<?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.tm.mapper.BOTmMapper">
|
|
<!--주문관련-->
|
|
<!--주문 조회-->
|
|
<select id="selectBOOrdrList" resultType="DataMap">
|
|
SELECT GO.ORDR_INNB,
|
|
GO.ORDR_STTUS_CD,
|
|
FN_GET_COMMCODE_NAME('ORDR_STTUS',GO.ORDR_STTUS_CD) AS ORDR_STTUS_NM,
|
|
GOS.ORDR_DLVY_INNB,
|
|
GOS.DLVYLC_ADRES_DV_CD
|
|
FROM GC_ORDER GO
|
|
INNER JOIN GC_ORDER_SHIPPING GOS
|
|
ON GO.ORDR_INNB = GOS.ORDR_INNB
|
|
AND GO.SOPMAL_CD = GOS.SOPMAL_CD
|
|
WHERE GO.ORDR_INNB = #{order_seq}
|
|
AND GO.SOPMAL_CD = #{order_site}
|
|
</select>
|
|
|
|
<!--분류 정보 -->
|
|
<select id = "selectBOTmitmList" resultType="Map">
|
|
SELECT (C.CTGRY_DEPTH - 2) AS level,
|
|
CASE
|
|
WHEN C.CTGRY_DEPTH - 2 = 3 THEN CONCAT(CASE WHEN CHAR_LENGTH(C.UPPER_CTGRY_ID) = 3 THEN CONCAT("0",C.UPPER_CTGRY_ID) ELSE C.UPPER_CTGRY_ID END,C.CTGRY_ID)
|
|
WHEN C.CTGRY_DEPTH - 2 = 2 THEN CASE WHEN CHAR_LENGTH(C.CTGRY_ID) THEN CONCAT("0",C.CTGRY_ID) ELSE C.UPPER_CTGRY_ID END
|
|
END AS category_code,
|
|
C.CTGRY_NM AS title
|
|
FROM GC_CATEGORY C
|
|
WHERE 1=1
|
|
AND C.SOPMAL_CD = #{order_site}
|
|
AND C.USE_AT = 'Y'
|
|
AND C.TM_EXPSR_AT = 'Y'
|
|
ORDER BY
|
|
C.CTGRY_DEPTH ,
|
|
C.SORT_ORDR,
|
|
C.CTGRY_ID
|
|
</select>
|
|
|
|
<!--상품 목록 검색-->
|
|
<!--상품 목록 건수-->
|
|
<select id = "selectBOTmGoodsCnt" resultType="Integer">
|
|
SELECT
|
|
COUNT(DISTINCT O.GOODS_OPTN_INNB)
|
|
FROM GC_GOODS G
|
|
INNER JOIN GC_GOODS_OPTION O
|
|
ON O.GOODS_INNB = G.GOODS_INNB
|
|
AND O.SOPMAL_CD = G.SOPMAL_CD
|
|
AND O.OPTN_EXPSR_AT = 'Y'
|
|
INNER JOIN GC_CATEGORY_LINK GCL1
|
|
ON G.GOODS_INNB = GCL1.GOODS_INNB
|
|
AND G.SOPMAL_CD = GCL1.SOPMAL_CD
|
|
INNER JOIN GC_CATEGORY C1
|
|
ON C1.CTGRY_ID = GCL1.CTGRY_ID
|
|
AND C1.SOPMAL_CD = G.SOPMAL_CD
|
|
AND C1.USE_AT = 'Y'
|
|
AND C1.TM_EXPSR_AT = 'Y'
|
|
WHERE G.SOPMAL_CD = #{order_site}
|
|
AND G.GOODS_STTUS_CD = '01'
|
|
AND ((G.EXPSR_DV_CD = 01 OR (G.EXPSR_DV_CD = 03 AND DATE_FORMAT(SYSDATE(), '%Y-%m-%d') BETWEEN G.EXPSR_BGN_DT AND G.EXPSR_END_DT)) OR LEFT(G.GOODS_NM,2)='TM') /*노출 코드*/
|
|
AND CASE WHEN CAST(IFNULL(#{sch_brand},'') AS UNSIGNED) = '' THEN 1
|
|
ELSE (C1.CTGRY_ID = CAST(#{sch_brand} AS UNSIGNED) OR C1.UPPER_CTGRY_ID = CAST(#{sch_brand} AS UNSIGNED)) END
|
|
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sch_category)">/*2차 카테고리*/
|
|
AND C1.CTGRY_ID = CASE
|
|
WHEN LEFT(#{sch_category}, 4) = #{sch_brand} THEN SUBSTRING(#{sch_category}, 5)
|
|
ELSE 0359360
|
|
END
|
|
</if>
|
|
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sch_goods)">
|
|
AND (G.GOODS_NM LIKE CONCAT('%',#{sch_goods},'%') OR O.OPTN_VAL_1 LIKE CONCAT('%',#{sch_goods},'%'))
|
|
</if>
|
|
</select>
|
|
|
|
<!--상품 목록 리스트-->
|
|
<select id = "selectBOTmGoodsList" resultType="Map">
|
|
SELECT
|
|
DISTINCT C1.CTGRY_ID AS category_code,
|
|
C1.CTGRY_NM AS title,
|
|
G.GOODS_INNB AS goods_seq,
|
|
fn_get_commcode_name('GOODS_STTUS',G.GOODS_STTUS_CD ) AS goods_status,
|
|
'' AS goods_view,
|
|
G.GOODS_CD AS goods_code,
|
|
G.REPRSNT_GOODS_CD AS main_goods_code,
|
|
G.GOODS_NM AS goods_name,
|
|
'' AS oneplusone,
|
|
'' AS oneplusone_ea,
|
|
'' AS oneplusone_cnt,
|
|
'' AS oneplusone_cross,
|
|
O.GOODS_OPTN_INNB AS option_seq,
|
|
'' AS default_option,
|
|
CONCAT(IFNULL(O.OPTN_NM_1,''),IFNULL(O.OPTN_NM_2,''),IFNULL(O.OPTN_NM_3,''),IFNULL(O.OPTN_NM_4,'')) AS option_title,
|
|
O.OPTN_VAL_1 AS option1,
|
|
O.OPTN_CD_1 AS optioncode1,
|
|
O.CNSMRPRIC AS consumer_price,
|
|
O.SLEPRIC AS price,
|
|
O.COMPNB_DSCNT_AT AS opt_multiple_sale_yn,
|
|
O.SCTN_DSCNT_AT AS opt_cart_sale_yn,
|
|
C1.CTGRY_ID, /*ORDER BY에 필요함*/
|
|
C1.SORT_ORDR,
|
|
GCL1.GOODS_ORDR ,
|
|
O.GOODS_OPTN_INNB
|
|
FROM GC_GOODS G
|
|
INNER JOIN GC_GOODS_OPTION O
|
|
ON O.GOODS_INNB = G.GOODS_INNB
|
|
AND O.SOPMAL_CD = G.SOPMAL_CD
|
|
AND O.OPTN_EXPSR_AT = 'Y'
|
|
INNER JOIN GC_CATEGORY_LINK GCL1
|
|
ON G.GOODS_INNB = GCL1.GOODS_INNB
|
|
AND G.SOPMAL_CD = GCL1.SOPMAL_CD
|
|
INNER JOIN GC_CATEGORY C1
|
|
ON C1.CTGRY_ID = GCL1.CTGRY_ID
|
|
AND C1.SOPMAL_CD = G.SOPMAL_CD
|
|
AND C1.USE_AT = 'Y'
|
|
AND C1.TM_EXPSR_AT = 'Y'
|
|
WHERE G.SOPMAL_CD = #{order_site}
|
|
AND G.GOODS_STTUS_CD = '01'
|
|
AND ((G.EXPSR_DV_CD = 01 OR (G.EXPSR_DV_CD = 03 AND DATE_FORMAT(SYSDATE(), '%Y-%m-%d') BETWEEN G.EXPSR_BGN_DT AND G.EXPSR_END_DT)) OR LEFT(G.GOODS_NM,2)='TM') /*노출 코드*/
|
|
AND CASE WHEN IFNULL(#{sch_brand},'') = '' THEN 1
|
|
ELSE (C1.CTGRY_ID = #{sch_brand} OR C1.UPPER_CTGRY_ID = #{sch_brand} ) END
|
|
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sch_category)">/*2차 카테고리*/
|
|
AND C1.CTGRY_ID = CASE
|
|
WHEN LEFT(#{sch_category}, 4) = #{sch_brand} THEN SUBSTRING(#{sch_category}, 5)
|
|
ELSE #{sch_category}
|
|
END
|
|
</if>
|
|
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sch_goods)">
|
|
AND (G.GOODS_NM LIKE CONCAT('%',#{sch_goods},'%') OR O.OPTN_VAL_1 LIKE CONCAT('%',#{sch_goods},'%'))
|
|
</if>
|
|
ORDER BY C1.CTGRY_ID, C1.SORT_ORDR , GCL1.GOODS_ORDR , O.GOODS_OPTN_INNB
|
|
LIMIT #{start}, #{lines}
|
|
</select>
|
|
|
|
<!--상품정보-->
|
|
<select id ="selectBOTmGoodsDtlInfo" resultType="Map">
|
|
SELECT
|
|
C1.CTGRY_ID AS category_code,
|
|
C1.CTGRY_NM AS brand_name,
|
|
G.GOODS_INNB AS goods_seq,
|
|
G.GOODS_NM AS goods_name,
|
|
G.GOODS_CD AS goods_code,
|
|
G.REPRSNT_GOODS_CD AS main_goods_code,
|
|
IF(LENGTH(G.MBL_GOODS_DC) > 10, G.MBL_GOODS_DC, G.GOODS_DC) AS contents
|
|
FROM GC_GOODS G
|
|
LEFT JOIN GC_CATEGORY_LINK GCL
|
|
ON G.GOODS_INNB = GCL.GOODS_INNB
|
|
AND G.SOPMAL_CD = GCL.SOPMAL_CD
|
|
LEFT JOIN GC_CATEGORY C1
|
|
ON C1.CTGRY_ID = GCL.CTGRY_ID
|
|
AND C1.SOPMAL_CD = G.SOPMAL_CD
|
|
AND (C1.USE_AT = 'Y' OR LEFT(C1.CTGRY_NM,2)= 'TM')
|
|
AND C1.CTGRY_DEPTH = 4
|
|
AND C1.TM_EXPSR_AT = 'Y'
|
|
AND C1.URL_DV_CD = '01'
|
|
WHERE G.SOPMAL_CD = #{order_site}
|
|
AND C1.CTGRY_ID IS NOT NULL
|
|
AND G.GOODS_INNB = #{goods_seq}
|
|
AND G.GOODS_STTUS_CD = '01'
|
|
AND ((G.EXPSR_DV_CD = 01 OR (G.EXPSR_DV_CD = 03 AND DATE_FORMAT(SYSDATE(), '%Y-%m-%d') BETWEEN G.EXPSR_BGN_DT AND G.EXPSR_END_DT)) OR LEFT(G.GOODS_NM,2)='TM')
|
|
LIMIT 1
|
|
</select>
|
|
|
|
<!--사은품 이벤트 조회-->
|
|
<select id="selectBOTmEvtList" resultType="map">
|
|
SELECT
|
|
GE.EVT_INNB AS gift_seq,
|
|
GE.EVTNM AS title,
|
|
GE.EVT_BGN_DT AS start_date,
|
|
GE.EVT_END_DT AS end_date,
|
|
CASE
|
|
WHEN GE.GOODS_APPLC_DV_CD = '01' THEN 'all'
|
|
WHEN GE.GOODS_APPLC_DV_CD = '02' THEN 'category'
|
|
WHEN GE.GOODS_APPLC_DV_CD = '03' THEN 'goods'
|
|
WHEN GE.GOODS_APPLC_DV_CD = '04' THEN 'except_category'
|
|
WHEN GE.GOODS_APPLC_DV_CD = '05' THEN 'except_goods'
|
|
END AS goods_rule,
|
|
GE.GOODS_APPLC_DV_CD AS goods_applc_dv_cd
|
|
FROM
|
|
GC_EVENT GE
|
|
WHERE 1 =1
|
|
AND GE.EVT_DV = '02' /* 사은품 이벤트 */
|
|
AND SYSDATE() BETWEEN GE.EVT_BGN_DT AND GE.EVT_END_DT /* 현재 진행중인 이벤트이고 */
|
|
AND GE.SOPMAL_CD = #{order_site}
|
|
AND GE.USE_AT = 'Y'
|
|
AND CASE WHEN IFNULL(GE.APPLC_DAY, '') = '' THEN 1
|
|
ELSE GE.APPLC_DAY LIKE CONCAT('%', CONCAT('0', DAYOFWEEK(SYSDATE())), '%')
|
|
END
|
|
AND CASE WHEN IFNULL(GE.LMTT_BGNTME, '') = '' OR IFNULL(GE.LMTT_ENDTME, '') = '' THEN 1
|
|
ELSE DATE_FORMAT(NOW(), '%H%i') BETWEEN GE.LMTT_BGNTME AND GE.LMTT_ENDTME -- EVT_BGN_DT => LMTT_BGNTME 로 변경
|
|
END
|
|
AND GE.EVT_TRGET_DV_CD = '01' /* 전체 대상인 이벤트만 적용 */
|
|
</select>
|
|
|
|
<!--사은품 대상 상품/카테고리-->
|
|
<select id="selectBOTmTgtGiftList" resultType="java.util.Map">
|
|
SELECT MIN(EC.EVT_APPLC_GOODS_INNB) AS gift_choice_seq,
|
|
EC.EVT_INNB AS gift_seq, GE.GOODS_APPLC_DV_CD,
|
|
CASE
|
|
WHEN GE.GOODS_APPLC_DV_CD = '01' THEN 'all'
|
|
WHEN GE.GOODS_APPLC_DV_CD = '02' THEN 'goods' -- CTGRY
|
|
WHEN GE.GOODS_APPLC_DV_CD = '03' THEN 'goods'
|
|
WHEN GE.GOODS_APPLC_DV_CD = '04' THEN 'except_goods' -- CTGRY
|
|
WHEN GE.GOODS_APPLC_DV_CD = '05' THEN 'except_goods'
|
|
END AS choice_type, /*카테고리를 상품으로 치환해서 반환*/
|
|
TMG.GOODS_INNB AS goods_seq,
|
|
TMG.SOPMAL_CD
|
|
-- TMG.CTGRY_ID,
|
|
-- TMG.CTGRY_NM,
|
|
-- TMG.UPPER_CTGRY_ID,
|
|
-- TMG.CTGRY_DEPTH,
|
|
-- TMG.CTGRY_CD,
|
|
-- TMG.CTGRY_ID AS category_code
|
|
FROM GC_EVENT GE
|
|
INNER JOIN GC_EVENT_CHOICE EC
|
|
ON EC.SOPMAL_CD = GE.SOPMAL_CD
|
|
AND EC.EVT_INNB = GE.EVT_INNB
|
|
INNER JOIN
|
|
(
|
|
SELECT G.GOODS_NM,
|
|
G.GOODS_INNB,
|
|
-- GGO.GOODS_OPTN_INNB,
|
|
-- GGO.OPTN_TY,
|
|
G.SOPMAL_CD,
|
|
C1.CTGRY_ID,
|
|
C1.CTGRY_NM,
|
|
C1.UPPER_CTGRY_ID,
|
|
C1.CTGRY_DEPTH,
|
|
C1.CTGRY_CD
|
|
FROM GC_GOODS G
|
|
-- INNER JOIN GC_GOODS_OPTION GGO
|
|
-- ON GGO.GOODS_INNB = G.GOODS_INNB
|
|
-- AND GGO.SOPMAL_CD = G.SOPMAL_CD
|
|
-- AND GGO.OPTN_EXPSR_AT = 'Y'
|
|
INNER JOIN GC_CATEGORY_LINK GCL1
|
|
ON G.GOODS_INNB = GCL1.GOODS_INNB
|
|
AND G.SOPMAL_CD = GCL1.SOPMAL_CD
|
|
INNER JOIN GC_CATEGORY C1
|
|
ON C1.CTGRY_ID = GCL1.CTGRY_ID
|
|
AND C1.SOPMAL_CD = G.SOPMAL_CD
|
|
AND C1.USE_AT = 'Y'
|
|
AND C1.TM_EXPSR_AT = 'Y'
|
|
WHERE G.SOPMAL_CD = #{order_site}
|
|
AND G.GOODS_STTUS_CD = '01'
|
|
AND G.GOODS_KND_CD = '01'
|
|
AND G.USE_AT = 'Y'
|
|
AND (G.EXPSR_DV_CD = '01' OR (G.EXPSR_DV_CD = '03' AND DATE_FORMAT(SYSDATE(), '%Y-%m-%d') BETWEEN G.EXPSR_BGN_DT AND G.EXPSR_END_DT))
|
|
) TMG
|
|
ON EC.SOPMAL_CD = TMG.SOPMAL_CD
|
|
AND CASE WHEN GE.GOODS_APPLC_DV_CD IN ('02', '04') THEN EC.CTGRY_ID = TMG.CTGRY_ID
|
|
WHEN GE.GOODS_APPLC_DV_CD IN ('03', '05') THEN EC.GOODS_INNB = TMG.GOODS_INNB
|
|
ELSE 0
|
|
END
|
|
WHERE 1 = 1
|
|
AND GE.SOPMAL_CD = #{order_site}
|
|
AND GE.EVT_INNB = #{gift_seq}
|
|
GROUP BY gift_seq, GE.GOODS_APPLC_DV_CD,
|
|
choice_type,
|
|
goods_seq,
|
|
TMG.SOPMAL_CD
|
|
ORDER BY GOODS_SEQ
|
|
</select>
|
|
|
|
<!--증정 상품-->
|
|
<select id="selectBOTmGiftList" resultType="java.util.Map">
|
|
SELECT GEB.EVT_BNEF_INNB AS gift_benefit_seq,
|
|
GEB.EVT_INNB AS gift_seq,
|
|
'' AS benefit_rule,
|
|
GEB.BGN_AMT AS sprice,
|
|
GEB.END_AMT AS eprice,
|
|
GEB.PROVD_CNT AS ea,
|
|
CASE
|
|
WHEN COUNT(GEBG.GOODS_INNB) > 0 THEN GROUP_CONCAT(GEBG.GOODS_INNB)
|
|
ELSE NULL
|
|
END AS gift_goods_seq /*상품고유번호 concat해서 밑에 in절로 뽑음*/
|
|
FROM GC_EVENT_BENEFITS GEB
|
|
INNER JOIN GC_EVENT_BENEFIT_GIFT GEBG
|
|
ON GEB.SOPMAL_CD = GEBG.SOPMAL_CD
|
|
AND GEB.EVT_BNEF_INNB = GEBG.EVT_BNEF_INNB
|
|
WHERE GEB.SOPMAL_CD = #{order_site}
|
|
AND GEB.EVT_INNB = #{gift_seq}
|
|
GROUP BY GEB.EVT_BNEF_INNB,
|
|
GEB.EVT_INNB,
|
|
GEB.BGN_AMT,
|
|
GEB.END_AMT,
|
|
GEB.PROVD_CNT
|
|
ORDER BY GEB.BGN_AMT
|
|
</select>
|
|
|
|
<!--상품 조회-->
|
|
<select id="selectBOTmGiftGoodsList" resultType="java.util.Map">
|
|
SELECT GG.GOODS_INNB AS goods_seq,
|
|
CASE
|
|
WHEN GG.GOODS_KND_CD = '01' THEN 'goods'
|
|
ELSE 'gift'
|
|
END AS goods_type,
|
|
CASE
|
|
WHEN GG.GOODS_STTUS_CD = '01' THEN 'normal'
|
|
WHEN GG.GOODS_STTUS_CD = '02' THEN 'runout'
|
|
WHEN GG.GOODS_STTUS_CD = '03' THEN 'unsold'
|
|
END AS goods_status,
|
|
CASE
|
|
WHEN GG.EXPSR_DV_CD = '01' THEN 'look'
|
|
WHEN GG.EXPSR_DV_CD = '02' THEN 'notLook'
|
|
WHEN GG.EXPSR_DV_CD = '03' AND NOW() BETWEEN GG.EXPSR_BGN_DT AND GG.EXPSR_END_DT THEN 'look'
|
|
ELSE 'notLook'
|
|
END AS goods_view,
|
|
GG.GOODS_CD AS goods_code,
|
|
GG.GOODS_NM AS goods_name,
|
|
GGO.GOODS_OPTN_INNB AS option_seq
|
|
FROM GC_GOODS GG
|
|
INNER JOIN GC_GOODS_OPTION GGO
|
|
ON GG.GOODS_INNB = GGO.GOODS_INNB
|
|
AND GG.SOPMAL_CD = GGO.SOPMAL_CD
|
|
AND GGO.USE_AT = 'Y'
|
|
WHERE GG.GOODS_INNB IN (${giftGoodsSeq})
|
|
AND GG.SOPMAL_CD = #{order_site}
|
|
</select>
|
|
|
|
<!--결제정보-->
|
|
<select id="selectOrdrSetleInfo" resultType="Map">
|
|
SELECT SETLE_COMPT_AT AS deposit_yn,
|
|
SETLE_DT AS deposit_date,
|
|
VIRTL_ACNTNB AS virtual_account
|
|
FROM GC_ORDER_SETLE
|
|
WHERE ORDR_INNB = #{order_seq}
|
|
AND SOPMAL_CD = #{order_site}
|
|
LIMIT 1
|
|
</select>
|
|
|
|
<!--휴대전화로 회원검색-->
|
|
<select id="selectBOTmMbrInfo" resultType="Map">
|
|
SELECT
|
|
MBR_INNB AS member_seq,
|
|
MBR_NM AS user_name,
|
|
CAST(AES_DECRYPT(UNHEX(GM.EMAIL) , #{secretKey}) AS CHAR(50)) AS email,
|
|
'done' AS status
|
|
FROM GC_MEMBER GM
|
|
WHERE GM.USE_AT = 'Y'
|
|
AND GM.MBR_DV_CD = 'GC'
|
|
AND MBR_NM = #{user_name}
|
|
AND MBTLNB = HEX(AES_ENCRYPT(REPLACE(#{cellphone}, '-', ''), #{secretKey}))
|
|
ORDER BY MBR_INNB DESC
|
|
LIMIT 1
|
|
</select>
|
|
|
|
|
|
<!--결제성공시 또는 주문접수 완료시 필요 데이터 set-->
|
|
<select id="selectBOTmOrdrInfo" resultType="Map">
|
|
SELECT
|
|
GO.TM_ORDR_INNB AS tm_order_seq,
|
|
GO.ORDR_INNB AS order_seq,
|
|
'결제성공' AS order_status,
|
|
FN_GET_COMMCODE_NAME('ORDR_STTUS', GO.ORDR_STTUS_CD) AS order_msg,
|
|
GOS.SETLE_COMPT_AT AS deposit_yn,
|
|
GOS.SETLE_DT AS deposit_date,
|
|
GOS.VIRTL_ACNTNB AS virtual_account,
|
|
GOS.VIRTL_ACNT_RCPMNY_LMTT_DE_CTY AS virtual_date,
|
|
GO.ORDR_STTUS_CD AS step
|
|
FROM
|
|
GC_ORDER GO
|
|
INNER JOIN GC_ORDER_SETLE GOS
|
|
ON GO.ORDR_INNB = GOS.ORDR_INNB
|
|
AND GO.SOPMAL_CD = GOS.SOPMAL_CD
|
|
WHERE
|
|
GO.SOPMAL_CD = #{sopmalCd}
|
|
AND GO.ORDR_INNB = #{ordrInnb}
|
|
</select>
|
|
|
|
|
|
|
|
<!-- 싱크 관련 -->
|
|
<!--최근 주문 내역-->
|
|
<select id="selectBOTmRecentOrdrList" resultType="Map">
|
|
SELECT
|
|
O.ORDR_INNB AS order_seq,
|
|
O.REGIST_DT AS regist_date,
|
|
O.RL_SETLE_AMT AS settleprice,
|
|
CASE
|
|
WHEN GOS.SETLE_TY_CD = '01' THEN 'card'
|
|
WHEN GOS.SETLE_TY_CD = '02' THEN 'bank'
|
|
WHEN GOS.SETLE_TY_CD = '03' THEN 'account'
|
|
WHEN GOS.SETLE_TY_CD = '04' THEN 'virtual'
|
|
WHEN GOS.SETLE_TY_CD = '05' THEN 'escrow_virtual'
|
|
WHEN GOS.SETLE_TY_CD = '06' THEN 'escrow_account'
|
|
WHEN GOS.SETLE_TY_CD = '07' THEN 'cellphone'
|
|
WHEN GOS.SETLE_TY_CD = '08' THEN 'point'
|
|
WHEN GOS.SETLE_TY_CD = '09' THEN 'pos'
|
|
WHEN GOS.SETLE_TY_CD = '10' THEN 'payco_coupon'
|
|
WHEN GOS.SETLE_TY_CD = '11' THEN 'multi'
|
|
END AS payment,
|
|
FN_GET_COMMCODE_NAME('SETLE_MTH',GOS.SETLE_TY_CD) AS payment_name,
|
|
IFNULL(S.TENTCPN_NM , '') AS store_name,
|
|
GROUP_CONCAT(I.GOODS_NM, ' x ', D.ORDR_QY,IF(D.STEP85 > 0, concat('(-', D.STEP85, ')'), ''),'개'SEPARATOR ', ') AS goods_list
|
|
FROM
|
|
GC_ORDER O
|
|
INNER JOIN GC_ORDER_ITEM I
|
|
ON
|
|
I.ORDR_INNB = O.ORDR_INNB
|
|
AND O.SOPMAL_CD = I.SOPMAL_CD
|
|
INNER JOIN GC_ORDER_ITEM_OPTION D
|
|
ON
|
|
D.ORDR_GOODS_INNB = I.ORDR_GOODS_INNB
|
|
AND D.SOPMAL_CD = I.SOPMAL_CD
|
|
INNER JOIN GC_ORDER_SETLE GOS
|
|
ON
|
|
O.ORDR_INNB = GOS.ORDR_INNB
|
|
AND O.SOPMAL_CD = GOS.SOPMAL_CD
|
|
LEFT JOIN GC_STORE S
|
|
ON
|
|
S.STR_INNB = O.STR_INNB
|
|
WHERE
|
|
O.MBR_INNB = #{member_seq}
|
|
AND O.SOPMAL_CD = #{order_site}
|
|
AND O.ORDR_STTUS_CD BETWEEN 25 AND 75
|
|
AND D.ORDR_QY > D.STEP85
|
|
GROUP BY
|
|
O.ORDR_INNB,
|
|
O.REGIST_DT,
|
|
O.RL_SETLE_AMT,
|
|
GOS.SETLE_TY_CD,
|
|
S.TENTCPN_NM
|
|
ORDER BY
|
|
O.ORDR_INNB DESC
|
|
LIMIT 1
|
|
</select>
|
|
|
|
<!--주문내역-->
|
|
<select id="selectBOTmOrdrList">
|
|
SELECT
|
|
GROUP_CONCAT(
|
|
IF(ISNULL(E.DLIVY_INNB), '', CONCAT('{','\"status\":\"', E.DLIVY_STTUS_CD, '\"',
|
|
',\"company\":\"', ifnull(S.HDRYCPN_NM, ''), '\"',
|
|
',\"delivery_company_code\":\"', ifnull(E.HDRYCPN_CD, ''), '\"',
|
|
',\"delivery_number\":\"', ifnull(E.INVCNB, ''), '\"',
|
|
',\"export_date\":\"', ifnull(E.DLIVY_DT, ''), '\"',
|
|
',\"shipping_date\":\"', ifnull(E.DLVY_COMPT_DT, ''), '\"','}' )) SEPARATOR '|'
|
|
) AS export_list,
|
|
IFNULL((
|
|
SELECT
|
|
SUM(IFNULL(REFUND_AMT, 0))
|
|
FROM GC_ORDER_REFUND
|
|
WHERE ORDR_INNB = O.ORDR_INNB AND REFUND_PROCS_STTUS_CD = '03'
|
|
), 0) AS refund_price,
|
|
O.ORDR_STTUS_CD AS step,
|
|
GOS.SETLE_COMPT_AT AS deposit_yn,
|
|
DATE_FORMAT(GOS.SETLE_DT,'%Y-%m-%d %H:%i:%s') AS deposit_date,
|
|
GOS.RCPMNYER_NM AS depositor,
|
|
GOS.RCPMNY_ACNTNB AS bank_account,
|
|
CASE
|
|
WHEN O.ORDR_STTUS_CD = 15 THEN O.RL_SETLE_AMT
|
|
ELSE 0
|
|
END AS remain_price, /* 복합결제 안하니 주문접수일 때 실결제금액으로 남은금액 알려줌 */
|
|
'' AS multi_pay_list,
|
|
O.ORDR_INNB order_seq
|
|
FROM GC_ORDER O
|
|
INNER JOIN GC_ORDER_SETLE GOS
|
|
ON O.SOPMAL_CD = GOS.SOPMAL_CD
|
|
AND O.ORDR_INNB = GOS.ORDR_INNB
|
|
LEFT JOIN GC_GOODS_EXPORT E
|
|
ON E.ORDR_INNB = O.ORDR_INNB
|
|
AND E.SOPMAL_CD = O.SOPMAL_CD
|
|
LEFT JOIN GC_SWEET_TRACKER_CODE S
|
|
ON S.GCONE_HDRYCPN_CD=E.HDRYCPN_CD
|
|
WHERE 1=1
|
|
AND O.SOPMAL_CD = #{order_site}
|
|
AND O.ORDR_INNB IN <foreach collection="arr" item="arr" separator="," open="(" close=")">${arr}</foreach>
|
|
GROUP BY
|
|
O.ORDR_INNB ,
|
|
O.ORDR_STTUS_CD,
|
|
GOS.SETLE_COMPT_AT,
|
|
GOS.SETLE_DT,
|
|
GOS.RCPMNYER_NM,
|
|
GOS.RCPMNY_ACNTNB,
|
|
O.RL_SETLE_AMT
|
|
</select>
|
|
|
|
<!--환불 동기화-->
|
|
<select id="selectTmRefundList" resultType="Map">
|
|
SELECT
|
|
GOR.ORDER_REFUND_INNB AS refund_seq,
|
|
CASE
|
|
WHEN GOR.REFUND_PROCS_STTUS_CD = '01' THEN 'request'
|
|
WHEN GOR.REFUND_PROCS_STTUS_CD = '02' THEN 'ing'
|
|
WHEN GOR.REFUND_PROCS_STTUS_CD = '03' THEN 'complete'
|
|
END AS status,
|
|
GOR.REFUND_CD AS refund_code
|
|
FROM
|
|
GC_ORDER_REFUND GOR
|
|
WHERE
|
|
<choose>
|
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(order_site)">GOR.SOPMAL_CD = #{order_site}</when>
|
|
<otherwise>GOR.SOPMAL_CD IN ('CH','NC')</otherwise>
|
|
</choose>
|
|
AND GOR.REFUND_CD IN <foreach collection="arr" item="arr" separator="," open="(" close=")">${arr}</foreach>
|
|
</select>
|
|
|
|
<!--반품 동기화-->
|
|
<select id="selectTmReturnList" resultType="Map">
|
|
SELECT
|
|
GOR.ORDER_REFUND_INNB AS return_seq,
|
|
CASE
|
|
WHEN GOR.RETURN_PROCS_STTUS_CD = '01' THEN 'request'
|
|
WHEN GOR.RETURN_PROCS_STTUS_CD = '02' THEN 'complete'
|
|
END AS status,
|
|
GOR.RETURN_CD AS return_code
|
|
FROM
|
|
GC_ORDER_REFUND GOR
|
|
WHERE
|
|
<choose>
|
|
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(order_site)">GOR.SOPMAL_CD = #{order_site}</when>
|
|
<otherwise>GOR.SOPMAL_CD IN ('CH','NC')</otherwise>
|
|
</choose>
|
|
AND GOR.RETURN_CD IN <foreach collection="arr" item="arr" separator="," open="(" close=")">${arr}</foreach>
|
|
</select>
|
|
|
|
<!--여러 회원 최근 주문 내역-->
|
|
<select id="selectTmManyMbrRecentOrdrList" resultType="Map">
|
|
SELECT
|
|
O.MBR_INNB AS member_seq,
|
|
O.ORDR_INNB AS order_seq,
|
|
FN_GET_SOPMAL_NAME(O.SOPMAL_CD) AS shop_name,
|
|
LEFT(O.REGIST_DT,10) AS regist_date,
|
|
O.RL_SETLE_AMT AS settleprice,
|
|
CASE
|
|
WHEN GOS.SETLE_TY_CD = '01' THEN 'card'
|
|
WHEN GOS.SETLE_TY_CD = '02' THEN 'bank'
|
|
WHEN GOS.SETLE_TY_CD = '03' THEN 'account'
|
|
WHEN GOS.SETLE_TY_CD = '04' THEN 'virtual'
|
|
WHEN GOS.SETLE_TY_CD = '05' THEN 'escrow_virtual'
|
|
WHEN GOS.SETLE_TY_CD = '06' THEN 'escrow_account'
|
|
WHEN GOS.SETLE_TY_CD = '07' THEN 'cellphone'
|
|
WHEN GOS.SETLE_TY_CD = '08' THEN 'point'
|
|
WHEN GOS.SETLE_TY_CD = '09' THEN 'pos'
|
|
WHEN GOS.SETLE_TY_CD = '10' THEN 'payco_coupon'
|
|
WHEN GOS.SETLE_TY_CD = '11' THEN 'multi'
|
|
END AS payment,
|
|
IFNULL(R.TENTCPN_NM, '') AS store_name,
|
|
GROUP_CONCAT(I.GOODS_NM, ' x ', GOIO.ORDR_QY, IF(GOIO.STEP85 > 0, concat('(-', GOIO.STEP85, ')'), ''), '개' SEPARATOR ', ') AS goods_list
|
|
FROM
|
|
GC_ORDER O
|
|
INNER JOIN GC_ORDER_ITEM I
|
|
ON O.ORDR_INNB = I.ORDR_INNB
|
|
AND O.SOPMAL_CD = I.SOPMAL_CD
|
|
AND I.GOODS_NM != ''
|
|
INNER JOIN GC_ORDER_ITEM_OPTION GOIO
|
|
ON I.ORDR_GOODS_INNB = GOIO.ORDR_GOODS_INNB
|
|
AND I.SOPMAL_CD = GOIO.SOPMAL_CD
|
|
AND GOIO.CNSMRPRIC > 0
|
|
INNER JOIN GC_ORDER_SETLE GOS
|
|
ON O.ORDR_INNB = GOS.ORDR_INNB
|
|
AND O.SOPMAL_CD = GOS.SOPMAL_CD
|
|
LEFT JOIN GC_ORDER_POSINFO GOP
|
|
ON GOP.ORDER_SEQ = O.ORDR_INNB
|
|
LEFT JOIN GC_STORE R
|
|
ON GOP.STORE_SEQ = R.STR_INNB
|
|
WHERE
|
|
O.ORDR_INNB IN (
|
|
SELECT
|
|
MAX(O2.ORDR_INNB)
|
|
FROM
|
|
GC_ORDER O2
|
|
INNER JOIN GC_ORDER_ITEM GOI
|
|
ON O2.ORDR_INNB = GOI.ORDR_INNB
|
|
AND O2.SOPMAL_CD = GOI.SOPMAL_CD
|
|
INNER JOIN GC_ORDER_ITEM_OPTION GOIO
|
|
ON GOI.ORDR_GOODS_INNB = GOIO.ORDR_GOODS_INNB
|
|
AND GOI.SOPMAL_CD = GOIO.SOPMAL_CD
|
|
WHERE
|
|
1 = 1
|
|
<choose>
|
|
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(order_site)">AND O2.SOPMAL_CD = #{order_site}</when>
|
|
<otherwise>AND O2.SOPMAL_CD IN ('CH','NC')</otherwise>
|
|
</choose>
|
|
AND O2.MBR_INNB IN <foreach collection="arr" item="arr" separator="," open="(" close=")">${arr}</foreach>
|
|
AND O2.MBR_DV_CD = 'GC'
|
|
AND O2.SLE_ENVRN_CD <![CDATA[<>]]> 'TM'
|
|
AND O2.ORDR_STTUS_CD BETWEEN '25' AND '75'
|
|
AND GOIO.ORDR_QY > GOIO.STEP85
|
|
GROUP BY
|
|
O2.MBR_INNB)
|
|
<choose>
|
|
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(order_site)">AND O.SOPMAL_CD = #{order_site}</when>
|
|
<otherwise>AND O.SOPMAL_CD IN ('CH','NC')</otherwise>
|
|
</choose>
|
|
AND O.MBR_INNB IN <foreach collection="arr" item="arr" separator="," open="(" close=")">${arr}</foreach>
|
|
AND O.MBR_DV_CD = 'GC'
|
|
GROUP BY
|
|
O.MBR_INNB,
|
|
O.ORDR_INNB,
|
|
O.REGIST_DT,
|
|
O.RL_SETLE_AMT,
|
|
O.SOPMAL_CD ,
|
|
GOS.SETLE_TY_CD,
|
|
R.TENTCPN_NM
|
|
</select>
|
|
</mapper> |