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>