/** * */ package jp.agentec.sinaburocast.csv; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import jp.agentec.sinaburocast.common.SinaburoConstant; import jp.agentec.sinaburocast.entity.Member; import jp.agentec.sinaburocast.service.MemberService; import org.seasar.framework.util.StringUtil; import org.seasar.s2csv.csv.annotation.CSVValidator; import org.seasar.s2csv.csv.annotation.column.CSVColumn; import org.seasar.s2csv.csv.annotation.column.CSVRequired; import org.seasar.s2csv.csv.annotation.entity.CSVEntity; /** * @author choi-c * */ @CSVEntity(header=true,demiliter='\t',headerCheck=false,columnCountCheck=false) public class PointMigrationInfoCsv extends AbstractCsv { public MemberService memberService; private int checkMemberId; //ポイント付与日時 区分 付加情報 会員ID メールアドレス 付与ポイント @CSVValidator(msgKey = "errors.pointDay", method = "validatePointGetDate") @CSVColumn(columnIndex = 0, columnName = "ポイント付与日時") public String pointGetDateInput; public String pointGetDate; @CSVColumn(columnIndex = 1, columnName = "区分") public String dummy1; @CSVColumn(columnIndex = 2, columnName = "付加情報") public String dummy2; @CSVValidator(msgKey = "errors.memberId2", method = "validateMemberId") @CSVColumn(columnIndex = 3, columnName = "会員ID") public String memberId; @CSVColumn(columnIndex = 4, columnName = "メールアドレス") public String dummy3; @CSVRequired @CSVColumn(columnIndex = 5, columnName = "付与ポイント") public String pointGetNum; @CSVColumn(columnIndex = 6, columnName = "結果") public String okNg = "OK"; @CSVColumn(columnIndex = 7, columnName = "理由") public String reason = "reason"; @CSVColumn(columnIndex = 8, columnName = "登録結果") public String insertResult = "OK"; public Integer pointUseNum=0; public Integer validFlg = SinaburoConstant.ValidFlg.VALID; public boolean validatePointGetDate(String args) { Date date = null; SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd"); if(StringUtil.isBlank(args)) return true; format.setLenient(false); try { date=format.parse(args); } catch (ParseException e) { return false; } format = new SimpleDateFormat("yyyyMMdd"); pointGetDate=format.format(date); return true; } public boolean isValidMemberId=false; public boolean validateMemberId(String args) { if (!StringUtil.equals(args, "")) { checkMemberId = Integer.parseInt(args); } isValidMemberId=validateLoginId(args); return isValidMemberId; } @SuppressWarnings("unused") public boolean validateLoginId(String args) { Member memberInfo = null; if(StringUtil.isBlank(args)) return true; memberInfo = memberService.findById(Integer.parseInt(args)); if (memberInfo == null) {return false;} if (memberInfo != null) { if (StringUtil.isBlank(args)) { return false; } if(memberInfo.memberId.equals(checkMemberId)) { return true; } return false; } return true; } }