/** * */ package jp.agentec.sinaburocast.action.admin.enquete; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import jp.agentec.sinaburocast.action.AbstractAction; import jp.agentec.sinaburocast.common.util.SinaburoUtil; import jp.agentec.sinaburocast.form.admin.enquete.GiftExchangeSearchForm; import jp.agentec.sinaburocast.service.GiftExchangeService; import org.apache.log4j.Logger; import org.apache.velocity.tools.generic.DateTool; import org.seasar.framework.util.StringUtil; import org.seasar.struts.annotation.ActionForm; import org.seasar.struts.annotation.Execute; import org.seasar.struts.util.ResponseUtil; /** * ポイント交換申請検索 * @author arakawa * */ public class GiftExchangeSearchAction extends AbstractAction { private final Logger logger = Logger.getLogger(getClass()); @ActionForm public GiftExchangeSearchForm giftExchangeSearchForm; public GiftExchangeService giftExchangeService; /** * 初期表示 */ @Execute(validator = false,reset="resetIndex") public String index() { return "/admin/enquete/giftExchangeSearch.html"; } /** * ポイント交換申請を検索する */ @Execute(validator = false,urlPattern="giftExchangeSearch/{pageNo}") public String giftExchangeSearch(){ if(StringUtil.isNotBlank(giftExchangeSearchForm.fromDay) && !SinaburoUtil.checkDate(giftExchangeSearchForm.fromDay)){ addErrorMessage("dateError", "errors.E033"); addErrorMessage("dateError_1", "errors.E033_1"); addErrorMessage("dateError_2", "errors.E033_2"); return "/admin/enquete/giftExchangeSearch.html"; }else if(StringUtil.isNotBlank(giftExchangeSearchForm.toDay) && !SinaburoUtil.checkDate(giftExchangeSearchForm.toDay)){ addErrorMessage("dateError", "errors.E033"); addErrorMessage("dateError_1", "errors.E033_1"); addErrorMessage("dateError_2", "errors.E033_2"); return "/admin/enquete/giftExchangeSearch.html"; }else if(StringUtil.isNotBlank(giftExchangeSearchForm.fromDay) && StringUtil.isNotBlank(giftExchangeSearchForm.toDay) && giftExchangeSearchForm.toDay.compareTo(giftExchangeSearchForm.fromDay) < 0 ){ addErrorMessage("dateError", "errors.E020"); return "/admin/enquete/giftExchangeSearch.html"; } search(); return "/admin/enquete/giftExchangeSearch.html"; } /** * Formの日付のチェックを行う。 */ private void formCheck(){ if(StringUtil.isNotBlank(giftExchangeSearchForm.fromDay) && !SinaburoUtil.checkDate(giftExchangeSearchForm.fromDay)){ addErrorMessage("dateError", "errors.E033"); addErrorMessage("dateError_1", "errors.E033_1"); addErrorMessage("dateError_2", "errors.E033_2"); }else if(StringUtil.isNotBlank(giftExchangeSearchForm.toDay) && !SinaburoUtil.checkDate(giftExchangeSearchForm.toDay)){ addErrorMessage("dateError", "errors.E033"); addErrorMessage("dateError_1", "errors.E033_1"); addErrorMessage("dateError_2", "errors.E033_2"); }else if(StringUtil.isNotBlank(giftExchangeSearchForm.fromDay) && StringUtil.isNotBlank(giftExchangeSearchForm.toDay) && giftExchangeSearchForm.toDay.compareTo(giftExchangeSearchForm.fromDay) < 0 ){ addErrorMessage("dateError", "errors.E020"); } } private void search(){ formCheck(); if(hasErrors()){ return ; } giftExchangeSearchForm.searchResultList = giftExchangeService.findAllByPaging(giftExchangeSearchForm); } /** * ポイント交換申請結果CSV出力 */ @Execute(validator=false) public String reportDownload() throws UnsupportedEncodingException, Exception { String result = SinaburoUtil.toSJIS(giftExchangeService.getGiftExchangeForCsv(giftExchangeSearchForm)); String dateStr = new DateTool().format("yyyyMMdd_HHmmss",DateTool.getSystemDate()); ResponseUtil.download(URLEncoder.encode("ポイント交換申請結果_"+dateStr+".tsv", "UTF-8"),result.getBytes("Windows-31J") ); return null; } }