package kcg.imis.cmmn.web;

import java.util.HashMap;

import javax.annotation.Resource;

import kcg.imis.cmmn.service.CodeServiceImpl;
import kcg.imis.cmmn.vo.CodeVO;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * 
  * @FileName : CodeController.java
  * @Project : 국제해양프로젝트
  * @Date : 2018. 3. 21. 
  * @작성자 : Moon
  * @변경이력 : 
  * @프로그램 설명 : 코드 컨트롤러
 */
@Controller
@RequestMapping("/code")
public class CodeController {
	
	@Resource(name = "codeService")
	private CodeServiceImpl codeService;

	/**
	 * 코드 리스트를 반환
	 * 
	 * @param codeVO 코드VO
	 * @return 소속 코드 리스트
	 * @throws Exception 기본 예외 처리
	 */
	@ResponseBody
	@RequestMapping("/codeList.json")
	public HashMap<String, Object> codeList(final CodeVO codeVO) throws Exception {
		HashMap<String, Object> result = new HashMap<String, Object>();
		result.put("data", codeService.getCodeList(codeVO.getGroup()));
		return result;
	}
	
	/**
	 * 코드를 반환
	 * 
	 * @param codeVO 코드VO
	 * @return 소속 코드 리스트
	 * @throws Exception 기본 예외 처리
	 */
	@ResponseBody
	@RequestMapping("/code.json")
	public HashMap<String, Object> code(final CodeVO codeVO) throws Exception {
		HashMap<String, Object> result = new HashMap<String, Object>();
		result.put("data", codeService.getCode(codeVO.getGroup(),codeVO.getCode()));
		return result;
	}
	
	@ResponseBody
	@RequestMapping("/insert.json")
	public HashMap<String, Object> insert(final CodeVO codeVO) throws Exception {
		HashMap<String, Object> result = new HashMap<String, Object>();
		result.put("cnt", codeService.insertCode(codeVO));
		return result;
	}
	
	@ResponseBody
	@RequestMapping("/update.json")
	public HashMap<String, Object> update(final CodeVO codeVO) throws Exception {
		HashMap<String, Object> result = new HashMap<String, Object>();
		result.put("cnt", codeService.updateCode(codeVO));
		return result;
	}
	
	/**
	 * 코드를 삭제한다.
	 * 
	 * @param codeVO CodeVO 객체
	 * @return 성공 - 1, 실패 - 0
	 * @throws Exception 기본 예외 처리
	 */
	@ResponseBody
	@RequestMapping("/delete.json")
	public HashMap<String, Object> deleteCode(final CodeVO codeVO) throws Exception {
		HashMap<String, Object> resultMap = new HashMap<String, Object>();
		resultMap.put("cnt", codeService.deleteCode(codeVO));
		return resultMap;
	}
	
	
}
