
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.message.MessageCode;
import com.takensoft.common.util.ResponseData;
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;
/**
* @author takensoft
* @since 2024.04.01
* @modification
* since | author | description
* 2024.04.01 | takensoft | 최초 등록
* 2024.04.08 | takensoft | SaveProc, findAll, findByMenu, updateProc, deleteProc 추가
* 2024.04.29 | 박정하 | deleteProc 추가
* 2024.05.10 | 박정하 | updateListProc 추가
*
* 메뉴 정보 관련 Controller
*/
@RestController
@RequiredArgsConstructor
@Slf4j
@RequestMapping(value = "/admin/menu")
public class MenuController {
private final ResponseUtil resUtil;
private final MenuService menuService;
private final CodeManageService codeManageService;
/**
* @param menuVO - 메뉴 정보
* @return ResponseEntity - 메뉴 등록 결과를 포함하는 ResponseEntity
*
* 메뉴 등록
*/
@PostMapping(value = "/saveProc.json")
public ResponseEntity<?> SaveProc(@RequestBody MenuVO menuVO) {
// 메뉴 등록
int result = menuService.menuSave(menuVO);
// 응답 처리
if(result > 0) {
return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
} else {
return resUtil.errorRes(MessageCode.COMMON_INSERT_FAIL);
}
}
/**
* @param
* @return ResponseEntity - 메뉴 조회 결과를 포함하는 ResponseEntity
*
* 메뉴 목록 조회 (관리자 페이지용)
*/
@GetMapping(value = "/findAll.json")
public ResponseEntity<?> findAll() {
// 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);
// 응답 처리
return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
}
/**
* @param menuVO - 메뉴 정보
* @return ResponseEntity - 메뉴 상세 조회 결과를 포함하는 ResponseEntity
*
* 메뉴 상세 조회 (관리자 페이지용)
*/
@PostMapping("/findByMenu.json")
public ResponseEntity<?> findByMenu(@RequestBody MenuVO menuVO) {
// 메뉴 조회
MenuVO result = menuService.findByMenu(menuVO.getMenuId());
// 응답 처리
return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
}
/**
* @param menuVO - 메뉴 정보
* @return ResponseEntity - 메뉴 정보 수정 결과를 포함하는 ResponseEntity
*
* 메뉴 정보 수정
*/
@PostMapping(value = "/updateProc.json")
public ResponseEntity<?> updateProc(@RequestBody MenuVO menuVO){
// 메뉴 등록
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) {
return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
} else {
return resUtil.errorRes(MessageCode.COMMON_UPDATE_FAIL);
}
}
/**
* @param menuVO - 메뉴 정보
* @return ResponseEntity - 메뉴 정보 삭제 결과를 포함하는 ResponseEntity
*
* 메뉴 정보 삭제
*/
@PostMapping(value = "/deleteProc.json")
public ResponseEntity<?> deleteProc(@RequestBody MenuVO menuVO){
// 메뉴 삭제
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) {
return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
} else {
return resUtil.errorRes(MessageCode.COMMON_DELETE_FAIL);
}
}
/**
* @param menuList - 메뉴 목록
* @return ResponseEntity - 메뉴 정보 수정 결과를 포함하는 ResponseEntity
*
* 메뉴 목록 수정
*/
@PostMapping(value = "/updateListProc.json")
public ResponseEntity<?> updateListProc(@RequestBody List<HierachyVO> menuList){
// 메뉴 목록 수정
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) {
return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
} else {
return resUtil.errorRes(MessageCode.COMMON_UPDATE_FAIL);
}
}
}