| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- package com.zd.chemical.util;
- import cn.hutool.core.util.IdUtil;
- import com.esms.MOMsg;
- import com.esms.MessageData;
- import com.esms.PostMsg;
- import com.esms.common.entity.Account;
- import com.esms.common.entity.GsmsResponse;
- import com.esms.common.entity.MTPack;
- import com.zd.chemical.domain.SydSmsLog;
- import com.zd.chemical.service.ISydSmsLogService;
- import com.zd.common.core.constant.Constants;
- import com.zd.common.core.domain.R;
- import com.zd.common.core.utils.DateUtils;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.stereotype.Component;
- import javax.validation.constraints.NotNull;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.UUID;
- @Slf4j
- @Component
- public class SmsSydUtil {
- private static MTPack mtPack;
- // 证号 djjx
- // 登录密码 6B1aQety
- // 发送密码 yfhzfGSJ
- private static Account account = new Account("djjx", "yfhzfGSJ");
- private static String SMS_IP = "127.0.0.1";
- public static int DOWN_PORT = 8090;
- public static int UP_PORT = 8188;
- // 8090 下发端口 8188 拉取状态报告和上行
- private static PostMsg DOWN_PM = new PostMsg(SMS_IP, DOWN_PORT);
- private static PostMsg UP_PM = new PostMsg(SMS_IP, UP_PORT);
- private static Map<Integer, String> DOWN_MAP;
- private ISydSmsLogService sydSmsLogService;
- SmsSydUtil(){
- // TODO 参数配置化
- DOWN_MAP = new HashMap<>();
- DOWN_MAP.put(0 , "成功");
- DOWN_MAP.put(-1 , "账号无效,或者账号停用、过期等。");
- DOWN_MAP.put(-2 , "参数无效");
- DOWN_MAP.put(-3 , "连接不上服务器");
- DOWN_MAP.put(-6 , "用户名密码错误");
- DOWN_MAP.put(-11 , "单次提交号码数量超过系统限制");
- DOWN_MAP.put(-12 , "超过发送量限制");
- DOWN_MAP.put(-13 , "账号没有发送权限");
- DOWN_MAP.put(-99 , "系统内部错误");
- DOWN_MAP.put(-100 , "其它错误");
- }
- private static MTPack buildDefaultSMSPack() {
- if(SmsSydUtil.mtPack == null){
- mtPack = new MTPack();
- mtPack.setSendType(MTPack.SendType.MASS);
- mtPack.setMsgType(MTPack.MsgType.SMS);
- mtPack.setBizType(1);
- }
- return SmsSydUtil.mtPack;
- }
- /**
- * 四医大平台发送短信
- * @param content 发送内容
- * @param purpose 短信用途 1 告警,2 登录,3 开锁
- * @param phones 手机号
- * @return 发送结果
- */
- public R sendSydSms(@NotNull String content, @NotNull Integer purpose, @NotNull String... phones) throws Exception {
- UUID uuid = UUID.randomUUID();
- R r = singleTicketMsgId(content, uuid, phones);
- SydSmsLog sydSmsLog = new SydSmsLog();
- sydSmsLog.setContent(content);
- sydSmsLog.setPhone(phones.toString());
- sydSmsLog.setPurpose(purpose);
- sydSmsLog.setStatus(Integer.parseInt(r.getData() + ""));
- sydSmsLog.setCreateTime(DateUtils.getNowDate());
- sydSmsLog.setUuid(uuid.toString());
- sydSmsLogService.insertSydSmsLog(sydSmsLog);
- return r;
- }
- /**
- * 短信下发范例 每个话单,一个扩展码
- */
- private synchronized static R singleTicketMsgId(@NotNull String content, UUID uuid, @NotNull String... phones) throws Exception {
- MTPack pack = buildDefaultSMSPack();
- // 批次号
- pack.setBatchID(uuid);
- log.info("四医大短信下发参数:UUID," + pack.getBatchID() + "手机号:" + phones.toString() + "内容:" + content);
- for (String phone : phones) {
- pack.addMsg(MessageData.getInstance(phone, content));
- }
- GsmsResponse resp = DOWN_PM.post(account, pack);
- log.info("四医大短信下发返回结果:" + resp.toString());
- if(resp.getResult() == 0){
- return R.ok(resp.getResult()+"", resp.getResult());
- }else {
- return R.fail(resp.getResult()+"", DOWN_MAP.get(resp.getResult()));
- }
- }
- /**
- * 获取上行信息
- *
- */
- private static void doGetMos() throws Exception {
- MOMsg[] mos;
- mos = UP_PM.getMOMsgs(account, 10);
- if (mos != null) {
- for (MOMsg mo : mos) {
- log.info("四医大短信上行查询结果:" + mo.toString());
- }
- }
- }
- }
|