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,376 @@
<?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.goods.banner.mapper.BOBannerMapper">
<!-- 배너 상세조회, 수정, 삭제 조건절-->
<sql id="selectBOMapperKeyWhere">
<![CDATA[
WHERE 1=1
AND BANNER_INNB = #{bannerInnb}
]]>
</sql>
<!-- 배너목록 카운트 -->
<select id="selectBOBannerListCnt"
parameterType="com.wb.domainserver.domain.gcone.goods.banner.vo.BOBannerVO"
resultType="java.lang.Integer">
<![CDATA[
SELECT count(*)
FROM (SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM
, TB.*
FROM (SELECT BANNER_INNB
, BANNER_NM
, EXPSRLC_DV
, EXPSRLC_DV_CD
, DATE_FORMAT(EXPSR_BGN_DT, '%Y-%m-%d %h:%i:%s') AS EXPSR_BGN_DT
, DATE_FORMAT(EXPSR_END_DT, '%Y-%m-%d %h:%i:%s') AS EXPSR_END_DT
, REGUSR
, REGIST_DT
, DATE_FORMAT(REGIST_DT, '%Y-%m-%d') AS REGIST_DE
, UPDUSR
, UPDT_DT
, DATE_FORMAT(UPDT_DT, '%Y-%m-%d') AS UPDT_DE
, (SELECT COUNT(1) FROM GC_SHOP_GOODS_BANNER FSGB WHERE FSGB.BANNER_INNB = FGB.BANNER_INNB) AS GOODS_CNT
FROM GC_GOODS_BANNER FGB
WHERE 1=1
AND USE_AT = 'Y'
AND SOPMAL_CD = #{sopmalCd}
ORDER BY
BANNER_INNB DESC ) TB
WHERE (@ROWNUM:=0) = 0 ) PV
WHERE 1=1
]]>
</select>
<!-- 배너 목록 조회 -->
<select id="selectBOBannerList"
parameterType="com.wb.domainserver.domain.gcone.goods.banner.vo.BOBannerVO"
resultType="dataMap">
<![CDATA[
SELECT *
FROM (SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM
, TB.*
FROM (SELECT BANNER_INNB
, BANNER_NM
, EXPSRLC_DV
, EXPSRLC_DV_CD
, DATE_FORMAT(EXPSR_BGN_DT, '%Y-%m-%d %h:%i:%s') AS EXPSR_BGN_DT
, DATE_FORMAT(EXPSR_END_DT, '%Y-%m-%d %h:%i:%s') AS EXPSR_END_DT
, REGUSR
, REGIST_DT
, DATE_FORMAT(REGIST_DT, '%Y-%m-%d') AS REGIST_DE
, UPDUSR
, UPDT_DT
, DATE_FORMAT(UPDT_DT, '%Y-%m-%d') AS UPDT_DE
, (SELECT COUNT(FSGB.GOODS_INNB) FROM GC_SHOP_GOODS_BANNER FSGB WHERE FSGB.BANNER_INNB = FGB.BANNER_INNB) AS GOODS_CNT
, (SELECT COUNT(FSGB.CTGRY_ID) FROM GC_SHOP_GOODS_BANNER FSGB WHERE FSGB.BANNER_INNB = FGB.BANNER_INNB) AS CTGRY_CNT
FROM GC_GOODS_BANNER FGB
WHERE 1=1
AND USE_AT = 'Y'
AND SOPMAL_CD = #{sopmalCd}
ORDER BY
BANNER_INNB DESC ) TB
WHERE (@ROWNUM:=0) = 0 ) PV
WHERE 1=1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
]]>
</select>
<!-- 배너 등록 -->
<insert id="insertBOBanner"
parameterType="com.wb.domainserver.domain.gcone.goods.banner.vo.BOBannerVO">
<selectKey order="BEFORE" keyProperty="bannerInnb" resultType="java.lang.Integer">
SELECT IFNULL(MAX(BANNER_INNB), 0)+1
FROM GC_GOODS_BANNER
</selectKey>
INSERT INTO GC_GOODS_BANNER (
BANNER_INNB
, SOPMAL_CD
, BANNER_NM
, EXPSRLC_DV
, EXPSRLC_DV_CD
, EXPSR_BGN_DT
, EXPSR_END_DT
, GOODS_APPLC_DV_CD
, BANNER_URL
, ORGINL_FIL_NM
, SYS_FIL_NM
, FIL_MG
, FIL_TY
, FIL_COURS
, BANNER_ORDR
, USE_AT
, REGUSR
, REGIST_DT
, UPDUSR
, UPDT_DT
)
VALUES (
#{bannerInnb}
, #{sopmalCd}
, #{bannerNm}
, #{expsrlcDv}
, #{expsrlcDvCd}
<if test="expsrlcDvCd != '03'">
, NULL
, NULL
</if>
<if test="expsrlcDvCd == '03'">
, #{expsrBgnDt}
, #{expsrEndDt}
</if>
,#{goodsApplcDvCd}
,#{bannerUrl}
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(orginlFilNm)">
, #{orginlFilNm}
, #{sysFilNm}
, #{filMg}
, #{filTy}
, #{filCours}
</when>
<otherwise>
, NULL
, NULL
, NULL
, NULL
, NULL
</otherwise>
</choose>
, '99' -- 새로 등록한 배너 순서 맨뒤 지정
, 'Y'
, #{regusr}
, now()
, #{updusr}
, now()
)
</insert>
<!-- 배너 연결 상품 등록 -->
<insert id="insertBOBannerIncludeGoods"
parameterType="DataMap">
<selectKey order="BEFORE" keyProperty="shopGoodsBannerInnb" resultType="java.lang.Integer">
SELECT IFNULL(MAX(SHOP_GOODS_BANNER_INNB), 0)+1
FROM GC_SHOP_GOODS_BANNER
</selectKey>
INSERT INTO GC_SHOP_GOODS_BANNER (
SHOP_GOODS_BANNER_INNB
, GOODS_INNB
, SOPMAL_CD
, BANNER_INNB
, REGUSR
, REGIST_DT
)
VALUES (
#{shopGoodsBannerInnb}
, #{goodsInnb}
, #{sopmalCd}
, #{bannerInnb}
, #{regusr}
, now()
)
</insert>
<!-- 배너 연결 상품 카테고리ID 등록 -->
<insert id="insertBOBannerIncludeGoodsCtgryId"
parameterType="DataMap">
<selectKey order="BEFORE" keyProperty="shopGoodsBannerInnb" resultType="java.lang.Integer">
SELECT IFNULL(MAX(SHOP_GOODS_BANNER_INNB), 0)+1
FROM GC_SHOP_GOODS_BANNER
</selectKey>
INSERT INTO GC_SHOP_GOODS_BANNER (
SHOP_GOODS_BANNER_INNB
, CTGRY_ID
, SOPMAL_CD
, BANNER_INNB
, REGUSR
, REGIST_DT
)
VALUES (
#{shopGoodsBannerInnb}
, #{ctgryId}
, #{sopmalCd}
, #{bannerInnb}
, #{regusr}
, now()
)
</insert>
<!-- 배너수정 -->
<update id="updateBOBannerDtl" parameterType="com.wb.domainserver.domain.gcone.goods.banner.vo.BOBannerVO">
UPDATE GC_GOODS_BANNER
SET
BANNER_NM = #{bannerNm}
, EXPSRLC_DV = #{expsrlcDv}
, EXPSRLC_DV_CD = #{expsrlcDvCd}
<if test="expsrlcDvCd == '03'">
, EXPSR_BGN_DT = #{expsrBgnDt}
, EXPSR_END_DT = #{expsrEndDt}
</if>
<if test="expsrlcDvCd != '03'">
, EXPSR_BGN_DT = NULL
, EXPSR_END_DT = NULL
</if>
<choose>
<when test="fileUse == 'new'">
, ORGINL_FIL_NM = #{orginlFilNm}
, SYS_FIL_NM = #{sysFilNm}
, FIL_MG = #{filMg}
, FIL_TY = #{filTy}
, FIL_COURS = #{filCours}
</when>
<when test="fileUse == 'none'">
, ORGINL_FIL_NM = NULL
, SYS_FIL_NM = NULL
, FIL_MG = NULL
, FIL_TY = NULL
, FIL_COURS = NULL
</when>
<otherwise>
</otherwise>
</choose>
, BANNER_URL = #{bannerUrl}
, GOODS_APPLC_DV_CD = #{goodsApplcDvCd}
, UPDUSR = #{updusr}
, UPDT_DT = now()
<include refid="selectBOMapperKeyWhere"/>
</update>
<!-- 배너 삭제 -->
<update id="deleteBOBanner" parameterType="com.wb.domainserver.domain.gcone.goods.banner.vo.BOBannerVO">
<![CDATA[
UPDATE GC_GOODS_BANNER
SET USE_AT = 'N'
, UPDUSR = #{updusr}
, UPDT_DT = now()
]]>
<include refid="selectBOMapperKeyWhere"/>
</update>
<!-- 배너 상세 조회 -->
<select id="selectBOBannerDtlForm"
parameterType="com.wb.domainserver.domain.gcone.goods.banner.vo.BOBannerVO"
resultType="dataMap">
<![CDATA[
SELECT GGB.BANNER_INNB
, GGB.SOPMAL_CD
, GGB.BANNER_NM
, GGB.EXPSRLC_DV
, GGB.EXPSRLC_DV_CD
, DATE_FORMAT(GGB.EXPSR_BGN_DT, '%Y-%m-%d %h:%i:%s') AS EXPSR_BGN_DT
, DATE_FORMAT(GGB.EXPSR_END_DT, '%Y-%m-%d %h:%i:%s') AS EXPSR_END_DT
, DATE_FORMAT(GGB.EXPSR_BGN_DT, '%Y-%m-%d') AS EXPSR_BGN_YMD
, DATE_FORMAT(GGB.EXPSR_END_DT, '%Y-%m-%d') AS EXPSR_END_YMD
, DATE_FORMAT(GGB.EXPSR_BGN_DT, '%h:%i') AS EXPSR_BGN_TIME
, DATE_FORMAT(GGB.EXPSR_END_DT, '%h:%i') AS EXPSR_END_TIME
, GGB.BANNER_URL
, GGB.ORGINL_FIL_NM
, GGB.SYS_FIL_NM
, GGB.FIL_MG
, GGB.FIL_TY
, GGB.FIL_COURS
, GGB.REGUSR
, GGB.REGIST_DT
, DATE_FORMAT(GGB.REGIST_DT, '%Y-%m-%d') AS REGIST_DE
, GGB.UPDUSR
, GGB.UPDT_DT
, DATE_FORMAT(GGB.UPDT_DT, '%Y-%m-%d') AS UPDT_DE
, GGB.GOODS_APPLC_DV_CD
FROM GC_GOODS_BANNER GGB
WHERE 1=1
AND GGB.BANNER_INNB =#{bannerInnb}
AND GGB.SOPMAL_CD = #{sopmalCd}
]]>
</select>
<!-- 배너 연결 상품 조회 -->
<select id="selectBOBannerIncludeGoods"
parameterType="com.wb.domainserver.domain.gcone.goods.banner.vo.BOBannerVO"
resultType="String">
SELECT GOODS_INNB
FROM GC_SHOP_GOODS_BANNER
WHERE 1=1
AND SOPMAL_CD =#{sopmalCd}
AND BANNER_INNB = #{bannerInnb}
</select>
<!--배너 카테고리 정보 조회-->
<select id="selectBOBannerCtgry" parameterType="dataMap" resultType="dataMap">
WITH RECURSIVE category AS (
SELECT CTGRY_ID, CTGRY_NM, UPPER_CTGRY_ID, SOPMAL_CD, CTGRY_NM as full_path
FROM GC_CATEGORY
where SOPMAL_CD = #{sopmalCd}
AND UPPER_CTGRY_ID = 2
UNION ALL
SELECT c.CTGRY_ID, c.CTGRY_NM, c.UPPER_CTGRY_ID, c.SOPMAL_CD, CONCAT(ch.full_path , ' > ', c.CTGRY_NM ) AS full_path
FROM GC_CATEGORY c
INNER JOIN category ch
ON c.UPPER_CTGRY_ID = ch.CTGRY_ID
AND c.sopmal_cd = ch.sopmal_cd
)
SELECT
cc.CTGRY_ID,
cc.CTGRY_NM,
cc.UPPER_CTGRY_ID,
cc.SOPMAL_CD,
cc.full_path,
GSGB.GOODS_INNB
FROM category cc
JOIN GC_SHOP_GOODS_BANNER GSGB
where GSGB.SOPMAL_CD = cc.sopmal_cd
AND GSGB.CTGRY_ID = cc.CTGRY_ID
AND GSGB.sopmal_cd = #{sopmalCd}
AND GSGB.BANNER_INNB = #{bannerInnb}
ORDER BY CTGRY_ID;
</select>
<!-- 배너 연결 상품 삭제 -->
<delete id="deleteBOBannerIncludeGoods"
parameterType="java.lang.Integer">
DELETE FROM GC_SHOP_GOODS_BANNER
WHERE 1=1
AND BANNER_INNB = #{bannerInnb}
</delete>
<!-- 배너 연결 상품 조회 -->
<select id="selectBOBannerIncludeGoodsCnt"
parameterType="com.wb.domainserver.domain.gcone.goods.banner.vo.BOBannerVO"
resultType="java.lang.Integer">
SELECT count(1)
FROM GC_SHOP_GOODS_BANNER
WHERE 1=1
AND BANNER_INNB = #{bannerInnb}
</select>
<!--배너 순서지정팝업조회-->
<select id="selectBOBannerOrdrPopup" parameterType="com.wb.domainserver.domain.gcone.goods.banner.vo.BOBannerVO" resultType="dataMap">
SELECT
GGB.BANNER_INNB,
GGB.SOPMAL_CD,
GGB.BANNER_NM,
GGB.EXPSRLC_DV, -- 상단, 하단
GGB.BANNER_ORDR
FROM
GC_GOODS_BANNER GGB
WHERE
1 = 1
AND GGB.USE_AT = 'Y'
AND GGB.SOPMAL_CD = #{sopmalCd}
AND(CASE WHEN GGB.EXPSRLC_DV_CD = '01' THEN 'Y'
WHEN GGB.EXPSRLC_DV_CD = '03' AND DATE_FORMAT(SYSDATE(), '%Y-%m-%d') BETWEEN GGB.EXPSR_BGN_DT AND GGB.EXPSR_END_DT THEN 'Y'
ELSE 'N' END )='Y' -- 노출구분이 01 이거나 노출예약이면서 노출기간이 오늘 기준안에 있으면 Y 미노출이면 N)
ORDER BY GGB.BANNER_ORDR ASC
</select>
<!--배너순서수정-->
<update id="updateBOBannerOrdr" parameterType="com.wb.domainserver.domain.gcone.goods.banner.vo.BOBannerVO">
UPDATE
GC_GOODS_BANNER GGB
SET
GGB.BANNER_ORDR = #{bannerOrdr},
GGB.UPDUSR = #{updusr},
GGB.UPDT_DT = SYSDATE()
WHERE 1=1
AND GGB.SOPMAL_CD = #{sopmalCd}
AND GGB.BANNER_INNB = #{bannerInnb}
</update>
</mapper>

View File

@@ -0,0 +1,108 @@
<?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.goods.cmnuse.mapper.BOCmnuseMapper">
<!-- 상품 공용정보 목록 조회 -->
<select id="selectBOCmnuseInfoList"
parameterType = "com.wb.domainserver.domain.gcone.goods.cmnuse.vo.BOCmnuseVO" >
SELECT
ROW_NUMBER() OVER(ORDER BY i.REGIST_DT ASC) RNUM
,i.CMNUSE_INFO_INNB as CMNUSE_INFO_INNB
,i.CMNUSE_INFO_SJ as CMNUSE_INFO_SJ
,DATE_FORMAT(i.REGIST_DT, '%Y-%m-%d %H:%i') as REGIST_DT
, IFNULL(fg.LINKGOODS, 0) as LINKGOODS
FROM GC_GOODS_INFO i
LEFT JOIN
(
SELECT
CMNUSE_INFO_INNB
,COUNT(GOODS_INNB) as LINKGOODS
,SOPMAL_CD
FROM GC_GOODS
WHERE 1=1
AND SOPMAL_CD = #{sopmalCd}
GROUP BY CMNUSE_INFO_INNB
) fg
ON i.CMNUSE_INFO_INNB = fg.CMNUSE_INFO_INNB
WHERE 1=1
AND i.SOPMAL_CD =#{sopmalCd}
AND i.USE_AT ='Y'
ORDER BY REGIST_DT DESC
</select>
<!-- 상품 공용정보 상세 조회 -->
<select id="selectBOCmnuseInfoDtl">
SELECT
CMNUSE_INFO_INNB,
SOPMAL_CD,
CMNUSE_INFO_SJ,
INFO_CN
FROM GC_GOODS_INFO
WHERE 1=1
AND CMNUSE_INFO_INNB = #{cmnuseInfoInnb}
AND USE_AT ='Y'
AND SOPMAL_CD = #{sopmalCd}
</select>
<!-- 상품 공용정보 등록 -->
<insert id="insertBOCmnuseInfo"
parameterType = "com.wb.domainserver.domain.gcone.goods.cmnuse.vo.BOCmnuseVO" >
<selectKey keyProperty="cmnuseInfoInnb" resultType="String" order="BEFORE">
SELECT IFNULL(MAX(CMNUSE_INFO_INNB), 0) + 1
FROM GC_GOODS_INFO
</selectKey>
INSERT INTO GC_GOODS_INFO
(
CMNUSE_INFO_INNB,
SOPMAL_CD,
<if test="bsnmInnb != null and bsnmInnb != ''">
BSNM_INNB,
</if>
<if test="cmnuseInfoSj != null and cmnuseInfoSj != ''">
CMNUSE_INFO_SJ,
</if>
<if test="infoCn != null and infoCn != ''">
INFO_CN,
</if>
USE_AT,
REGUSR,
REGIST_DT
)
VALUES (
#{cmnuseInfoInnb},
#{sopmalCd},
<if test="bsnmInnb != null and bsnmInnb != ''">
#{bsnmInnb},
</if>
<if test="cmnuseInfoSj != null and cmnuseInfoSj != ''">
#{cmnuseInfoSj},
</if>
<if test="infoCn != null and infoCn != ''">
#{infoCn},
</if>
'Y',
#{regusr},
SYSDATE()
)
</insert>
<!-- 상품 공용정보 수정 -->
<update id="updateBOCmnuseInfoDtl">
UPDATE GC_GOODS_INFO
SET CMNUSE_INFO_SJ = #{cmnuseInfoSj},
INFO_CN = #{infoCn},
UPDUSR = #{updusr},
UPDT_DT = now()
WHERE CMNUSE_INFO_INNB = #{cmnuseInfoInnb}
AND SOPMAL_CD = #{sopmalCd}
</update>
<!-- 상품 공용정보 삭제 -->
<update id="deleteBOCmnuseInfo">
update GC_GOODS_INFO
SET USE_AT = 'N'
WHERE CMNUSE_INFO_INNB = #{cmnuseInfoInnb}
AND SOPMAL_CD = #{sopmalCd}
</update>
</mapper>

View File

@@ -0,0 +1 @@
<?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.goods.ctgry.mapper.BOCtgryMapper"></mapper>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,298 @@
<?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.goods.goodsinfo.mapper.BOGoodsinfoMapper">
<!-- 상품 정보 목록 조회 -->
<select id="selectBOGoodsInfoList"
parameterType = "com.wb.domainserver.domain.gcone.goods.goodsinfo.vo.BOGoodsInfoVO"
resultType = "com.wb.domainserver.util.dataaccess.DataMap">
SELECT *
FROM (
SELECT
CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM, BM.*
FROM (
SELECT
GOODS_EXPSR_INFO_INNB,
GOODS_INFO_SETUP_SJ,
GOODS_NM_EXPSR_AT,
GOODS_NM_EXPSR_ORDR,
REPRSNT_DC_EXPSR_AT,
REPRSNT_DC_EXPSR_ORDR,
PRIC_EXPSR_AT,
PRIC_EXPSR_ORDR,
DLVY_EXPSR_AT,
DLVY_EXPSR_ORDR,
RVW_EVL_SCRE_EXPSR_AT,
RVW_EVL_SCRE_EXPSR_ORDR,
ICON_EXPSR_AT,
ICON_EXPSR_ORDR,
REGUSR,
REGIST_DT,
UPDUSR,
UPDT_DT
FROM
GC_GOODS_EXPSR_INFO
WHERE
USE_AT = 'Y'
) BM
WHERE
(@ROWNUM:=0)=0
ORDER BY RNUM DESC
) PV
WHERE 1=1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<select id="selectBOGoodsInfoListCnt"
parameterType="com.wb.domainserver.domain.gcone.goods.goodsinfo.vo.BOGoodsInfoVO" resultType="Integer">
SELECT
COUNT(1)
FROM
GC_GOODS_EXPSR_INFO
WHERE
USE_AT = 'Y'
</select>
<select id="selectBOGoodsInfoDtl"
parameterType = "com.wb.domainserver.domain.gcone.goods.goodsinfo.vo.BOGoodsInfoVO"
resultType = "com.wb.domainserver.util.dataaccess.DataMap">
SELECT
GOODS_EXPSR_INFO_INNB,
GOODS_INFO_SETUP_SJ,
GOODS_NM_EXPSR_AT,
GOODS_NM_EXPSR_ORDR,
REPRSNT_DC_EXPSR_AT,
REPRSNT_DC_EXPSR_ORDR,
PRIC_EXPSR_AT,
PRIC_EXPSR_ORDR,
DLVY_EXPSR_AT,
DLVY_EXPSR_ORDR,
RVW_EVL_SCRE_EXPSR_AT,
RVW_EVL_SCRE_EXPSR_ORDR,
ICON_EXPSR_AT,
ICON_EXPSR_ORDR,
REGUSR,
REGIST_DT,
UPDUSR,
UPDT_DT
FROM
GC_GOODS_EXPSR_INFO
WHERE
1=1
AND
SOPMAL_CD = #{sopmalCd}
</select>
<!-- 상품 정보 등록 -->
<insert id="insertBOGoodsInfo"
parameterType = "com.wb.domainserver.domain.gcone.goods.goodsinfo.vo.BOGoodsInfoVO" >
<selectKey keyProperty = "goodsExpsrInfoInnb" resultType = "String" order="BEFORE">
SELECT IFNULL(MAX(GOODS_EXPSR_INFO_INNB),0) + 1
FROM GC_GOODS_EXPSR_INFO
</selectKey>
INSERT
INTO
GC_GOODS_EXPSR_INFO (
GOODS_EXPSR_INFO_INNB,
SOPMAL_CD,
GOODS_INFO_SETUP_SJ,
<if test="goodsNmExpsrAt != null and goodsNmExpsrAt != ''">
GOODS_NM_EXPSR_AT,
</if>
<if test="goodsNmExpsrOrdr != null and goodsNmExpsrOrdr != ''">
GOODS_NM_EXPSR_ORDR,
</if>
<if test="reprsntDcExpsrAt != null and reprsntDcExpsrAt != ''">
REPRSNT_DC_EXPSR_AT,
</if>
<if test="reprsntDcExpsrOrdr != null and reprsntDcExpsrOrdr != ''">
REPRSNT_DC_EXPSR_ORDR,
</if>
<if test="pricExpsrAt != null and pricExpsrAt != ''">
PRIC_EXPSR_AT,
</if>
<if test="pricExpsrOrdr != null and pricExpsrOrdr != ''">
PRIC_EXPSR_ORDR,
</if>
<if test="dlvyExpsrAt != null and dlvyExpsrAt != ''">
DLVY_EXPSR_AT,
</if>
<if test="dlvyExpsrOrdr != null and dlvyExpsrOrdr != ''">
DLVY_EXPSR_ORDR,
</if>
<if test="rvwEvlScreExpsrAt != null and rvwEvlScreExpsrAt != ''">
RVW_EVL_SCRE_EXPSR_AT,
</if>
<if test="rvwEvlScreExpsrOrdr != null and rvwEvlScreExpsrOrdr != ''">
RVW_EVL_SCRE_EXPSR_ORDR,
</if>
<if test="iconExpsrAt != null and iconExpsrAt != ''">
ICON_EXPSR_AT,
</if>
<if test="iconExpsrOrdr != null and iconExpsrOrdr != ''">
ICON_EXPSR_ORDR,
</if>
USE_AT,
REGUSR,
REGIST_DT,
UPDUSR,
UPDT_DT
)
VALUES (
#{goodsExpsrInfoInnb},
#{sopmalCd},
#{goodsInfoSetupSj},
<if test="goodsNmExpsrAt != null and goodsNmExpsrAt != ''">
#{goodsNmExpsrAt},
</if>
<if test="goodsNmExpsrOrdr != null and goodsNmExpsrOrdr != ''">
#{goodsNmExpsrOrdr},
</if>
<if test="reprsntDcExpsrAt != null and reprsntDcExpsrAt != ''">
#{reprsntDcExpsrAt},
</if>
<if test="reprsntDcExpsrOrdr != null and reprsntDcExpsrOrdr != ''">
#{reprsntDcExpsrOrdr},
</if>
<if test="pricExpsrAt != null and pricExpsrAt != ''">
#{pricExpsrAt},
</if>
<if test="pricExpsrOrdr != null and pricExpsrOrdr != ''">
#{pricExpsrOrdr},
</if>
<if test="dlvyExpsrAt != null and dlvyExpsrAt != ''">
#{dlvyExpsrAt},
</if>
<if test="dlvyExpsrOrdr != null and dlvyExpsrOrdr != ''">
#{dlvyExpsrOrdr},
</if>
<if test="rvwEvlScreExpsrAt != null and rvwEvlScreExpsrAt != ''">
#{rvwEvlScreExpsrAt},
</if>
<if test="rvwEvlScreExpsrOrdr != null and rvwEvlScreExpsrOrdr != ''">
#{rvwEvlScreExpsrOrdr},
</if>
<if test="iconExpsrAt != null and iconExpsrAt != ''">
#{iconExpsrAt},
</if>
<if test="iconExpsrOrdr != null and iconExpsrOrdr != ''">
#{iconExpsrOrdr},
</if>
#{useAt},
#{regusr},
now(),
#{regusr},
now()
)
</insert>
<!-- 상품 정보 수정 -->
<update id="updateBOGoodsInfoDtl"
parameterType = "com.wb.domainserver.domain.gcone.bbs.bbs.vo.BOBbsVO">
UPDATE
GC_GOODS_EXPSR_INFO
SET
GOODS_INFO_SETUP_SJ = #{goodsInfoSetupSj},
<if test="goodsNmExpsrAt != null and goodsNmExpsrAt != ''">
GOODS_NM_EXPSR_AT = #{goodsNmExpsrAt},
</if>
<if test="goodsNmExpsrOrdr != null and goodsNmExpsrOrdr != ''">
GOODS_NM_EXPSR_ORDR = #{goodsNmExpsrOrdr},
</if>
<if test="reprsntDcExpsrAt != null and reprsntDcExpsrAt != ''">
REPRSNT_DC_EXPSR_AT = #{reprsntDcExpsrAt},
</if>
<if test="reprsntDcExpsrOrdr != null and reprsntDcExpsrOrdr != ''">
REPRSNT_DC_EXPSR_ORDR = #{reprsntDcExpsrOrdr},
</if>
<if test="pricExpsrAt != null and pricExpsrAt != ''">
PRIC_EXPSR_AT = #{pricExpsrAt},
</if>
<if test="pricExpsrOrdr != null and pricExpsrOrdr != ''">
PRIC_EXPSR_ORDR = #{pricExpsrOrdr},
</if>
<if test="dlvyExpsrAt != null and dlvyExpsrAt != ''">
DLVY_EXPSR_AT = #{dlvyExpsrAt},
</if>
<if test="dlvyExpsrOrdr != null and dlvyExpsrOrdr != ''">
DLVY_EXPSR_ORDR = #{dlvyExpsrOrdr},
</if>
<if test="rvwEvlScreExpsrAt != null and rvwEvlScreExpsrAt != ''">
RVW_EVL_SCRE_EXPSR_AT = #{rvwEvlScreExpsrAt},
</if>
<if test="rvwEvlScreExpsrOrdr != null and rvwEvlScreExpsrOrdr != ''">
RVW_EVL_SCRE_EXPSR_ORDR = #{rvwEvlScreExpsrOrdr},
</if>
<if test="iconExpsrAt != null and iconExpsrAt != ''">
ICON_EXPSR_AT = #{iconExpsrAt},
</if>
<if test="iconExpsrOrdr != null and iconExpsrOrdr != ''">
ICON_EXPSR_ORDR = #{iconExpsrOrdr},
</if>
UPDUSR = #{updusr},
UPDT_DT = now()
WHERE
1=1
AND
GOODS_EXPSR_INFO_INNB = #{goodsExpsrInfoInnb}
</update>
<!-- 상품정보 삭제 -->
<update id="updateBOGoodsInfoDel"
parameterType = "com.wb.domainserver.domain.gcone.goods.goodsinfo.vo.BOGoodsInfoVO">
UPDATE
GC_GOODS_EXPSR_INFO
SET
USE_AT = 'N'
WHERE
1=1
AND
GOODS_EXPSR_INFO_INNB = #{goodsExpsrInfoInnb}
</update>
<!-- 상품정보 삭제 -->
<!-- <delete id="deleteBOGoodsInfo"
parameterType = "com.wb.domainserver.domain.gcone.goods.goodsinfo.vo.BOGoodsInfoVO">
DELETE FROM
GC_GOODS_EXPSR_INFO
WHERE
1=1
AND
GOODS_EXPSR_INFO_INNB = #{goodsExpsrInfoInnb}
</delete> -->
<select id="selectBOGoodsInfoListNotLimit" resultType = "DataMap">
SELECT *
FROM (
SELECT
CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM, BM.*
FROM (
SELECT
GOODS_EXPSR_INFO_INNB,
GOODS_INFO_SETUP_SJ,
GOODS_NM_EXPSR_AT,
GOODS_NM_EXPSR_ORDR,
REPRSNT_DC_EXPSR_AT,
REPRSNT_DC_EXPSR_ORDR,
PRIC_EXPSR_AT,
PRIC_EXPSR_ORDR,
DLVY_EXPSR_AT,
DLVY_EXPSR_ORDR,
RVW_EVL_SCRE_EXPSR_AT,
RVW_EVL_SCRE_EXPSR_ORDR,
ICON_EXPSR_AT,
ICON_EXPSR_ORDR,
REGUSR,
REGIST_DT,
UPDUSR,
UPDT_DT
FROM
GC_GOODS_EXPSR_INFO
WHERE
USE_AT = 'Y'
) BM
WHERE
(@ROWNUM:=0)=0
ORDER BY RNUM DESC
) PV
WHERE 1=1
</select>
</mapper>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,400 @@
<?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.goods.subsvc.mapper.BOSubsvcMapper">
<!-- 구독서비스 목록 조회 -->
<select id="selectBOSubsvcList"
parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO"
resultType="dataMap">
<![CDATA[
SELECT GS.SUBSVC_INNB
, SUBSVC_STTUS_CD
, CONCAT(GS.SUBSVC_NM, ' (', GS.SUBSVC_GNR_NM, ')') AS SUBSVC_CONCAT_NM
FROM GC_SUBSVC GS
WHERE GS.SOPMAL_CD = 'SK'
AND GS.SUBSVC_STTUS_CD != '03'
AND GS.EXPSR_DV_CD IN ('01','03')
AND
CASE
WHEN EXPSR_DV_CD = '03'
THEN NOW() BETWEEN GS.EXPSR_BGN_DT AND GS.EXPSR_END_DT
ELSE 1=1
END
AND GS.USE_AT = 'Y'
]]>
</select>
<!-- 구독서비스 상세 조회 -->
<select id="selectBOSubsvcDetail"
parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO"
resultType="dataMap">
<![CDATA[
SELECT GS.SUBSVC_INNB
, GS.SOPMAL_CD
, GS.SUBSVC_NM
, GS.SUB_PD /*구독기간*/
, GS.SUBSVC_GNR /*기수*/
, (SELECT MAX(A.SUBSVC_GNR) + 1 FROM GC_SUBSVC A WHERE A.SOPMAL_CD = GS.SOPMAL_CD AND A.SUBSVC_NM = GS.SUBSVC_NM) AS SUBSVC_NEXT_GNR /*다음기수*/
, GS.SUBSVC_GNR_NM /*기수명*/
, CONCAT(GS.SUBSVC_NM, ' (', GS.SUBSVC_GNR_NM, ')') AS SUBSVC_CONCAT_NM
, GS.DLVY_CNT /*배송횟수*/
, GS.DLVY_CYCLE /*배송주기*/
, GS.SUBSVC_CT /*구독료*/
, GS.TME_DLVY_AMT /*1회배송비*/
, GS.CNSMRPRIC /*소비자가*/
, GS.SUBSVC_CT + (TME_DLVY_AMT * DLVY_CNT) as SLEPRIC /*실판매가=구독료+(1회배송비X배송횟수)*/
, ROUND((GS.CNSMRPRIC - (GS.SUBSVC_CT + (TME_DLVY_AMT * DLVY_CNT))) / NULLIF(GS.CNSMRPRIC, 0) * 100, 0) AS DSCNT_RAITO
, GS.INVNTRY_QY /*재고수량*/
, GS.USEFUL_INVNTRY_QY /*판매재고수량*/
, GS.INVNTRY_QY - GS.USEFUL_INVNTRY_QY AS AVAIL_QT /*가용제고*/
, GS.SUBSVC_STTUS_CD /*상태코드*/
, FN_GET_COMMCODE_NAME('GOODS_STTUS', GS.SUBSVC_STTUS_CD) AS SUBSVC_STTUS
, FN_GET_COMMCODE_NAME('EXPSR_DV', GS.EXPSR_DV_CD) AS EXPSR_DV
, GS.EXPSR_DV_CD /*노출구분코드*/
, GS.EXPSR_BGN_DT /*노출시작일시*/
, GS.EXPSR_END_DT /*노출종료일시*/
, GS.INVNTRY_POLICY_CD /*재고정책코드*/
, GS.AVLINV_LMTT_QY /*가용재고제한수량*/
, GS.SUBSVC_DC /*구독서비스 설명*/
, GS.IMG /*섬네일 이미지*/
, GS.MBL_SUBSVC_DC /*모바일 구독서비스 설명*/
, GS.MBL_SUBSVC_DC_PC_SAME_AT /*모바일 구독서비스 설명 PC동일여부*/
, GS.LAST_PROCS_ODR /*최종차수*/
, GS.DFT_GOODS_OPTN_INNB /*기본상품옵션고유번호*/
, 1 AS QY /*구독서비스 결제 수량*/
]]>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbrInnb)">
, #{mbrInnb} AS mbrInnb /*회원 고유번호*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbrDvCd)">
, #{mbrDvCd} AS mbrDvCd /*회원구분코드*/
</if>
<![CDATA[
FROM GC_SUBSVC GS
WHERE GS.SOPMAL_CD = #{sopmalCd}
AND GS.SUBSVC_INNB = #{subsvcInnb}
]]>
</select>
<!-- 관리자 구독서비스 목록 조회 -->
<select id="selectBOMngrSubsvcList" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO" resultType="dataMap">
SELECT *
FROM (
SELECT TB.*
, CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
FROM (
SELECT COUNT(*) OVER() AS TOT_CNT
, GS.SUBSVC_INNB
, GS.SOPMAL_CD
, CONCAT(GS.SUBSVC_NM, ' (', GS.SUBSVC_GNR_NM, ')') AS SUBSVC_CONCAT_NM
, GS.SUBSVC_NM
, GS.SUBSVC_GNR
, GS.SUBSVC_GNR_NM
, GS.DLVY_CNT
, GS.INVNTRY_QY
, GS.INVNTRY_QY - GS.USEFUL_INVNTRY_QY AS AVAIL_QT /*가용제고*/
, GS.SUBSVC_STTUS_CD
, FN_GET_COMMCODE_NAME('GOODS_STTUS', GS.SUBSVC_STTUS_CD) AS SUBSVC_STTUS /*구독서비스 상태*/
, FN_GET_COMMCODE_NAME('EXPSR_DV', GS.EXPSR_DV_CD) AS EXPSR_DV /*노출구분*/
, GS.SUBSVC_CT /*구독료*/
, GS.TME_DLVY_AMT /*1회배송비*/
, GS.CNSMRPRIC /*소비자가*/
, GS.SUBSVC_CT + (TME_DLVY_AMT * DLVY_CNT) as SELPRIC /*실판매가=구독료+(1회배송비X배송횟수)*/
, GS.IMG /*섬네일 이미지*/
, GS.LAST_PROCS_ODR /*최종차수*/
FROM GC_SUBSVC GS
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>
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchArrSubsvcSttusCd)">
/*판매상태*/
AND GS.SUBSVC_STTUS_CD IN
<foreach collection="srchArrSubsvcSttusCd" item="subsvcSttusCd" open="(" close=")" separator=",">
#{subsvcSttusCd}
</foreach>
</when>
</choose>
<if test="srchExpsrDvCd != null and srchExpsrDvCd != ''">
AND GS.EXPSR_DV_CD = #{srchExpsrDvCd} /*노출여부*/
</if>
ORDER BY
<choose>
<when test="sortDv == 'subsvcGnrAsc'">
GS.SUBSVC_NM ASC, SUBSVC_GNR ASC,
</when>
<otherwise>
GS.SUBSVC_NM DESC, SUBSVC_GNR DESC,
</otherwise>
</choose>
GS.SUBSVC_INNB ASC
) TB
WHERE (@ROWNUM:=0)=0
) PV
WHERE 1=1
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<!-- 관리자 구독서비스 조회조건 구독서비스 -->
<select id="selectBOMngrSrchSubsvcList" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO" resultType="dataMap">
SELECT GC.SUBSVC_NM, MIN(GC.SUBSVC_INNB) SUBSVC_INNB
FROM GC_SUBSVC GC
WHERE GC.SOPMAL_CD = #{sopmalCd}
AND GC.USE_AT = 'Y'
GROUP BY GC.SUBSVC_NM
ORDER BY SUBSVC_INNB ASC
</select>
<!-- 관리자 구독서비스 조회조건 구독서비스별 기수 -->
<select id="selectBOMngrSrchSubsvcGnrList" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO" resultType="dataMap">
<![CDATA[
SELECT GC.SUBSVC_GNR, CONCAT(GC.SUBSVC_GNR , '기 (', GC.SUBSVC_GNR_NM, ')') SUBSVC_GNR_NM
FROM GC_SUBSVC GC
WHERE GC.SUBSVC_NM = #{srchSelSubsvcNm}
AND GC.SOPMAL_CD = #{sopmalCd}
AND GC.USE_AT = 'Y'
GROUP BY GC.SUBSVC_GNR, GC.SUBSVC_GNR_NM
ORDER BY GC.SUBSVC_GNR ASC
]]>
</select>
<!--선택된 구독서비스 삭제(사용여부N처리)-->
<update id="deleteBOMngrSubsvc" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
UPDATE GC_SUBSVC
SET USE_AT = 'N'
,UPDUSR = #{updusr}
,UPDT_DT = NOW()
WHERE SOPMAL_CD = #{sopmalCd}
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(arrSubsvcInnb)">
AND SUBSVC_INNB IN
<foreach collection="arrSubsvcInnb" item="subsvcInnb" open="(" separator="," close=")">
#{subsvcInnb}
</foreach>
</when>
<otherwise>
AND 1=2
</otherwise>
</choose>
</update>
<!--선택된 구독서비스 수정-->
<update id="updateBOMngrSubsvc" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
UPDATE GC_SUBSVC
SET SOPMAL_CD = #{sopmalCd}
, SUBSVC_NM = #{subsvcNm}
, SUB_PD = #{subPd}
, SUBSVC_GNR_NM = #{subsvcGnrNm}
, DLVY_CNT = REPLACE(#{dlvyCnt},',','')
, DLVY_CYCLE = #{dlvyCycle}
, SUBSVC_CT = REPLACE(#{subsvcCt},',','')
, TME_DLVY_AMT = REPLACE(#{tmeDlvyAmt},',','')
, CNSMRPRIC = REPLACE(#{cnsmrpric},',','')
, INVNTRY_QY = REPLACE(#{invntryQy},',','')
, INVNTRY_POLICY_CD = #{invntryPolicyCd}
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(usefulInvntryQyInit, 'Y')">
, USEFUL_INVNTRY_QY = 0
</if>
, AVLINV_LMTT_QY = #{avlinvLmttQy}
, SUBSVC_STTUS_CD = #{subsvcSttusCd}
, EXPSR_DV_CD = #{expsrDvCd}
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrBgnDt)">
, EXPSR_BGN_DT = #{expsrBgnDt}
</when>
<otherwise>
, EXPSR_BGN_DT = null
</otherwise>
</choose>
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrEndDt)">
, EXPSR_END_DT = #{expsrEndDt}
</when>
<otherwise>
, EXPSR_END_DT = null
</otherwise>
</choose>
, SUBSVC_DC = #{subsvcDc}
, MBL_SUBSVC_DC = #{mblSubsvcDc}
, MBL_SUBSVC_DC_PC_SAME_AT = #{mblSubsvcDcPcSameAt}
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(img)">
, IMG = #{img}
</if>
, UPDUSR = #{updusr}
, UPDT_DT = NOW()
WHERE SUBSVC_INNB = #{subsvcInnb}
</update>
<!-- 구독서비스 등록 -->
<insert id="insertBOMngrSubsvc" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO" useGeneratedKeys="true" keyProperty="subsvcInnb" keyColumn="SUBSVC_INNB">
INSERT INTO GC_SUBSVC (SOPMAL_CD
, SUBSVC_NM
, SUB_PD
, SUBSVC_GNR
, SUBSVC_GNR_NM
, DLVY_CNT
, DLVY_CYCLE
, SUBSVC_CT
, TME_DLVY_AMT
, CNSMRPRIC
, INVNTRY_QY
, USEFUL_INVNTRY_QY
, INVNTRY_POLICY_CD
, AVLINV_LMTT_QY
, SUBSVC_STTUS_CD
, EXPSR_DV_CD
, EXPSR_BGN_DT
, EXPSR_END_DT
, SUBSVC_DC
, MBL_SUBSVC_DC
, MBL_SUBSVC_DC_PC_SAME_AT
, IMG
, DFT_GOODS_OPTN_INNB
, USE_AT
, REGUSR
, REGIST_DT)
VALUES (#{sopmalCd}
, #{subsvcNm}
, #{subPd}
, #{subsvcGnr}
, #{subsvcGnrNm}
, REPLACE(#{dlvyCnt},',','')
, #{dlvyCycle}
, REPLACE(#{subsvcCt},',','')
, REPLACE(#{tmeDlvyAmt},',','')
, REPLACE(#{cnsmrpric},',','')
, REPLACE(#{invntryQy},',','')
, 0
, #{invntryPolicyCd}
, #{avlinvLmttQy}
, #{subsvcSttusCd}
, #{expsrDvCd}
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrBgnDt)">
, #{expsrBgnDt}
</when>
<otherwise>
, null
</otherwise>
</choose>
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrEndDt)">
, #{expsrEndDt}
</when>
<otherwise>
, null
</otherwise>
</choose>
, #{subsvcDc}
, #{mblSubsvcDc}
, #{mblSubsvcDcPcSameAt}
, #{img}
, #{dftGoodsOptnInnb}
, 'Y'
, #{regusr}
, NOW()
)
</insert>
<!-- 구독서비스명 중복체크 -->
<select id="selectBOMngrSubsvcNmDupCheck" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO" resultType="int">
SELECT COUNT(*) CNT
FROM GC_SUBSVC GS
WHERE GS.SOPMAL_CD = #{sopmalCd}
AND GS.SUBSVC_NM = #{subsvcNm}
</select>
<!-- 구독서비스 주문에 따른 판매재고수량 수정 -->
<update id="updateSubsvcOrdrUsefulInvntryQy" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
<![CDATA[
UPDATE GC_SUBSVC GS
INNER JOIN (
SELECT
GO.SUBSVC_INNB,
COUNT(*) AS ORDR_QY
FROM GC_ORDER GO
WHERE GO.SOPMAL_CD = #{sopmalCd}
AND GO.ORDR_INNB = #{ordrInnb}
GROUP BY
GO.SUBSVC_INNB
) SUBQUERY
ON GS.SUBSVC_INNB = SUBQUERY.SUBSVC_INNB
SET GS.USEFUL_INVNTRY_QY = IFNULL(GS.USEFUL_INVNTRY_QY, 0) + SUBQUERY.ORDR_QY
WHERE GS.SUBSVC_INNB = SUBQUERY.SUBSVC_INNB
]]>
</update>
<!-- 구독서비스 환불에 따른 판매재고수량 수정 -->
<update id="updateSubsvcRefundUsefulInvntryQy" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
<![CDATA[
UPDATE GC_SUBSVC GS
INNER JOIN (
SELECT
GO.SUBSVC_INNB,
SUM(CASE WHEN GOR.REFUND_TY_CD = '01' THEN 1 ELSE 0 END) AS REFUND_QY
FROM GC_ORDER GO
INNER JOIN GC_ORDER_REFUND GOR
ON GO.ORDR_INNB = GOR.ORDR_INNB
WHERE GO.SOPMAL_CD = #{sopmalCd}
AND GO.ORDR_INNB = #{ordrInnb}
GROUP BY
GO.SUBSVC_INNB
) SUBQUERY
ON GS.SUBSVC_INNB = SUBQUERY.SUBSVC_INNB
SET GS.USEFUL_INVNTRY_QY = IFNULL(GS.USEFUL_INVNTRY_QY, 0) - SUBQUERY.REFUND_QY
WHERE GS.SUBSVC_INNB = SUBQUERY.SUBSVC_INNB
]]>
</update>
<!-- 구독서비스 주문무효에 따른 판매재고수량 수정 -->
<update id="updateSubsvcCancelOrderUsefulInvntryQy" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
<![CDATA[
UPDATE GC_SUBSVC GS
INNER JOIN (
SELECT
GO.SUBSVC_INNB,
COUNT(*) AS ORDR_QY
FROM GC_ORDER GO
WHERE GO.SOPMAL_CD = #{sopmalCd}
AND GO.ORDR_INNB = #{ordrInnb}
GROUP BY
GO.SUBSVC_INNB
) SUBQUERY
ON GS.SUBSVC_INNB = SUBQUERY.SUBSVC_INNB
SET GS.USEFUL_INVNTRY_QY = IFNULL(GS.USEFUL_INVNTRY_QY, 0) - SUBQUERY.ORDR_QY
WHERE GS.SUBSVC_INNB = SUBQUERY.SUBSVC_INNB
]]>
</update>
<!-- 판매재고수량 변경에 따른 구독서비스 상태 수정 -->
<update id="updateInvntryPolicySubsvcSttusChng" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
<![CDATA[
UPDATE GC_SUBSVC
SET SUBSVC_STTUS_CD =
CASE
WHEN INVNTRY_POLICY_CD = '02' THEN SUBSVC_STTUS_CD
ELSE
CASE
WHEN (INVNTRY_QY - IFNULL(USEFUL_INVNTRY_QY, 0)) > IFNULL(AVLINV_LMTT_QY, 0)
AND SUBSVC_STTUS_CD <> '03' THEN '01'
WHEN (INVNTRY_QY - IFNULL(USEFUL_INVNTRY_QY, 0)) <= IFNULL(AVLINV_LMTT_QY, 0)
AND SUBSVC_STTUS_CD <> '03' THEN '02'
ELSE SUBSVC_STTUS_CD
END
END
WHERE SUBSVC_INNB = #{subsvcInnb}
AND SOPMAL_CD = #{sopmalCd}
AND USE_AT = 'Y'
]]>
</update>
</mapper>