/*
* Copyright (c) 2008-2016 Computer Network Information Center (CNIC), Chinese Academy of Sciences.
*
* This file is part of Duckling project.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package cn.vlabs.umt.services.requests.impl;
import java.util.Collection;
import java.util.Date;
import java.util.Properties;
import org.apache.commons.lang.time.DateFormatUtils;
import org.apache.log4j.Logger;
import cn.vlabs.umt.common.mail.EmailTemplate;
import cn.vlabs.umt.common.mail.MailException;
import cn.vlabs.umt.common.mail.MessageSender;
import cn.vlabs.umt.services.requests.UserRequest;
import cn.vlabs.umt.services.user.bean.User;
import cn.vlabs.umt.ui.UMTContext;
public class RequestMails {
public final static String BEAN_ID="RequestEmail";
public RequestMails(MessageSender sender){
this.sender=sender;
}
public void sendAcceptMail(UserRequest request, UMTContext context){
Properties prop = new Properties();
setProperty(prop,"username", request.getUsername());
setProperty(prop,"truename", request.getTruename());
setProperty(prop,"orgnization", request.getOrgnization());
setProperty(prop,"phonenumber", request.getPhonenumber());
setProperty(prop,"createtime", DateFormatUtils.format(request.getCreateTime(),"yyyy-MM-dd"));
setProperty(prop,"CurrentDate", DateFormatUtils.format(new Date(),"yyyy-MM-dd"));
setProperty(prop,"site", context.getSiteURL());
try {
sender.send(context.getLocale(), request.getEmail(), EmailTemplate.TARGET_APPROVE, prop);
} catch (MailException e) {
log.error(e.getMessage());
log.debug("information", e);
}
}
public void sendDenyUser(UserRequest request, UMTContext context){
Properties prop = new Properties();
setProperty(prop,"username", request.getUsername());
setProperty(prop,"truename", request.getTruename());
setProperty(prop,"orgnization", request.getOrgnization());
setProperty(prop,"phonenumber", request.getPhonenumber());
setProperty(prop,"createtime", DateFormatUtils.format(request.getCreateTime(),"yyyy-MM-dd"));
setProperty(prop,"CurrentDate", DateFormatUtils.format(new Date(),"yyyy-MM-dd"));
setProperty(prop,"UserTrueName", request.getTruename());
try {
sender.send(context.getLocale(), request.getEmail(), EmailTemplate.TARGET_DENY, prop);
} catch (MailException e) {
log.error(e.getMessage());
log.debug("information", e);
}
}
public void sendRegistUser(UserRequest request, UMTContext context){
Collection<User> admins= UMTContext.getAdminUsers();
if (admins==null || admins.size()==0){
log.error("没有找到管理员帐户,无法发送通知邮件。");
return;
}
Properties prop = new Properties();
setProperty(prop, "username", request.getUsername());
setProperty(prop,"truename", request.getTruename());
setProperty(prop,"orgnization", request.getOrgnization());
setProperty(prop,"phonenumber", request.getPhonenumber());
setProperty(prop,"createtime", DateFormatUtils.format(request.getCreateTime(),"yyyy-MM-dd"));
setProperty(prop,"CurrentDate", DateFormatUtils.format(new Date(),"yyyy-MM-dd"));
String to="";
boolean first=true;
for (User u:admins){
if (first){
to=u.getCstnetId();
first=false;
}else{
to=to+","+u.getCstnetId();
}
}
try {
sender.send(context.getLocale(), to, EmailTemplate.TARGET_REGISTER, prop);
} catch (MailException e) {
log.error(e.getMessage());
log.debug("information", e);
}
}
private void setProperty(Properties prop , String key , String value){
String v=value;
if (v==null){
v="";
}
prop.setProperty(key, v);
}
private static final Logger log = Logger.getLogger(RequestMails.class);
private MessageSender sender;
}