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,593 @@
<?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>