package com.sohu.cache.web.component;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.sohu.cache.util.ConstUtils;
import com.sohu.cache.web.util.HttpRequestUtil;
/**
* 手机短信报警
* @author leifu
* @Date 2014年11月26日
* @Time 上午10:11:26
*/
public class MobileAlertComponentImpl implements MobileAlertComponent {
private final Logger logger = LoggerFactory.getLogger(MobileAlertComponentImpl.class);
/**
* 管理员电话
*/
private String adminPhones = ConstUtils.PHONES;
@Override
public void sendPhoneToAdmin(String message) {
if (StringUtils.isBlank(message) || StringUtils.isBlank(adminPhones)) {
logger.error("message is {}, maybe empty or adminPhones is {}, maybe empty", message, adminPhones);
}
sendPhone(message, Arrays.asList(adminPhones.split(ConstUtils.COMMA)));
}
@Override
public void sendPhone(String message, List<String> phoneList) {
String alertUrl = ConstUtils.MOBILE_ALERT_INTERFACE;
if (StringUtils.isBlank(alertUrl)) {
logger.error("mobileAlertInterface url is empty!");
return;
}
if (StringUtils.isBlank(message) || phoneList == null || phoneList.isEmpty()) {
logger.error("message is {}, phoneList is {} both maybe empty!", message, phoneList);
return;
}
String charSet = "UTF-8";
String phone = StringUtils.join(phoneList, ConstUtils.COMMA);
Map<String, String> postMap = new HashMap<String, String>();
postMap.put("msg", message);
postMap.put("phone", phone);
String responseStr = HttpRequestUtil.doPost(alertUrl, postMap, charSet);
if (StringUtils.isBlank(responseStr)) {
logger.error("发送短信失败 : url:{}", alertUrl);
}
logger.warn("send Done!");
}
public void setAdminPhones(String adminPhones) {
this.adminPhones = adminPhones;
}
}