From 206a6dc1ff573e7e199a92c4772474e8c9fa1fc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=BE=E6=96=87=E8=B1=AA?= <980287353@qq.com> Date: Mon, 22 May 2023 11:30:20 +0800 Subject: [PATCH] =?UTF-8?q?perf=EF=BC=9A=E8=B0=83=E6=95=B4=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E5=8F=91=E9=80=81=E6=8E=A5=E5=8F=A3=E5=92=8C=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/TestController.java | 10 +++--- .../config/aliyun/AliyunSmsSender.java | 4 +-- .../message/pojos/MessageReqResp.java | 1 - .../tiesheng/message/pojos/UserChannel.java | 32 +++++++++++++++++++ .../service/TieshengMessageSender.java | 2 +- .../core/service/CoreMessageService.java | 31 +++++++++--------- 6 files changed, 55 insertions(+), 25 deletions(-) create mode 100644 springboot-message/src/main/java/com/tiesheng/message/pojos/UserChannel.java diff --git a/springboot-ademo/src/main/java/com/tiesheng/demo/controller/TestController.java b/springboot-ademo/src/main/java/com/tiesheng/demo/controller/TestController.java index c8a26e3..4f9c815 100644 --- a/springboot-ademo/src/main/java/com/tiesheng/demo/controller/TestController.java +++ b/springboot-ademo/src/main/java/com/tiesheng/demo/controller/TestController.java @@ -2,7 +2,6 @@ package com.tiesheng.demo.controller; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.TimeInterval; -import cn.hutool.core.thread.ThreadUtil; import cn.hutool.json.JSONUtil; import cn.hutool.log.LogFactory; import cn.hutool.poi.excel.ExcelUtil; @@ -17,15 +16,14 @@ import com.tiesheng.database.config.DbBackupConfig; import com.tiesheng.demo.pojos.PoiBean; import com.tiesheng.demo.pojos.TestFile; import com.tiesheng.login.config.token.TsTokenConfig; -import com.tiesheng.login.config.token.bean.TokenBean; import com.tiesheng.message.pojos.MessageReqResp; +import com.tiesheng.message.pojos.UserChannel; import com.tiesheng.util.config.EncryptConfig; import com.tiesheng.util.config.GlobalConfig; import com.tiesheng.util.config.Ip2regionConfig; import com.tiesheng.util.pojos.ApiResp; import com.tiesheng.util.pojos.FileUploadPath; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -67,7 +65,7 @@ public class TestController { @TokenIgnore public void redirect(HttpServletResponse response) { - ArrayList strings = CollUtil.newArrayList("11111","22222"); + ArrayList strings = CollUtil.newArrayList("11111", "22222"); coreLogService.addProcess("fdfd", strings, new ProcessImportConsumer() { @Override public int accept(List list) { @@ -94,8 +92,8 @@ public class TestController { @TokenIgnore public ApiResp sendMessage() { - MessageReqResp reqResp = coreMessageService.send("13567116463", "SMS_154950909", - JSONUtil.createObj().putOpt("code", "123456"), "sms"); + MessageReqResp reqResp = coreMessageService.send(new UserChannel("13567116463", "sms"), + JSONUtil.createObj().putOpt("code", "123456").putOpt("template_code", "SMS_154950909")); return ApiResp.respOK(reqResp); } diff --git a/springboot-message/src/main/java/com/tiesheng/message/config/aliyun/AliyunSmsSender.java b/springboot-message/src/main/java/com/tiesheng/message/config/aliyun/AliyunSmsSender.java index 3731390..e8b41d1 100644 --- a/springboot-message/src/main/java/com/tiesheng/message/config/aliyun/AliyunSmsSender.java +++ b/springboot-message/src/main/java/com/tiesheng/message/config/aliyun/AliyunSmsSender.java @@ -138,8 +138,8 @@ public class AliyunSmsSender implements TieshengMessageSender { } @Override - public MessageReqResp send(String user, String title, JSONObject body) { - return sendSms(user, title, (JSONObject) body); + public MessageReqResp send(String user, JSONObject body) { + return sendSms(user, body.getStr("template_code"), body); } @Override diff --git a/springboot-message/src/main/java/com/tiesheng/message/pojos/MessageReqResp.java b/springboot-message/src/main/java/com/tiesheng/message/pojos/MessageReqResp.java index 2f1dfb8..8b29baa 100644 --- a/springboot-message/src/main/java/com/tiesheng/message/pojos/MessageReqResp.java +++ b/springboot-message/src/main/java/com/tiesheng/message/pojos/MessageReqResp.java @@ -24,7 +24,6 @@ public class MessageReqResp { */ private Integer result; - /** * 提示的异常信息 */ diff --git a/springboot-message/src/main/java/com/tiesheng/message/pojos/UserChannel.java b/springboot-message/src/main/java/com/tiesheng/message/pojos/UserChannel.java new file mode 100644 index 0000000..0820fed --- /dev/null +++ b/springboot-message/src/main/java/com/tiesheng/message/pojos/UserChannel.java @@ -0,0 +1,32 @@ +package com.tiesheng.message.pojos; + +public class UserChannel { + + private String user; + private String channel; + + public UserChannel(String user, String channel) { + this.user = user; + this.channel = channel; + } + + /////////////////////////////////////////////////////////////////////////// + // setter\getter + /////////////////////////////////////////////////////////////////////////// + + public String getUser() { + return user; + } + + public void setUser(String user) { + this.user = user; + } + + public String getChannel() { + return channel; + } + + public void setChannel(String channel) { + this.channel = channel; + } +} diff --git a/springboot-message/src/main/java/com/tiesheng/message/service/TieshengMessageSender.java b/springboot-message/src/main/java/com/tiesheng/message/service/TieshengMessageSender.java index 0af5c36..36e1524 100644 --- a/springboot-message/src/main/java/com/tiesheng/message/service/TieshengMessageSender.java +++ b/springboot-message/src/main/java/com/tiesheng/message/service/TieshengMessageSender.java @@ -20,7 +20,7 @@ public interface TieshengMessageSender { * @param channel 消息通道,如果为空表示所有通道 * @return 返回的内容,如果为空表示发送成功 */ - MessageReqResp send(String user, String title, JSONObject body); + MessageReqResp send(String user, JSONObject body); /** diff --git a/springboot-web/src/main/java/com/tiesheng/core/service/CoreMessageService.java b/springboot-web/src/main/java/com/tiesheng/core/service/CoreMessageService.java index 29eb01a..0a408a7 100644 --- a/springboot-web/src/main/java/com/tiesheng/core/service/CoreMessageService.java +++ b/springboot-web/src/main/java/com/tiesheng/core/service/CoreMessageService.java @@ -8,6 +8,7 @@ import cn.hutool.json.JSONObject; import com.tiesheng.core.mapper.CoreLogMessageMapper; import com.tiesheng.core.pojos.dao.CoreLogMessage; import com.tiesheng.message.pojos.MessageReqResp; +import com.tiesheng.message.pojos.UserChannel; import com.tiesheng.message.service.TieshengMessageSender; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -30,42 +31,42 @@ public class CoreMessageService { /** * 发送消息 * - * @param user * @param title * @param body * @param channels 消息通道,如果为all时,表示发送全部通道 */ - public void multiple(String user, String title, JSONObject body, String... channels) { - if (StrUtil.isEmpty(user) || ArrayUtil.isEmpty(channels)) { + public void multiple(List channels, JSONObject body) { + if (ArrayUtil.isEmpty(channels)) { return; } - messageSenderList.forEach(sender -> { - boolean isChannel = ArrayUtil.contains(channels, sender.getChannel()) || ArrayUtil.contains(channels, "all"); - if (sender.support() && isChannel) { - MessageReqResp reqResp = sender.send(user, title, body); - coreLogMessageMapper.insert(BeanUtil.copyProperties(reqResp, CoreLogMessage.class)); - } - }); + messageSenderList.stream().filter(TieshengMessageSender::support) + .forEach(sender -> { + channels.stream().filter(it -> Objects.equals(it.getChannel(), sender.getChannel())).forEach(it -> { + MessageReqResp reqResp = sender.send(it.getUser(), body); + coreLogMessageMapper.insert(BeanUtil.copyProperties(reqResp, CoreLogMessage.class)); + }); + }); } /** * 发送消息 * - * @param user + * @param userChannel * @param title * @param body */ - public MessageReqResp send(String user, String title, JSONObject body, String channel) { - if (StrUtil.isEmpty(user) || StrUtil.isEmpty(channel)) { + public MessageReqResp send(UserChannel userChannel, JSONObject body) { + + if (StrUtil.isEmpty(userChannel.getUser()) || StrUtil.isEmpty(userChannel.getChannel())) { return null; } TieshengMessageSender messageSender = CollUtil.findOne(messageSenderList, - sender -> Objects.equals(sender.getChannel(), channel) && sender.support()); + sender -> Objects.equals(sender.getChannel(), userChannel.getChannel()) && sender.support()); if (messageSender != null) { - MessageReqResp reqResp = messageSender.send(user, title, body); + MessageReqResp reqResp = messageSender.send(userChannel.getUser(), body); coreLogMessageMapper.insert(BeanUtil.copyProperties(reqResp, CoreLogMessage.class)); return reqResp; }