
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
File name
Commit message
Commit date
package com.takensoft.cms.codeManage.web;
import com.takensoft.cms.codeManage.service.CodeManageService;
import com.takensoft.cms.codeManage.vo.CodeManageVO;
import com.takensoft.common.message.MessageCode;
import com.takensoft.common.util.ResponseData;
import com.takensoft.common.HierachyVO;
import com.takensoft.common.util.ResponseUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author takensoft
* @since 2024.04.09
* @modification
* since | author | description
* 2024.04.09 | takensoft | 최초 등록
* 2024.04.15 | takensoft | updateProc, deleteProc 추가
* 2024.05.10 | 박정하 | updateListProc
* 2025.03.13 | 방선주 | 코드 리펙토링
*
* 공통코드 정보 관련 컨트롤러
*/
@RestController
@RequiredArgsConstructor
@Slf4j
@RequestMapping("/admin/code")
public class CodeManageController {
private final CodeManageService codeManageService;
private final ResponseUtil resUtil;
/**
* @param codeManageVO - 등록할 공통코드 정보
* @return ResponseEntity - 등록 결과를 포함하는 응답
*
* 공통코드 등록
*/
@PostMapping("/saveProc.json")
public ResponseEntity<?> saveProc(@RequestBody CodeManageVO codeManageVO){
// 코드 중복 검사
boolean isExistence = codeManageService.findByCheckCd(codeManageVO);
// 응답 처리
if(isExistence) {
return resUtil.errorRes(MessageCode.COMMON_DUPLICATION_CODE);
}
// 코드 등록
int result = codeManageService.cdSave(codeManageVO);
return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
}
/**
* @param
* @return ResponseEntity - 공통코드 목록 조회
*
* 공통코드 목록 조회 (관리자용)
*/
@GetMapping(value = "/findAll.json")
public ResponseEntity<?> findAll(){
// Tree용
List<HierachyVO> hierachyList = codeManageService.findByTopNode();
Map<String, Object> result = new HashMap<String, Object>();
result.put("hierachyList", hierachyList);
result.put("newCode", new CodeManageVO());
// 응답 처리
return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
}
/**
* @param codeManageVO - 공통코드 정보
* @return ResponseEntity - 공통코드 상세 조회
*
* 공통코드 상세 조회 (관리자용)
*/
@PostMapping("/findByCd.json")
public ResponseEntity<?> findByCd(@RequestBody CodeManageVO codeManageVO){
// 공통코드 조회
CodeManageVO code = codeManageService.findByCd(codeManageVO.getCd());
Map<String, Object> result = new HashMap<String, Object>();
result.put("code", code);
// 응답 처리
return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
}
/**
* @param codeManageVO - 공통코드 정보
* @return ResponseEntity - 공통코드 수정 결과를 포함하는 응답
*
* 공통코드 수정
*/
@PostMapping("/updateProc.json")
public ResponseEntity<?> updateProc(@RequestBody CodeManageVO codeManageVO){
HttpHeaders headers = new HttpHeaders();
headers.setContentType(new MediaType("application", "json", Charset.forName("UTF-8")));
ResponseData responseData = new ResponseData();
// 코드의 변경 사항이 있을 때만 코드 중복 검사 진행
if(codeManageVO.getOriginCd() != null && !codeManageVO.getOriginCd().equals("") && !codeManageVO.getOriginCd().equals(codeManageVO.getCd())) {
// 코드 중복 검사
boolean isExistence = codeManageService.findByCheckCd(codeManageVO);
if(isExistence) {
return resUtil.errorRes(MessageCode.COMMON_DUPLICATION_CODE);
}
}
// 코드 수정
int result = codeManageService.cdUpdate(codeManageVO);
// 응답 처리
return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
}
/**
* @param codeManageVO - 공통코드 정보
* @return ResponseEntity - 공통코드 삭제 결과를 포함하는 응답
*
* 공통 코드 삭제
*/
@PostMapping("/deleteProc.json")
public ResponseEntity<?> deleteProc(@RequestBody CodeManageVO codeManageVO){
// 공통 코드 삭제(하위 항목 모두)
int result = codeManageService.cdDelete(codeManageVO.getCd());
// 응답 처리
return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
}
/**
* @param codeManageVO - 공통코드 정보
* @return ResponseEntity - 공통코드 상세 조회
*
* 특정 공통 목록 코드 조회(시스템 처리용)
*/
@PostMapping("/findByCdSystem.json")
public ResponseEntity<?> findByCdSystem(@RequestBody CodeManageVO codeManageVO){
// 메뉴 조회
CodeManageVO code = codeManageService.findByCdSystem(codeManageVO.getCd());
Map<String, Object> result = new HashMap<String, Object>();
result.put("code", code);
// 응답 처리
return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
}
/**
* @param codeList - 수정할 공통코드 목록
* @return ResponseEntity - 수정 결과를 포함하는 응답
*
* 공통 코드 목록 수정
*/
@PostMapping(value = "/updateListProc.json")
public ResponseEntity<?> updateListProc(@RequestBody List<HierachyVO> codeList){
// 공통 코드 목록 수정
int result = codeManageService.updateList(codeList);
// 응답 처리
return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
}
}