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,517 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.mapper.BOAtmcrcpmnyMapper">
<!-- 입금내역 목록 조회 FROM 절 -->
<sql id="selectBOAtmcRcpmnyDtlsListInqireFrom">
<![CDATA[
FROM TBLBANK T
LEFT JOIN GC_ORDER_SETLE S
ON T.SOPMAL_CD = S.SOPMAL_CD
AND T.ORDR_INNB = S.ORDR_INNB
LEFT JOIN GC_ORDER O
ON T.SOPMAL_CD = O.SOPMAL_CD
AND T.ORDR_INNB = O.ORDR_INNB
LEFT JOIN GC_MEMO M
ON T.SOPMAL_CD = M.SOPMAL_CD
AND T.Bkcode = M.BK_CODE
]]>
</sql>
<!-- 입금내역 목록 조회 WHERE 절 -->
<sql id="selectBOAtmcRcpmnyDtlsListInqireWhere">
<![CDATA[
WHERE 1=1
AND T.SOPMAL_CD = #{sopmalCd}
]]>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(searchWord)">
<![CDATA[
AND (
T.BKJUKYO LIKE CONCAT('%', #{searchWord}, '%') OR
T.BKNAME LIKE CONCAT('%', #{searchWord}, '%') OR
T.BKINPUT LIKE CONCAT('%', #{searchWord}, '%') OR
T.ORDR_INNB LIKE CONCAT('%', #{searchWord}, '%')
)
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(searchAccount)">
<choose>
<when test="searchAccount=='all'">
AND T.BKACCTNO LIKE CONCAT('%', '', '%')
</when>
<otherwise>
AND T.BKACCTNO LIKE CONCAT('%', #{searchAccount}, '%')
</otherwise>
</choose>
</if>
<if test='@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStartDate) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndDate)'>
AND T.BKDATE BETWEEN REPLACE(#{srchStartDate}, '-', '') AND REPLACE(#{srchEndDate}, '-', '')
</if>
<!-- 입금 확인 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStatus)">
<![CDATA[
AND
]]>
<foreach collection="srchStatus" item="srchStatus" open="(" close=")" separator="OR">
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchStatus, 'N')">
<![CDATA[
O.AUTODEPOSIT_TY IS NULL
]]>
</when>
<otherwise>
<![CDATA[
O.AUTODEPOSIT_TY = #{srchStatus}
]]>
</otherwise>
</choose>
</foreach>
</if>
ORDER BY BKDATE DESC , BKTIME DESC
</sql>
<!-- 입금내역 목록 건수 조회 -->
<select id = "selectBOAtmcRcpmnyDtlsListCnt"
parameterType = "com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO"
resultType="java.lang.Integer">
SELECT COUNT(1)
FROM (
SELECT
T.BKDATE
<include refid = "selectBOAtmcRcpmnyDtlsListInqireFrom"/>
<include refid = "selectBOAtmcRcpmnyDtlsListInqireWhere"/>
) AS A
</select>
<!-- 입금내역 목록 조회 -->
<select id="selectBOAtmcRcpmnyDtlsListInqire"
parameterType = "com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO"
resultType = "dataMap">
SELECT *
FROM (
SELECT
CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM, TB.*
FROM (
SELECT
T.BKID,
T.BKDATE,
T.BKNAME,
T.BKACCTNO,
T.BKJUKYO,
T.BKINPUT,
T.BKTIME,
T.SOPMAL_CD,
T.ORDR_INNB,
T.BKCODE,
S.SETLE_DT,
S.MEMOR_SETLE_AT,
M.MEMO_CN,
O.AUTODEPOSIT_TY,
S.SETLE_AMT,
S.BNNK_NM,
S.DPSTR_NM,
S.RCPMNY_ACNTNB,
S.RCPMNYER_NM
<include refid = "selectBOAtmcRcpmnyDtlsListInqireFrom"/>
<include refid = "selectBOAtmcRcpmnyDtlsListInqireWhere"/>
<![CDATA[
) TB
WHERE (@rownum:=0)=0
) PV
WHERE 1=1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
]]>
</select>
<!-- 자동입금확인 메모 테이블 글 유무 조회 -->
<select id="selectBORcpmnyDtlsMngrMemoRegistCnt"
parameterType = "com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmMemoVO"
resultType="java.lang.Integer">
SELECT COUNT(*)
FROM GC_MEMO
WHERE 1=1
AND BK_CODE = #{bkcode}
AND SOPMAL_CD = #{sopmalCd}
</select>
<!-- 자동입금확인 메모 글 작성 insert or update -->
<insert id="insertBORcpmnyDtlsMngrMemoRegist"
parameterType = "com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmMemoVO">
<choose>
<when test="insertOrUpdate > 0">
<![CDATA[
UPDATE GC_MEMO
SET MEMO_CN = TRIM(#{memoCn}),
UPDT_DT = SYSDATE()
WHERE 1=1
AND BK_CODE = #{bkcode}
AND SOPMAL_CD = #{sopmalCd}
]]>
</when>
<otherwise>
<![CDATA[
INSERT INTO GC_MEMO (
MEMO_SNB,
SOPMAL_CD,
BK_CODE,
MEMO_CN,
UPDT_DT)
SELECT
COALESCE(MAX(MEMO_SNB), 0) + 1,
#{sopmalCd},
#{bkcode},
TRIM(#{memoCn}),
SYSDATE()
FROM GC_MEMO
]]>
</otherwise>
</choose>
</insert>
<!-- 입금내역 추가 -->
<insert id="insertBORcpmnyDtlsColct"
parameterType = "com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO">
<selectKey order="BEFORE" keyProperty="bkid" resultType="java.lang.Integer">
<![CDATA[
SELECT IFNULL(MAX(BKID), 0)+1
FROM TBLBANK
]]>
</selectKey>
<![CDATA[
INSERT INTO TBLBANK (
BKID,
BKACCTNO,
BKDATE,
BKJUKYO,
BKINPUT,
BKOUTPUT,
BKCODE,
MID,
BKNAME,
BKTIME,
BKCONTENT,
BKETC,
BKJANGO,
BKXFERDATETIME,
ORDR_INNB,
ORDR_SETLE_INNB
)
VALUES (
#{bkid},
#{bkacctno},
#{bkdate},
#{bkjukyo},
#{bkinput},
#{bkoutput},
#{bkcode},
#{mid},
#{bkname},
#{bktime},
#{bkcontent},
#{bketc},
#{bkjango},
DATE_FORMAT(SYSDATE(), '%Y%m%d%H%i%s'),
"0",
"0"
)
]]>
</insert>
<!-- 입금내역 자동 매칭 될 데이터 리스트 조회 -->
<select id="selectBORcpmnyCnfirmExecut"
parameterType="com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO"
resultType="com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO">
<![CDATA[
SELECT
BKID,
BKACCTNO,
BKDATE,
BKJUKYO,
BKINPUT,
BKTIME,
SOPMAL_CD
FROM TBLBANK
WHERE 1=1
AND ORDR_SETLE_INNB = 0
AND BKDATE >= DATE_SUB(SYSDATE(), INTERVAL 1 WEEK)
]]>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sopmalCd)">
AND SOPMAL_CD = #{sopmalCd}
</if>
</select>
<!-- 입금내역 자동 매칭 될 데이터 조회 -->
<select id="selectBORcpmnyCnfirmTrget"
parameterType="com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO"
resultType="com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO">
<![CDATA[
SELECT
FOS.SOPMAL_CD,
FOS.ORDR_INNB,
FOS.ORDR_SETLE_INNB,
FO.ORDR_RCEPT_DT,
FO.ORDR_STTUS_CD AS CURR_ORDR_STTUS_CD
FROM GC_ORDER_SETLE FOS
INNER JOIN GC_ORDER FO
ON FOS.ORDR_INNB = FO.ORDR_INNB
AND FOS.SOPMAL_CD = FO.SOPMAL_CD
WHERE 1=1
AND FOS.SOPMAL_CD = #{sopmalCd}
AND FOS.SETLE_TY_CD = '02'
AND FOS.SETLE_COMPT_AT = 'N'
AND FO.ORDR_STTUS_CD = '15'
AND FO.AUTODEPOSIT_TY IS NULL
AND FO.ORDR_RCEPT_DT >= DATE_SUB(SYSDATE(), INTERVAL 1 WEEK)
AND FO.ORDR_RCEPT_DT <= STR_TO_DATE(CONCAT(#{bkdate}, #{bktime}), '%Y%m%d%H%i%s')
AND FOS.RCPMNYER_NM = #{bkjukyo}
AND REPLACE(FOS.RCPMNY_ACNTNB, '-', '') = ${bkacctno}
AND FOS.SETLE_AMT = #{bkinput}
ORDER BY FOS.ORDR_SETLE_INNB ASC
LIMIT 1
]]>
</select>
<!-- 수동 매칭 입금내역 업데이트 -->
<update id="updateBORcpmnyCnfirmExecutRcpmny"
parameterType = "com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO">
<![CDATA[
UPDATE TBLBANK
SET ORDR_INNB = #{ordrInnb}
,ORDR_SETLE_INNB = #{ordrSetleInnb}
WHERE 1=1
AND BKID = #{bkid}
]]>
</update>
<!-- 수동 매칭 주문 업데이트 -->
<update id="updateBORcpmnyCnfirmExecutOrdr"
parameterType = "com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO">
<![CDATA[
UPDATE GC_ORDER
SET AUTODEPOSIT_TY = #{autodepositTy}
WHERE 1=1
AND SOPMAL_CD = #{sopmalCd}
AND ORDR_INNB = #{ordrInnb}
]]>
</update>
<!-- 수동 매칭 주문결제 업데이트 -->
<update id="updateBORcpmnyCnfirmExecutOrdrSetle"
parameterType = "com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO">
<![CDATA[
UPDATE GC_ORDER_SETLE
SET SETLE_COMPT_AT = #{setleComptAt}
,SETLE_DT = STR_TO_DATE(CONCAT(#{bkdate}, #{bktime}), '%Y%m%d%H%i%s')
WHERE 1=1
AND SOPMAL_CD = #{sopmalCd}
AND ORDR_SETLE_INNB = #{ordrSetleInnb}
]]>
</update>
<!-- 수동 매칭 뱅크다 데이터 유무 조회 -->
<select id="selectBORcpmnyDtlsLastVal" resultType="String">
<![CDATA[
SELECT max(Bkcode)
FROM TBLBANK
WHERE 1=1
]]>
</select>
<!-- 주문조회 팝업 목록 조회 where절 -->
<sql id="selectBOAtmcRcpmnyOrdrInqireWhere">
WHERE 1=1
AND FOS.SOPMAL_CD = #{sopmalCd}
<!-- 은행명 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchBnnkNm)">
<![CDATA[
AND FOS.BNNK_NM LIKE CONCAT('%', #{srchBnnkNm}, '%')
]]>
</if>
<!-- 입금자명 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchRcpmnyerNm)">
<![CDATA[
AND FOS.RCPMNYER_NM LIKE CONCAT('%', #{srchRcpmnyerNm}, '%')
]]>
</if>
<!-- 계좌번호 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchRcpmnyAcntnb)">
<![CDATA[
AND REPLACE(FOS.RCPMNY_ACNTNB, '-', '') = #{srchRcpmnyAcntnb}
]]>
</if>
<!-- 입금금액1 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSetleAmt1)">
<![CDATA[
AND FOS.SETLE_AMT >= #{srchSetleAmt1}
]]>
</if>
<!-- 입금금액2 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSetleAmt2)">
<![CDATA[
AND FOS.SETLE_AMT <= #{srchSetleAmt2}
]]>
</if>
<!-- 주문일1 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStartDate)">
<![CDATA[
AND FO.ORDR_RCEPT_DT >= #{srchStartDate} ' 00:00:00'
]]>
</if>
<!-- 주문일2 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndDate)">
<![CDATA[
AND FO.ORDR_RCEPT_DT <= #{srchEndDate} ' 23:59:59'
]]>
</if>
<!-- 입금미확인만 체크 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrSttusCd1) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchOrdrSttusCd2) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchOrdrSttusCd3)">
<![CDATA[
AND FO.AUTODEPOSIT_TY IS NULL
]]>
</if>
<!-- 입금확인 체크 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchOrdrSttusCd1) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrSttusCd2) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchOrdrSttusCd3)">
<![CDATA[
AND FO.AUTODEPOSIT_TY IS NOT NULL
]]>
</if>
<!-- 주문무효 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchOrdrSttusCd1) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchOrdrSttusCd2) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrSttusCd3)">
<![CDATA[
AND FO.ORDR_STTUS_CD = '95'
]]>
</if>
<!-- 입금미확인, 입금확인 체크 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrSttusCd1) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrSttusCd2) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchOrdrSttusCd3)">
<![CDATA[
AND FO.ORDR_STTUS_CD BETWEEN '15' AND '75'
]]>
</if>
<!-- 입금확인, 주문무효 체크 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchOrdrSttusCd1) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrSttusCd2) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrSttusCd3)">
<![CDATA[
AND (FO.AUTODEPOSIT_TY IS NOT NULL OR FO.ORDR_STTUS_CD = '95')
]]>
</if>
<!-- 입금미확인, 주문무효 체크 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrSttusCd1) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchOrdrSttusCd2) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrSttusCd3)">
<![CDATA[
AND (FO.AUTODEPOSIT_TY IS NULL OR FO.ORDR_STTUS_CD = '95')
]]>
</if>
<!-- 입금미확인, 입금확인, 주문무효 체크 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrSttusCd1) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrSttusCd2) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchOrdrSttusCd3)">
<![CDATA[
AND FO.ORDR_STTUS_CD BETWEEN '15' AND '95'
]]>
</if>
</sql>
<!-- 주문조회 팝업 목록 주문조회 from절 -->
<sql id="selectBOAtmcRcpmnyOrdrInqireFrom">
FROM GC_ORDER_SETLE FOS
INNER JOIN GC_ORDER FO
ON FOS.ORDR_INNB = FO.ORDR_INNB
AND FOS.SOPMAL_CD = FO.SOPMAL_CD
</sql>
<!-- 주문조회 팝업 목록 주문조회 건수 -->
<select id = "selectBOAtmcRcpmnyOrdrInqireCnt"
parameterType = "com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO"
resultType="java.lang.Integer">
SELECT COUNT(*)
<include refid = "selectBOAtmcRcpmnyOrdrInqireFrom" />
<include refid = "selectBOAtmcRcpmnyOrdrInqireWhere" />
</select>
<!-- 주문조회 팝업 목록 주문조회 -->
<select id = "selectBOAtmcRcpmnyOrdrInqire"
parameterType = "com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO"
resultType="dataMap">
<![CDATA[
SELECT *
FROM (
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM
,TB.*
FROM (
SELECT
FOS.ORDR_SETLE_INNB,
FOS.ORDR_INNB,
FOS.SOPMAL_CD,
FOS.BNNK_NM,
FOS.RCPMNY_ACNTNB,
FOS.DPSTR_NM,
FOS.RCPMNYER_NM,
FOS.SETLE_AMT,
FOS.SETLE_DT,
FO.ORDR_RCEPT_DT,
FO.ORDRR_NM,
FO.ORDR_STTUS_CD,
FN_GET_COMMCODE_NAME('ORDR_STTUS',FO.ORDR_STTUS_CD) AS ORDR_STTUS_CD_NM,
FO.AUTODEPOSIT_TY
]]>
<include refid = "selectBOAtmcRcpmnyOrdrInqireFrom" />
<include refid = "selectBOAtmcRcpmnyOrdrInqireWhere" />
ORDER BY ORDR_RCEPT_DT DESC
) TB
WHERE (@rownum:=0)=0
) PV
WHERE 1=1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<!-- 입금내역 테이블 계좌번호 조회 -->
<select id = "selectRcpmnyDtlsAcntnbList"
resultType="dataMap">
<![CDATA[
SELECT
BKACCTNO
FROM TBLBANK
WHERE 1=1
AND SOPMAL_CD IS NULL
GROUP BY BKACCTNO
]]>
</select>
<!-- 입금내역 테이블 쇼핑몰코드 추가 -->
<update id="updateBORcpmnyDtlsColct"
parameterType = "com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO">
<![CDATA[
UPDATE TBLBANK SET
SOPMAL_CD = #{sopmalCd}
WHERE 1=1
AND SOPMAL_CD IS NULL
AND BKACCTNO = #{bkacctno}
]]>
</update>
<!-- 현재 주문상태 조회 -->
<select id = "selectCurrOrdrSttusCd" parameterType = "com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO"
resultType="String">
<![CDATA[
SELECT ORDR_STTUS_CD
FROM GC_ORDER
WHERE 1=1
AND SOPMAL_CD = #{sopmalCd}
AND ORDR_INNB = #{ordrInnb}
]]>
</select>
</mapper>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.domain.gcone.ordr.npay.mapper.BoIfLogMapper">
<!-- if 로그 등록 -->
<insert id = "insertBoIfLog"
parameterType="com.wb.domainserver.domain.gcone.ordr.npay.vo.BOIfLogVO">
<selectKey keyProperty="ifSeq" resultType = "String" order="BEFORE">
SELECT IFNULL(MAX(CAST(IF_SEQ AS UNSIGNED)), 0) + 1
FROM GC_NPAY_IF_LOG
WHERE SOPMAL_CD = #{sopmalCd}
AND IF_KND_CD = #{ifKndCd}
</selectKey>
INSERT INTO GC_NPAY_IF_LOG (
SOPMAL_CD,
IF_KND_CD,
IF_SEQ,
IF_STTUS_CD,
SEND_PARAM,
RECEIVE_PARAM,
REGIST_DT,
TRAN_STTUS_CD,
ERROR_MESSAGE,
REQUEST_ID
)VALUES(
#{sopmalCd},
#{ifKndCd},
#{ifSeq},
#{ifSttusCd},
#{sendParam},
#{receiveParam},
SYSDATE(),
#{tranSttusCd},
#{errorMessage},
#{requestId}
)
</insert>
</mapper>

View File

@@ -0,0 +1,105 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.domain.gcone.ordr.npay.mapper.BONpayConfigMapper">
<!-- insert GC_NPAY_CONFIG SQL -->
<insert id="insertNpayConfig" parameterType="com.wb.domainserver.domain.gcone.ordr.npay.vo.BONpayConfigVO">
INSERT INTO GC_NPAY_CONFIG(
SOPMAL_CD
, SHOP_ID
, CERTIFICATION_KEY
, ACCESS_LICENSE
, SECRET_KEY
, BUTTON_KEY
, COMMON_CERTI_KEY
, REGIST_DT
, REGUSR
, UPDT_DT
, UPDUSR
) VALUES (
#{sopmalCd}
, #{shopId}
, #{certificationKey}
, #{accessLicense}
, #{secretKey}
, #{buttonKey}
, #{commonCertiKey}
, SYSDATE()
, #{regusr}
, SYSDATE()
, #{updusr}
)
</insert>
<!-- Update GC_NPAY_CONFIG SQL -->
<update id="updateNpayConfig" parameterType="com.wb.domainserver.domain.gcone.ordr.npay.vo.BONpayConfigVO">
UPDATE GC_NPAY_CONFIG SET
SHOP_ID = #{shopId}
, CERTIFICATION_KEY = #{certificationKey}
, ACCESS_LICENSE = #{accessLicense}
, SECRET_KEY = #{secretKey}
, BUTTON_KEY = #{buttonKey}
, COMMON_CERTI_KEY = #{commonCertiKey}
, UPDT_DT = SYSDATE()
, UPDUSR = #{updusr}
WHERE
SOPMAL_CD = #{sopmalCd}
</update>
<!-- Delete GC_NPAY_CONFIG SQL -->
<delete id="deleteNpayConfig" parameterType="com.wb.domainserver.domain.gcone.ordr.npay.vo.BONpayConfigVO">
DELETE FROM GC_NPAY_CONFIG
WHERE
SOPMAL_CD = #{sopmalCd}
</delete>
<!-- Select Detail GC_NPAY_CONFIG SQL -->
<select id="selectNpayConfigDetail" parameterType="com.wb.domainserver.domain.gcone.ordr.npay.vo.BONpayConfigVO" resultType="com.wb.domainserver.domain.gcone.ordr.npay.vo.BONpayConfigVO">
SELECT
SOPMAL_CD
,SHOP_ID
,CERTIFICATION_KEY
,ACCESS_LICENSE
,SECRET_KEY
,BUTTON_KEY
,COMMON_CERTI_KEY
,ENVRN
,DATE_FORMAT(REGIST_DT, '%Y.%m.%d %H:%i:%s') AS REGIST_DE
,REGIST_DT
,REGUSR
,DATE_FORMAT(UPDT_DT, '%Y.%m.%d %H:%i:%s') AS UPDT_DE
,UPDT_DT
,UPDUSR
FROM
GC_NPAY_CONFIG
WHERE
SOPMAL_CD = #{sopmalCd}
</select>
<!-- Select List GC_NPAY_CONFIG SQL -->
<select id="selectNpayConfigList" parameterType="com.wb.domainserver.domain.gcone.ordr.npay.vo.BONpayConfigVO" resultType="com.wb.domainserver.domain.gcone.ordr.npay.vo.BONpayConfigVO">
SELECT
SOPMAL_CD
,SHOP_ID
,CERTIFICATION_KEY
,ACCESS_LICENSE
,SECRET_KEY
,BUTTON_KEY
,COMMON_CERTI_KEY
,DATE_FORMAT(REGIST_DT, '%Y.%m.%d %H:%i:%s') AS REGIST_DE
,REGIST_DT
,REGUSR
,DATE_FORMAT(UPDT_DT, '%Y.%m.%d %H:%i:%s') AS UPDT_DE
,UPDT_DT
,UPDUSR
FROM
GC_NPAY_CONFIG
WHERE
SOPMAL_CD = #{sopmalCd}
</select>
</mapper>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,730 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.domain.gcone.ordr.selngpruf.mapper.BOSelngprufMapper">
<!-- 매출증빙 목록 조회 FROM 절 -->
<sql id="selectBOSelngPrufListInqireFrom">
<![CDATA[
FROM GC_SALES FS
LEFT JOIN GC_ORDER_SETLE FOS
ON FS.ORDR_SETLE_INNB = FOS.ORDR_SETLE_INNB
INNER JOIN GC_ORDER FO
ON FOS.ORDR_INNB = FO.ORDR_INNB
AND FOS.SOPMAL_CD = FO.SOPMAL_CD
LEFT JOIN GC_ORDER_REFUND FOR1
ON FO.ORDR_INNB = FOR1.ORDR_INNB
AND FO.SOPMAL_CD = FOR1.SOPMAL_CD
LEFT JOIN GC_MEMBER FM
ON FO.MBR_INNB = FM.MBR_INNB
AND FO.MBR_DV_CD = FM.MBR_DV_CD
]]>
</sql>
<!-- 매출증빙 목록 조회 WHERE 절 -->
<sql id="selectBOSelngPrufListInqireWhere">
WHERE 1=1
AND FO.SOPMAL_CD = #{sopmalCd}
AND FO.ORDR_STTUS_CD NOT IN ('0', '95', '99')
<!-- AND fo.ORDR_RCEPT_DT between '2022-07-19' and '2022-07-25' -->
<!-- 검색어 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchWord)">
AND (
FO.ORDRR_NM LIKE CONCAT('%', #{srchWord}, '%') OR
FO.ORDR_INNB LIKE CONCAT('%', #{srchWord}, '%')
)
</if>
<!-- 날짜 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchDate)">
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDate, '1')">
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStartDate)">
<![CDATA[
AND FO.ORDR_RCEPT_DT >= #{srchStartDate} ' 00:00:00'
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndDate)">
<![CDATA[
AND FO.ORDR_RCEPT_DT <= #{srchEndDate} ' 23:59:59'
]]>
</if>
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDate, '2')">
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStartDate)">
<![CDATA[
AND FS.REGIST_DT >= #{srchStartDate} ' 00:00:00'
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndDate)">
<![CDATA[
AND FS.REGIST_DT <= #{srchEndDate} ' 23:59:59'
]]>
</if>
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDate, '3')">
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStartDate)">
<![CDATA[
AND FS.UPDT_DT >= #{srchStartDate} ' 00:00:00'
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchEndDate)">
<![CDATA[
AND FS.UPDT_DT <= #{srchEndDate} ' 23:59:59'
]]>
</if>
</when>
</choose>
</if>
<!-- 증빙서류 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchReqst)">
<![CDATA[
AND FS.REQST_DV_CD IN
]]>
<foreach collection="srchReqst" item="srchReqst" open="(" close=")" separator=",">
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchReqst, '02')">
<![CDATA[
'02', '03'
]]>
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchReqst, '04')">
#{srchReqst}
</when>
</choose>
</foreach>
</if>
<!-- 결제여부 입금 체크 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchRcpmny1) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchRcpmny2)">
<![CDATA[
AND FO.ORDR_STTUS_CD > 15
]]>
</if>
<!-- 결제여부 미입금 체크 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchRcpmny1) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchRcpmny2)">
<![CDATA[
AND FO.ORDR_STTUS_CD = 15
]]>
</if>
<!-- 환불유무 있음 체크 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchRefund1) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchRefund2)">
<![CDATA[
AND FOR1.ORDER_REFUND_INNB IS NOT NULL
]]>
</if>
<!-- 환불유무 없음 체크 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(srchRefund1) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchRefund2)">
<![CDATA[
AND FOR1.ORDER_REFUND_INNB IS NULL
]]>
</if>
<!-- 상태 -->
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchStatus)">
<![CDATA[
AND
]]>
<foreach collection="srchStatus" item="srchStatus" open="(" close=")" separator="OR">
<![CDATA[
FS.ISSU_STTUS_CD = #{srchStatus}
]]>
</foreach>
</if>
</sql>
<!-- 매출증빙 목록 조회 GROUP BY 절 -->
<sql id="selectBOSelngPrufListInqireGroupBy">
GROUP BY FO.ORDR_INNB
,FO.ORDR_RCEPT_DT
,FO.ORDRR_NM
,FM.MBR_ID
,FOS.SETLE_TY_CD
,FOS.SETLE_AMT
,FO.ORDR_STTUS_CD
,FS.REGIST_DT
,FS.REQST_DV_CD
,FS.SPLPRIC
,FS.VAT_AMT
,FS.AMT
,FS.CANCL_AMT
,FS.ISSU_DT
,FS.ISSU_STTUS_CD
,FS.MNGR_MEMO_CN
,FS.SELNG_PRUF_INNB
ORDER BY FO.ORDR_INNB DESC
</sql>
<!-- 매출증빙 목록 건수 조회 -->
<select id = "selectBOSelngPrufListCnt"
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
resultType="java.lang.Integer">
SELECT
COUNT(*)
FROM (
SELECT FO.ORDR_INNB
<include refid = "selectBOSelngPrufListInqireFrom"/>
<include refid = "selectBOSelngPrufListInqireWhere"/>
<include refid = "selectBOSelngPrufListInqireGroupBy"/>
) AS TEMP
</select>
<!-- 매출증빙 목록 조회 -->
<select id = "selectBOSelngPrufListInqire"
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
resultType="dataMap">
SELECT *
FROM (
SELECT
CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM, TB.*
FROM (
SELECT FO.ORDR_INNB
,FO.ORDR_RCEPT_DT
,FO.ORDRR_NM
,FM.MBR_ID
,FOS.SETLE_TY_CD
,FOS.SETLE_AMT
,FO.ORDR_STTUS_CD AS ORDR_STTUS_CD
,FN_GET_COMMCODE_NAME('ORDR_STTUS',FO.ORDR_STTUS_CD) AS ORDR_STTUS_CD_NM
,FS.REGIST_DT
,FS.REQST_DV_CD AS REQST_DV_CD
,FN_GET_COMMCODE_NAME('REQST_DV', FS.REQST_DV_CD) AS REQST_DV_CD_NM
,FS.SPLPRIC
,FS.VAT_AMT
,FS.AMT
,FS.CANCL_AMT
,FS.ISSU_DT
,FS.ISSU_STTUS_CD AS ISSU_STTUS_CD
,FN_GET_COMMCODE_NAME('ISSU_STTUS', FS.ISSU_STTUS_CD) AS ISSU_STTUS_CD_NM
,FS.MNGR_MEMO_CN
,FO.SOPMAL_CD
,GROUP_CONCAT(FOR1.ORDER_REFUND_INNB) AS ORDER_REFUND_INNB
,FS.SELNG_PRUF_INNB
,FS.ORDR_SETLE_INNB
,FS.CSH_RCIPT_DELNG_NB
,FS.CRTNB
,FOS.PG_CMPNY_NM
,FOS.PG_INNB
,FS.UPDT_DT
<include refid = "selectBOSelngPrufListInqireFrom"/>
<include refid = "selectBOSelngPrufListInqireWhere"/>
<include refid = "selectBOSelngPrufListInqireGroupBy"/>
<![CDATA[
) TB
WHERE (@rownum:=0)=0
) PV
WHERE 1=1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
]]>
</select>
<!-- 매출증빙 관리자 메모 조회 -->
<select id = "selectBOSelngPrufMngrMemoRegistPopupForm"
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
resultType="dataMap">
<![CDATA[
SELECT DISTINCT
ORDR_INNB,
SOPMAL_CD,
MNGR_MEMO_CN,
SELNG_PRUF_INNB
FROM GC_SALES
WHERE 1=1
AND SELNG_PRUF_INNB = #{selngPrufInnb}
AND SOPMAL_CD = #{sopmalCd}
]]>
</select>
<!-- 매출증빙 관리자 메모 등록, 수정 -->
<update id = "updateBOSelngPrufMngrMemoRegistPopup"
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO">
<![CDATA[
UPDATE GC_SALES
SET MNGR_MEMO_CN = TRIM(#{mngrMemoCn})
,UPDUSR = #{updusr}
,UPDT_DT = SYSDATE()
WHERE 1=1
AND SELNG_PRUF_INNB = #{selngPrufInnb}
AND SOPMAL_CD = #{sopmalCd}
]]>
</update>
<!-- 매출증빙 전송로그 건수 조회 -->
<select id = "selectBOSelngPrufTrnsmisLogInqireCnt"
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
resultType="java.lang.Integer">
<![CDATA[
SELECT
COUNT(*)
FROM GC_SALES_LOG
WHERE 1=1
AND SELNG_PRUF_INNB = #{selngPrufInnb}
]]>
</select>
<!-- 매출증빙 전송로그 조회 -->
<select id = "selectBOSelngPrufTrnsmisLogInqire"
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
resultType="dataMap">
<![CDATA[
SELECT
*
FROM GC_SALES_LOG
WHERE 1=1
AND SELNG_PRUF_INNB = #{selngPrufInnb}
]]>
</select>
<!-- 매출증빙 테이블 조회 -->
<select id = "selectBOCshRcipt"
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
resultType="dataMap">
<![CDATA[
SELECT
FS.ISSU_STTUS_CD,
FN_GET_COMMCODE_NAME("ISSU_STTUS", FS.ISSU_STTUS_CD) AS ISSU_STTUS_CD_NM,
FS.REGIST_DT,
FS.ISSU_TRGET_DV_CD,
FN_GET_COMMCODE_NAME("ISSU_TRGET_DV",FS.ISSU_TRGET_DV_CD) AS ISSU_TRGET_DV_CD_NM,
FS.CRTNB,
FS.ORDRR_NM,
CAST(AES_DECRYPT(UNHEX(FS.ORDRR_EMAIL) , '1df5be2f7e90ae36') AS CHAR(50)) AS ORDRR_EMAIL,
FS.GOODS_NM,
FS.AMT,
FS.SPLPRIC,
FS.VAT_AMT,
FS.ORDR_INNB,
FS.SOPMAL_CD,
FS.ORDR_SETLE_INNB,
FS.SELNG_PRUF_INNB
FROM GC_SALES FS
WHERE 1=1
AND FS.SELNG_PRUF_INNB = #{selngPrufInnb}
AND FS.SOPMAL_CD = #{sopmalCd}
]]>
</select>
<!-- 매출증빙 현금영수증 정보 수정 -->
<update id = "updateBOCshRcipt"
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO">
<![CDATA[
UPDATE GC_SALES
SET ISSU_TRGET_DV_CD = #{issuTrgetDvCd}
,CRTNB = #{crtnb}
]]>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ordrrNm)">
,ORDRR_NM = #{ordrrNm}
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ordrrEmail)">
,ORDRR_EMAIL = HEX(AES_ENCRYPT(#{ordrrEmail}, '1df5be2f7e90ae36'))
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(goodsNm)">
,GOODS_NM = #{goodsNm}
</if>
<![CDATA[
,UPDT_DT = SYSDATE()
,UPDUSR = #{updusr}
WHERE 1=1
AND SELNG_PRUF_INNB = #{selngPrufInnb}
AND SOPMAL_CD = #{sopmalCd}
]]>
</update>
<!-- 매출증빙 현금영수증 api 응답 값 업데이트
<update id = "updateBOCashRciptRegistSelngPruf"
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO">
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(cshRciptDelngNb)">
<![CDATA[
UPDATE GC_SALES
SET CSH_RCIPT_DELNG_NB = #{cshRciptDelngNb}
,CSH_RCIPT_APVLNB = #{cshRciptApvlnb}
,CSH_RCIPT_CONFM_DT = #{cshRciptConfmDt}
,ISSU_TRGET_DV_CD = #{issuTrgetDvCd}
,CRTNB = #{crtnb}
,ORDRR_NM = #{ordrrNm}
,ORDRR_EMAIL = HEX(AES_ENCRYPT(#{ordrrEmail}, '1df5be2f7e90ae36'))
,ISSU_STTUS_CD = #{issuSttusCd}
,UPDT_DT = SYSDATE()
WHERE 1=1
AND SELNG_PRUF_INNB = #{selngPrufInnb}
AND SOPMAL_CD = #{sopmalCd}
]]>
</when>
<otherwise>
<![CDATA[
UPDATE GC_SALES
SET ISSU_STTUS_CD = #{issuSttusCd}
,UPDT_DT = SYSDATE()
WHERE 1=1
AND SELNG_PRUF_INNB = #{selngPrufInnb}
AND SOPMAL_CD = #{sopmalCd}
]]>
</otherwise>
</choose>
</update>
-->
<!-- 매출증빙 현금영수증 api 응답 값 업데이트 -->
<update id = "updateBOCashRciptRegistSelngPruf"
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO">
<![CDATA[
UPDATE GC_SALES
SET CSH_RCIPT_DELNG_NB = #{cshRciptDelngNb}
,CSH_RCIPT_APVLNB = #{cshRciptApvlnb}
,CSH_RCIPT_CONFM_DT = #{cshRciptConfmDt}
,ISSU_TRGET_DV_CD = #{issuTrgetDvCd}
,CRTNB = #{crtnb}
,ORDRR_NM = #{ordrrNm}
,ORDRR_EMAIL = HEX(AES_ENCRYPT(#{ordrrEmail}, '1df5be2f7e90ae36'))
,GOODS_NM = #{goodsNm}
,ISSU_STTUS_CD = #{issuSttusCd}
,UPDT_DT = SYSDATE()
,ISSU_DT = SYSDATE()
,UPDUSR = #{updusr}
WHERE 1=1
AND SELNG_PRUF_INNB = #{selngPrufInnb}
AND SOPMAL_CD = #{sopmalCd}
]]>
</update>
<!-- 매출증빙로그 추가 -->
<update id = "insertBOSelngPrufLogRegist"
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO">
<![CDATA[
INSERT INTO GC_SALES_LOG (
SELNG_PRUF_LOG_INNB,
SELNG_PRUF_INNB,
REGIST_DT,
LOG_MSG
)
SELECT
COALESCE(MAX(SELNG_PRUF_LOG_INNB), 0) + 1,
#{selngPrufInnb},
SYSDATE(),
#{logMsg}
FROM GC_SALES_LOG
]]>
</update>
<!-- 엑셀다운로드(전체) -->
<select id = "selectBOSopmalExcelAllList"
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
resultType="dataMap">
SELECT FO.ORDR_INNB
,DATE_FORMAT(FO.ORDR_RCEPT_DT, '%Y-%m-%d %H:%i:%s') AS ORDR_RCEPT_DT
,FO.ORDRR_NM
,FM.MBR_ID
,FOS.SETLE_TY_CD
,FN_GET_COMMCODE_NAME('SETLE_MTH',FOS.SETLE_TY_CD) AS SETLE_TY_CD_NM
,FOS.SETLE_AMT
,FO.ORDR_STTUS_CD AS ORDR_STTUS_CD
,FN_GET_COMMCODE_NAME('ORDR_STTUS',FO.ORDR_STTUS_CD) AS ORDR_STTUS_CD_NM
,DATE_FORMAT(FS.REGIST_DT, '%Y-%m-%d %H:%i:%s') AS REGIST_DT
,FS.REQST_DV_CD AS REQST_DV_CD
,FN_GET_COMMCODE_NAME('REQST_DV', FS.REQST_DV_CD) AS REQST_DV_CD_NM
,FS.SPLPRIC
,FS.VAT_AMT
,FS.AMT
,FS.CANCL_AMT
,DATE_FORMAT(FS.UPDT_DT, '%Y-%m-%d %H:%i:%s') AS UPDT_DT
,FS.ISSU_STTUS_CD AS ISSU_STTUS_CD
,FN_GET_COMMCODE_NAME('ISSU_STTUS', FS.ISSU_STTUS_CD) AS ISSU_STTUS_CD_NM
,FS.MNGR_MEMO_CN
,FO.SOPMAL_CD
,GROUP_CONCAT(FOR1.ORDER_REFUND_INNB) AS ORDER_REFUND_INNB
,FS.SELNG_PRUF_INNB
,FS.ORDR_SETLE_INNB
,FS.CSH_RCIPT_DELNG_NB
,FS.CRTNB
,FOS.PG_CMPNY_NM
,FOS.PG_INNB
<include refid = "selectBOSelngPrufListInqireFrom"/>
<include refid = "selectBOSelngPrufListInqireWhere"/>
<include refid = "selectBOSelngPrufListInqireGroupBy"/>
</select>
<!-- 엑셀다운로드(선택) -->
<select id = "selectBOSopmalExcelList"
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
resultType="dataMap">
SELECT FO.ORDR_INNB
,DATE_FORMAT(FO.ORDR_RCEPT_DT, '%Y-%m-%d %H:%i:%s') AS ORDR_RCEPT_DT
,FO.ORDRR_NM
,FM.MBR_ID
,FOS.SETLE_TY_CD
,FN_GET_COMMCODE_NAME('SETLE_MTH',FOS.SETLE_TY_CD) AS SETLE_TY_CD_NM
,FOS.SETLE_AMT
,FO.ORDR_STTUS_CD AS ORDR_STTUS_CD
,FN_GET_COMMCODE_NAME('ORDR_STTUS',FO.ORDR_STTUS_CD) AS ORDR_STTUS_CD_NM
,DATE_FORMAT(FS.REGIST_DT, '%Y-%m-%d %H:%i:%s') AS REGIST_DT
,FS.REQST_DV_CD AS REQST_DV_CD
,FN_GET_COMMCODE_NAME('REQST_DV', FS.REQST_DV_CD) AS REQST_DV_CD_NM
,FS.SPLPRIC
,FS.VAT_AMT
,FS.AMT
,FS.CANCL_AMT
,DATE_FORMAT(FS.UPDT_DT, '%Y-%m-%d %H:%i:%s') AS UPDT_DT
,FS.ISSU_STTUS_CD AS ISSU_STTUS_CD
,FN_GET_COMMCODE_NAME('ISSU_STTUS', FS.ISSU_STTUS_CD) AS ISSU_STTUS_CD_NM
,FS.MNGR_MEMO_CN
,FO.SOPMAL_CD
,GROUP_CONCAT(FOR1.ORDER_REFUND_INNB) AS ORDER_REFUND_INNB
,FS.SELNG_PRUF_INNB
,FS.ORDR_SETLE_INNB
,FS.CSH_RCIPT_DELNG_NB
,FS.CRTNB
,FOS.PG_CMPNY_NM
,FOS.PG_INNB
<include refid = "selectBOSelngPrufListInqireFrom"/>
WHERE 1=1
<![CDATA[
AND FS.SELNG_PRUF_INNB IN
]]>
<foreach collection="selngPrufInnbArr" item="selngPrufInnbArr" open="(" close=")" separator=",">
<![CDATA[
#{selngPrufInnbArr}
]]>
</foreach>
<include refid = "selectBOSelngPrufListInqireGroupBy"/>
</select>
<!-- 쇼핑몰결제설정 테이블 조회 -->
<select id = "selectBOSopmalSetleSetup"
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
resultType="com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO">
<![CDATA[
SELECT
IF(PG_CMPNY_NM = 'kcp', 'kcp', 'toss') AS PG_CMPNY_NM,
CASE WHEN IFNULL(OS.SETLE_MID, '') <> '' THEN OS.SETLE_MID
WHEN OS.PG_CMPNY_NM = 'kcp' THEN PL.KCP_MID
ELSE PL.OLD_TOSS_MID
END AS MID
FROM GC_ORDER_SETLE OS
INNER JOIN GC_PAY_LINK PL
ON OS.SOPMAL_CD = PL.SOPMAL_CD
WHERE OS.SOPMAL_CD = #{sopmalCd}
AND OS.ORDR_INNB = #{ordrInnb}
ORDER BY PL.SETLE_SETUP_INNB
LIMIT 1
]]>
</select>
<!-- 매출증빙 테이블 현금영수증 취소 조회 -->
<select id = "selectBOCshRciptCancel"
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
resultType="com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO">
<![CDATA[
SELECT
SELNG_PRUF_INNB,
ORDR_SETLE_INNB,
ORDR_INNB,
SOPMAL_CD,
ROUND(AMT) AMT,
ROUND(SPLPRIC) SPLPRIC,
ROUND(VAT_AMT) VAT_AMT,
GOODS_NM,
REQST_DV_CD,
ISSU_TRGET_DV_CD,
CRTNB,
CSH_RCIPT_DELNG_NB,
CSH_RCIPT_APVLNB,
CSH_RCIPT_CONFM_DT,
ORDRR_NM,
CAST(AES_DECRYPT(UNHEX(ORDRR_EMAIL) , '1df5be2f7e90ae36') AS CHAR(50)) AS ORDRR_EMAIL,
ISSU_STTUS_CD,
UPDUSR_DV_CD,
REGUSR,
REGIST_DT,
UPDUSR,
UPDT_DT,
ISSU_DT,
MNGR_MEMO_CN,
CANCL_AMT,
CANCL_SPLPRIC,
CANCL_VAT_AMT
FROM GC_SALES
WHERE 1=1
AND REQST_DV_CD = '02'
AND ORDR_SETLE_INNB = #{ordrSetleInnb}
AND SOPMAL_CD = #{sopmalCd}
AND ISSU_STTUS_CD != '03'
]]>
</select>
<!-- 매출증빙 현금영수증 취소 update -->
<update id = "updateBOCshRciptCancel"
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO">
<![CDATA[
UPDATE GC_SALES
SET CANCL_AMT = #{canclAmt}
,CANCL_SPLPRIC = #{canclSplpric}
,CANCL_VAT_AMT = #{canclVatAmt}
,ISSU_STTUS_CD = #{issuSttusCd}
,UPDT_DT = SYSDATE()
,UPDUSR = #{updusr}
,UPDUSR_DV_CD = #{updusrDvCd}
WHERE 1=1
AND SELNG_PRUF_INNB = #{selngPrufInnb}
AND SOPMAL_CD = #{sopmalCd}
]]>
</update>
<!-- 매출증빙 테이블 추가 -->
<insert id = "insertBOSelngPrufRegist"
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
keyProperty="selngPrufInnb"
useGeneratedKeys="true">
<![CDATA[
INSERT INTO GC_SALES (
ORDR_SETLE_INNB,
ORDR_INNB,
SOPMAL_CD,
AMT,
SPLPRIC,
VAT_AMT,
GOODS_NM,
REQST_DV_CD,
ISSU_TRGET_DV_CD,
CRTNB,
CSH_RCIPT_DELNG_NB,
CSH_RCIPT_APVLNB,
CSH_RCIPT_CONFM_DT,
ORDRR_NM,
ORDRR_EMAIL,
ISSU_STTUS_CD,
UPDUSR_DV_CD,
REGUSR,
REGIST_DT,
UPDUSR,
UPDT_DT,
ISSU_DT,
MNGR_MEMO_CN,
CANCL_AMT,
CANCL_SPLPRIC,
CANCL_VAT_AMT
)
SELECT
#{ordrSetleInnb},
#{ordrInnb},
#{sopmalCd},
#{amt},
#{splpric},
#{vatAmt},
#{goodsNm},
#{reqstDvCd},
#{issuTrgetDvCd},
#{crtnb},
#{cshRciptDelngNb},
#{cshRciptApvlnb},
#{cshRciptConfmDt},
#{ordrrNm},
HEX(AES_ENCRYPT(#{ordrrEmail}, '1df5be2f7e90ae36')),
#{issuSttusCd},
#{updusrDvCd},
#{regusr},
SYSDATE(),
#{updusr},
SYSDATE(),
#{issuDt},
#{mngrMemoCn},
#{canclAmt},
#{canclSplpric},
#{canclVatAmt}
FROM GC_SALES
]]>
</insert>
<!-- 매출증빙 테이블 주문번호로 주문결제 번호 찾기 -->
<select id = "selectBOCashRciptUpdt"
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
resultType="com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO">
<![CDATA[
SELECT
SELNG_PRUF_INNB,
ORDR_SETLE_INNB,
ORDR_INNB,
SOPMAL_CD,
ROUND(AMT) AMT,
ROUND(SPLPRIC) SPLPRIC,
ROUND(VAT_AMT) VAT_AMT,
GOODS_NM,
REQST_DV_CD,
ISSU_TRGET_DV_CD,
CRTNB,
CSH_RCIPT_DELNG_NB,
CSH_RCIPT_APVLNB,
CSH_RCIPT_CONFM_DT,
ORDRR_NM,
CAST(AES_DECRYPT(UNHEX(ORDRR_EMAIL) , '1df5be2f7e90ae36') AS CHAR(50)) AS ORDRR_EMAIL,
ISSU_STTUS_CD,
UPDUSR_DV_CD,
REGUSR,
REGIST_DT,
UPDUSR,
UPDT_DT,
ISSU_DT,
MNGR_MEMO_CN,
CANCL_AMT,
CANCL_SPLPRIC,
CANCL_VAT_AMT
FROM GC_SALES GS
WHERE 1=1
AND SOPMAL_CD = #{sopmalCd}
AND ORDR_INNB = #{ordrInnb}
AND REQST_DV_CD = '02'
]]>
</select>
<!-- 매출증빙 테이블 쇼핑몰코드, 주문번호로 현금영수증 대상조회 -->
<select id = "selectBOCshRciptRegist"
parameterType = "com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO"
resultType="com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO">
<![CDATA[
SELECT
FS.SELNG_PRUF_INNB,
FS.SOPMAL_CD,
FS.ORDR_INNB,
FS.ORDR_SETLE_INNB,
FS.ORDRR_NM,
CAST(AES_DECRYPT(UNHEX(FS.ORDRR_EMAIL) , '1df5be2f7e90ae36') AS CHAR(50)) AS ORDRR_EMAIL,
FS.CRTNB,
FS.GOODS_NM,
FS.ISSU_TRGET_DV_CD,
FS.ISSU_STTUS_CD,
ROUND(FS.AMT) AS AMT,
ROUND(FS.SPLPRIC) AS SPLPRIC,
ROUND(FS.VAT_AMT) AS VAT_AMT
FROM GC_SALES FS
INNER JOIN GC_ORDER_SETLE FOS
ON FS.SOPMAL_CD = FOS.SOPMAL_CD
AND FS.ORDR_SETLE_INNB = FOS.ORDR_SETLE_INNB
INNER JOIN GC_ORDER FO
ON FOS.SOPMAL_CD = FO.SOPMAL_CD
AND FOS.ORDR_INNB = FO.ORDR_INNB
WHERE 1=1
AND FS.SOPMAL_CD = #{sopmalCd}
AND FS.ORDR_INNB = #{ordrInnb}
AND FS.REQST_DV_CD = '02'
AND FS.ISSU_STTUS_CD = '01'
AND FOS.SETLE_TY_CD = #{setleTyCd}
AND FO.ORDR_STTUS_CD = '25'
]]>
</select>
</mapper>

View File

@@ -0,0 +1,470 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.domain.gcone.ordr.subsvc.mapper.BOSubsvcOrdrMapper">
<!--구독서비스 상품준비 관리 목록-->
<select id="selectBOSubsvcOrderList" parameterType="com.wb.domainserver.domain.gcone.ordr.subsvc.vo.BOSubsvcOrderVO" resultType="dataMap">
SELECT *
FROM (
SELECT CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
, COUNT(*) OVER() AS TOT_CNT
, MAIN.*
FROM (
SELECT ROW_NUMBER() OVER(PARTITION BY GO.ORDR_INNB ORDER BY GO.ORDR_INNB ASC, GOIO.ORDR_STTUS_CD ASC, GOI.ORDR_GOODS_INNB ASC, GOIO.ORDR_GOODS_OPTN_INNB ASC) AS LINE
, GO.ORDR_INNB
, GOI.ORDR_GOODS_INNB
, GOIO.ORDR_GOODS_OPTN_INNB /*일괄처리 대상 주문상품옵션고유번호*/
, GOIO.ORDR_DLVY_INNB
, GS.SUBSVC_NM
, GS.SUBSVC_GNR
, GS.SUBSVC_GNR_NM
, GM.MBR_NM
, GM.MBR_ID
, GM.MBR_DV_CD
, GM.MBR_INNB
, fn_get_member_grad_name(GO.SOPMAL_CD, GM.MBR_DV_CD, GM.MBR_INNB) AS GRADE
, SUM(CASE WHEN GOIO.ORDR_STTUS_CD BETWEEN '35' AND '75' THEN 1 ELSE 0 END) OVER(PARTITION BY GO.ORDR_INNB)+1 AS CURT_PROCS_ODR
, SUM(CASE WHEN GOIO.ORDR_STTUS_CD BETWEEN '35' AND '75' THEN 1 ELSE 0 END) OVER(PARTITION BY GO.ORDR_INNB) AS MBR_LAST_PROCS_ODR /*회원별 최종차수 상품준비 ~ 배송완료*/
, MAX(GOIO.UPDT_DT) OVER(PARTITION BY GO.ORDR_INNB) AS LAST_PRCS_DT/*최종처리일*/
, IFNULL(GS.LAST_PROCS_ODR,0) AS LAST_PROCS_ODR /*최종차수*/
, GOIO.ORDR_STTUS_CD
FROM GC_ORDER GO
JOIN GC_SUBSVC GS ON GS.SOPMAL_CD = GO.SOPMAL_CD AND GS.SUBSVC_INNB = GO.SUBSVC_INNB
JOIN GC_MEMBER GM ON GM.MBR_DV_CD = GO.MBR_DV_CD AND GM.MBR_INNB = GO.MBR_INNB
JOIN GC_ORDER_ITEM GOI ON GO.SOPMAL_CD =GOI.SOPMAL_CD AND GO.ORDR_INNB = GOI.ORDR_INNB
JOIN GC_ORDER_ITEM_OPTION GOIO ON GOI.SOPMAL_CD = GOIO.SOPMAL_CD AND GOI.ORDR_GOODS_INNB = GOIO.ORDR_GOODS_INNB AND GOIO.OPTN_TY = '01'
WHERE GO.USE_AT = 'Y'
AND GO.SUBSVC_AT = 'Y'
AND GO.SOPMAL_CD = #{sopmalCd}
<if test='srchSelSubsvcNm != null and srchSelSubsvcNm != ""'>
AND GS.SUBSVC_NM = #{srchSelSubsvcNm} /*구독서비스 명*/
</if>
<if test='srchSelSubsvcGnr != null and srchSelSubsvcGnr != ""'>
AND GS.SUBSVC_GNR = #{srchSelSubsvcGnr} /*기수*/
</if>
<if test='srchSubsvcNm != null and srchSubsvcNm != ""'>
AND GS.SUBSVC_NM LIKE CONCAT('%',#{srchSubsvcNm},'%') /*구독서비스 명*/
</if>
<if test='srchSubsvcGnrNm != null and srchSubsvcGnrNm != ""'>
AND GS.SUBSVC_GNR_NM LIKE CONCAT('%',#{srchSubsvcGnrNm},'%') /*기수명*/
</if>
) MAIN
WHERE (@ROWNUM:=0)=0
AND MAIN.LINE = 1
AND MAIN.ORDR_STTUS_CD = '25'
<if test='srchCurMonExclude!= null and srchCurMonExclude == "Y"'>
<![CDATA[
AND MAIN.LAST_PRCS_DT < CONCAT(DATE_FORMAT(NOW(),'%Y-%m'),'-01') /*당월 처리자 제외*/
]]>
</if>
<choose>
<when test='sortDv == "subsvcGnrAsc"'>
ORDER BY SUBSVC_NM ASC, SUBSVC_GNR ASC /*구독서비스명+기수*/
</when>
<when test='sortDv == "subsvcGnrDesc"'>
ORDER BY SUBSVC_NM DESC, SUBSVC_GNR DESC /*구독서비스명+기수*/
</when>
<when test='sortDv == "mbrAsc"'>
ORDER BY MBR_NM ASC, MBR_ID ASC /*주문자순*/
</when>
<when test='sortDv == "mbrDesc"'>
ORDER BY MBR_NM DESC, MBR_ID DESC /*주문자순*/
</when>
<when test='sortDv == "ordrAsc"'>
ORDER BY ORDR_INNB ASC /*주문번호순*/
</when>
<when test='sortDv == "ordrDesc"'>
ORDER BY ORDR_INNB DESC /*주문번호순*/
</when>
<when test='sortDv == "lastPrcsDtAsc"'>
ORDER BY LAST_PRCS_DT ASC /*최종처리일순*/
</when>
<when test='sortDv == "lastPrcsDtDesc"'>
ORDER BY LAST_PRCS_DT ASC /*최종처리일순*/
</when>
<otherwise>
ORDER BY SUBSVC_NM ASC, SUBSVC_GNR ASC
</otherwise>
</choose>
) PV
WHERE 1=1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<!--구독서비스 상품준비 관리 목록 배송내역 팝업 배송내역목록-->
<select id="selectBOSubsvcOrderDlvyList" parameterType="com.wb.domainserver.domain.gcone.ordr.subsvc.vo.BOSubsvcOrderVO" resultType="dataMap">
SELECT CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
, GOIO.ORDR_GOODS_OPTN_INNB
, GO.ORDR_INNB
, GM.MBR_NM
, GM.MBR_ID
, GM.MBR_DV_CD
, GM.MBR_INNB
, fn_get_member_grad_name(GO.SOPMAL_CD, GM.MBR_DV_CD, GM.MBR_INNB) AS GRADE
, IFNULL(GOIO.UPDT_DT, GOIO.REGIST_DT) AS PROCS_DT /*발생일자*/
, GOI.GOODS_IMG_COURS
, GOI.GOODS_NM
, GOIO.OPTN_NM_1
, GOIO.OPTN_VAL_1
, GOIO.CNSMRPRIC /*정가*/
, GOIO.SLEPRIC /*판매가*/
, fn_get_commcode_name('ORDR_STTUS', GOIO.ORDR_STTUS_CD) AS ORDR_STTUS
FROM GC_ORDER GO
JOIN GC_MEMBER GM ON GM.MBR_DV_CD = GO.MBR_DV_CD AND GM.MBR_INNB = GO.MBR_INNB
JOIN GC_ORDER_ITEM GOI ON GOI.SOPMAL_CD = GO.SOPMAL_CD AND GOI.ORDR_INNB = GO.ORDR_INNB
JOIN GC_ORDER_ITEM_OPTION GOIO ON GOI.SOPMAL_CD = GOIO.SOPMAL_CD AND GOI.ORDR_GOODS_INNB = GOIO.ORDR_GOODS_INNB AND GOIO.OPTN_TY = '01'
WHERE (@ROWNUM:=0)=0
AND GOI.ORDR_INNB = #{ordrInnb}
AND GOI.SOPMAL_CD = #{sopmalCd}
ORDER BY GOIO.ORDR_GOODS_OPTN_INNB ASC
</select>
<!--구독서비스 상품준비 관리 상품매칭 - 1. GC_ORDER update-->
<update id="updateBOSubsvcGoodsMappgOrdr" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
<foreach collection="arrOrdrInnb" item="ordrInnb" separator=";">
UPDATE GC_ORDER
SET ORDR_STTUS_CD = (CASE WHEN ORDR_STTUS_CD = '25' THEN '35' ELSE ORDR_STTUS_CD END)
, UPDT_DT = NOW()
WHERE SOPMAL_CD = #{sopmalCd}
AND ORDR_INNB = #{ordrInnb}
</foreach>
</update>
<!--구독서비스 상품준비 관리 상품매칭 - 2. GC_ORDER_ITEM update-->
<update id="updateBOSubsvcGoodsMappgOrdrItem" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
<foreach collection="arrOrdrGoodsInnb" item="ordrGoodsInnb" separator=";">
UPDATE GC_ORDER_ITEM GOI, (SELECT GG.GOODS_INNB, GG.GOODS_NM, GGI.IMG
FROM GC_GOODS GG
JOIN GC_GOODS_IMAGE GGI ON GGI.SOPMAL_CD = GG.SOPMAL_CD AND GGI.GOODS_INNB = GG.GOODS_INNB AND GGI.CUT_NB = 1 AND GGI.IMG_KND = '02'
WHERE GG.GOODS_INNB = #{goodsInnb}
LIMIT 1) G
SET GOI.GOODS_INNB = G.GOODS_INNB
, GOI.GOODS_NM = G.GOODS_NM
, GOI.GOODS_IMG_COURS = G.IMG
WHERE SOPMAL_CD = #{sopmalCd}
AND GOI.ORDR_GOODS_INNB = #{ordrGoodsInnb}
</foreach>
</update>
<!--구독서비스 상품준비 관리 상품매칭 - 3. GC_ORDER_ITEM_OPTION update-->
<update id="updateBOSubsvcGoodsMappgOrdrItemOptn" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
<foreach collection="arrOrdrGoodsOptnInnb" item="ordrGoodsOptnInnb" separator=";">
UPDATE GC_ORDER_ITEM_OPTION GOIO, (SELECT GOODS_OPTN_INNB
, OPTN_TY
, OPTN_NM_1
, OPTN_NM_2
, OPTN_NM_3
, OPTN_NM_4
, OPTN_VAL_1
, OPTN_VAL_2
, OPTN_VAL_3
, OPTN_VAL_4
, OPTN_CD_1
, OPTN_CD_2
, OPTN_CD_3
, OPTN_CD_4
, OPTN_INFO
, CNSMRPRIC
, SLEPRIC
, GG.TAX_AT
FROM GC_GOODS_OPTION GGO
JOIN GC_GOODS GG ON GG.SOPMAL_CD = GGO.SOPMAL_CD AND GG.GOODS_INNB = GGO.GOODS_INNB
WHERE GGO.GOODS_OPTN_INNB = #{goodsOptnInnb}
AND GGO.OPTN_TY = #{optnTy}
LIMIT 1) G
SET GOIO.GOODS_OPTN_INNB = G.GOODS_OPTN_INNB
, GOIO.OPTN_TY = G.OPTN_TY
, GOIO.OPTN_NM_1 = G.OPTN_NM_1
, GOIO.OPTN_NM_2 = G.OPTN_NM_2
, GOIO.OPTN_NM_3 = G.OPTN_NM_3
, GOIO.OPTN_NM_4 = G.OPTN_NM_4
, GOIO.OPTN_VAL_1 = G.OPTN_VAL_1
, GOIO.OPTN_VAL_2 = G.OPTN_VAL_2
, GOIO.OPTN_VAL_3 = G.OPTN_VAL_3
, GOIO.OPTN_VAL_4 = G.OPTN_VAL_4
, GOIO.OPTN_CD_1 = G.OPTN_CD_1
, GOIO.OPTN_CD_2 = G.OPTN_CD_2
, GOIO.OPTN_CD_3 = G.OPTN_CD_3
, GOIO.OPTN_CD_4 = G.OPTN_CD_4
, GOIO.OPTN_INFO = G.OPTN_INFO
, GOIO.CNSMRPRIC = G.CNSMRPRIC
, GOIO.SLEPRIC = G.SLEPRIC
, GOIO.TAX_AT = G.TAX_AT
, GOIO.STEP85 = 0
, GOIO.STEP35 = GOIO.ORDR_QY
, GOIO.STEP45 = 0
, GOIO.STEP55 = 0
, GOIO.STEP65 = 0
, GOIO.STEP75 = 0
, GOIO.ORDR_STTUS_CD = '35'
, GOIO.UPDT_DT = NOW()
WHERE GOIO.SOPMAL_CD = #{sopmalCd}
AND GOIO.ORDR_GOODS_OPTN_INNB = #{ordrGoodsOptnInnb}
</foreach>
</update>
<!--구독서비스 상품준비 관리 상품매칭 - 4. GC_ORDER_SHIPPING update-->
<update id="updateBOSubsvcGoodsMappgShipping" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
<foreach collection="arrOrdrDlvyInnb" item="ordrDlvyInnb" separator=";">
UPDATE GC_ORDER_SHIPPING
SET ORDR_STTUS_CD = '35'
, UPDT_DT = NOW()
WHERE SOPMAL_CD = #{sopmalCd}
AND ORDR_DLVY_INNB = #{ordrDlvyInnb}
</foreach>
</update>
<!--구독서비스 상품준비 관리 상품매칭 - 5. GC_SUBSVC update-->
<update id="updateBOSubsvcGoodsMappgSubsvc" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
UPDATE GC_SUBSVC GS, ( SELECT SOPMAL_CD, SUBSVC_INNB, MAX(LAST_PROCS_ODR) LAST_PROCS_ODR
FROM (
SELECT GOIO.SOPMAL_CD, GO.SUBSVC_INNB, SUM(CASE WHEN GOIO.ORDR_STTUS_CD BETWEEN '35' AND '75' THEN 1 ELSE 0 END) OVER(PARTITION BY GO.SOPMAL_CD, GO.ORDR_INNB) AS LAST_PROCS_ODR
FROM GC_ORDER GO
JOIN GC_ORDER_ITEM GOI ON GOI.SOPMAL_CD = GO.SOPMAL_CD AND GOI.ORDR_INNB = GO.ORDR_INNB
JOIN GC_ORDER_ITEM_OPTION GOIO ON GOIO.SOPMAL_CD = GOI.SOPMAL_CD AND GOI.ORDR_GOODS_INNB = GOIO.ORDR_GOODS_INNB
WHERE GO.SUBSVC_AT = 'Y'
AND GO.SOPMAL_CD = #{sopmalCd}
AND GO.SUBSVC_INNB IN (SELECT DISTINCT SUBSVC_INNB
FROM GC_ORDER
WHERE SOPMAL_CD = #{sopmalCd}
AND ORDR_INNB IN
<foreach collection="arrOrdrInnb" item="ordrInnb" open="(" close=")" separator=",">
#{ordrInnb}
</foreach>
)
) M
GROUP BY SOPMAL_CD, SUBSVC_INNB
) MAIN
SET GS.LAST_PROCS_ODR = MAIN.LAST_PROCS_ODR
, UPDT_DT = NOW()
WHERE GS.SOPMAL_CD = MAIN.SOPMAL_CD
AND GS.SUBSVC_INNB = MAIN.SUBSVC_INNB
</update>
<!--구독서비스 상품변경 관리 목록-->
<select id="selectBOSubsvcOrderMappedList" parameterType="com.wb.domainserver.domain.gcone.ordr.subsvc.vo.BOSubsvcOrderVO" resultType="dataMap">
SELECT *
FROM (
SELECT CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
, COUNT(*) OVER() AS TOT_CNT
, MAIN.*
FROM (
SELECT ROW_NUMBER() OVER(PARTITION BY GO.ORDR_INNB ORDER BY GOI.ORDR_GOODS_INNB ASC, GOIO.ORDR_GOODS_OPTN_INNB ASC) AS CURT_PROCS_ODR /*차수*/
, GO.ORDR_INNB /*주문번호*/
, GOI.ORDR_GOODS_INNB
, GOIO.ORDR_GOODS_OPTN_INNB /*일괄처리 대상 주문상품옵션고유번호*/
, GOIO.ORDR_DLVY_INNB
, GS.SUBSVC_NM
, GS.SUBSVC_GNR
, GS.SUBSVC_GNR_NM
, GM.MBR_NM /*회원명*/
, GM.MBR_ID /*회원ID*/
, GM.MBR_DV_CD /*회원구분코드*/
, GM.MBR_INNB /*회원고유번호*/
, fn_get_member_grad_name(GO.SOPMAL_CD, GM.MBR_DV_CD, GM.MBR_INNB) AS GRADE /*회원등급*/
, MAX(GOIO.UPDT_DT) OVER(PARTITION BY GO.ORDR_INNB) AS LAST_PRCS_DT/*최종처리일*/
, GOIO.ORDR_STTUS_CD
, GOI.GOODS_IMG_COURS /*상품이미지*/
, GOI.GOODS_NM /*상품명*/
, GOIO.OPTN_NM_1 /*상품옵션명*/
, GOIO.OPTN_VAL_1 /*상품옵션값*/
, GOIO.UPDT_DT /*처리일자*/
FROM GC_ORDER GO
JOIN GC_SUBSVC GS ON GS.SOPMAL_CD = GO.SOPMAL_CD AND GS.SUBSVC_INNB = GO.SUBSVC_INNB
JOIN GC_MEMBER GM ON GM.MBR_DV_CD = GO.MBR_DV_CD AND GM.MBR_INNB = GO.MBR_INNB
JOIN GC_ORDER_ITEM GOI ON GO.SOPMAL_CD =GOI.SOPMAL_CD AND GO.ORDR_INNB = GOI.ORDR_INNB
JOIN GC_ORDER_ITEM_OPTION GOIO ON GOI.SOPMAL_CD = GOIO.SOPMAL_CD AND GOI.ORDR_GOODS_INNB = GOIO.ORDR_GOODS_INNB AND GOIO.OPTN_TY = '01'
WHERE GO.USE_AT = 'Y'
AND GO.SUBSVC_AT = 'Y'
AND GO.SOPMAL_CD = #{sopmalCd}
<if test='srchSelSubsvcNm != null and srchSelSubsvcNm != ""'>
AND GS.SUBSVC_NM = #{srchSelSubsvcNm} /*구독서비스 명*/
</if>
<if test='srchSelSubsvcGnr != null and srchSelSubsvcGnr != ""'>
AND GS.SUBSVC_GNR = #{srchSelSubsvcGnr} /*기수*/
</if>
<if test='srchSubsvcNm != null and srchSubsvcNm != ""'>
AND GS.SUBSVC_NM LIKE CONCAT('%',#{srchSubsvcNm},'%') /*구독서비스 명*/
</if>
<if test='srchSubsvcGnrNm != null and srchSubsvcGnrNm != ""'>
AND GS.SUBSVC_GNR_NM LIKE CONCAT('%',#{srchSubsvcGnrNm},'%') /*기수명*/
</if>
<if test='srchOrdrInnb != null and srchOrdrInnb != ""'>
AND GO.ORDR_INNB = #{srchOrdrInnb} /*주문번호*/
</if>
<if test='srchMbrNm != null and srchMbrNm != ""'>
AND GM.MBR_NM LIKE CONCAT('%',#{srchMbrNm},'%') /*주문자명*/
</if>
<if test='srchMbrId != null and srchMbrId != ""'>
AND GM.MBR_ID LIKE CONCAT('%',#{srchMbrId},'%') /*주문자id*/
</if>
) MAIN
WHERE (@ROWNUM:=0)=0
AND MAIN.ORDR_STTUS_CD = '35'
<if test='srchCurMonExclude!= null and srchCurMonExclude == "Y"'>
<![CDATA[
AND MAIN.LAST_PRCS_DT < CONCAT(DATE_FORMAT(NOW(),'%Y-%m'),'-01') /*당월 처리자 제외*/
]]>
</if>
<choose>
<when test='sortDv == "subsvcGnrAsc"'>
ORDER BY SUBSVC_NM ASC, SUBSVC_GNR ASC /*구독서비스명+기수*/
</when>
<when test='sortDv == "subsvcGnrDesc"'>
ORDER BY SUBSVC_NM DESC, SUBSVC_GNR DESC /*구독서비스명+기수*/
</when>
<when test='sortDv == "mbrAsc"'>
ORDER BY MBR_NM ASC, MBR_ID ASC /*주문자순*/
</when>
<when test='sortDv == "mbrDesc"'>
ORDER BY MBR_NM DESC, MBR_ID DESC /*주문자순*/
</when>
<when test='sortDv == "ordrAsc"'>
ORDER BY ORDR_INNB ASC /*주문번호순*/
</when>
<when test='sortDv == "ordrDesc"'>
ORDER BY ORDR_INNB DESC /*주문번호순*/
</when>
<when test='sortDv == "lastPrcsDtAsc"'>
ORDER BY UPDT_DT ASC /*처리일순*/
</when>
<when test='sortDv == "lastPrcsDtDesc"'>
ORDER BY UPDT_DT ASC /*처리일순*/
</when>
<otherwise>
ORDER BY SUBSVC_NM ASC, SUBSVC_GNR ASC
</otherwise>
</choose>
) PV
WHERE 1=1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<!--구독서비스 구독자조회 목록-->
<select id="selectBOSubsvcOrderMbrList" parameterType="com.wb.domainserver.domain.gcone.ordr.subsvc.vo.BOSubsvcOrderVO" resultType="dataMap">
SELECT *
FROM (
SELECT CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
, COUNT(*) OVER() AS TOT_CNT
, MAIN.*
FROM (
WITH ORDR AS (SELECT COUNT(DISTINCT GO.ORDR_INNB) AS SUBSCRIBER_CNT
, MAX(GOIO.UPDT_DT) AS LAST_PRCS_DT
, GO.SOPMAL_CD
, GO.SUBSVC_INNB
FROM GC_ORDER GO
JOIN GC_ORDER_ITEM GOI ON GOI.SOPMAL_CD = GO.SOPMAL_CD AND GOI.ORDR_INNB = GO.ORDR_INNB
JOIN GC_ORDER_ITEM_OPTION GOIO ON GOIO.SOPMAL_CD = GOI.SOPMAL_CD AND GOIO.ORDR_GOODS_INNB AND GOI.ORDR_GOODS_INNB
WHERE GO.SUBSVC_AT = 'Y'
AND GO.USE_AT = 'Y'
GROUP BY GO.SOPMAL_CD, GO.SUBSVC_INNB)
SELECT GS.SUBSVC_INNB
, GS.SUBSVC_NM /*구독서비스명*/
, GS.SUBSVC_GNR /*구독서비스명 기수*/
, GS.SUBSVC_GNR_NM /*구독서비스명 기수명*/
, GS.SUBSVC_CT + (GS.TME_DLVY_AMT * GS.DLVY_CNT) as SELPRIC /*실판매가=구독료+(1회배송비X배송횟수)*/
, GS.DLVY_CNT /*배송횟수*/
, IFNULL(GS.LAST_PROCS_ODR, 0) AS LAST_PROCS_ODR /*최종차수*/
, IFNULL(ORDR.SUBSCRIBER_CNT, 0) AS SUBSCRIBER_CNT /*구독자수*/
, ORDR.LAST_PRCS_DT
FROM GC_SUBSVC GS
LEFT JOIN ORDR ON ORDR.SOPMAL_CD = GS.SOPMAL_CD AND ORDR.SUBSVC_INNB = GS.SUBSVC_INNB
WHERE GS.USE_AT = 'Y'
AND GS.SOPMAL_CD = #{sopmalCd}
<if test='srchSelSubsvcNm != null and srchSelSubsvcNm != ""'>
AND GS.SUBSVC_NM = #{srchSelSubsvcNm} /*구독서비스 명*/
</if>
<if test='srchSelSubsvcGnr != null and srchSelSubsvcGnr != ""'>
AND GS.SUBSVC_GNR = #{srchSelSubsvcGnr} /*기수*/
</if>
<if test='srchSubsvcNm != null and srchSubsvcNm != ""'>
AND GS.SUBSVC_NM LIKE CONCAT('%',#{srchSubsvcNm},'%') /*구독서비스 명*/
</if>
<if test='srchSubsvcGnrNm != null and srchSubsvcGnrNm != ""'>
AND GS.SUBSVC_GNR_NM LIKE CONCAT('%',#{srchSubsvcGnrNm},'%') /*기수명*/
</if>
<if test='srchSubEndAt == "Y"'>
<![CDATA[
AND (GS.LAST_PROCS_ODR IS NULL OR GS.LAST_PROCS_ODR < DLVY_CNT) /*구독종료여부*/
]]>
</if>
<choose>
<when test='sortDv == "subsvcGnrAsc"'>
ORDER BY SUBSVC_NM ASC, SUBSVC_GNR ASC /*구독서비스명+기수*/
</when>
<when test='sortDv == "subsvcGnrDesc"'>
ORDER BY SUBSVC_NM DESC, SUBSVC_GNR DESC /*구독서비스명+기수*/
</when>
<when test='sortDv == "subscriberAsc"'>
ORDER BY SUBSCRIBER_CNT ASC /*구독자수 정렬*/
</when>
<when test='sortDv == "subscriberDesc"'>
ORDER BY SUBSCRIBER_CNT DESC /*구독자수 정렬*/
</when>
<otherwise>
ORDER BY SUBSVC_NM ASC, SUBSVC_GNR ASC
</otherwise>
</choose>
) MAIN
WHERE (@ROWNUM:=0)=0
) PV
WHERE 1=1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<!--구독서비스 구독자조회 - 구독자목록 팝업 - 구독서비스 정보-->
<select id="selectBOSubsvcInfo" parameterType="com.wb.domainserver.domain.gcone.ordr.subsvc.vo.BOSubsvcOrderVO" resultType="dataMap">
SELECT GS.SUBSVC_NM, GS.SUBSVC_GNR, GS.SUBSVC_GNR_NM
FROM GC_SUBSVC GS
WHERE GS.SUBSVC_INNB = #{subsvcInnb}
</select>
<!--구독서비스 구독자조회 - 구독자목록 팝업 - 구독자목록 조회-->
<select id="selectBOSubsvcOrderMbrInfoList" parameterType="com.wb.domainserver.domain.gcone.ordr.subsvc.vo.BOSubsvcOrderVO" resultType="dataMap">
SELECT CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
, COUNT(*) OVER() AS TOT_CNT
, MAIN.*
FROM (
SELECT GO.ORDR_INNB
, GM.MBR_NM
, GM.MBR_ID
, GM.MBR_DV_CD
, fn_get_member_grad_name(GO.SOPMAL_CD, GM.MBR_DV_CD, GM.MBR_INNB) AS GRADE
, SUM(CASE WHEN GOIO.ORDR_STTUS_CD BETWEEN '35' AND '75' THEN 1 ELSE 0 END) AS LAST_PROCS_ODR/*최종차수 상품준비 ~ 배송완료*/
, MAX(GOIO.UPDT_DT) AS LAST_PRCS_DT/*최종처리일*/
FROM GC_ORDER GO
JOIN GC_MEMBER GM ON GM.MBR_DV_CD = GO.MBR_DV_CD AND GM.MBR_INNB = GO.MBR_INNB
JOIN GC_ORDER_ITEM GOI ON GO.SOPMAL_CD =GOI.SOPMAL_CD AND GO.ORDR_INNB = GOI.ORDR_INNB
JOIN GC_ORDER_ITEM_OPTION GOIO ON GOI.SOPMAL_CD = GOIO.SOPMAL_CD AND GOI.ORDR_GOODS_INNB = GOIO.ORDR_GOODS_INNB AND GOIO.OPTN_TY = '01'
WHERE GO.USE_AT = 'Y'
AND GO.SUBSVC_AT = 'Y'
AND GO.SUBSVC_INNB = #{subsvcInnb} /*구독서비스 고유번호*/
GROUP BY GO.SOPMAL_CD, GO.ORDR_INNB, GM.MBR_DV_CD, GM.MBR_NM, GM.MBR_ID
ORDER BY GO.ORDR_INNB ASC
)MAIN
WHERE (@ROWNUM:=0)=0
</select>
<!--구독서비스 구독자조회 - 배송상품 목록팝업 - 배송상품목록 조회-->
<select id="selectBOSubsvcOrderGoodsInfoList" parameterType="com.wb.domainserver.domain.gcone.ordr.subsvc.vo.BOSubsvcOrderVO" resultType="dataMap">
SELECT CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
, COUNT(*) OVER() AS TOT_CNT
, MAIN.*
FROM (
SELECT GOIO.GOODS_OPTN_INNB
, GOI.GOODS_IMG_COURS
, GOI.GOODS_NM
, GOIO.OPTN_NM_1
, GOIO.OPTN_VAL_1
, COUNT(DISTINCT GO.ORDR_INNB) AS APPLY_CNT/*적용횟수*/
FROM GC_ORDER GO
JOIN GC_ORDER_ITEM GOI ON GO.SOPMAL_CD =GOI.SOPMAL_CD AND GO.ORDR_INNB = GOI.ORDR_INNB
JOIN GC_ORDER_ITEM_OPTION GOIO ON GOI.SOPMAL_CD = GOIO.SOPMAL_CD AND GOI.ORDR_GOODS_INNB = GOIO.ORDR_GOODS_INNB AND GOIO.OPTN_TY = '01'
WHERE GO.USE_AT = 'Y'
AND GO.SUBSVC_AT = 'Y'
AND GOIO.ORDR_STTUS_CD BETWEEN '35' AND '75' /*상품준비 ~ 배송완료*/
AND GO.SUBSVC_INNB = #{subsvcInnb} /*구독서비스 고유번호*/
GROUP BY GOIO.GOODS_OPTN_INNB, GOODS_IMG_COURS, GOI.GOODS_NM, GOIO.OPTN_NM_1, GOIO.OPTN_VAL_1
ORDER BY GOI.GOODS_NM, GOIO.OPTN_NM_1, GOIO.OPTN_VAL_1
) MAIN
WHERE (@ROWNUM:=0)=0
</select>
</mapper>