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,426 @@
<?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.admin.sys.ctgry.mapper.BOMaCtgryMapper">
<!-- 카테고리 목록 조회-->
<select id="selectBOCtgryManage"
parameterType="com.wb.domainserver.domain.admin.sys.ctgry.vo.BOMaCtgryVO"
resultType="dataMap">
SELECT
CTGRY_ID
, UPPER_CTGRY_ID
, SOPMAL_CD
, CTGRY_NM
, CTGRY_DEPTH AS DEPTH
, SORT_ORDR
, CTGRY_DV_CD
, GOODS_CTGRY_EXPSR_AT
, MENU_EXPSR_AT
, GNB_EXPSR_AT
, PGE_EXPSR_AT
, EXPSR_CD
, DATE_FORMAT(EXPSR_BGN_DT, '%Y-%m-%d') AS EXPSR_BGN_DT
, DATE_FORMAT(EXPSR_END_DT, '%Y-%m-%d') AS EXPSR_END_DT
, URL_DV_CD
, URL
, ORGINL_FIL_NM
, SYS_FIL_NM
, FIL_MG
, FIL_TY
, FIL_COURS
, USE_AT
, CONCAT(SOPMAL_CD,'_',CTGRY_ID) AS ID
, CTGRY_NM AS TEXT
, (CASE WHEN CTGRY_DEPTH = 1 THEN '#'
ELSE CONCAT(SOPMAL_CD,'_',UPPER_CTGRY_ID)
END) AS PARENT
, BANNER_URL
, MENU_CHR_COLOR
FROM GC_CATEGORY GC
WHERE USE_AT = 'Y'
AND (
GC.UPPER_CTGRY_ID IS NULL OR
(
SELECT PARENT.USE_AT
FROM GC_CATEGORY PARENT
WHERE CONCAT(PARENT.SOPMAL_CD,'_',PARENT.CTGRY_ID) = CONCAT(GC.SOPMAL_CD,'_',GC.UPPER_CTGRY_ID)
) = 'Y')
ORDER BY SORT_ORDR ASC
</select>
<!-- 카테고리 상세 조회-->
<select id="selectBOCtgry"
parameterType="com.wb.domainserver.domain.admin.sys.ctgry.vo.BOMaCtgryVO"
resultType="dataMap">
<![CDATA[
SELECT *
FROM GC_CATEGORY
WHERE 1=1
]]>
</select>
<!-- 카테고리 저장-->
<insert id="insertBOCtgryManage"
parameterType="com.wb.domainserver.domain.admin.sys.ctgry.vo.BOMaCtgryVO">
INSERT INTO GC_CATEGORY (
CTGRY_ID
, UPPER_CTGRY_ID
, SOPMAL_CD
, CTGRY_NM
, CTGRY_DEPTH
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sortOrdr)">
, SORT_ORDR
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ctgryDvCd)">
, CTGRY_DV_CD
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(goodsCtgryExpsrAt)">
, GOODS_CTGRY_EXPSR_AT
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(menuExpsrAt)">
, MENU_EXPSR_AT
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(gnbExpsrAt)">
, GNB_EXPSR_AT
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(pgeExpsrAt)">
, PGE_EXPSR_AT
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrCd)">
, EXPSR_CD
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrBgnDt)">
, EXPSR_BGN_DT
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrEndDt)">
, EXPSR_END_DT
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(urlDvCd)">
, URL_DV_CD
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(url)">
, URL
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(orginlFilNm)">
, ORGINL_FIL_NM /*원본파일명*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sysFilNm)">
, SYS_FIL_NM /*시스템파일명*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(filMg)">
, FIL_MG /*파일크기*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(filTy)">
, FIL_TY /*파일타입*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(filCours)">
, FIL_COURS /*파일경로*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(bannerUrl)">
, BANNER_URL
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(menuChrColor)">
,MENU_CHR_COLOR
</if>
, USE_AT
, REGUSR
, REGIST_DT
, UPDUSR
, UPDT_DT
) VALUES (
#{ctgryId}
, #{upperCtgryId}
, #{sopmalCd}
, #{ctgryNm}
, #{ctgryDepth}
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sortOrdr)">
, #{sortOrdr}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ctgryDvCd)">
, #{ctgryDvCd}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(goodsCtgryExpsrAt)">
, #{goodsCtgryExpsrAt}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(menuExpsrAt)">
, #{menuExpsrAt}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(gnbExpsrAt)">
, #{gnbExpsrAt}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(pgeExpsrAt)">
, #{pgeExpsrAt}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrCd)">
, #{expsrCd}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrBgnDt)">
, #{expsrBgnDt}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrEndDt)">
, #{expsrEndDt}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(urlDvCd)">
, #{urlDvCd}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(url)">
, #{url}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(orginlFilNm)">
, #{orginlFilNm} /*원본파일명*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sysFilNm)">
, #{sysFilNm} /*시스템파일명*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(filMg)">
, #{filMg} /*파일크기*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(filTy)">
, #{filTy} /*파일타입*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(filCours)">
, #{filCours} /*파일경로*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(bannerUrl)">
, #{bannerUrl}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(menuChrColor)">
, #{menuChrColor} /*메뉴 글자색*/
</if>
, 'Y'
, #{regusr}
, NOW()
, #{regusr}
, NOW()
)
</insert>
<!-- 카테고리 저장-->
<update id="updateBOCtgryManage"
parameterType="com.wb.domainserver.domain.admin.sys.ctgry.vo.BOMaCtgryVO">
UPDATE GC_CATEGORY
SET
CTGRY_NM = #{ctgryNm}, /*카테고리명*/
SORT_ORDR = #{sortOrdr}, /*순서*/
CTGRY_DV_CD = #{ctgryDvCd}, /*카테고리구분코드*/
GOODS_CTGRY_EXPSR_AT = #{goodsCtgryExpsrAt}, /*상품카테고리노출여부*/
MENU_EXPSR_AT = #{menuExpsrAt}, /*메뉴노출여부*/
GNB_EXPSR_AT = #{gnbExpsrAt}, /*GNB 노출여부*/
PGE_EXPSR_AT = #{pgeExpsrAt}, /*페이지 노출여부*/
EXPSR_CD = #{expsrCd}, /*노출구분*/
MENU_CHR_COLOR = #{menuChrColor},
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrBgnDt)">
EXPSR_BGN_DT = #{expsrBgnDt}, /*노출구분 시작일자*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrEndDt)">
EXPSR_END_DT = #{expsrEndDt}, /*노출구분 종료자*/
</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},
URL_DV_CD = #{urlDvCd},
URL = #{url}, /*URL*/
UPDUSR = #{updusr},
UPDT_DT = NOW()
WHERE CTGRY_ID = #{ctgryId}
AND SOPMAL_CD = #{sopmalCd}
</update>
<!-- 정렬순서 업데이트 -->
<update id="updateBOCtgrySortOrdr" parameterType="com.wb.domainserver.domain.admin.sys.ctgry.vo.BOMaCtgryVO">
UPDATE GC_CATEGORY
SET SORT_ORDR = #{sortOrdr},
UPDUSR = #{updusr},
UPDT_DT = NOW()
WHERE CTGRY_ID = #{ctgryId}
AND SOPMAL_CD = #{sopmalCd}
</update>
<!-- 카테고리 삭제 -->
<update id="deleteBOCtgryManage" parameterType="com.wb.domainserver.domain.admin.sys.ctgry.vo.BOMaCtgryVO">
<![CDATA[
UPDATE GC_CATEGORY
SET USE_AT = 'N'
, UPDUSR = #{updusr}
, UPDT_DT = NOW()
WHERE 1=1
AND CTGRY_ID = #{ctgryId}
AND SOPMAL_CD = #{sopmalCd}
]]>
</update>
<select id="selectCtgryId" parameterType="com.wb.domainserver.domain.admin.sys.ctgry.vo.BOMaCtgryVO" resultType="java.lang.Integer">
SELECT IFNULL(MAX(CTGRY_ID), 0)+1
FROM GC_CATEGORY
WHERE SOPMAL_CD = #{sopmalCd}
</select>
<!--관리자 > 카테고리 조회-->
<select id="selectGoodsCategoryList" parameterType="com.wb.domainserver.domain.gcone.goods.goods.vo.BOGoodsVO" resultType="dataMap">
SELECT GC.CTGRY_ID
, IFNULL(GC.UPPER_CTGRY_ID, 0) AS UPPER_CTGRY_ID
, GC.CTGRY_DEPTH
, GC.CTGRY_NM
FROM GC_CATEGORY GC
WHERE 1=1
AND GC.USE_AT = 'Y'
AND GC.GOODS_CTGRY_EXPSR_AT = 'Y'
AND GC.SOPMAL_CD = #{sopmalCd}
AND IFNULL(GC.UPPER_CTGRY_ID, 0) = #{upperCtgryId}
ORDER BY GC.CTGRY_ID
, GC.CTGRY_DEPTH
, GC.UPPER_CTGRY_ID
, GC.SORT_ORDR
</select>
<!--사용자 > 카테고리 상품 목록조회-->
<select id="selectGoodsSopmalCatgryList" parameterType="com.wb.domainserver.domain.gcone.goods.goods.vo.BOGoodsVO" resultType="dataMap">
WITH RECURSIVE CATEGORY_PATH AS (
SELECT
FC.CTGRY_DEPTH,
FC.CTGRY_ID AS BASE_CTGRY_ID,
FC.CTGRY_NM AS BASE_CTGRY_NM,
FC.CTGRY_ID,
FC.UPPER_CTGRY_ID,
FC.CTGRY_NM,
FC.SOPMAL_CD,
FC.SORT_ORDR
FROM GC_CATEGORY FC
WHERE
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ctgryId)">
FC.CTGRY_ID = #{ctgryId}
</when>
<otherwise>
FC.CTGRY_CD = #{code}
</otherwise>
</choose>
AND FC.SOPMAL_CD = #{sopmalCd}
AND FC.USE_AT = 'Y'
AND FC.PGE_EXPSR_AT = 'Y'
UNION ALL
SELECT
C.CTGRY_DEPTH,
P.BASE_CTGRY_ID,
P.BASE_CTGRY_NM,
C.CTGRY_ID,
C.UPPER_CTGRY_ID,
C.CTGRY_NM,
C.SOPMAL_CD,
C.SORT_ORDR
FROM GC_CATEGORY C
INNER JOIN CATEGORY_PATH P
ON C.UPPER_CTGRY_ID = P.CTGRY_ID
AND C.SOPMAL_CD = P.SOPMAL_CD
WHERE C.SOPMAL_CD = #{sopmalCd}
AND C.PGE_EXPSR_AT = 'Y'
AND C.USE_AT = 'Y'
)
SELECT
P.CTGRY_DEPTH,
P.CTGRY_ID,
P.UPPER_CTGRY_ID,
P.CTGRY_NM,
P.SOPMAL_CD,
P.BASE_CTGRY_NM,
P.BASE_CTGRY_ID,
P.SORT_ORDR
FROM
CATEGORY_PATH P
WHERE 1=1
AND P.CTGRY_ID != '2'
AND P.UPPER_CTGRY_ID = 2 OR P.UPPER_CTGRY_ID = #{ctgryId} OR P.CTGRY_ID = #{ctgryId}
ORDER BY
CTGRY_DEPTH, SORT_ORDR ASC
</select>
<!--사용자 > 상품 목록 > 카테고리 배너 조회-->
<select id="selectGoodsSopmalCatgryBanner" parameterType="com.wb.domainserver.domain.gcone.goods.goods.vo.BOGoodsVO" resultType="dataMap">
SELECT
GC.SOPMAL_CD
,GC.FIL_COURS
,GC.ORGINL_FIL_NM
,GC.SYS_FIL_NM
,BANNER_URL
FROM
GC_CATEGORY GC
WHERE
1 = 1
AND GC.USE_AT = 'Y'
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ctgryId)">
AND GC.CTGRY_ID = #{ctgryId}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(code)">
AND GC.CTGRY_CD = #{code}
</if>
AND GC.SOPMAL_CD = #{sopmalCd}
</select>
<select id="selectBOCtgryOrdrCnt" parameterType="com.wb.domainserver.domain.admin.sys.ctgry.vo.BOMaCtgryVO" resultType="java.lang.Integer">
SELECT CTGRY_ID
FROM GC_CATEGORY
WHERE SOPMAL_CD = #{sopmalCd}
AND USE_AT = 'Y'
AND UPPER_CTGRY_ID = #{upperCtgryId}
AND SORT_ORDR = #{sortOrdr};
</select>
<update id="updateBOCtgryOrdr" parameterType="dataMap">
<selectKey keyProperty="sortOrdr" resultType="java.lang.Integer" order="BEFORE">
SELECT IFNULL(MAX(SORT_ORDR),0) + 1
FROM GC_CATEGORY
WHERE SOPMAL_CD = #{sopmalCd}
AND USE_AT = 'Y'
AND UPPER_CTGRY_ID = #{upperCtgryId}
</selectKey>
UPDATE GC_CATEGORY
SET SORT_ORDR = #{sortOrdr}
WHERE SOPMAL_CD = #{sopmalCd}
AND CTGRY_ID = #{ctgryId}
</update>
<select id="selectBOCtgryGoodsListInqurePopup" parameterType="com.wb.domainserver.domain.admin.sys.ctgry.vo.BOMaCtgryVO" resultType="dataMap">
SELECT GCL.GOODS_INNB, GCL.GOODS_ORDR, GG.GOODS_NM, GCL.CTGRY_GOODS_ESNTL_NB
FROM GC_CATEGORY_LINK GCL
LEFT JOIN GC_GOODS GG
ON GCL.GOODS_INNB = GG.GOODS_INNB AND GCL.SOPMAL_CD = GG.SOPMAL_CD
WHERE GCL.SOPMAL_CD = #{sopmalCd}
AND GCL.CTGRY_ID = #{ctgryId}
ORDER BY GOODS_ORDR ASC
</select>
<!-- 카테고리 상품 조회 -->
<update id="updateBOCtgryGoodsOrdr" parameterType="com.wb.domainserver.domain.admin.sys.ctgry.vo.BOMaCtgryVO">
UPDATE GC_CATEGORY_LINK
SET GOODS_ORDR = #{goodsOrdr}
WHERE 1=1
AND CTGRY_GOODS_ESNTL_NB = #{ctgryGoodsEsntlNb}
</update>
<!-- 쇼핑몰 카테고리 리스트 -->
<select id="selectBOSopmalCtgry" parameterType="com.wb.domainserver.domain.admin.sys.menu.vo.BOMaMenuVO" resultType="dataMap">
SELECT
CTGRY_ID, SOPMAL_CD, CTGRY_NM
FROM GC_CATEGORY
WHERE USE_AT = 'Y'
AND CTGRY_DEPTH = '2'
AND SOPMAL_CD = #{sopmalCd}
</select>
</mapper>