
--- src/main/java/com/takensoft/cms/dept/dao/DeptDAO.java
+++ src/main/java/com/takensoft/cms/dept/dao/DeptDAO.java
... | ... | @@ -113,12 +113,12 @@ |
113 | 113 |
List<DeptMbrVO> findByMber(Map<String, String> params); |
114 | 114 |
|
115 | 115 |
/** |
116 |
- * @param deptId - 부서 ID |
|
116 |
+ * @param params - 부서 ID, 사용자 ID |
|
117 | 117 |
* @return int - List<DeptMbrVO>- 부서 사용자 정보 목록 |
118 | 118 |
* |
119 | 119 |
* 부서에 등록된 사용자 목록 조회 |
120 | 120 |
*/ |
121 |
- List<DeptMbrVO> findByDeptMber(String deptId); |
|
121 |
+ List<DeptMbrVO> findByDeptMber(Map<String, String> params); |
|
122 | 122 |
|
123 | 123 |
/** |
124 | 124 |
* @param deptId - 부서 ID |
... | ... | @@ -150,7 +150,7 @@ |
150 | 150 |
* |
151 | 151 |
* 부서에 등록된 사용자 제거 |
152 | 152 |
*/ |
153 |
- int deleteDeptMbr(Map<String, Object> params); |
|
153 |
+ int deleteDeptMbr(Map<String, String> params); |
|
154 | 154 |
|
155 | 155 |
/** |
156 | 156 |
* @param deptVO - 부서 정보 객체 |
--- src/main/java/com/takensoft/cms/dept/service/DeptService.java
+++ src/main/java/com/takensoft/cms/dept/service/DeptService.java
... | ... | @@ -62,7 +62,7 @@ |
62 | 62 |
* |
63 | 63 |
* 부서 정보 조회 |
64 | 64 |
*/ |
65 |
- Map<String, Object> findByDept(HashMap<String, Object> params); |
|
65 |
+ Map<String, Object> findByDept(Map<String, String> params); |
|
66 | 66 |
|
67 | 67 |
/** |
68 | 68 |
* @param deptVO - 부서 정보 |
--- src/main/java/com/takensoft/cms/dept/service/Impl/DeptServiceImpl.java
+++ src/main/java/com/takensoft/cms/dept/service/Impl/DeptServiceImpl.java
... | ... | @@ -196,11 +196,11 @@ |
196 | 196 |
* 부서 정보 조회 |
197 | 197 |
*/ |
198 | 198 |
@Override |
199 |
- public Map<String, Object> findByDept(HashMap<String, Object> params) { |
|
199 |
+ public Map<String, Object> findByDept(Map<String, String> params) { |
|
200 | 200 |
try { |
201 | 201 |
String deptId = params.get("deptId").toString(); // 아이디 추출 |
202 | 202 |
DeptVO dept = deptDAO.findByDept(deptId); // 부서 정보 조회 |
203 |
- List<DeptMbrVO> deptMbr = deptDAO.findByDeptMber(deptId); // 부서에 등록된 사용자 정보 조회 |
|
203 |
+ List<DeptMbrVO> deptMbr = deptDAO.findByDeptMber(params); // 부서에 등록된 사용자 정보 조회 |
|
204 | 204 |
// 사용자 정보 복호화 |
205 | 205 |
if (deptMbr.size() > 0) { |
206 | 206 |
for (DeptMbrVO vo : deptMbr) { |
... | ... | @@ -316,13 +316,15 @@ |
316 | 316 |
if(deptMbrList.size() == 0) return 0; |
317 | 317 |
|
318 | 318 |
for(DeptMbrVO vo : deptMbrList) { |
319 |
- Map<String, Object> param = new HashMap<String, Object>(); |
|
319 |
+ Map<String, String> param = new HashMap<String, String>(); |
|
320 | 320 |
param.put("mbrId", vo.getMbrId()); |
321 |
- int delMbrResult = deptDAO.deleteDeptMbr(param); // 부서 사용자 삭제 |
|
322 |
- if (delMbrResult == 0) { |
|
323 |
- throw new CustomDeleteFailException("부서 사용자 삭제 실패"); |
|
321 |
+ if(deptDAO.findByDeptMber(param).size() > 0) { |
|
322 |
+ int delMbrResult = deptDAO.deleteDeptMbr(param); // 부서 사용자 삭제 |
|
323 |
+ if (delMbrResult == 0) { |
|
324 |
+ throw new CustomDeleteFailException("부서 사용자 삭제 실패"); |
|
325 |
+ } |
|
326 |
+ result += delMbrResult; |
|
324 | 327 |
} |
325 |
- result += delMbrResult; |
|
326 | 328 |
} |
327 | 329 |
return result; |
328 | 330 |
} |
... | ... | @@ -348,7 +350,7 @@ |
348 | 350 |
vo.setMblTelno(Secret.decrypt(vo.getMblTelno().toString())); |
349 | 351 |
} |
350 | 352 |
} |
351 |
- List<DeptMbrVO> deptMbr = deptDAO.findByDeptMber(params.get("deptId").toString()); // 부서에 등록된 사용자 정보 조회 |
|
353 |
+ List<DeptMbrVO> deptMbr = deptDAO.findByDeptMber(params); // 부서에 등록된 사용자 정보 조회 |
|
352 | 354 |
// 사용자 정보 복호화 |
353 | 355 |
if (deptMbr.size() > 0) { |
354 | 356 |
for (DeptMbrVO vo : deptMbr) { |
... | ... | @@ -372,13 +374,13 @@ |
372 | 374 |
|
373 | 375 |
/** |
374 | 376 |
* @param deptList - 부서 목록 객체 |
375 |
- * @return Map<String, Object> - 부서에 등록되지 않는 사용자 정보 |
|
377 |
+ * @return int - 부서 정보 수정 결과 |
|
376 | 378 |
* @throws CustomUpdateFailException - 수정 실패 예외 발생 시 |
377 | 379 |
* @throws DataAccessException - 데이터베이스 접근 예외 발생 시 |
378 | 380 |
* @throws NullPointerException - Null 값이 발생할 경우 |
379 | 381 |
* @throws Exception - 그 외 예외 발생 시 |
380 | 382 |
* |
381 |
- * 부서에 등록되지 않는 사용자 조회 |
|
383 |
+ * 부서 정보 수정 |
|
382 | 384 |
*/ |
383 | 385 |
@Override |
384 | 386 |
@Transactional(rollbackFor = Exception.class) |
--- src/main/java/com/takensoft/cms/dept/web/DeptController.java
+++ src/main/java/com/takensoft/cms/dept/web/DeptController.java
... | ... | @@ -104,7 +104,7 @@ |
104 | 104 |
* 부서 정보 상세 조회 |
105 | 105 |
*/ |
106 | 106 |
@PostMapping(value = "/findByDept.json") |
107 |
- public ResponseEntity<?> findByDept(@RequestBody HashMap<String, Object> params) { |
|
107 |
+ public ResponseEntity<?> findByDept(@RequestBody Map<String, String> params) { |
|
108 | 108 |
// 부서정보 조회 |
109 | 109 |
Map<String, Object> result = deptService.findByDept(params); |
110 | 110 |
|
--- src/main/java/com/takensoft/cms/mber/service/Impl/AdmMbrServiceImpl.java
+++ src/main/java/com/takensoft/cms/mber/service/Impl/AdmMbrServiceImpl.java
... | ... | @@ -1,5 +1,7 @@ |
1 | 1 |
package com.takensoft.cms.mber.service.Impl; |
2 | 2 |
|
3 |
+import com.takensoft.cms.dept.service.DeptService; |
|
4 |
+import com.takensoft.cms.dept.vo.DeptMbrVO; |
|
3 | 5 |
import com.takensoft.cms.mber.dao.AdmMbrDAO; |
4 | 6 |
import com.takensoft.cms.mber.dto.AdmMbrDTO; |
5 | 7 |
import com.takensoft.cms.mber.dto.JoinDTO; |
... | ... | @@ -22,6 +24,7 @@ |
22 | 24 |
|
23 | 25 |
import jakarta.servlet.http.HttpServletRequest; |
24 | 26 |
|
27 |
+import java.util.ArrayList; |
|
25 | 28 |
import java.util.HashMap; |
26 | 29 |
import java.util.List; |
27 | 30 |
/** |
... | ... | @@ -43,6 +46,7 @@ |
43 | 46 |
private final BCryptPasswordEncoder bCryptPasswordEncoder; |
44 | 47 |
private final AdmMbrDAO admMbrDAO; |
45 | 48 |
private final MberService mbrService; |
49 |
+ private final DeptService deptService; |
|
46 | 50 |
|
47 | 51 |
/** |
48 | 52 |
* @param params - 회원정보 |
... | ... | @@ -161,7 +165,7 @@ |
161 | 165 |
|
162 | 166 |
// 권한 수정 |
163 | 167 |
result += admMbrDAO.deleteAuthorListByMbrId(admMbrDTO.getMbrId()); // 회원 권한 전체 삭제 |
164 |
- if (admMbrDTO.getUseYn().equals("Y")) { |
|
168 |
+ if (admMbrDTO.getUseYn().equals("Y")) { // 수정일 경우 회원 권한 재 등록 |
|
165 | 169 |
if(admMbrDTO.getAuthorList() != null && admMbrDTO.getAuthorList().size() > 0) { |
166 | 170 |
for(MberAuthorVO mberAuthorVO : admMbrDTO.getAuthorList()) { |
167 | 171 |
mberAuthorVO.setMbrId(admMbrDTO.getMbrId()); |
... | ... | @@ -169,6 +173,13 @@ |
169 | 173 |
result += admMbrDAO.insertAuthor(mberAuthorVO); |
170 | 174 |
} |
171 | 175 |
} |
176 |
+ } else { // 회원 탈퇴일 경우 관련 정보 삭제 |
|
177 |
+ // 부서 사용자 삭제 |
|
178 |
+ DeptMbrVO deptMbrVO = new DeptMbrVO(); |
|
179 |
+ deptMbrVO.setMbrId(admMbrDTO.getMbrId()); |
|
180 |
+ List<DeptMbrVO> deptMbrList = new ArrayList<>(); |
|
181 |
+ deptMbrList.add(deptMbrVO); |
|
182 |
+ int deptResult = deptService.deptMbrDelete(deptMbrList); |
|
172 | 183 |
} |
173 | 184 |
return result; |
174 | 185 |
} catch (DataAccessException dae) { |
--- src/main/resources/mybatis/mapper/dept/dept-SQL.xml
+++ src/main/resources/mybatis/mapper/dept/dept-SQL.xml
... | ... | @@ -256,7 +256,7 @@ |
256 | 256 |
작성일 : 2024.04.26 |
257 | 257 |
내 용 : 부서에 등록된 사용자 목록 조회 |
258 | 258 |
--> |
259 |
- <select id="findByDeptMber" parameterType="String" resultType="DeptMbrVO"> |
|
259 |
+ <select id="findByDeptMber" parameterType="Map" resultType="DeptMbrVO"> |
|
260 | 260 |
SELECT dmi.dept_id |
261 | 261 |
, mi.mbr_id |
262 | 262 |
, mi.lgn_id |
... | ... | @@ -269,7 +269,13 @@ |
269 | 269 |
FROM dept_mbr_info dmi |
270 | 270 |
LEFT JOIN mbr_info mi |
271 | 271 |
ON dmi.mbr_id = mi.mbr_id |
272 |
- WHERE dmi.dept_id = #{deptId} |
|
272 |
+ WHERE 1=1 |
|
273 |
+ <if test="deptId != null and deptId != ''"> |
|
274 |
+ AND dmi.dept_id = #{deptId} |
|
275 |
+ </if> |
|
276 |
+ <if test="mbrId != null and mbrId != ''"> |
|
277 |
+ AND dmi.mbr_id = #{mbrId} |
|
278 |
+ </if> |
|
273 | 279 |
</select> |
274 | 280 |
|
275 | 281 |
<!-- |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?