publish 0.0.8

This commit is contained in:
曾文豪
2023-01-10 10:38:36 +08:00
parent ff8a3fb3c2
commit 725c134ab8
28 changed files with 542 additions and 17 deletions

View File

@@ -0,0 +1,12 @@
package com.tiesheng.message;
import org.springframework.context.annotation.ComponentScan;
/**
* @author hao
*/
@ComponentScan({
"com.tiesheng.message.**.*",
})
public class MessageAutoConfigurer {
}

View File

@@ -0,0 +1,109 @@
package com.tiesheng.message.config.aliyun;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.aliyun.dysmsapi20170525.Client;
import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
import com.aliyun.teaopenapi.models.Config;
import com.tiesheng.message.pojos.MessageReqResp;
import com.tiesheng.message.service.TieshengMessageConfigurer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import java.util.Objects;
/**
* @author admin
*/
@Configuration
@ConfigurationProperties(prefix = "tiesheng.aliyun")
public class AliyunSmsConfig {
@Autowired
TieshengMessageConfigurer tieshengMessageConfigurer;
private String accessKeyId;
private String accessKeySecret;
private String signName;
/**
* 获取一个短信发送客户端
*/
private Client getClient() throws Exception {
Config config = new Config()
.setAccessKeyId(getAccessKeyId())
.setAccessKeySecret(getAccessKeySecret());
config.setEndpoint("dysmsapi.aliyuncs.com");
return new Client(config);
}
/**
* 发送短信
*
* @return 异常说明,为空是表示正常
*/
public MessageReqResp sendSms(String phones, String templateCode, JSONObject params) {
MessageReqResp reqResp = new MessageReqResp();
reqResp.setTarget(phones);
reqResp.setResult(0);
SendSmsRequest request = new SendSmsRequest();
request.setPhoneNumbers(phones);
request.setSignName(getSignName());
request.setTemplateCode(templateCode);
if (params != null) {
request.setTemplateParam(params.toString());
}
reqResp.setContent(JSONUtil.toJsonStr(request));
try {
SendSmsResponse response = getClient().sendSms(request);
reqResp.setRespBody(JSONUtil.toJsonStr(response.body));
if (Objects.equals(response.getBody().getCode(), "OK")) {
reqResp.setResult(1);
} else {
reqResp.setToast(response.getBody().getMessage());
}
} catch (Exception e) {
reqResp.setToast("未知异常,请稍后再试");
}
tieshengMessageConfigurer.onMessageSend("阿里云短信", reqResp);
return reqResp;
}
///////////////////////////////////////////////////////////////////////////
// setter\getter
///////////////////////////////////////////////////////////////////////////
public String getAccessKeyId() {
return accessKeyId;
}
public void setAccessKeyId(String accessKeyId) {
this.accessKeyId = accessKeyId;
}
public String getAccessKeySecret() {
return accessKeySecret;
}
public void setAccessKeySecret(String accessKeySecret) {
this.accessKeySecret = accessKeySecret;
}
public String getSignName() {
return signName;
}
public void setSignName(String signName) {
this.signName = signName;
}
}

View File

@@ -0,0 +1,74 @@
package com.tiesheng.message.pojos;
public class MessageReqResp {
/**
* 发送对象
*/
private String target;
/**
* 发送内容
*/
private String content;
/**
* 返回结果
*/
private String respBody;
/**
* 结果0-否1-是
*/
private Integer result;
/**
* 提示的异常信息
*/
private String toast;
///////////////////////////////////////////////////////////////////////////
// setter\getter
///////////////////////////////////////////////////////////////////////////
public String getTarget() {
return target;
}
public void setTarget(String target) {
this.target = target;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getRespBody() {
return respBody;
}
public void setRespBody(String respBody) {
this.respBody = respBody;
}
public Integer getResult() {
return result;
}
public void setResult(Integer result) {
this.result = result;
}
public String getToast() {
return toast;
}
public void setToast(String toast) {
this.toast = toast;
}
}

View File

@@ -0,0 +1,23 @@
package com.tiesheng.message.service;
import cn.hutool.json.JSONUtil;
import cn.hutool.log.LogFactory;
import com.tiesheng.message.pojos.MessageReqResp;
/**
* @author hao
*/
public interface TieshengMessageConfigurer {
/**
* 消息发送后
*
* @param reqResp
*/
default void onMessageSend(String type, MessageReqResp reqResp) {
LogFactory.get().info(JSONUtil.toJsonStr(reqResp));
}
}

View File

@@ -0,0 +1,11 @@
package com.tiesheng.message.service.impl;
import com.tiesheng.message.service.TieshengMessageConfigurer;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Configuration;
@Configuration
@ConditionalOnMissingBean(value = TieshengMessageConfigurer.class, ignored = DefaultMessageConfigurer.class)
public class DefaultMessageConfigurer implements TieshengMessageConfigurer {
}