feat: Refactor monolith to microservices architecture

This commit is contained in:
jade
2026-07-05 17:27:44 +09:00
parent 367a47516d
commit 10f3f0513d
200 changed files with 541 additions and 1789 deletions

View File

@@ -0,0 +1,193 @@
<?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="io.shinhanlife.axhub.biz.so.atm.domain.repository.AccessMgmtMapper">
<resultMap id="roleResultMap" type="io.shinhanlife.axhub.biz.so.atm.dto.RoleListOutDto">
<result column="SYST_ID" property="systId"/>
<result column="ROLE_NO" property="roleNo"/>
<result column="ROLE_NM" property="roleNm"/>
<result column="ROLE_DS" property="roleDs"/>
<result column="PUSE_YN" property="puseYn"/>
</resultMap>
<resultMap id="athrItemResultMap" type="io.shinhanlife.axhub.biz.so.atm.dto.AthrItemOutDto">
<result column="RESOURCE_ID" property="resourceId"/>
<result column="RESOURCE_NM" property="resourceNm"/>
<result column="RESOURCE_DS" property="resourceDs"/>
<result column="TYPE_CODE" property="typeCode"/>
</resultMap>
<!-- 역할 목록 조회 -->
<select id="selectRoles" parameterType="io.shinhanlife.axhub.biz.so.atm.dto.RoleListInDto"
resultMap="roleResultMap">
SELECT
SYST_ID,
ROLE_NO,
ROLE_NM,
ROLE_DS,
PUSE_YN
FROM
S_EIAM_TIS.AA_ROLE
<where>
<if test="systId != null and systId != ''">
AND SYST_ID = #{systId}
</if>
<if test="puseYn != null and puseYn != ''">
AND PUSE_YN = #{puseYn}
</if>
<if test="keyword != null and keyword != ''">
AND ROLE_NM LIKE '%' || #{keyword} || '%'
</if>
</where>
ORDER BY ROLE_NM ASC
</select>
<!-- Tool 마스터 전체 조회 -->
<select id="selectAllTools" resultMap="athrItemResultMap">
SELECT
TOOL_ID AS RESOURCE_ID,
TOOL_NM AS RESOURCE_NM,
TOOL_DS AS RESOURCE_DS,
TOOL_TYPE_CD AS TYPE_CODE
FROM
AX_TOOL_MST
WHERE
PUSE_YN = 'Y'
ORDER BY
TOOL_NM ASC
</select>
<!-- 지식 마스터 전체 조회 -->
<select id="selectAllKnwls" resultMap="athrItemResultMap">
SELECT
KNWL_ID AS RESOURCE_ID,
KNWL_NM AS RESOURCE_NM,
KNWL_DS AS RESOURCE_DS,
KNWL_TYPE_CD AS TYPE_CODE
FROM
AX_KNWL_MST
WHERE
PUSE_YN = 'Y'
ORDER BY
KNWL_NM ASC
</select>
<!-- 역할에 부여된 Tool ID 목록 -->
<select id="selectGrantedToolIds" parameterType="io.shinhanlife.axhub.biz.so.atm.dto.AthrSearchInDto"
resultType="string">
SELECT
TOOL_ID
FROM
AX_ROLE_TOOL_ATHR
WHERE
SYST_ID = #{systId}
AND ROLE_NO = #{roleNo}
AND PUSE_YN = 'Y'
</select>
<!-- 역할에 부여된 지식 ID 목록 -->
<select id="selectGrantedKnwlIds" parameterType="io.shinhanlife.axhub.biz.so.atm.dto.AthrSearchInDto"
resultType="string">
SELECT
KNWL_ID
FROM
AX_ROLE_KNWL_ATHR
WHERE
SYST_ID = #{systId}
AND ROLE_NO = #{roleNo}
AND PUSE_YN = 'Y'
</select>
<!-- Tool 권한 전체 삭제 -->
<delete id="deleteToolAthr">
DELETE FROM AX_ROLE_TOOL_ATHR
WHERE
SYST_ID = #{systId}
AND ROLE_NO = #{roleNo}
</delete>
<!-- Tool 권한 단건 삽입 -->
<insert id="insertToolAthr" parameterType="io.shinhanlife.axhub.biz.so.atm.dto.RoleToolAthrInDto">
INSERT INTO AX_ROLE_TOOL_ATHR (
ROLE_TOOL_ATHR_ID,
SYST_ID,
ROLE_NO,
TOOL_ID,
PUSE_YN,
SYST_RGI_DT,
SYST_RGI_PRAF_NO,
SYST_RGI_OGNZ_NO,
SYST_RGI_SYST_CD,
SYST_RGI_PRGR_ID,
SYST_CHG_DT,
SYST_CHG_PRAF_NO,
SYST_CHG_OGNZ_NO,
SYST_CHG_SYST_CD,
SYST_CHG_PRGR_ID
) VALUES (
#{roleToolAthrId},
#{systId},
#{roleNo},
#{toolId},
#{puseYn},
#{systRgiDt},
#{systRgiPrafNo},
#{systRgiOgnzNo},
#{systRgiSystCd},
#{systRgiPrgrId},
#{systChgDt},
#{systChgPrafNo},
#{systChgOgnzNo},
#{systChgSystCd},
#{systChgPrgrId}
)
</insert>
<!-- 지식 권한 전체 삭제 -->
<delete id="deleteKnwlAthr">
DELETE FROM AX_ROLE_KNWL_ATHR
WHERE
SYST_ID = #{systId}
AND ROLE_NO = #{roleNo}
</delete>
<!-- 지식 권한 단건 삽입 -->
<insert id="insertKnwlAthr" parameterType="io.shinhanlife.axhub.biz.so.atm.dto.RoleKnwlAthrInDto">
INSERT INTO AX_ROLE_KNWL_ATHR (
ROLE_KNWL_ATHR_ID,
SYST_ID,
ROLE_NO,
KNWL_ID,
PUSE_YN,
SYST_RGI_DT,
SYST_RGI_PRAF_NO,
SYST_RGI_OGNZ_NO,
SYST_RGI_SYST_CD,
SYST_RGI_PRGR_ID,
SYST_CHG_DT,
SYST_CHG_PRAF_NO,
SYST_CHG_OGNZ_NO,
SYST_CHG_SYST_CD,
SYST_CHG_PRGR_ID
) VALUES (
#{roleKnwlAthrId},
#{systId},
#{roleNo},
#{knwlId},
#{puseYn},
#{systRgiDt},
#{systRgiPrafNo},
#{systRgiOgnzNo},
#{systRgiSystCd},
#{systRgiPrgrId},
#{systChgDt},
#{systChgPrafNo},
#{systChgOgnzNo},
#{systChgSystCd},
#{systChgPrgrId}
)
</insert>
</mapper>

View File

@@ -0,0 +1,46 @@
<?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="io.shinhanlife.axhub.common.session.domain.repository.ZtUsacRepository">
<select id="selectZtUsac" resultType="io.shinhanlife.axhub.common.session.dto.ZtUsacOutDto">
SELECT
AU.PRAF_NO, -- 인사번호
AU.PRAF_NM, -- 인사명
AU.OGNZ_NO, -- 조직번호
OG.OGNZ_NM, -- 조직명
AU.ADDRE, -- 이메일주소
AU.PRAF_OFDU_CD, -- 인사직무코드
AU.PRAF_OFDU_NM, -- 인사직무명
AU.PRAF_OFLE_CD, -- 인사직급코드
AU.PRAF_OFLE_NM, -- 인사직급명
AU.PRAF_DUTY_CD, -- 인사직책코드
AU.PRAF_DUTY_NM, -- 인사직책명
AU.MNGR_PRAF_NO, -- 관리자인사번호
AU.PUSE_YN, -- 사용여부
LISTAGG(URR.ROLE_NO, ',') WITHIN GROUP (ORDER BY URR.ROLE_NO) AS ROLE_NO_STR_LIST,
LISTAGG(UR.ROLE_NM, ',') WITHIN GROUP (ORDER BY URR.ROLE_NO) AS ROLE_NM_STR_LIST,
LISTAGG(AM.TGTR_PRAF_NO, ',') WITHIN GROUP (ORDER BY AM.TGTR_PRAF_NO) AS TGTR_PRAF_NO_STR_LIST,
LISTAGG(AM.TGTR_OGNZ_NO, ',') WITHIN GROUP (ORDER BY AM.TGTR_PRAF_NO) AS TGTR_OGNZ_NO_STR_LIST
FROM
S_EIAM_TIS.AA_USAC AU
INNER JOIN
S_EIAM_TIS.AA_USAC_USER_GROU_RTNS UGR ON AU.PRAF_NO = UGR.PRAF_NO
INNER JOIN
S_EIAM_TIS.AA_USER_GROU UG ON UGR.USER_GROU_ID = UG.USER_GROU_ID
INNER JOIN
S_EIAM_TIS.AA_USER_GROU_ROLE_RTNS URR ON UG.USER_GROU_ID = URR.USER_GROU_ID
INNER JOIN
S_EIAM_TIS.AA_ROLE UR ON URR.ROLE_NO = UR.ROLE_NO
LEFT OUTER JOIN
S_EIAM_TIS.AA_MNDT AM ON AM.PRAF_NO = AU.PRAF_NO
INNER JOIN
S_EIAM_TIS.AA_OGNZ OG ON OG.OGNZ_NO = AU.OGNZ_NO
WHERE
AU.PRAF_NO = #{prafNo}
GROUP BY
AU.PRAF_NO, AU.PRAF_NM, AU.OGNZ_NO, AU.ADDRE, AU.PRAF_OFDU_CD, AU.PRAF_OFDU_NM, AU.PRAF_OFLE_CD, AU.PRAF_OFLE_NM, AU.PRAF_DUTY_CD, AU.PRAF_DUTY_NM, AU.MNGR_PRAF_NO, AU.PUSE_YN;
</select>
</mapper>

View File

@@ -0,0 +1,99 @@
<?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="io.shinhanlife.axhub.biz.sm.mmg.domain.repository.MenuRepository">
<select id="selectMenu" resultType="io.shinhanlife.axhub.biz.sm.mmg.dto.MenuOutDto">
SELECT MENU_ID
, PARENT_MENU_ID
, NAME
, PATH
, TITLE
, ICON
, IS_HIDE
, IS_HIDE_TAB
, LINK
, IS_IFRAME
, KEEP_ALIVE
, ORDER_SEQ
, IS_ACTIVE
FROM S_TIS.ZT_MENU
WHERE 1=1
<if test="isActive != null and isActive != ''">
AND IS_ACTIVE = #{isActive}
</if>
<if test="path != null and path != ''">
AND PATH LIKE CONCAT('%', #{path}, '%')
</if>
<if test="title != null and title != ''">
AND TITLE LIKE CONCAT('%', #{title}, '%')
</if>
ORDER BY ORDER_SEQ ASC
</select>
<select id="selectMenuById" resultType="io.shinhanlife.axhub.biz.sm.mmg.dto.MenuOutDto">
SELECT MENU_ID
, PARENT_MENU_ID
, NAME
, PATH
, TITLE
, ICON
, IS_HIDE
, IS_HIDE_TAB
, LINK
, IS_IFRAME
, KEEP_ALIVE
, ORDER_SEQ
, IS_ACTIVE
FROM S_TIS.ZT_MENU
WHERE MENU_ID = #{menuId}
</select>
<insert id="insertMenu"
parameterType="io.shinhanlife.axhub.biz.sm.mmg.dto.MenuSaveInDto"
useGeneratedKeys="true"
keyProperty="menuId">
INSERT INTO S_TIS.ZT_MENU (
PARENT_MENU_ID, NAME, PATH, TITLE, ICON,
IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE,
ORDER_SEQ, IS_ACTIVE,
SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID,
SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID
) VALUES (
#{parentMenuId}, #{name}, #{path}, #{title}, #{icon},
#{isHide}, #{isHideTab}, #{link}, #{isIframe}, #{keepAlive},
#{orderSeq}, #{isActive},
#{systRgiDt}, #{systRgiPrafNo}, #{systRgiOgnzNo}, #{systRgiSystCd}, #{systRgiPrgrId},
#{systChgDt}, #{systChgPrafNo}, #{systChgOgnzNo}, #{systChgSystCd}, #{systChgPrgrId}
)
</insert>
<update id="updateMenu" parameterType="io.shinhanlife.axhub.biz.sm.mmg.dto.MenuSaveInDto">
UPDATE S_TIS.ZT_MENU
SET
PARENT_MENU_ID = #{parentMenuId},
NAME = #{name},
PATH = #{path},
TITLE = #{title},
ICON = #{icon},
IS_HIDE = #{isHide},
IS_HIDE_TAB = #{isHideTab},
LINK = #{link},
IS_IFRAME = #{isIframe},
KEEP_ALIVE = #{keepAlive},
ORDER_SEQ = #{orderSeq},
IS_ACTIVE = #{isActive},
SYST_CHG_DT = #{systChgDt},
SYST_CHG_PRAF_NO = #{systChgPrafNo},
SYST_CHG_OGNZ_NO = #{systChgOgnzNo},
SYST_CHG_SYST_CD = #{systChgSystCd},
SYST_CHG_PRGR_ID = #{systChgPrgrId}
WHERE MENU_ID = #{menuId}
</update>
<delete id="deleteMenu">
DELETE FROM S_TIS.ZT_MENU
WHERE MENU_ID = #{menuId}
</delete>
</mapper>