package itn.let.sym.grd.web;

import java.util.List;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

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.servlet.ModelAndView;

import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import itn.com.cmm.LoginVO;
import itn.com.utl.fcc.service.EgovStringUtil;
import itn.let.sym.grd.service.MberGrdService;
import itn.let.sym.grd.service.MberGrdVO;

@Controller
public class MberGrdController {

	@Resource(name = "mberGrdService")
	MberGrdService mberGrdService;

    /**
     * ########################################
     * 등급제 사용자 화면
     * ########################################
     */	
	
    /**
     * 마이페이지 등급제 누적결제액 세부내역
     * @param mjonMsgVO
     * @param model
     * @return	"/web/member/grd/MberGrdHistListAjax.do"
     * @throws Exception
     */
    @RequestMapping(value= {"/web/member/grd/mberGrdHistListAjax.do"})
    public String mberGrdHistListAjax(@ModelAttribute("searchVO") MberGrdVO mberGrdVO,
    		HttpServletRequest request,
    		ModelMap model) throws Exception{
    	
    	LoginVO	loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
    	String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
    	mberGrdVO.setMberId(userId);
    	
    	if(mberGrdVO.getPageUnit() != 10) {
    		mberGrdVO.setPageUnit(mberGrdVO.getPageUnit());
    	}
    	
    	/** pageing */
    	mberGrdVO.setPageUnit(3);
    	PaginationInfo paginationInfo = new PaginationInfo();
    	paginationInfo.setCurrentPageNo(mberGrdVO.getPageIndex());
    	paginationInfo.setRecordCountPerPage(mberGrdVO.getPageUnit());
    	paginationInfo.setPageSize(mberGrdVO.getPageSize());
    	
    	mberGrdVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
    	mberGrdVO.setLastIndex(paginationInfo.getLastRecordIndex());
    	mberGrdVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); 
    	
    	if("".equals(mberGrdVO.getSearchSortCnd())){ //최초조회시 최신것 조회List

    	}
    	
    	List<MberGrdVO> mberGrdHistList =  mberGrdService.selectMberGrdHistByGrdDateList(mberGrdVO);
    	
    	paginationInfo.setTotalRecordCount(mberGrdHistList.size()> 0 ? mberGrdHistList.get(0).getTotCnt() : 0);
    	model.addAttribute("paginationInfo", paginationInfo);
    	model.addAttribute("mberGrdHistList", mberGrdHistList);
    	
    	model.addAttribute("grdSetNm", mberGrdVO.getGrdSetNm());
    	model.addAttribute("totAmt", mberGrdVO.getTotAmt());
    	
    	return "/web/grd/MberGrdHistListAjax";
    }	
	
	// 등급제 적용여부 체크
	@RequestMapping(value = "/web/member/grd/mberGrdChkAjax.do")
	public ModelAndView mberGrdChkAjax(
			@ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {

		ModelAndView modelAndView = new ModelAndView();
		modelAndView.setViewName("jsonView");

    	// 로그인VO에서  사용자 정보 가져오기
    	LoginVO	loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
    	String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
    	mberGrdVO.setMberId(userId);
    	
		boolean isSuccess = false;
		String msg = "";
   		MberGrdVO rtnMberGrdVO = new MberGrdVO();
   		
        try{
        	// 회원별 이벤트 진행여부
        	int mberEventPrgCnt = mberGrdService.selectMberEventPrgCnt(mberGrdVO.getMberId());
        	if (mberEventPrgCnt == 0) {
           		rtnMberGrdVO = mberGrdService.selectMberGrdInfo(mberGrdVO.getMberId());
           		if (null != rtnMberGrdVO) {
           			isSuccess = true;
           		}
           		else {
        			msg = "종료";       			
           		}
        	}
        	
		}
		catch(Exception e) {
			msg = e.getMessage();
		}		

        modelAndView.addObject("rtnMberGrdVO", rtnMberGrdVO);
		modelAndView.addObject("isSuccess", isSuccess);
		modelAndView.addObject("msg", msg);
		
		return modelAndView;
	}		
	
}
