guoshilong
2023-05-18 6cd2da8eb7d7aefecd96a19ebbfe9caba59ea88c
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/util/SmsUtils.java
@@ -21,6 +21,8 @@
import cn.gistack.sm.sms.constant.SmsConstant;
import com.alibaba.fastjson.JSON;
import org.aspectj.lang.annotation.Before;
import org.springblade.core.redis.cache.BladeRedis;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
@@ -29,10 +31,14 @@
import java.util.List;
import java.util.Random;
import static cn.gistack.common.cache.CacheNames.PHONE_KEY;
import static cn.gistack.sm.sms.constant.SmsConstant.*;
@Component
public class SmsUtils {
   @Autowired
   private BladeRedis bladeRedis;
   /**
    * 固定内容发送
@@ -50,70 +56,34 @@
      return JSON.toJSONString(request);
   }
//   public static void main(String[] args) {
//      SMSSendRequest sendRequest = new SMSSendRequest();
//      sendRequest.setMessageContent("你有一项编号为12349的事务需要处理;");
//      sendRequest.setTemplateId("2431012234034");
//      sendRequest.setUserNumber("15170720695");
//      String s = sendMsg(sendRequest);
//      System.out.println("s = " + s);
//   }
//   /**
//    * 固定内容发送
//    */
//   public void testSendMethod() {
//      // x-sp-code
//      String xspcode = "214596";
//      // x-app-key
//      String xappkey = "hbsl_zhsk";
//      // 计算 x-request-id
//      String xrequestid = getRandNumber();
//      // x-sign
//      String xsign = "";
//
//
//      //请求参数
//      SMSSendRequest sendRequest = new SMSSendRequest();
//      sendRequest.setMessageContent("你有一项编号为12349的事务需要处理;");
//      sendRequest.setTemplateId("2431012234034");
//      sendRequest.setUserNumber("15170720695");
//      sendRequest.setSerialNumber("20210801120000123456");
//
//   }
   /**
    * 获取随机字符串
    * @return
    */
   private String getRandNumber() {
      // 计算token
//      Date date = new Date();
//      String dateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(date);
   public static String getRandNumber() {
      Random random = new Random();
      //把随机生成的数字转成字符串
      String str = String.valueOf(random.nextInt(9));
      for (int i = 0; i < 5; i++) {
         str += random.nextInt(9);
      }
      return String.valueOf(System.currentTimeMillis()) + str;
      return str;
   }
   /**
    * 动态短信内容批量发送
    */
//   public static void testDynSendMethod() {
//      //请求接口
//      DynSMSAPI api = (DynSMSAPI) provider.getApi(ApiEnum.SENDDYNSMS);
//      api.setRequestUrl(SmsConstant.HOST + "/api/sms-var/send");
//      //请求参数
//      DynSMSSendRequest sendRequest = new DynSMSSendRequest();
//      sendRequest.setTemplateId("1011012028688");
//      sendRequest.setDynData(new String[][]{{"手机号码", "编号"}, {"13000000000", "456"}});
//      sendRequest.setSerialNumber("20210804120000123457");
//      ComResult<DynSMSSendDataResult> result = api.request(sendRequest);
//      System.out.println(JSON.toJSONString(result));
//   }
   public static String dynSendMethod(DynSMSSendRequest sendRequest) {
      ApiConfig apiConfig = new ApiConfig(SpCode, AppKey, AppSecret);
      ApiProvider provider = ApiProvider.getInstance(apiConfig);
      //请求接口
      DynSMSAPI api = (DynSMSAPI) provider.getApi(ApiEnum.SENDDYNSMS);
      api.setRequestUrl(SmsConstant.HOST + SmsConstant.sendVarUrl);
      //请求参数
      sendRequest.setSerialNumber(new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()));
      ComResult<DynSMSSendDataResult> result = api.request(sendRequest);
      return JSON.toJSONString(result);
   }
   /**
    * 状态报告