Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
0c198e8f
提交
0c198e8f
authored
5月 15, 2020
作者:
cherishsince
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
- 优化:增加注释,优化格式
上级
20e65bf2
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
39 行增加
和
78 行删除
+39
-78
AliYunSmsClient.java
.../iocoder/mall/system/biz/service/sms/AliYunSmsClient.java
+1
-8
SmsServiceImpl.java
...n/iocoder/mall/system/biz/service/sms/SmsServiceImpl.java
+35
-58
YunPianSmsClient.java
...iocoder/mall/system/biz/service/sms/YunPianSmsClient.java
+3
-12
没有找到文件。
system/system-biz/src/main/java/cn/iocoder/mall/system/biz/service/sms/AliYunSmsClient.java
浏览文件 @
0c198e8f
...
...
@@ -80,7 +80,6 @@ public class AliYunSmsClient implements SmsClient {
request
.
putQueryParameter
(
"SignName"
,
sign
);
request
.
putQueryParameter
(
"TemplateCode"
,
templateCode
);
request
.
putQueryParameter
(
"TemplateParam"
,
JSON
.
toJSONString
(
templateParams
));
// 发送请求
return
doSend
(
request
);
}
...
...
@@ -88,19 +87,17 @@ public class AliYunSmsClient implements SmsClient {
@Override
public
SendResult
batchSend
(
List
<
String
>
mobileList
,
String
sign
,
String
templateCode
,
String
template
,
Map
<
String
,
String
>
templateParams
)
{
// 最大发送数为 1000,我们设置为 500 个, 分段发送
int
maxSendSize
=
MAX_BATCH_SIZE
;
int
maxSendSizeCount
=
mobileList
.
size
()
%
maxSendSize
==
0
?
mobileList
.
size
()
/
maxSendSize
:
mobileList
.
size
()
/
maxSendSize
+
1
;
// 处理批量
SendResult
sendResult
=
null
;
for
(
int
i
=
0
;
i
<
maxSendSizeCount
;
i
++)
{
// 分批发送
List
<
String
>
batchSendMobile
=
mobileList
.
subList
(
i
*
maxSendSize
,
(
i
+
1
)
*
maxSendSize
);
// params
CommonRequest
request
=
new
CommonRequest
();
request
.
setMethod
(
MethodType
.
POST
);
...
...
@@ -111,7 +108,6 @@ public class AliYunSmsClient implements SmsClient {
request
.
putQueryParameter
(
"SignNameJson"
,
JSON
.
toJSONString
(
Collections
.
singletonList
(
sign
)));
request
.
putQueryParameter
(
"TemplateCode"
,
templateCode
);
request
.
putQueryParameter
(
"TemplateParamJson"
,
JSON
.
toJSONString
(
Collections
.
singletonList
(
templateParams
)));
// 发送请求
sendResult
=
doSend
(
request
);
}
...
...
@@ -125,9 +121,7 @@ public class AliYunSmsClient implements SmsClient {
CommonResponse
response
=
client
.
getCommonResponse
(
request
);
Result
result
=
JSON
.
parseObject
(
response
.
getData
(),
Result
.
class
);
if
(!
SUCCESS_CODE
.
equals
(
result
.
getCode
()))
{
LOGGER
.
info
(
"发送验证码失败 params {} res {}"
,
JSON
.
toJSON
(
request
),
JSON
.
toJSON
(
result
));
// 错误发送失败
return
new
SendResult
()
.
setIsSuccess
(
false
)
...
...
@@ -135,7 +129,6 @@ public class AliYunSmsClient implements SmsClient {
.
setMessage
(
result
.
getMessage
());
}
else
{
LOGGER
.
info
(
"发送验证码失败 params {} res"
,
JSON
.
toJSON
(
request
),
JSON
.
toJSON
(
result
));
// 发送成功
return
new
SendResult
()
.
setIsSuccess
(
true
)
...
...
system/system-biz/src/main/java/cn/iocoder/mall/system/biz/service/sms/SmsServiceImpl.java
浏览文件 @
0c198e8f
...
...
@@ -23,6 +23,7 @@ import cn.iocoder.mall.system.biz.dto.smsTemplate.ListSmsTemplateDTO;
import
cn.iocoder.mall.system.biz.enums.SystemErrorCodeEnum
;
import
cn.iocoder.mall.system.biz.enums.sms.SmsApplyStatusEnum
;
import
cn.iocoder.mall.system.biz.enums.sms.SmsPlatformEnum
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
...
...
@@ -70,16 +71,14 @@ public class SmsServiceImpl implements SmsService {
@Override
public
PageResult
<
ListSmsTemplateBO
>
listSmsTemplate
(
ListSmsTemplateDTO
listSmsTemplateDTO
)
{
// 获取 template
IPage
<
SmsTemplateDO
>
signPage
=
smsTemplateMapper
.
listSmsTemplate
(
listSmsTemplateDTO
);
List
<
ListSmsTemplateBO
>
templateList
=
SmsTemplateConvert
.
INSTANCE
.
convert
(
signPage
.
getRecords
());
if
(
CollectionUtils
.
isEmpty
(
templateList
))
{
if
(
CollectionUtils
.
isEmpty
(
signPage
.
getRecords
()))
{
// TODO DOME FROM 芋艿 to 小范,Collections.EMPTY_LIST =》Collections.emptyList();另外,可以考虑直接 Convert 哈
return
new
PageResult
<
ListSmsTemplateBO
>().
setList
(
Collections
.
emptyList
()).
setTotal
(
signPage
.
getTotal
());
}
// 转换bo
List
<
ListSmsTemplateBO
>
templateList
=
SmsTemplateConvert
.
INSTANCE
.
convert
(
signPage
.
getRecords
());
// 获取 sign
Set
<
Integer
>
smsSignIds
=
templateList
.
stream
().
map
(
ListSmsTemplateBO:
:
getSmsSignId
).
collect
(
Collectors
.
toSet
());
...
...
@@ -88,37 +87,32 @@ public class SmsServiceImpl implements SmsService {
new
QueryWrapper
<
SmsSignDO
>().
in
(
"id"
,
smsSignIds
));
List
<
ListSmsTemplateBO
.
Sign
>
signList
=
SmsTemplateConvert
.
INSTANCE
.
convertTemplateSign
(
smsSignDOList
);
// sign 转换为 map
Map
<
Integer
,
ListSmsTemplateBO
.
Sign
>
smsSignDOMap
=
signList
.
stream
().
collect
(
Collectors
.
toMap
(
ListSmsTemplateBO
.
Sign
::
getId
,
o
->
o
));
// 设置 sign
templateList
.
forEach
(
template
->
{
if
(
smsSignDOMap
.
containsKey
(
template
.
getSmsSignId
()))
{
template
.
setSign
(
smsSignDOMap
.
get
(
template
.
getSmsSignId
()));
}
});
return
new
PageResult
<
ListSmsTemplateBO
>().
setList
(
templateList
).
setTotal
(
signPage
.
getTotal
());
}
@Override
@Transactional
public
void
addSign
(
AddSignDTO
addSignDTO
)
{
// 避免重复
SmsSignDO
smsSignDO
=
smsSignMapper
.
selectOne
(
new
QueryWrapper
<
SmsSignDO
>()
.
eq
(
"platform"
,
addSignDTO
.
getPlatform
())
.
eq
(
"sign"
,
addSignDTO
.
getSign
())
);
// 处理 null 情况
if
(
smsSignDO
!=
null
)
{
// TODO DOME FROM 芋艿 to 小范:可以使用 ServiceExceptionUtil.exception(SystemErrorCodeEnum.SMS_SIGN_IS_EXISTENT);
throw
ServiceExceptionUtil
.
exception
(
SystemErrorCodeEnum
.
SMS_SIGN_IS_EXISTENT
);
}
// 保存数据库
smsSignMapper
.
insert
(
(
SmsSignDO
)
new
SmsSignDO
()
...
...
@@ -133,16 +127,17 @@ public class SmsServiceImpl implements SmsService {
@Override
public
SmsSignBO
getSign
(
Integer
signId
)
{
// 查询数据库
SmsSignDO
smsSignDO
=
smsSignMapper
.
selectOne
(
new
QueryWrapper
<
SmsSignDO
>()
.
eq
(
"id"
,
signId
)
.
eq
(
"deleted"
,
DeletedStatusEnum
.
DELETED_NO
.
getValue
()));
// 处理 null
if
(
smsSignDO
==
null
)
{
throw
new
ServiceException
(
SystemErrorCodeEnum
.
SMS_SIGN_NOT_EXISTENT
.
getCode
(),
SystemErrorCodeEnum
.
SMS_SIGN_NOT_EXISTENT
.
getMessage
());
}
// 转换vo返回
return
SmsSignConvert
.
INSTANCE
.
convert
(
smsSignDO
);
}
...
...
@@ -154,12 +149,11 @@ public class SmsServiceImpl implements SmsService {
new
QueryWrapper
<
SmsSignDO
>()
.
eq
(
"sign"
,
updateSignDTO
.
getSign
())
.
eq
(
"platform"
,
updateSignDTO
.
getPlatform
()));
// 处理 null
if
(
smsSignDO
!=
null
)
{
throw
new
ServiceException
(
SystemErrorCodeEnum
.
SMS_SIGN_IS_EXISTENT
.
getCode
(),
SystemErrorCodeEnum
.
SMS_SIGN_IS_EXISTENT
.
getMessage
());
}
// 更新
smsSignMapper
.
update
(
(
SmsSignDO
)
new
SmsSignDO
()
...
...
@@ -172,15 +166,13 @@ public class SmsServiceImpl implements SmsService {
@Override
public
void
deleteSign
(
Integer
id
)
{
SmsSignDO
smsSignDO
=
smsSignMapper
.
selectOne
(
new
QueryWrapper
<
SmsSignDO
>()
.
eq
(
"id"
,
id
));
// 根据id查询
SmsSignDO
smsSignDO
=
smsSignMapper
.
selectById
(
id
);
// 处理 null
if
(
smsSignDO
==
null
)
{
throw
new
ServiceException
(
SystemErrorCodeEnum
.
SMS_SIGN_NOT_EXISTENT
.
getCode
(),
SystemErrorCodeEnum
.
SMS_SIGN_NOT_EXISTENT
.
getMessage
());
}
// 更新 deleted 为 YES
smsSignMapper
.
delete
(
new
UpdateWrapper
<
SmsSignDO
>()
.
set
(
"deleted"
,
DeletedStatusEnum
.
DELETED_YES
.
getName
())
...
...
@@ -192,15 +184,13 @@ public class SmsServiceImpl implements SmsService {
@Transactional
public
void
addTemplate
(
Integer
smsSignId
,
String
templateCode
,
String
template
,
Integer
platform
,
Integer
smsType
)
{
SmsSignDO
smsSignDO
=
smsSignMapper
.
selectOne
(
new
QueryWrapper
<
SmsSignDO
>().
eq
(
"id"
,
smsSignId
));
// 根据id查询
SmsSignDO
smsSignDO
=
smsSignMapper
.
selectById
(
smsSignId
);
// 处理 null
if
(
smsSignDO
==
null
)
{
throw
new
ServiceException
(
SystemErrorCodeEnum
.
SMS_SIGN_NOT_EXISTENT
.
getCode
(),
SystemErrorCodeEnum
.
SMS_SIGN_NOT_EXISTENT
.
getMessage
());
}
// 保存数据库
smsTemplateMapper
.
insert
(
(
SmsTemplateDO
)
new
SmsTemplateDO
()
...
...
@@ -219,16 +209,17 @@ public class SmsServiceImpl implements SmsService {
@Override
public
SmsTemplateBO
getTemplate
(
Integer
id
,
Integer
platform
)
{
// 获取数据
SmsTemplateDO
smsTemplateDO
=
smsTemplateMapper
.
selectOne
(
new
QueryWrapper
<
SmsTemplateDO
>()
.
eq
(
"platform"
,
platform
)
.
eq
(
"id"
,
id
));
// 处理 null
if
(
smsTemplateDO
==
null
)
{
throw
new
ServiceException
(
SystemErrorCodeEnum
.
SMS_TEMPLATE_NOT_EXISTENT
.
getCode
(),
SystemErrorCodeEnum
.
SMS_TEMPLATE_NOT_EXISTENT
.
getMessage
());
}
// 转换bo返回
return
SmsTemplateConvert
.
INSTANCE
.
convert
(
smsTemplateDO
);
}
...
...
@@ -236,22 +227,20 @@ public class SmsServiceImpl implements SmsService {
@Transactional
public
void
updateTemplate
(
Integer
id
,
Integer
smsSignId
,
String
templateCode
,
String
template
,
Integer
platform
,
Integer
smsType
)
{
SmsTemplateDO
smsTemplateDO
=
smsTemplateMapper
.
selectOne
(
new
QueryWrapper
<
SmsTemplateDO
>().
eq
(
"id"
,
id
));
// 获取 template
SmsTemplateDO
smsTemplateDO
=
smsTemplateMapper
.
selectById
(
id
);
if
(
smsTemplateDO
==
null
)
{
throw
new
ServiceException
(
SystemErrorCodeEnum
.
SMS_TEMPLATE_NOT_EXISTENT
.
getCode
(),
SystemErrorCodeEnum
.
SMS_TEMPLATE_NOT_EXISTENT
.
getMessage
());
}
// 获取 sign
SmsSignDO
smsSignDO
=
smsSignMapper
.
selectOne
(
new
QueryWrapper
<
SmsSignDO
>().
eq
(
"id"
,
smsTemplateDO
.
getSmsSignId
()));
if
(
smsSignDO
==
null
)
{
throw
new
ServiceException
(
SystemErrorCodeEnum
.
SMS_SIGN_NOT_EXISTENT
.
getCode
(),
SystemErrorCodeEnum
.
SMS_SIGN_NOT_EXISTENT
.
getMessage
());
}
// 更新数据库
smsTemplateMapper
.
update
(
(
SmsTemplateDO
)
new
SmsTemplateDO
()
.
setSmsSignId
(
smsSignId
)
...
...
@@ -269,13 +258,12 @@ public class SmsServiceImpl implements SmsService {
public
void
deleteTemplate
(
Integer
id
)
{
SmsTemplateDO
smsTemplateDO
=
smsTemplateMapper
.
selectOne
(
new
QueryWrapper
<
SmsTemplateDO
>().
eq
(
"id"
,
id
));
// 处理不存在情况
if
(
smsTemplateDO
==
null
||
smsTemplateDO
.
getDeleted
().
equals
(
DeletedStatusEnum
.
DELETED_YES
.
getValue
()))
{
throw
new
ServiceException
(
SystemErrorCodeEnum
.
SMS_TEMPLATE_NOT_EXISTENT
.
getCode
(),
SystemErrorCodeEnum
.
SMS_TEMPLATE_NOT_EXISTENT
.
getMessage
());
}
// 删除 数据库模板
SmsTemplateDO
updateTemplate
=
new
SmsTemplateDO
();
updateTemplate
.
setDeleted
(
DeletedStatusEnum
.
DELETED_YES
.
getValue
());
...
...
@@ -287,29 +275,24 @@ public class SmsServiceImpl implements SmsService {
@Override
public
void
singleSend
(
String
mobile
,
Integer
smsTemplateId
,
Map
<
String
,
String
>
params
)
{
SmsTemplateDO
smsTemplateDO
=
smsTemplateMapper
.
selectOne
(
new
QueryWrapper
<
SmsTemplateDO
>().
eq
(
"id"
,
smsTemplateId
));
// 获取 template
SmsTemplateDO
smsTemplateDO
=
smsTemplateMapper
.
selectById
(
smsTemplateId
);
if
(
smsTemplateDO
==
null
||
smsTemplateDO
.
getDeleted
().
equals
(
DeletedStatusEnum
.
DELETED_YES
.
getValue
()))
{
throw
new
ServiceException
(
SystemErrorCodeEnum
.
SMS_TEMPLATE_NOT_EXISTENT
.
getCode
(),
SystemErrorCodeEnum
.
SMS_TEMPLATE_NOT_EXISTENT
.
getMessage
());
}
SmsSignDO
smsSignDO
=
smsSignMapper
.
selectOne
(
new
QueryWrapper
<
SmsSignDO
>().
eq
(
"id"
,
smsTemplateDO
.
getSmsSignId
()));
// 获取 sign
SmsSignDO
smsSignDO
=
smsSignMapper
.
selectById
(
smsTemplateDO
.
getSmsSignId
());
if
(
smsSignDO
==
null
)
{
throw
new
ServiceException
(
SystemErrorCodeEnum
.
SMS_SIGN_NOT_EXISTENT
.
getCode
(),
SystemErrorCodeEnum
.
SMS_SIGN_NOT_EXISTENT
.
getMessage
());
}
// 获取 client
SmsClient
smsClient
=
getSmsClient
(
smsTemplateDO
.
getPlatform
());
// 发送短信
SmsClient
.
SendResult
sendResult
=
smsClient
.
singleSend
(
mobile
,
smsSignDO
.
getSign
(),
smsTemplateDO
.
getTemplateCode
(),
smsTemplateDO
.
getTemplate
(),
params
);
// 添加日志
smsSendMapper
.
insert
(
(
SmsSendLogDO
)
new
SmsSendLogDO
()
...
...
@@ -322,18 +305,15 @@ public class SmsServiceImpl implements SmsService {
@Override
public
void
batchSend
(
List
<
String
>
mobileList
,
Integer
smsTemplateId
,
Map
<
String
,
String
>
params
)
{
SmsTemplateDO
smsTemplateDO
=
smsTemplateMapper
.
selectOne
(
new
QueryWrapper
<
SmsTemplateDO
>().
eq
(
"id"
,
smsTemplateId
));
// 获取 template
SmsTemplateDO
smsTemplateDO
=
smsTemplateMapper
.
selectById
(
smsTemplateId
);
if
(
smsTemplateDO
==
null
||
smsTemplateDO
.
getDeleted
().
equals
(
DeletedStatusEnum
.
DELETED_YES
.
getValue
()))
{
throw
new
ServiceException
(
SystemErrorCodeEnum
.
SMS_TEMPLATE_NOT_EXISTENT
.
getCode
(),
SystemErrorCodeEnum
.
SMS_TEMPLATE_NOT_EXISTENT
.
getMessage
());
}
SmsSignDO
smsSignDO
=
smsSignMapper
.
selectOne
(
new
QueryWrapper
<
SmsSignDO
>().
eq
(
"id"
,
smsTemplateDO
.
getSmsSignId
()));
// 获取 sign
SmsSignDO
smsSignDO
=
smsSignMapper
.
selectById
(
smsTemplateDO
.
getSmsSignId
());
if
(
smsSignDO
==
null
)
{
// 添加日志
smsSendMapper
.
insert
(
...
...
@@ -347,14 +327,11 @@ public class SmsServiceImpl implements SmsService {
throw
new
ServiceException
(
SystemErrorCodeEnum
.
SMS_SIGN_NOT_EXISTENT
.
getCode
(),
SystemErrorCodeEnum
.
SMS_SIGN_NOT_EXISTENT
.
getMessage
());
}
// 获取 client
SmsClient
smsClient
=
getSmsClient
(
smsTemplateDO
.
getPlatform
());
// 发送短信
SmsClient
.
SendResult
sendResult
=
smsClient
.
batchSend
(
mobileList
,
smsSignDO
.
getSign
(),
smsTemplateDO
.
getTemplateCode
(),
smsTemplateDO
.
getTemplate
(),
params
);
// 添加日志
smsSendMapper
.
insert
(
(
SmsSendLogDO
)
new
SmsSendLogDO
()
...
...
@@ -373,18 +350,18 @@ public class SmsServiceImpl implements SmsService {
*/
private
SmsClient
getSmsClient
(
Integer
platform
)
{
SmsClient
smsClient
=
null
;
// 阿里云和云片
if
(
SmsPlatformEnum
.
YunPian
.
getValue
().
equals
(
platform
))
{
smsClient
=
smsYunPianClient
;
}
else
if
(
SmsPlatformEnum
.
AliYun
.
getValue
().
equals
(
platform
))
{
smsClient
=
smsAliYunClient
;
}
// 没有支持的平台
if
(
smsClient
==
null
)
{
throw
new
ServiceException
(
SystemErrorCodeEnum
.
SMS_NOT_SEND_CLIENT
.
getCode
(),
SystemErrorCodeEnum
.
SMS_NOT_SEND_CLIENT
.
getMessage
());
}
return
smsClient
;
}
}
system/system-biz/src/main/java/cn/iocoder/mall/system/biz/service/sms/YunPianSmsClient.java
浏览文件 @
0c198e8f
...
...
@@ -88,7 +88,6 @@ public class YunPianSmsClient implements SmsClient {
*/
private
static
final
String
URL_SEND_BATCH
=
"https://sms.yunpian.com/v2/sms/batch_send.json"
;
//编码格式。发送编码格式统一用UTF-8
private
static
String
ENCODING
=
"UTF-8"
;
...
...
@@ -99,7 +98,6 @@ public class YunPianSmsClient implements SmsClient {
public
SendResult
singleSend
(
String
mobile
,
String
sign
,
String
templateCode
,
String
template
,
Map
<
String
,
String
>
templateParams
)
{
// build 模板
template
=
buildTemplate
(
sign
,
template
,
templateParams
);
// 请求参数
Map
<
String
,
String
>
params
=
new
LinkedHashMap
<>();
params
.
put
(
"apikey"
,
apiKey
);
...
...
@@ -114,7 +112,7 @@ public class YunPianSmsClient implements SmsClient {
throw
new
ServiceException
(
SystemErrorCodeEnum
.
SMS_PLATFORM_FAIL
.
getCode
(),
jsonObject
.
getString
(
"detail"
));
}
// 转换 result
return
new
SendResult
()
.
setIsSuccess
(
SUCCESS_CODE
==
jsonObject
.
getInteger
(
"code"
))
.
setCode
(
jsonObject
.
getInteger
(
"code"
))
...
...
@@ -127,7 +125,6 @@ public class YunPianSmsClient implements SmsClient {
Map
<
String
,
String
>
templateParams
)
{
// build 模板
template
=
buildTemplate
(
sign
,
template
,
templateParams
);
// 最大发送数为 1000,我们设置为 500 个, 分段发送
int
maxSendSize
=
MAX_BATCH_SIZE
;
int
maxSendSizeCount
=
mobileList
.
size
()
%
maxSendSize
==
0
...
...
@@ -142,9 +139,7 @@ public class YunPianSmsClient implements SmsClient {
sendMobileStr
.
append
(
","
);
sendMobileStr
.
append
(
mobileList
.
get
(
k
));
}
String
dividedMobile
=
sendMobileStr
.
toString
().
substring
(
1
);
// 发送手机号
Map
<
String
,
String
>
params
=
new
LinkedHashMap
<>();
params
.
put
(
"apikey"
,
apiKey
);
...
...
@@ -159,12 +154,10 @@ public class YunPianSmsClient implements SmsClient {
throw
new
ServiceException
(
SystemErrorCodeEnum
.
SMS_PLATFORM_FAIL
.
getCode
(),
jsonObject
.
getString
(
"detail"
));
}
// 用于递增 maxSendSize
j
=
j2
;
j2
=
j
+
maxSendSize
;
}
return
new
SendResult
()
.
setIsSuccess
(
true
)
.
setCode
(
SUCCESS_CODE
)
...
...
@@ -181,18 +174,17 @@ public class YunPianSmsClient implements SmsClient {
*/
private
static
String
buildTemplate
(
String
sign
,
String
template
,
Map
<
String
,
String
>
templateParams
)
{
// 不处理 empty 数据
if
(
CollectionUtils
.
isEmpty
(
templateParams
))
{
return
template
;
}
// 处理template参数
for
(
Map
.
Entry
<
String
,
String
>
entry
:
templateParams
.
entrySet
())
{
String
paramsKey
=
entry
.
getKey
();
String
value
=
entry
.
getValue
();
String
paramPlace
=
String
.
format
(
PARAM_TEMPLATE
,
paramsKey
);
template
=
template
.
replaceAll
(
paramPlace
,
value
);
}
template
=
String
.
format
(
SIGN_TEMPLATE
,
sign
,
template
);
return
template
;
}
...
...
@@ -234,7 +226,6 @@ public class YunPianSmsClient implements SmsClient {
e
.
printStackTrace
();
}
}
LOGGER
.
debug
(
"云片短信平台 res: {}"
,
responseText
);
return
responseText
;
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论