package itn.let.sym.grd.web;

import java.util.List;

import javax.annotation.Resource;

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 itn.com.cmm.LoginVO;
import itn.let.sym.grd.service.MberGrdService;
import itn.let.sym.grd.service.MberGrdVO;

@Controller
public class MberGrdController {

	@Resource(name = "mberGrdService")
	MberGrdService mberGrdService;
	
    /**
     * 등급제 관리 화면
     * 
     * @param mberGrdVO
     * @param model
     * @return
     * @throws Exception
     */
    @RequestMapping("/sym/grd/selectMberGrdSetting.do")
    public String selectJoinSetting(MberGrdVO mberGrdVO, ModelMap model) throws Exception {
    	
    	List<MberGrdVO> mberGrdSettingList = mberGrdService.selectMberGrdSettingList(mberGrdVO);
    	
    	mberGrdVO = mberGrdService.selectMberSettingDetail(mberGrdVO);

    	model.addAttribute("grdNoti", mberGrdVO.getGrdNoti());
    	model.addAttribute("grdDate", mberGrdVO.getGrdDate());
    	model.addAttribute("mberGrdSettingList", mberGrdSettingList);
    	
    	return "/sym/grd/mberGrdSetting";
    }
    
	// 등급제 일괄 저장
	@RequestMapping(value = "/sym/grd/mberGrdSettingMassUpdateAjax.do")
	public ModelAndView mberGrdSettingMassUpdateAjax(
			@ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {

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

		boolean isSuccess = true;
		String msg = "";
		
    	// 로그인VO에서  사용자 정보 가져오기
    	LoginVO	loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
    	String frstRegisterId = loginVO == null ? "" : loginVO.getId();
    	mberGrdVO.setEditId(frstRegisterId);		// 최초등록자ID

        try{
        	// 등급제 시행여부 변경
        	int updateCnt = mberGrdService.updateMberSetting(mberGrdVO);
        	if (updateCnt == 0) {
    			isSuccess = false;
    			msg = "등급제 시행여부 변경에 실패했습니다.";        		
        	}
        	else {
	        	// 등급제 업데이트
	        	mberGrdService.updateGrdSettingList(mberGrdVO);
        	}
		}
		catch(Exception e) {
			isSuccess = false;
			msg = e.getMessage();
		}		

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