diff --git a/src/main/java/io/company/localhost/mapper/PromemberMapper.java b/src/main/java/io/company/localhost/mapper/PromemberMapper.java index 021c04f..886d80b 100644 --- a/src/main/java/io/company/localhost/mapper/PromemberMapper.java +++ b/src/main/java/io/company/localhost/mapper/PromemberMapper.java @@ -23,7 +23,9 @@ import io.company.localhost.common.dto.MapDto; @Mapper public interface PromemberMapper { - int insertProjectMember(Integer projctSeq); + int insertProjectMember(MapDto map); + + int updateProjectMembers(MapDto map); int insertNewMemberToProjects(Integer memberSeq); diff --git a/src/main/java/io/company/localhost/service/NetprojctService.java b/src/main/java/io/company/localhost/service/NetprojctService.java index f986bb9..5b6dbc4 100644 --- a/src/main/java/io/company/localhost/service/NetprojctService.java +++ b/src/main/java/io/company/localhost/service/NetprojctService.java @@ -16,6 +16,7 @@ package io.company.localhost.service; import java.time.LocalDateTime; import java.util.List; +import java.util.Map; import org.springframework.stereotype.Service; @@ -55,22 +56,37 @@ public class NetprojctService { public int insertProject(MapDto map) { map.put("projctCdt", LocalDateTime.now()); int result = netprojctMapper.insertProject(map); - Integer color = map.getInt("projctCol"); - + + // 컬러 업데이트 MapDto colorMap = new MapDto(); colorMap.put("color", color); colorMap.put("type", "YNP"); - commoncodMapper.updateColorYon(colorMap); - + Integer projctSeq = map.getInt("PROJCTSEQ"); - - promemberMapper.insertProjectMember(projctSeq); + + // 비활성화된 사용자 목록 받아오기 + List disabledMembers = (List) map.get("disabledMembers"); + + // 프로젝트 멤버 추가 (비활성화된 사용자 정보 포함) + MapDto paramMap = new MapDto(); + paramMap.put("projctSeq", projctSeq); + paramMap.put("disabledMembers", disabledMembers); + + promemberMapper.insertProjectMember(paramMap); return result; } + + + /** + * 프로젝트 수정 + * + * @param map + * @return + */ /** * 프로젝트 수정 * @@ -78,31 +94,40 @@ public class NetprojctService { * @return */ public boolean updateProject(MapDto map) { - map.put("projctUdt", LocalDateTime.now()); - boolean result = netprojctMapper.updateProject(map) > 0; - - Integer color = map.getInt("projctCol"); - - MapDto colorMap = new MapDto(); + map.put("projctUdt", LocalDateTime.now()); + boolean result = netprojctMapper.updateProject(map) > 0; + + Integer color = map.getInt("projctCol"); + + MapDto colorMap = new MapDto(); colorMap.put("color", color); colorMap.put("type", "YNP"); commoncodMapper.updateColorYon(colorMap); - + Integer originalColor = map.getInt("originalColor"); if(originalColor != null) { - MapDto OldColorMap = new MapDto(); - OldColorMap.put("color", originalColor); - OldColorMap.put("type", "YNP"); - - commoncodMapper.updateColorChange(OldColorMap); + MapDto OldColorMap = new MapDto(); + OldColorMap.put("color", originalColor); + OldColorMap.put("type", "YNP"); + + commoncodMapper.updateColorChange(OldColorMap); } - + // 멤버 상태 업데이트 + Integer projctSeq = map.getInt("projctSeq"); + List disabledMembers = (List) map.get("disabledMembers"); - return result; - } + if (disabledMembers != null) { + MapDto memberMap = new MapDto(); + memberMap.put("projctSeq", projctSeq); + memberMap.put("disabledMembers", disabledMembers); + promemberMapper.updateProjectMembers(memberMap); + } + + return result; + } /** diff --git a/src/main/resources/mapper/PromemberMapper.xml b/src/main/resources/mapper/PromemberMapper.xml index 925d1e9..a21dbe3 100644 --- a/src/main/resources/mapper/PromemberMapper.xml +++ b/src/main/resources/mapper/PromemberMapper.xml @@ -2,12 +2,38 @@ - + INSERT INTO promember (PROJCTSEQ, MEMBERSEQ, PROJCTYON) - SELECT #{projctSeq}, MEMBERSEQ, '1' FROM netmember; + SELECT + #{projctSeq}, + MEMBERSEQ, + CASE + WHEN MEMBERSEQ IN + + #{member} + + THEN '0' + ELSE '1' + END + FROM netmember; + + UPDATE promember + SET PROJCTYON = + CASE + WHEN MEMBERSEQ IN + + #{member} + + THEN '0' + ELSE '1' + END + WHERE PROJCTSEQ = #{projctSeq} + + + INSERT INTO promember (PROJCTSEQ, MEMBERSEQ, PROJCTYON)