package itn.let.schdlr.service.web;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Controller;

import egovframework.rte.fdl.property.EgovPropertyService;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import itn.let.sym.site.service.EgovSiteManagerService;
import itn.let.sym.site.service.SiteManagerVO;
import itn.let.uss.umt.service.EgovUserManageService;

@Controller
@EnableScheduling
public class AnotaionSchedule {
	/** EgovPropertyService */
	@Resource(name = "propertiesService")
	protected EgovPropertyService propertiesService;
	
	@Resource(name = "egovSiteManagerService")
	private EgovSiteManagerService egovSiteManagerService;
	
	/** userManageService */
	@Resource(name = "userManageService")
	private EgovUserManageService userManageService;
	
	//@RequestMapping("/sym/site/AdminLogMngTest.do")
	//@Scheduled(fixedDelay = 1000)
	
	//@Scheduled(fixedDelay = 20000)
	//@Scheduled(cron="30 * * * * ?")
	public void SchDeleteMember() throws Exception { //설정에 따른 회원삭제 / 관리자로그 설정삭제
		try {
			SiteManagerVO siteManagerVO =new SiteManagerVO();
			/** paging */
			PaginationInfo paginationInfo = new PaginationInfo();
			paginationInfo.setCurrentPageNo(siteManagerVO.getPageIndex());
			paginationInfo.setRecordCountPerPage(siteManagerVO.getPageUnit());
			paginationInfo.setPageSize(siteManagerVO.getPageSize());
			siteManagerVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
			siteManagerVO.setLastIndex(paginationInfo.getLastRecordIndex());
			siteManagerVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
	  		List<SiteManagerVO> siteManagerList= egovSiteManagerService.selectSiteManagerList(siteManagerVO) ;
	  		for(SiteManagerVO tempSiteManagerVO : siteManagerList){
	  			if(!"9".equals(tempSiteManagerVO.getIdWithdrawCd())) { //탈퇴회원 영구보관이 아니면 
	  				userManageService.deleteMemberSchedule(tempSiteManagerVO);
	  			}
	  			
	  			if(null!=tempSiteManagerVO.getAdminlogKpCd() && !"N".equals(tempSiteManagerVO.getAdminlogKpCd())) { //관리자로그 보관설정 영구보관이 아니면
	  				switch (tempSiteManagerVO.getAdminlogKpCd()) {// M:1개월,3:3개월,6:6개월보관,Y:1년, N:영구보관
	  					case "M":
	  						tempSiteManagerVO.setAdminlogKpCd("1");
	  					case "Y":
	  						tempSiteManagerVO.setAdminlogKpCd("12");	
	  					default: 
	  				}
	  				userManageService.deleteAdminLogSchedule(tempSiteManagerVO);
	  				
	  				DateFormat format = new SimpleDateFormat("yyyy/MM/dd");
	  				String datestr = format.format(new Date());

	  				System.out.println("--------crontab start ----------------"+datestr );

	  			}
	  		}
		}catch(Exception e) {
		}
	}
}