SmsPipeline.java
2.55 KB
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
package com.diligrp.assistant.sms.pipeline;
import com.diligrp.assistant.shared.ErrorCode;
import com.diligrp.assistant.sms.domain.SmsMessage;
import com.diligrp.assistant.sms.domain.SmsTemplate;
import com.diligrp.assistant.sms.exception.SmsServiceException;
import com.diligrp.assistant.sms.type.PipelineType;
import com.diligrp.assistant.sms.type.TemplateState;
public abstract class SmsPipeline {
// 通道编码
protected int code;
// 通道名称
protected String name;
// 通道类型
protected PipelineType type;
public SmsPipeline(int code, String name, PipelineType type) {
this.code = code;
this.name = name;
this.type = type;
}
/**
* 是否支持短信模版功能
*/
public abstract boolean templateSupported();
/**
* 创建短信模版
*
* @param template - 短信模版
* @return - 模版编码/ID
*/
public String createSmsTemplate(SmsTemplate template) {
throw new SmsServiceException(ErrorCode.OPERATION_NOT_ALLOWED, "短信服务通道不支持此操作");
}
/**
* 修改短信模版 - 阿里云短信服务只允许修改审核中的模版,审核通过的模版只能删除
*
* @param template - 短信模版
*/
public void modifySmsTemplate(SmsTemplate template) {
throw new SmsServiceException(ErrorCode.OPERATION_NOT_ALLOWED, "短信服务通道不支持此操作");
}
/**
* 根据短信模版编码查询模版审核状态
*
* @param templateId - 模版唯一标识
* @return 模版状态
*/
public TemplateState querySmsTemplateState(String templateId) {
throw new SmsServiceException(ErrorCode.OPERATION_NOT_ALLOWED, "短信服务通道不支持此操作");
}
/**
* 删除短信模版
*
* @param templateId - 模版唯一标识
*/
public void deleteSmsTemplate(String templateId) {
throw new SmsServiceException(ErrorCode.OPERATION_NOT_ALLOWED, "短信服务通道不支持此操作");
}
/**
* 根据短信模版发送短信
*
* @param message - 短信
* @return 短信唯一标识
*/
public abstract String sendSmsMessage(SmsMessage message);
public void destroy() {
}
/**
* 获取通道code
*/
public int getCode() {
return this.code;
}
/**
* 获取通道编码
*/
public String getName() {
return this.name;
}
/**
* 获取通道类型
*/
public PipelineType getType() {
return this.type;
}
}