
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.menu.web;
import com.takensoft.cms.author.vo.AuthorVO;
import com.takensoft.cms.codeManage.service.CodeManageService;
import com.takensoft.cms.codeManage.vo.CodeManageVO;
import com.takensoft.cms.dept.vo.DeptVO;
import com.takensoft.cms.menu.service.MenuService;
import com.takensoft.cms.menu.vo.MenuVO;
import com.takensoft.common.HierachyVO;
import com.takensoft.common.util.ResponseData;
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;
/**
* @author : takensoft
* @since : 2024.04.01
*
* 메뉴 정보 관련 컨트롤러
*/
@RestController
@RequiredArgsConstructor
@Slf4j
@RequestMapping(value = "/admin/menu")
public class MenuController {
private final MenuService menuService;
private final CodeManageService codeManageService;
/**
* @author takensoft
* @since 2024.04.08
* @param menuVO
* @return
* @throws Exception
*
* 메뉴 등록
*/
@PostMapping(value = "/saveProc.json")
public ResponseEntity<?> SaveProc(@RequestBody MenuVO menuVO) throws Exception {
// 메뉴 등록
int result = menuService.menuSave(menuVO);
// 응답 처리
HttpHeaders headers = new HttpHeaders();
headers.setContentType(new MediaType("application", "json", Charset.forName("UTF-8")));
ResponseData responseData = new ResponseData();
if(result > 0) {
responseData.setStatus(HttpStatus.OK);
responseData.setMessage("정상적으로 메뉴 등록이 처리되었습니다.");
return new ResponseEntity<>(responseData, headers, HttpStatus.OK);
} else {
responseData.setStatus(HttpStatus.INTERNAL_SERVER_ERROR);
responseData.setMessage("메뉴 등록에 실패하였습니다.\n담당자에게 문의하세요.");
return new ResponseEntity<>(responseData, headers, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
/**
* @author takensoft
* @since 2024.04.08
* @param
* @return
* @throws Exception
*
* 메뉴 목록 조회 (관리자 페이지용)
*/
@GetMapping(value = "/findAll.json")
public ResponseEntity<?> findAll() throws Exception {
// Tree용
List<HierachyVO> hierachyList = menuService.findByTopNode();
// 메뉴타입
List<CodeManageVO> codeList = codeManageService.findByChildCdCache("menuGroup");
HashMap<String, Object> result = new HashMap<>();
result.put("hierachyList", hierachyList);
result.put("newMenu", new MenuVO());
result.put("codeList", codeList);
// 응답 처리
HttpHeaders headers = new HttpHeaders();
headers.setContentType(new MediaType("application", "json", Charset.forName("UTF-8")));
ResponseData responseData = new ResponseData();
responseData.setStatus(HttpStatus.OK);
responseData.setMessage("정상적으로 메뉴 조회가 처리되었습니다.");
responseData.setData(result);
return new ResponseEntity<>(responseData, headers, HttpStatus.OK);
}
/**
* @author takensoft
* @since 2024.04.08
* @param menuVO
* @return
* @throws Exception
*
* 메뉴 상세 조회 (관리자 페이지용)
*/
@PostMapping("/findByMenu.json")
public ResponseEntity<?> findByMenu(@RequestBody MenuVO menuVO) throws Exception {
// 메뉴 조회
MenuVO result = menuService.findByMenu(menuVO.getMenuId());
// 응답 처리
HttpHeaders headers = new HttpHeaders();
headers.setContentType(new MediaType("application", "json", Charset.forName("UTF-8")));
ResponseData responseData = new ResponseData();
responseData.setStatus(HttpStatus.OK);
responseData.setMessage("정상적으로 메뉴 조회가 처리되었습니다.");
responseData.setData(result);
return new ResponseEntity<>(responseData, headers, HttpStatus.OK);
}
/**
* @author takensoft
* @since 2024.04.08
* @param menuVO
* @return
* @throws Exception
*
* 메뉴 정보 수정
*/
@PostMapping(value = "/updateProc.json")
public ResponseEntity<?> updateProc(@RequestBody MenuVO menuVO) throws Exception {
// 메뉴 등록
int result = menuService.MenuUpdate(menuVO);
// 응답 처리
HttpHeaders headers = new HttpHeaders();
headers.setContentType(new MediaType("application", "json", Charset.forName("UTF-8")));
ResponseData responseData = new ResponseData();
if(result > 0) {
responseData.setStatus(HttpStatus.OK);
responseData.setMessage("정상적으로 메뉴 수정 처리되었습니다.");
return new ResponseEntity<>(responseData, headers, HttpStatus.OK);
} else {
responseData.setStatus(HttpStatus.INTERNAL_SERVER_ERROR);
responseData.setMessage("메뉴 수정에 실패하였습니다.\n담당자에게 문의하세요.");
return new ResponseEntity<>(responseData, headers, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
/**
* @author 박정하
* @since 2024.04.29
* @param menuVO
* @return
* @throws Exception
*
* 메뉴 정보 삭제
*/
@PostMapping(value = "/deleteProc.json")
public ResponseEntity<?> deleteProc(@RequestBody MenuVO menuVO) throws Exception {
// 메뉴 삭제
int result = menuService.menuDelete(menuVO);
// 응답 처리
HttpHeaders headers = new HttpHeaders();
headers.setContentType(new MediaType("application", "json", Charset.forName("UTF-8")));
ResponseData responseData = new ResponseData();
if(result > 0) {
responseData.setStatus(HttpStatus.OK);
responseData.setMessage("정상적으로 삭제 처리되었습니다.");
return new ResponseEntity<>(responseData, headers, HttpStatus.OK);
} else {
responseData.setStatus(HttpStatus.INTERNAL_SERVER_ERROR);
responseData.setMessage("삭제에 실패하였습니다.\n담당자에게 문의하세요.");
return new ResponseEntity<>(responseData, headers, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
/**
* @author 박정하
* @since 2024.05.10
* @param menuList
* @return
* @throws Exception
*
* 메뉴 목록 수정
*/
@PostMapping(value = "/updateListProc.json")
public ResponseEntity<?> updateListProc(@RequestBody List<HierachyVO> menuList) throws Exception {
// 메뉴 목록 수정
int result = menuService.updateList(menuList);
// 응답 처리
HttpHeaders headers = new HttpHeaders();
headers.setContentType(new MediaType("application", "json", Charset.forName("UTF-8")));
ResponseData responseData = new ResponseData();
if(result > 0) {
responseData.setStatus(HttpStatus.OK);
responseData.setMessage("정상적으로 수정 처리되었습니다.");
return new ResponseEntity<>(responseData, headers, HttpStatus.OK);
} else {
responseData.setStatus(HttpStatus.INTERNAL_SERVER_ERROR);
responseData.setMessage("수정에 실패하였습니다.\n담당자에게 문의하세요.");
return new ResponseEntity<>(responseData, headers, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
}