功能背景
每个月月初要定时发送Libor自动调息邮件提醒当月有任务的项目经理,因为有多个项目的项目经理是同一个人,所以要给收件人去重
SQL里面不好邮箱去重因为会影响到查询,所以在代码里面去重
思路
再使用一个emailList来设置email收件人,使用contains来去重,如果emailList 中有 查询到 已有的email ,则直接跳过此次新增emailList,如果没有查询到,则新增到emailList
List.contains
contains(),该方法是判断字符串中是否有子字符串。如果有则返回true,如果没有则返回false。
代码
//设置收件人为主办经理
List<String> emailList = new ArrayList<>();
for (InterestAdjustEntity entity:list){
//如果发送列表有相同的人则不重复发送
if (emailList.contains( entity.getEmail() )){
continue;
}
emailList.add(entity.getEmail());
}
//发送邮件
EMailUtil.send(smtphost, username, password, "当月LIBOR调息提醒", content.toString(),emailList);
邮件模板
/**
* LIBOR发送邮件的方法
*
* @param list 要发送的信息
* @throws IOException
* @throws MessagingException
*/
public void liborSendEmail(List<InterestAdjustEntity> list) throws IOException, MessagingException {
StringBuilder content = new StringBuilder();
//libor项目
if (list.size() > 0) {
content.append("<table width='100%' border='1' cellpadding='10' cellspacing='1' style='border:1px solid #EAEFF0;margin-top:20px'>");
content.append("<tr style='color:#333333; font-weight:bold;'><th colspan='6' style='border:1px solid #EAEFF0;background-color:#B0C4DE'>Libor项目</th></tr>");
content.append("<tr style='color:#333333; font-weight:bold;'>");
content.append("<th width='5%' style='border:1px solid #EAEFF0;background-color:#fdf6df'>序号</th>");
content.append("<th width='20%' style='border:1px solid #EAEFF0;background-color:#fdf6df'>借据编号</th>");
content.append("<th width='25%' style='border:1px solid #EAEFF0;background-color:#fdf6df'>借据名称</th>");
content.append("<th width='25%' style='border:1px solid #EAEFF0;background-color:#fdf6df'>下一重定价日</th>");
content.append("<th width='15%' style='border:1px solid #EAEFF0;background-color:#fdf6df'>下一调息日</th>");
content.append("<th width='10%' style='border:1px solid #EAEFF0;background-color:#fdf6df'>主办经理</th></tr>");
int i = 0;
for (InterestAdjustEntity entity : list) {
content.append("<tr style='color:#333333; font-weight:bold;'>");
content.append("<td style='border:1px solid #EAEFF0;'>" + ++i + "</td>");
content.append("<td style='border:1px solid #EAEFF0;'>" + entity.getRecepitNo() + "</td>");
content.append("<td style='border:1px solid #EAEFF0;'>" + entity.getRecepitName() + "</td>");
content.append("<td style='border:1px solid #EAEFF0;'>" + DateFormatUtils.format(entity.getNextPriceDate(), "yyyy-MM-dd") + "</td>");
content.append("<td style='border:1px solid #EAEFF0;'>" + DateFormatUtils.format(entity.getNextRepriceDate(), "yyyy-MM-dd") + "</td>");
content.append("<td style='border:1px solid #EAEFF0;'>" + entity.getStaffName() + "</td></tr>");
}
content.append("</table>");
}
//测试邮箱
//设置收件人为主办经理
List<String> emailList = new ArrayList<>();
for (InterestAdjustEntity entity:list){
//如果发送列表有相同的人则不重复发送
if (emailList.contains( entity.getEmail() )){
continue;
}
emailList.add(entity.getEmail());
}
EMailUtil.send(smtphost, username, password, "当月LIBOR调息提醒", content.toString(),emailList);
}