package com.ruoyi.common.core.utils; import com.alibaba.fastjson2.JSON; import com.ruoyi.common.core.constant.MsgConstants; import com.ruoyi.common.core.utils.req.SubmitTempletReq; import org.apache.commons.codec.binary.Base64; import java.util.concurrent.ThreadLocalRandom; public class MsgUtil { public final static String ecName= "四川明星新能源科技有限公司"; public final static String secretKey= "MX_xny2023?9"; public final static String sign= "1PUAVuY2b"; /** * 更换手机号:【签名】验证码:XXX,用于更换手机号。请勿转发。 * @param phone 手机号 * @param code 验证码 * @return */ public static String codeMsg(String phone,String code){ SubmitTempletReq submitReq = new SubmitTempletReq(); String[] paramss = {code}; submitReq.setApId(MsgConstants.CODE_AP_ID); submitReq.setEcName(ecName); submitReq.setSecretKey(secretKey); submitReq.setParams(JSON.toJSONString(paramss)); submitReq.setMobiles(phone); submitReq.setAddSerial(""); submitReq.setSign(sign); submitReq.setTemplateId(MsgConstants.CODE_TEMPLATE_ID); StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append(submitReq.getEcName()); stringBuffer.append(submitReq.getApId()); stringBuffer.append(submitReq.getSecretKey()); stringBuffer.append(submitReq.getTemplateId()); stringBuffer.append(submitReq.getMobiles()); stringBuffer.append(submitReq.getParams()); stringBuffer.append(submitReq.getSign()); stringBuffer.append(submitReq.getAddSerial()); submitReq.setMac(MD5Util.getMD5(stringBuffer.toString())); String reqText = JSON.toJSONString(submitReq); //加密 String encode = Base64.encodeBase64String(reqText.getBytes()); System.err.println(encode); return encode; } /** * 更换手机号:【签名】验证码:XXX,用于更换手机号。请勿转发。 * @param phone 手机号 * @param code 验证码 * @return */ public static String applyCodeMsg(String phone,String code){ SubmitTempletReq submitReq = new SubmitTempletReq(); String[] paramss = {code}; submitReq.setApId(MsgConstants.APPLY_AP_ID); submitReq.setEcName(ecName); submitReq.setSecretKey(secretKey); submitReq.setParams(JSON.toJSONString(paramss)); submitReq.setMobiles(phone); submitReq.setAddSerial(""); submitReq.setSign(sign); submitReq.setTemplateId(MsgConstants.APPLY_TEMPLATE_ID); StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append(submitReq.getEcName()); stringBuffer.append(submitReq.getApId()); stringBuffer.append(submitReq.getSecretKey()); stringBuffer.append(submitReq.getTemplateId()); stringBuffer.append(submitReq.getMobiles()); stringBuffer.append(submitReq.getParams()); stringBuffer.append(submitReq.getSign()); stringBuffer.append(submitReq.getAddSerial()); submitReq.setMac(MD5Util.getMD5(stringBuffer.toString())); String reqText = JSON.toJSONString(submitReq); //加密 String encode = Base64.encodeBase64String(reqText.getBytes()); System.err.println(encode); return encode; } /** * 停车占位提醒:车辆已在3小时前完成充电,请及时取车,避免长时间占用充电资源。 * @param phone 手机号 * @return */ public static String stopMsg(String phone){ SubmitTempletReq submitReq = new SubmitTempletReq(); submitReq.setTemplateId(MsgConstants.STOP_TEMPLATE_ID); submitReq.setApId(MsgConstants.STOP_AP_ID); submitReq.setEcName(ecName); submitReq.setSecretKey(secretKey); submitReq.setMobiles(phone); submitReq.setAddSerial(""); submitReq.setSign(sign); StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append(submitReq.getEcName()); stringBuffer.append(submitReq.getApId()); stringBuffer.append(submitReq.getSecretKey()); stringBuffer.append(submitReq.getTemplateId()); stringBuffer.append(submitReq.getMobiles()); stringBuffer.append(submitReq.getParams()); stringBuffer.append(submitReq.getSign()); stringBuffer.append(submitReq.getAddSerial()); submitReq.setMac(MD5Util.getMD5(stringBuffer.toString())); String reqText = JSON.toJSONString(submitReq); //加密 String encode = Base64.encodeBase64String(reqText.getBytes()); System.err.println(encode); return encode; } /** * 充电结束:车辆充电结束,请及时取车。 * @param phone 手机号 * @return */ public static String chargeStopMsg(String phone){ SubmitTempletReq submitReq = new SubmitTempletReq(); submitReq.setTemplateId(MsgConstants.CHARGE_TEMPLATE_ID); submitReq.setApId(MsgConstants.CHARGE_AP_ID); submitReq.setEcName(ecName); submitReq.setSecretKey(secretKey); submitReq.setMobiles(phone); submitReq.setAddSerial(""); submitReq.setSign(sign); StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append(submitReq.getEcName()); stringBuffer.append(submitReq.getApId()); stringBuffer.append(submitReq.getSecretKey()); stringBuffer.append(submitReq.getTemplateId()); stringBuffer.append(submitReq.getMobiles()); stringBuffer.append(submitReq.getParams()); stringBuffer.append(submitReq.getSign()); stringBuffer.append(submitReq.getAddSerial()); submitReq.setMac(MD5Util.getMD5(stringBuffer.toString())); String reqText = JSON.toJSONString(submitReq); //加密 String encode = Base64.encodeBase64String(reqText.getBytes()); System.err.println(encode); return encode; } /** phone 单词可拼接5000个号码 * 桩故障(自动/手动):检测到【电站1】【编号】号桩设备离线,请及时查看处理! * @param phone 手机号 * @param site 站点名称 * @param chargeGun 桩编号 * @return */ public static String faultMsg(String phone,String site,String chargeGun){ SubmitTempletReq submitReq = new SubmitTempletReq(); if(site.length()<=10){ String[] paramss = {site,chargeGun}; submitReq.setParams(JSON.toJSONString(paramss)); }else{ String work1 = site.substring(0,10); String[] paramss = {work1,chargeGun}; submitReq.setParams(JSON.toJSONString(paramss)); } submitReq.setTemplateId(MsgConstants.FAULT_TEMPLATE_ID); submitReq.setApId(MsgConstants.FAULT_AP_ID); submitReq.setEcName(ecName); submitReq.setSecretKey(secretKey); submitReq.setMobiles(phone); submitReq.setAddSerial(""); submitReq.setSign(sign); StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append(submitReq.getEcName()); stringBuffer.append(submitReq.getApId()); stringBuffer.append(submitReq.getSecretKey()); stringBuffer.append(submitReq.getTemplateId()); stringBuffer.append(submitReq.getMobiles()); stringBuffer.append(submitReq.getParams()); stringBuffer.append(submitReq.getSign()); stringBuffer.append(submitReq.getAddSerial()); submitReq.setMac(MD5Util.getMD5(stringBuffer.toString())); String reqText = JSON.toJSONString(submitReq); //加密 String encode = Base64.encodeBase64String(reqText.getBytes()); System.err.println(encode); return encode; } /** * 生成验证码 * @return */ public static String createCode(){ return String.valueOf(ThreadLocalRandom.current().nextInt(100000, 999999)); } }