SendMsgUtil和SendSMS.java和SendMsg

SendMsgUtil.java




/**
 * Created on 2018/3/24.
 * Description:
 */
public class SendMsgUtil {

    /**
     * 短信发送接口(多个账号以逗号','分隔),支持手机号和工号(但当工号下有多个手机号码时发送失败)
     *
     * @param destAddrs 短信接收人列表
     * @param content   短信内容
     * @return
     */
    public static String sendSMS(String destAddrs, String content) {
        if (null == destAddrs || destAddrs.isEmpty()) {
            throw new RuntimeException("check parameter, sms address is empty");
        }
        if (null == content || content.isEmpty()) {
            throw new RuntimeException("check parameter, sms content is empty");
        }

        OpenPlatformClient openPlatformClient = OpenPlatformClient.getInstance();
        Map<String, String> map = new HashMap<>();//业务参数
        map.put("destAddr", destAddrs);
        map.put("smContent", content);

        String result = openPlatformClient.post(MsgType.sendSMS.name(), map);
        return result;
    }

    /**
     *
     * @param mainAddrs 收件人邮件地址列表 “,”分隔
     * @param ccAddrs   抄送人邮件地址列表 “,”分隔
     * @param bccAddrs  密送人邮件地址列表 “,”分隔
     * @param subject   主题
     * @param content   内容
     * @return
     */
    public static String sendEmail(String mainAddrs, String ccAddrs,
                                   String bccAddrs, String subject,
                                   String content) {
        if (null == mainAddrs || mainAddrs.isEmpty()) {
            throw new RuntimeException("check parameter, email address is empty");
        }
        if (null == subject || subject.isEmpty()) {
            throw new RuntimeException("check parameter, email subject is empty");
        }
        if (null == content || content.isEmpty()) {
            throw new RuntimeException("check parameter, email content is empty");
        }

        List<String> ccAddrList = null;
        if (null != ccAddrs && !ccAddrs.isEmpty()) {
            ccAddrList = Arrays.asList(ccAddrs.split(ADDR_SEPARATOR_COMMA));
        }
        List<String> bccAddrList = null;
        if (null != bccAddrs && !bccAddrs.isEmpty()) {
            bccAddrList = Arrays.asList(bccAddrs.split(ADDR_SEPARATOR_COMMA));
        }

        return sendEmail(Arrays.asList(mainAddrs.split(ADDR_SEPARATOR_COMMA)), ccAddrList,
               bccAddrList, subject, content);
    }

    /**
     * 邮件发送接口(多个账号以分号';'分隔),支持工号和邮箱地址
     *
     * @return
     */
    public static String sendEmail(List<String> mainAddrs, List<String> ccAddrs,
                                   List<String> bccAddrs, String subject,
                                   String content) {
        OpenPlatformClient openPlatformClient = OpenPlatformClient.getInstance();

        if (null == mainAddrs || mainAddrs.size() == 0) {
            throw new RuntimeException("check parameter, email address list is empty");
        }
        if (null == subject || subject.isEmpty()) {
            throw new RuntimeException("check parameter, email subject is empty");
        }
        if (null == content || content.isEmpty()) {
            throw new RuntimeException("check parameter, email content is empty");
        }

        Map<String, String> map = new HashMap<>();//业务参数
        map.put("address", String.join(ADDR_SEPARATOR_SEMICOLON, mainAddrs));
        if (null != ccAddrs && ccAddrs.size() > 0) {
            map.put("ccAddr", String.join(ADDR_SEPARATOR_SEMICOLON, ccAddrs));    //抄送
        }
        if (null != bccAddrs && bccAddrs.size() > 0) {
            map.put("bccAddr", String.join(ADDR_SEPARATOR_SEMICOLON, bccAddrs));  //密送
        }
        map.put("subject", subject);
        map.put("content", content);

        String result = openPlatformClient.post(MsgType.sendEmail.name(), map);
        return result;
    }

    /**
     * 向多人发送espace消息
     * @param accounts 联系人列表“,"分隔
     * @param content  消息内容
     * @return
     */
    public static String SendMulEspace(String accounts, String content) {
        if (null == accounts || accounts.isEmpty()) {
            throw new RuntimeException("check parameter, eSpace accounts is empty");
        }
        if (null == content || content.isEmpty()) {
            throw new RuntimeException("check parameter, eSpace message is empty");
        }

        return _SendMulEspace(accounts, content).toString();
    }

    private static SendEspacePO _SendMulEspace(String accounts, String content) {
        String[] accountArr = accounts.split(ADDR_SEPARATOR_COMMA);

        SendEspacePO retObj = new SendEspacePO();
        List<SendEspacePO.OneResult> succList = new ArrayList<>();
        List<SendEspacePO.OneResult> failList = new ArrayList<>();
        for (String account : accountArr) {
            SendEspacePO.OneResult one = new SendEspacePO.OneResult();
            String ret;
            boolean flag = true;
            try {
                ret = sendESpace(account, content);
            } catch (Exception e) {
                ret = e.getLocalizedMessage();
                flag = false;
            }
            one.setAccount(account);
            one.setMessage(ret);

            if (flag && CommonUtil.checkCloudPagerResult(ret)) {
                succList.add(one);
            } else {
                failList.add(one);
            }
        }
        retObj.setSuccess(succList);
        retObj.setFailure(failList);

        return retObj;
    }

    /**
     * eSpace发送接口(仅支持单发)
     *
     * @return
     */
    public static String sendESpace(String targetAccount, String content) {
        OpenPlatformClient openPlatformClient = OpenPlatformClient.getInstance();
        if (null == targetAccount || targetAccount.isEmpty()) {
            throw new RuntimeException("check parameter, eSpace account is empty");
        }
        if (null == content || content.isEmpty()) {
            throw new RuntimeException("check parameter, eSpace message is empty");
        }
        Map<String, String> map = new HashMap<>();//业务参数
        map.put("targetAccount", targetAccount);//接收工号
        map.put("content", content);

        String result = openPlatformClient.post(MsgType.sendEspace.name(), map); //接口方法
        return result;
    }

    public static final String ADDR_SEPARATOR_COMMA = ",";
    public static final String ADDR_SEPARATOR_SEMICOLON = ";";
}

SendSMS.java



/**
 * Created on 2018/3/24.
 * Description:
 */
public class SendSMS {

    /**
     * @param args
     */
    public static void main(String[] args) {
        checkParameter(args);

        String result = null;
        try {
            String content = args[0];
            String addStr = args[1];

            result = SendMsgUtil.sendSMS(addStr, content);
        } catch (Exception e) {
            CommonUtil.exitWithErrorMsg("send sms exception, details:" + e.getLocalizedMessage());
        }

        if (!checkResult(result)) {
            CommonUtil.exitWithErrorMsg("send sms error, details:" + result);
        }

        System.exit(CommonConstants.RET_SUCCESS);
    }

    private static boolean checkResult(String result) {
        return null != result && result.contains(CommonConstants.CLOUDPAGER_RET_SUCCESS);
    }

    private static void checkParameter(String[] args) {
        if (null == args || args.length < 2) {
            showHelp();
            System.exit(CommonConstants.RET_FAIL);
        }

        String addStr = args[1];
        String[] addArr = addStr.split(SendMsgUtil.ADDR_SEPARATOR_COMMA);
        for (String phoneNum : addArr) {

        }
    }

    private static void showHelp() {
        String lineSeparator = System.lineSeparator();
        StringBuffer sb = new StringBuffer("Usage:");
        sb.append(lineSeparator).append("./sendsms.sh need two parameters.").append(lineSeparator);
        sb.append("First parameter: message content.").append(lineSeparator);
        sb.append("Second parameter: phone num list(separate by \",\").");
        System.out.println(sb.toString());
    }

}
 

SendMsg.java


/**
 * Created on 2018/3/28.
 * Description:
 *    统一命令入口
 */
public class SendMsg {
    /**
     * @param args
     *
     * type=sendSMS:    [sendSMS]    [content] [phone number]
     * type=sendEspace: [sendEspace] [content] [job number]
     * type=sendEmail:  [sendEmail]  [subject] [content] [email] [Cc(Optional)] [Bcc(Optional)]
     */
    public static void main(String[] args) {
        checkParameter(args);

        String result = dispatchCmd(args);
        if (!CommonUtil.checkCloudPagerResult(result)) {
            CommonUtil.exitWithErrorMsg("send message error, details:" + result);
        }

        System.exit(CommonConstants.RET_SUCCESS);
    }

    private static String dispatchCmd(String[] args) {
        String result = null;
        MsgType msgType = MsgType.valueOf(args[0]);
        try {
            if (MsgType.sendSMS == msgType) {
                result = SendMsgUtil.sendSMS(args[2], args[1]);
            } else if(MsgType.sendEspace == msgType) {
                result = SendMsgUtil.SendMulEspace(args[2], args[1]);
            } else if(MsgType.sendEmail == msgType){
                String ccAddr = null;
                String bccAddr = null;
                if (args.length == 5) {
                    ccAddr = args[4];
                }
                if (args.length == 6) {
                    ccAddr = args[4];
                    bccAddr = args[5];
                }
                result = SendMsgUtil.sendEmail(args[3], ccAddr, bccAddr, args[1], args[2]);
            }
        } catch (Exception e) {
            CommonUtil.exitWithErrorMsg("send sms exception, details:" + e.getLocalizedMessage());
        }

        return result;
    }

    private static void checkParameter(String[] args) {
        if (null == args || args.length < 3) {
            showHelp();
            System.exit(CommonConstants.RET_FAIL);
        }

        String type = args[0];
        if (null == MsgType.valueOf(type)) {
            CommonUtil.exitWithErrorMsg("unsupported message type[sendSMS/sendEspace/sendEmail]");
        }

        if (MsgType.sendEmail == MsgType.valueOf(type)) {
            if (args.length < 4) {
                showHelp();
                System.exit(CommonConstants.RET_FAIL);
            }
        }
    }

    private static void showHelp() {
        String lineSeparator = System.lineSeparator();
        StringBuffer sb = new StringBuffer("Usage:");
        sb.append(lineSeparator).append("script need at least three parameters, format: [type] [] [].. ").append(lineSeparator);
        sb.append("1 type=sendSMS:    [sendSMS]    [content] [phone number(separate by \",\")] ").append(lineSeparator);
        sb.append("2 type=sendEspace: [sendEspace] [content] [job number(separate by \",\")] ").append(lineSeparator);
        sb.append("3 type=sendEmail:  [sendEmail]  [subject] [content] [email(separate by \",\")] [Cc(Optional)] [Bcc(Optional)] ").append(lineSeparator);
        System.out.println(sb.toString());
    }
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值