zhongrj
2023-06-29 800efd2012f9b86f0aad57ccd40eb3811b370c1b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
package cn.gistack.alerts.sms.util;
 
import cn.com.flaginfo.sdk.cmc.api.ApiProvider;
import cn.com.flaginfo.sdk.cmc.api.request.ApiConfig;
import cn.com.flaginfo.sdk.cmc.api.result.ComResult;
import cn.com.flaginfo.sdk.cmc.api.sms.dynsend.DynSMSAPI;
import cn.com.flaginfo.sdk.cmc.api.sms.dynsend.DynSMSSendDataResult;
import cn.com.flaginfo.sdk.cmc.api.sms.dynsend.DynSMSSendRequest;
import cn.com.flaginfo.sdk.cmc.api.sms.send.SMSApi;
import cn.com.flaginfo.sdk.cmc.api.sms.send.SMSSendDataResult;
import cn.com.flaginfo.sdk.cmc.api.sms.send.SMSSendRequest;
import cn.com.flaginfo.sdk.cmc.common.ApiEnum;
import cn.gistack.common.constant.SmsConstant;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.stereotype.Component;
 
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
 
import static cn.gistack.common.constant.SmsConstant.*;
 
/**
 * 短信发送工具类
 * @author zhongrj
 * @date 2023-05-30
 */
@Component
public class SmsUtils {
 
    /**
     * 固定内容发送
     */
    public static ComResult<SMSSendDataResult> sendMsg(SMSSendRequest sendRequest) {
        ApiConfig apiConfig = new ApiConfig(SpCode, AppKey, AppSecret);
        ApiProvider provider = ApiProvider.getInstance(apiConfig);
        //请求接口
        SMSApi api = (SMSApi) provider.getApi(ApiEnum.SENDSMS);
        api.setRequestUrl(SmsConstant.HOST + SmsConstant.sendUrl);
        //请求参数
        sendRequest.setSerialNumber(new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()));
        ComResult<SMSSendDataResult> request = api.request(sendRequest);
        // 返回
        return request;
    }
 
    /**
     * 获取随机字符串
     * @return
     */
    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 str;
    }
 
    /**
     * 动态短信内容批量发送
     */
    public static ComResult<DynSMSSendDataResult> 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 result;
    }
 
    /**
     * 状态报告
     */
//    public void testReportMethod() {
//        //请求接口
//        SMSReportAPI api = (SMSReportAPI) provider.getApi(ApiEnum.REPORTSMS);
//        api.setRequestUrl(SmsConstant.HOST + "/info/sms/report");
//        //请求
//        ComResult<List<SMSReportResult>> result = api.request(new SMSReportRequest());
//        List<SMSReportResult> data = result.getData();
//        if (data.size() > 0) {
//            System.out.println(data.get(0).getResult());
//        }
//        System.out.println(JSON.toJSONString(data));
//        System.out.println(JSON.toJSONString(result));
//
//    }
 
    /**
     * 上行回复查询
     */
//    public void testReplyMethod() {
//        //请求接口
//        SMSReplyAPI api = (SMSReplyAPI) provider.getApi(ApiEnum.REPLYSMS);
//        api.setRequestUrl(SmsConstant.HOST + "/info/sms/reply/query");
//        SMSReplyRequest smsReplyRequest = new SMSReplyRequest();
//        //请求
//        ComResult<SMSReplyDataResult> result = api.request(smsReplyRequest);
//        System.out.println(result.getData().getMaxId());
//        if (result.getData().getApiSmsReplyBoList() != null && result.getData().getApiSmsReplyBoList().size() > 0) {
//            System.out.println(result.getData().getApiSmsReplyBoList().get(0).getContent());
//        }
//        System.out.println(JSON.toJSONString(result));
//    }
 
    /**
     * 上行回复查询数据收到确认
     */
//    public void testReplyConfirmMethod() {
//        //请求接口
//        SMSReplyConfirmAPI api = (SMSReplyConfirmAPI) provider.getApi(ApiEnum.REPLYSMSCONFIRM);
//        //请求Url
//        SMSReplyConfirmRequest req = new SMSReplyConfirmRequest();
//        api.setRequestUrl(SmsConstant.HOST + "/info/sms/reply/confirm");
//        req.setMaxId("10110572149");
//        ComResult request = api.request(req);
//        System.out.println(request.isSucc());
//        System.out.println(JSON.toJSONString(request));
//    }
//    public static void main(String[] args) {
//        String redisByTaskId = "123";
//        String taskId = "";
//        boolean flag = !StringUtil.equalsIgnoreCase(redisByTaskId, taskId);
//        System.out.println("flag = " + flag);
//    }
}