
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
<?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">
<!--
작성자 : takensoft
작성일 : 2024.04.09
내 용 : 공통코드 관련
-->
<mapper namespace="com.takensoft.cms.codeManage.dao.CodeManageDAO">
<!--
작성자 : takensoft
작성일 : 2024.04.09
내 용 : 공통코드 중복 확인
-->
<select id="findByCheckCd" resultType="boolean">
SELECT COUNT(cd)
FROM cd_mng
WHERE cd = #{cd}
<if test="originCd != null and originCd != ''">
AND cd != #{originCd}
</if>
</select>
<!--
작성자 : takensoft
작성일 : 2024.04.09
내 용 : 코드 등록
-->
<insert id="save" parameterType="CodeManageVO">
INSERT INTO cd_mng (
cd
, up_cd
, cd_nm
, cd_vl
, cd_expln
, cd_grd
, cd_sn
, use_yn
, sys_pvsn_yn
, rgtr
, reg_dt
) VALUES (
#{cd}
, #{upCd}
, #{cdNm}
, #{cdVl}
, #{cdExpln}
, #{cdGrd}
, #{cdSn}
, 'Y'
, 1
, #{rgtr}
, NOW()
)
</insert>
<!--
작성자 : takensoft
작성일 : 2024.04.09
내 용 : 코드 깊이 조회
-->
<select id="findByCdGrd" parameterType="String" resultType="Integer">
SELECT cd_grd
FROM cd_mng
WHERE cd = #{upCd}
</select>
<!--
작성자 : takensoft
작성일 : 2024.04.09
내 용 : 코드 순서 조회
-->
<select id="findByCdSn" parameterType="String" resultType="Integer">
SELECT COALESCE(MAX(cd_sn), 0)
FROM cd_mng
WHERE use_yn = 'Y'
<choose>
<when test="upCd != null and upCd != ''">
AND up_cd = #{upCd}
</when>
<otherwise>
AND up_cd IS NULL
</otherwise>
</choose>
</select>
<sql id="selectCd">
SELECT cd
, up_cd
, cd_nm
, cd_vl
, cd_expln
, cd_grd
, cd_sn
, use_yn
, sys_pvsn_yn
, rgtr
, TO_CHAR(reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
, mdfr
, TO_CHAR(mdfcn_dt, 'YYYY-MM-DD HH24:MI') AS mdfcn_dt
FROM cd_mng
</sql>
<!--
작성자 : takensoft
작성일 : 2024.04.09
내 용 : 최상위 코드 조회 [관리자용]
-->
<select id="findTopCd" resultType="CodeManageVO">
<include refid="selectCd" />
WHERE up_cd IS NULL
ORDER BY cd_sn
</select>
<!--
작성자 : takensoft
작성일 : 2024.04.09
내 용 : 하위 코드 조회 [관리자용]
-->
<select id="findChildCd" parameterType="String" resultType="CodeManageVO">
<include refid="selectCd" />
WHERE up_cd = #{cd}
<if test="type =='user'">
AND use_yn = 'Y'
</if>
ORDER BY cd_sn
</select>
<!-- <!–-->
<!-- 작성자 : takensoft-->
<!-- 작성일 : 2024.04.09-->
<!-- 내 용 : 하위 코드 조회 [사용자용]-->
<!-- –>-->
<!-- <select id="findChildCdUser" parameterType="String" resultType="CodeManageVO">-->
<!-- <include refid="selectCd" />-->
<!-- WHERE up_cd = #{cd}-->
<!-- AND use_yn = 'Y'-->
<!-- ORDER BY cd_sn-->
<!-- </select>-->
<!--
작성자 : takensoft
작성일 : 2024.04.09
내 용 : 코드 상세 조회
-->
<select id="findByCd" parameterType="String" resultType="CodeManageVO">
SELECT cm.cd
, cm.up_cd
, cm2.cd_nm AS up_cd_nm
, cm.cd_nm
, cm.cd_vl
, cm.cd_expln
, cm.cd_grd
, cm.cd_sn
, cm.use_yn
, cm.sys_pvsn_yn
, cm.rgtr
, TO_CHAR(cm.reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
, cm.mdfr
, TO_CHAR(cm.mdfcn_dt, 'YYYY-MM-DD HH24:MI') AS mdfcn_dt
FROM cd_mng cm
LEFT JOIN cd_mng cm2
ON cm.up_cd = cm2.cd
WHERE cm.cd = #{cd}
</select>
<!--
작성자 : takensoft
작성일 : 2024.04.15
내 용 : 코드 수정
-->
<update id="update" parameterType="CodeManageVO">
UPDATE cd_mng
SET cd = #{cd}
, up_cd = #{upCd}
, cd_nm = #{cdNm}
, cd_vl = #{cdVl}
, cd_expln = #{cdExpln}
, cd_grd = #{cdGrd}
, cd_sn = #{cdSn}
, use_yn = #{useYn}
, mdfr = #{mdfr}
, mdfcn_dt = NOW()
WHERE cd = #{originCd}
</update>
<!--
작성자 : takensoft
작성일 : 2024.04.26
내 용 : 상위코드가 수정됨에 따라 하위코드의 상위코드값 변경
-->
<!-- <update id="updateUpCd" parameterType="CodeManageVO">-->
<!-- UPDATE cd_mng-->
<!-- SET up_cd = #{cd}-->
<!-- WHERE up_cd = #{originCd}-->
<!-- </update>-->
<!--
작성자 : takensoft
작성일 : 2024.04.23
내 용 : 코드 삭제
-->
<delete id="deleteCd" parameterType="String">
WITH RECURSIVE CodeHierarchy AS (
SELECT cd
, up_cd
FROM cd_mng
WHERE cd = #{cd}
UNION ALL
SELECT cm.cd
, cm.up_cd
FROM cd_mng cm
JOIN CodeHierarchy ch
ON cm.up_cd = ch.cd
)
DELETE FROM cd_mng WHERE cd IN (SELECT cd FROM CodeHierarchy)
</delete>
<!-- 공통코드 관리(관리자 페이지 Tree 호출 전용) -->
<sql id="selectNode">
SELECT cd AS id
, up_cd AS up_id
, cd_nm AS nm
FROM cd_mng
</sql>
<select id="findByTopNode" resultType="HierachyVO">
<include refid="selectNode" />
WHERE up_cd IS NULL
ORDER BY cd_sn
</select>
<select id="findChildNode" parameterType="String" resultType="HierachyVO">
<include refid="selectNode" />
WHERE up_cd = #{id}
ORDER BY cd_sn
</select>
<!--
작성자 : 박정하
작성일 : 2024.05.10
내 용 : 공통 코드 정보 수정 (hierachyVO 사용)
-->
<update id="codeUpdateByHierachy" parameterType="CodeManageVO">
UPDATE cd_mng
SET up_cd = #{upCd}
, cd_grd = #{cdGrd}
, cd_sn = #{cdSn}
, mdfr = #{mdfr}
, mdfcn_dt = NOW()
WHERE cd = #{cd}
</update>
</mapper>