package jp.agentec.sinaburocast.service; import java.util.List; import jp.agentec.sinaburocast.entity.MemberNotifyMail; import org.seasar.extension.jdbc.where.SimpleWhere; import org.seasar.framework.container.annotation.tiger.Component; import org.seasar.framework.container.annotation.tiger.InstanceType; @Component(instance=InstanceType.SINGLETON) public class MemberNotifyMailService extends AbstractService<MemberNotifyMail> { public static final String ID_SEQ_NAME = "member_notify_mail_id_seq"; public NotifyMailSendResultService notifyMailSendResultService; /** * IDを発行して、登録する。 */ public int insertMemberNotifyMail(MemberNotifyMail memberNotifyMail, String insId) { memberNotifyMail.memberNotifyMailId = getSeqNextVal(Integer.class, ID_SEQ_NAME); return super.insert(memberNotifyMail, insId); } public MemberNotifyMail findById(Integer memberNotifyMailId) { return select().id(memberNotifyMailId).innerJoin("enquete").getSingleResult(); } public MemberNotifyMail findByEnqueteId(Integer enqueteId) { return select().where(new SimpleWhere().eq("enqueteId",enqueteId )).getSingleResult(); } public List<MemberNotifyMail> findAllOrderById() { return select().orderBy("memberNotifyMailId asc").getResultList(); } public List<MemberNotifyMail> findAllByEnqueteId(String eid) { return select().where(new SimpleWhere().eq("enqueteId",eid)).getResultList(); } /** * アンケート検索画面で削除ボタンを押した場合。 * @param eid アンケートID * @return */ public int deleteByEnqueteId(String eid) { List<MemberNotifyMail> list = findAllByEnqueteId(eid); if (!list.isEmpty()) { // 送信履歴の削除 for (MemberNotifyMail mail : list) { notifyMailSendResultService.deleteByMemberNotifyMailId(mail.memberNotifyMailId); } jdbcManager.deleteBatch(list).execute(); } return 0; } }