Files
2026-05-29 17:49:25 +09:00

161 lines
4.0 KiB
Plaintext

= 메일 그룹 관리
== 개요
메일 그룹 및 맵핑 정보 관리 기능 제공.
== UI Design & Function
=== 메일 그룹 목록(MailGroupList.vue)
메일 그룹 등록, 수정 및 삭제가 가능하다.
image::mailGroupList.png[mailGroupList.png]
* 기능 설명
. 메일 그룹 목록 조회
. 메일 그룹 상세정보 조회
. 메일 그룹 등록 : 등록 버튼 클릭 시 메일 그룹 입력 popup 호출.
. 메일 그룹 수정 : checkbox 선택 후 수정 버튼 클릭 시 변경을 위한 popup 호출.
. 메일 그룹 삭제 : checkbox 선택 후 삭제 버튼 클릭 시 삭제.
=== 메일 그룹 맵핑 수정(MailGroupMappEdit.vue)
메일 그룹 맵핑 목록 등록 및 삭제가 가능하다.
image::mailGroupMappEdit.png[mailGroupMappList.png]
* 기능 설명
. 메일 그룹 맵핑 목록 조회
. 메일 그룹 맵핑 저장
.. 사용자 추가 : 버튼 클릭 시 사용자 추가 popup 호출.
.. 역할 추가 : 버튼 클릭 시 역할 추가 popup 호출.
.. 업무그룹 추가 : 버튼 클릭 시 업무그룹 추가 popup 호출.
== API & Service
=== API
* API : MailGroupController.java
. 메일 그룹 목록 조회 : GET /mail-group-with-paging
. 메일 그룹 상세정보 조회 : GET /mail-group/{mailGroupId}
. 메일 그룹 등록 : POST /mail-group
. 메일 그룹 수정 : PUT /mail-group
. 메일 그룹 삭제 : DELETE /mail-group
. 메일 그룹 맵핑 목록 조회 : GET /mail-group-mapp-with-paging
. 메일 그룹 맵핑 저장 : POST /mail-group-mapp/{mailGroupId}
* Service : MailGroupServiceImpl.java
. 메일 그룹 맵핑 저장 +
맵핑 정보 저장 시 기등록 되어 있는 맵핑 목록 삭제 후
전체 목록을 다시 저장하도록 구현.
[source,java]
----
@Override
@Transactional
public void saveMailGroupMapp(String mailGroupId, List<MailGroupMapp> mailGroupMappList) {
mailGroupDao.deleteMailGroupMapp(mailGroupId);
for(MailGroupMapp mailGroupMapp : mailGroupMappList) {
mailGroupMapp.setMailGroupId(mailGroupId);
mailGroupDao.insertMailGroupMapp(mailGroupMapp);
}
}
----
== Entity Table & SQL
=== Entity Table
* TN_CF_MAIL_GROUP : 메일 그룹
* TN_CF_MAIL_GROUP_MAPP : 메일 그룹 맵핑
=== SQL
. 메일 그룹 목록 조회
[source,xml]
----
<select id="selectMailGroupPagingList" parameterType="java.util.HashMap" resultMap="mailGroupResult">
SELECT T.*
FROM (SELECT ROW_NUMBER() OVER(ORDER BY LABEL ASC) ROWNUM,
--생략--
----
[start=2]
. 메일 그룹 상세정보 조회
[source,xml]
----
<select id="selectMailGroup" parameterType="java.util.HashMap" resultMap="mailGroupResult">
SELECT <include refid="columnMailGroup" />,
(SELECT USER_NAME
--생략--
----
[start=3]
. 메일그룹 등록
[source,xml]
----
<insert id="insertMailGroup" parameterType="java.util.HashMap">
INSERT INTO <include refid="tableMailGroup" />
(<include refid="columnMailGroup" />)
--생략--
----
[start=4]
. 메일그룹 수정
[source,xml]
----
<update id="updateMailGroup" parameterType="java.util.HashMap">
UPDATE <include refid="tableMailGroup" />
SET LABEL = #{label},
--생략--
----
[start=5]
. 메일그룹 삭제
[source,xml]
----
<delete id="deleteMailGroup" parameterType="java.util.HashMap">
UPDATE <include refid="tableMailGroup" />
SET DELETED = '1',
--생략--
----
[start=6]
. 메일그룹 맵핑 목록 조회
[source,xml]
----
<delete id="deleteMailGroup" parameterType="java.util.HashMap">
UPDATE <include refid="tableMailGroup" />
SET DELETED = '1',
--생략--
----
[start=7]
. 메일그룹 맵핑 저장
[source,xml]
----
<delete id="deleteMailGroupMapp" parameterType="java.util.HashMap">
DELETE FROM <include refid="tableMailGroupMapp" />
WHERE MAIL_GROUP_ID = #{mailGroupId}
</delete>
<insert id="insertMailGroupMapp" parameterType="java.util.HashMap">
INSERT INTO <include refid="tableMailGroupMapp" />
(<include refid="columnMailGroupMapp" />)
--생략--
----