- Add Docker Compose configurations for dev, prod, and standalone environments - Add database initialization scripts (init-db.sh, init-db-docker.sh) - Add enhanced start-docker-linux.sh with DB init support - Add comprehensive database initialization guide - Support for automatic dbexport.pgsql import on first run - Include safety checks for production environment
217 lines
6.4 KiB
XML
217 lines
6.4 KiB
XML
<?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="optionMng">
|
|
|
|
<select id="getOptionMngListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(CAST(TOTAL_CNT AS FLOAT)/#{COUNT_PER_PAGE})::numeric::integer as MAX_PAGE_SIZE
|
|
,TOTAL_CNT::integer
|
|
FROM (
|
|
SELECT COUNT(1)::FLOAT TOTAL_CNT
|
|
FROM (
|
|
SELECT OBJID FROM OPTION_MNG
|
|
WHERE 1=1
|
|
<if test="search_optionName != null and !''.equals(search_optionName)">
|
|
AND UPPER(OPTION_NAME) LIKE UPPER('%${search_optionName}%')
|
|
</if>
|
|
) T
|
|
) TT
|
|
WHERE 1=1
|
|
</select>
|
|
|
|
<select id="getOptionMngList" parameterType="map" resultType="map">
|
|
SELECT * FROM (
|
|
SELECT T.*,ROW_NUMBER() OVER (ORDER BY OPTION_NO ASC) AS RNUM
|
|
FROM (
|
|
SELECT OBJID --OBJID
|
|
,OPTION_NO --옵션번호(자동)
|
|
,OPTION_NAME --옵션이름
|
|
,OPTION_NAME_ENG --옵션이름 영문
|
|
,STD_CODE --표준코드
|
|
,OPTION_TYPE --옵셥타입
|
|
,TO_DATE(T.REG_DATE, 'YYYY-MM-DD') AS REG_DATE --등록일
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = T.WRITER) AS WRITER --등록자
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID::NUMERIC AND DOC_TYPE='optionMng01' AND UPPER(STATUS) = 'ACTIVE') AS FILE_CNT
|
|
,STATUS --상태
|
|
,CATEGORY
|
|
,CASE WHEN CATEGORY='mid'
|
|
THEN (SELECT OPTION_NAME FROM option_mng AS O WHERE O.OBJID = T.PARENT_OBJID)
|
|
WHEN CATEGORY='low'
|
|
THEN (SELECT OPTION_NAME FROM option_mng AS O WHERE O.OBJID = (SELECT PARENT_OBJID FROM option_mng AS O WHERE O.OBJID = T.PARENT_OBJID))
|
|
WHEN CATEGORY='high'
|
|
THEN OPTION_NAME
|
|
ELSE '' END AS HIGH_NAME
|
|
|
|
|
|
,CASE WHEN CATEGORY='low'
|
|
THEN (SELECT OPTION_NAME FROM option_mng AS O WHERE O.OBJID = T.PARENT_OBJID)
|
|
WHEN CATEGORY='mid'
|
|
THEN OPTION_NAME
|
|
ELSE '' END AS MID_NAME
|
|
|
|
|
|
,CASE WHEN CATEGORY='low'
|
|
THEN OPTION_NAME
|
|
ELSE '' END AS LOW_NAME
|
|
,PRICE
|
|
|
|
FROM OPTION_MNG AS T
|
|
WHERE 1=1
|
|
<if test="search_optionName != null and !''.equals(search_optionName)">
|
|
AND UPPER(OPTION_NAME) LIKE UPPER('%${search_optionName}%')
|
|
</if>
|
|
) T
|
|
) TT
|
|
WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END !='' and actionType != 'excel' ">
|
|
<![CDATA[ AND TT.RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_STRART!='' and actionType != 'excel' ">
|
|
<![CDATA[ AND TT.RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</select>
|
|
|
|
<select id="getOptionMngInfo" parameterType="map" resultType="map">
|
|
SELECT OBJID::NUMERIC --OBJID
|
|
,OPTION_NO --옵션번호(자동)
|
|
,OPTION_NAME --옵션이름
|
|
,OPTION_NAME_ENG --옵션이름 영문
|
|
,STD_CODE --표준코드
|
|
,OPTION_TYPE --옵셥타입
|
|
,TO_DATE(T.REG_DATE, 'YYYY-MM-DD') AS REG_DATE --등록일
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = T.WRITER) AS WRITER --등록자
|
|
,STATUS --상태
|
|
,PARENT_OBJID
|
|
,CATEGORY
|
|
,CASE WHEN CATEGORY='mid'
|
|
THEN (SELECT OBJID::VARCHAR FROM option_mng AS O WHERE O.OBJID::VARCHAR = T.PARENT_OBJID)
|
|
WHEN CATEGORY='low'
|
|
THEN (SELECT PARENT_OBJID FROM option_mng AS O WHERE O.OBJID::VARCHAR = T.PARENT_OBJID)
|
|
ELSE '' END AS HIGH_CD
|
|
,CASE WHEN CATEGORY='low'
|
|
THEN (SELECT OBJID::VARCHAR FROM option_mng AS O WHERE O.OBJID::VARCHAR = T.PARENT_OBJID)
|
|
ELSE '' END AS MID_CD
|
|
,PRICE
|
|
FROM OPTION_MNG AS T
|
|
WHERE T.OBJID = #{objId}::varchar
|
|
</select>
|
|
|
|
<update id="saveOptionMngInfo" parameterType="map">
|
|
INSERT INTO OPTION_MNG
|
|
(
|
|
OBJID
|
|
,OPTION_NO
|
|
,OPTION_NAME
|
|
,OPTION_NAME_ENG
|
|
,STD_CODE
|
|
,OPTION_TYPE
|
|
,REG_DATE
|
|
,WRITER
|
|
,STATUS
|
|
,CATEGORY
|
|
,PARENT_OBJID
|
|
<if test="price != null and !''.equals(price)">
|
|
,PRICE
|
|
</if>
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId }
|
|
, (SELECT 'OPT-'||LPAD((SELECT (COUNT(1)+1) FROM OPTION_MNG AS T)::VARCHAR ,4,'0'))
|
|
, #{option_name }
|
|
, #{option_name_eng }
|
|
, #{std_code }
|
|
, #{option_type }
|
|
, NOW()
|
|
, #{userId }
|
|
, #{status }
|
|
, #{category}
|
|
, #{parent_objid}
|
|
<if test="price != null and !''.equals(price)">
|
|
, #{price}
|
|
</if>
|
|
)
|
|
ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
OPTION_NO = #{option_no }
|
|
,OPTION_NAME = #{option_name }
|
|
,OPTION_NAME_ENG = #{option_name_eng }
|
|
,STD_CODE = #{std_code }
|
|
,OPTION_TYPE = #{option_type }
|
|
,REG_DATE = NOW()
|
|
,WRITER = #{userId }
|
|
,STATUS = #{status }
|
|
,CATEGORY = #{category}
|
|
,PARENT_OBJID= #{parent_objid}
|
|
<if test="price != null and !''.equals(price)">
|
|
,PRICE = #{price}
|
|
</if>
|
|
|
|
</update>
|
|
|
|
<update id="deleteOptionMngInfo" parameterType="map">
|
|
DELETE FROM OPTION_MNG WHERE OBJID = #{objId}
|
|
</update>
|
|
|
|
|
|
|
|
<insert id="insertOptionPriceHistory" parameterType="map">
|
|
INSERT INTO OPTION_PRICE_HISTORY
|
|
(
|
|
OBJID
|
|
,OPTION_OBJID
|
|
,REG_DATE
|
|
,PRICE
|
|
) VALUES (
|
|
#{priceobjid}
|
|
,#{objId}
|
|
,now()
|
|
,#{price}
|
|
)
|
|
</insert>
|
|
|
|
|
|
<select id="getOptionPriceHistoryCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(CAST(TOTAL_CNT AS FLOAT)/#{COUNT_PER_PAGE})::numeric::integer as MAX_PAGE_SIZE
|
|
,TOTAL_CNT::integer
|
|
FROM (
|
|
SELECT COUNT(1)::FLOAT TOTAL_CNT
|
|
FROM (
|
|
SELECT OBJID FROM OPTION_PRICE_HISTORY
|
|
WHERE OPTION_OBJID = #{objId}
|
|
) T
|
|
) TT
|
|
WHERE 1=1
|
|
</select>
|
|
|
|
<select id="getOptionPriceHistory" parameterType="map" resultType="map">
|
|
SELECT * FROM (
|
|
SELECT T.*,ROW_NUMBER() OVER (ORDER BY REG_DATE DESC) AS RNUM
|
|
FROM (
|
|
SELECT OBJID
|
|
,TO_DATE(T.REG_DATE, 'YYYY-MM-DD') AS REGDATE
|
|
,REG_DATE
|
|
,PRICE
|
|
FROM OPTION_PRICE_HISTORY AS T
|
|
WHERE OPTION_OBJID = #{objId}
|
|
) T
|
|
) TT
|
|
WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END !='' and actionType != 'excel' ">
|
|
<![CDATA[ AND TT.RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_STRART!='' and actionType != 'excel' ">
|
|
<![CDATA[ AND TT.RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</select>
|
|
|
|
|
|
<update id="deleteOptionHistoryPriceInfo" parameterType="map">
|
|
DELETE FROM OPTION_PRICE_HISTORY WHERE OBJID = #{objId}
|
|
</update>
|
|
|
|
|
|
</mapper>
|
|
|