package incheon.res.rdm.oe.doc.web;

import incheon.com.cmm.ComDefaultVO;
import incheon.com.security.vo.LoginVO;
import incheon.res.rdm.oe.doc.service.RdmOeDocService;
import incheon.res.rdm.oe.doc.vo.RdmOeDoc;
import incheon.res.rdm.oe.doc.vo.RdmOeDocVO;
import org.egovframe.rte.fdl.property.EgovPropertyService;
import org.egovframe.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.SessionAttributes;

import javax.annotation.Resource;
import java.util.List;


@Controller
@SessionAttributes(types = ComDefaultVO.class)
@RequestMapping("${api.rps-path}")
public class RdmOeDocController{

	@Resource
    private RdmOeDocService rdmOeDocService;

    @Resource(name = "propertiesService")
    protected EgovPropertyService propertiesService;

	/**
	 * @MethodDESC : 전자결제 정보 목록
	 */
	@RequestMapping(value = "/RdmOeDocL010.do")
	public String selectDocList(@ModelAttribute("loginUser") LoginVO loginVO, @RequestParam(defaultValue = "1") int pageIndex, @ModelAttribute RdmOeDocVO vo, ModelMap model)
	  throws Exception{

		vo.setBzentyInstMngNo(loginVO.getRoadMngInstCd().substring(0,3));

		/*페이징*/
		vo.setPageIndex(pageIndex);

		PaginationInfo paginationInfo = new PaginationInfo();
		paginationInfo.setCurrentPageNo(pageIndex);
		paginationInfo.setRecordCountPerPage(vo.getRecordCountPerPage());
		paginationInfo.setPageSize(vo.getPageSize());

		vo.setFirstIndex(paginationInfo.getFirstRecordIndex());
		vo.setLastIndex(paginationInfo.getLastRecordIndex());
		vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());

        List resultList = rdmOeDocService.selectDocList(vo);

        model.addAttribute("resultList", resultList);

        int totCnt = rdmOeDocService.countDoc(vo);
        paginationInfo.setTotalRecordCount(totCnt);

        model.addAttribute("paginationInfo", paginationInfo);
        model.addAttribute("searchVo", vo);

		return "res/rdm/oe/doc/RdmOeDocL010";
	}


	/**
	 * @MethodDESC : 전자결제 상세정보
	 */
	@RequestMapping("/RdmOeDocR010.do")
    public String	selectDoc(@ModelAttribute("rdmOeDocVO") RdmOeDocVO vo,
            ModelMap model) throws Exception {

		RdmOeDoc result	= rdmOeDocService.selectDoc(vo);
		model.addAttribute("result", result);
		model.addAttribute("searchVo", vo);

       return "res/rdm/oe/doc/RdmOeDocR010";
    }

}