From 99f2ee2088f77dc26ecc85684a928f504e639172 Mon Sep 17 00:00:00 2001 From: wanggeng <450292408@qq.com> Date: Mon, 8 Nov 2021 21:55:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=89=8B=E6=9C=BA=E5=8F=91?= =?UTF-8?q?=E7=9F=AD=E4=BF=A1=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/sms/SmsResourceController.java | 13 ++++ .../sms/pojo/vos/sms/SmsPhoneSendVO.java | 75 +++++++++++++++++++ .../module/sms/service/sms/ISmsService.java | 9 +++ .../sms/service/sms/impl/SmsServiceImpl.java | 13 ++++ 4 files changed, 110 insertions(+) create mode 100644 module-sms/src/main/java/ink/wgink/module/sms/pojo/vos/sms/SmsPhoneSendVO.java diff --git a/module-sms/src/main/java/ink/wgink/module/sms/controller/resources/sms/SmsResourceController.java b/module-sms/src/main/java/ink/wgink/module/sms/controller/resources/sms/SmsResourceController.java index aaa88a54..0f0733fb 100644 --- a/module-sms/src/main/java/ink/wgink/module/sms/controller/resources/sms/SmsResourceController.java +++ b/module-sms/src/main/java/ink/wgink/module/sms/controller/resources/sms/SmsResourceController.java @@ -3,6 +3,7 @@ package ink.wgink.module.sms.controller.resources.sms; import ink.wgink.annotation.CheckRequestBodyAnnotation; import ink.wgink.common.base.DefaultBaseController; import ink.wgink.interfaces.consts.ISystemConstant; +import ink.wgink.module.sms.pojo.vos.sms.SmsPhoneSendVO; import ink.wgink.module.sms.pojo.vos.sms.SmsSendVO; import ink.wgink.module.sms.service.sms.ISmsService; import ink.wgink.pojo.result.ErrorResult; @@ -44,4 +45,16 @@ public class SmsResourceController extends DefaultBaseController { return new SuccessResult(); } + @ApiOperation(value = "发送短信", notes = "通过手机号直接发送短信接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "access_token", value = "access_token", paramType = "query", required = true), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @PostMapping("send/phones") + @CheckRequestBodyAnnotation + public SuccessResult sendByPhones(@RequestBody SmsPhoneSendVO smsPhoneSendVO) throws Exception { + smsService.sendByPhones(smsPhoneSendVO); + return new SuccessResult(); + } + } diff --git a/module-sms/src/main/java/ink/wgink/module/sms/pojo/vos/sms/SmsPhoneSendVO.java b/module-sms/src/main/java/ink/wgink/module/sms/pojo/vos/sms/SmsPhoneSendVO.java new file mode 100644 index 00000000..24ae8b7c --- /dev/null +++ b/module-sms/src/main/java/ink/wgink/module/sms/pojo/vos/sms/SmsPhoneSendVO.java @@ -0,0 +1,75 @@ +package ink.wgink.module.sms.pojo.vos.sms; + +import ink.wgink.annotation.CheckEmptyAnnotation; +import ink.wgink.annotation.CheckListAnnotation; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.util.List; + +/** + * @ClassName: SmsVO + * @Description: 短信 + * @Author: WenG + * @Date: 2020-03-14 16:01 + * @Version: 1.0 + **/ +@ApiModel +public class SmsPhoneSendVO { + + @ApiModelProperty(name = "phones", value = "手机列表", required = true) + @CheckListAnnotation(name = "手机列表") + private List phones; + @ApiModelProperty(name = "content", value = "发送内容", required = true) + @CheckEmptyAnnotation(name = "发送内容") + private String content; + @ApiModelProperty(name = "sendUserId", value = "发送人用户ID", required = true) + @CheckEmptyAnnotation(name = "发送人用户ID") + private String sendUserId; + @ApiModelProperty(name = "sendUserUsername", value = "发送人用户名", required = true) + @CheckEmptyAnnotation(name = "发送人用户名") + private String sendUserUsername; + @ApiModelProperty(name = "sendUserName", value = "发送人昵称", required = true) + @CheckEmptyAnnotation(name = "发送人昵称") + private String sendUserName; + + public List getPhones() { + return phones; + } + + public void setPhones(List phones) { + this.phones = phones; + } + + public String getContent() { + return content == null ? "" : content.trim(); + } + + public void setContent(String content) { + this.content = content; + } + + public String getSendUserId() { + return sendUserId == null ? "" : sendUserId.trim(); + } + + public void setSendUserId(String sendUserId) { + this.sendUserId = sendUserId; + } + + public String getSendUserUsername() { + return sendUserUsername == null ? "" : sendUserUsername.trim(); + } + + public void setSendUserUsername(String sendUserUsername) { + this.sendUserUsername = sendUserUsername; + } + + public String getSendUserName() { + return sendUserName == null ? "" : sendUserName.trim(); + } + + public void setSendUserName(String sendUserName) { + this.sendUserName = sendUserName; + } +} diff --git a/module-sms/src/main/java/ink/wgink/module/sms/service/sms/ISmsService.java b/module-sms/src/main/java/ink/wgink/module/sms/service/sms/ISmsService.java index 5f0c1d28..6fc38105 100644 --- a/module-sms/src/main/java/ink/wgink/module/sms/service/sms/ISmsService.java +++ b/module-sms/src/main/java/ink/wgink/module/sms/service/sms/ISmsService.java @@ -3,6 +3,7 @@ package ink.wgink.module.sms.service.sms; import ink.wgink.interfaces.sms.ISmsBaseService; import ink.wgink.module.sms.pojo.dtos.sms.SmsDTO; import ink.wgink.module.sms.pojo.pos.sms.SmsPO; +import ink.wgink.module.sms.pojo.vos.sms.SmsPhoneSendVO; import ink.wgink.module.sms.pojo.vos.sms.SmsSendVO; import ink.wgink.module.sms.pojo.vos.sms.SmsVO; import ink.wgink.pojo.ListPage; @@ -110,6 +111,13 @@ public interface ISmsService extends ISmsBaseService { */ void send(SmsSendVO smsSendVO); + /** + * 新增短信 + * + * @param smsPhoneSendVO + */ + void sendByPhones(SmsPhoneSendVO smsPhoneSendVO); + /** * 发送短信列表 * @@ -134,4 +142,5 @@ public interface ISmsService extends ISmsBaseService { * @return */ List listPOByStartTimeAndEndTime(String startTime, String endTime); + } diff --git a/module-sms/src/main/java/ink/wgink/module/sms/service/sms/impl/SmsServiceImpl.java b/module-sms/src/main/java/ink/wgink/module/sms/service/sms/impl/SmsServiceImpl.java index cc4da8c4..4403e10b 100644 --- a/module-sms/src/main/java/ink/wgink/module/sms/service/sms/impl/SmsServiceImpl.java +++ b/module-sms/src/main/java/ink/wgink/module/sms/service/sms/impl/SmsServiceImpl.java @@ -11,6 +11,7 @@ import ink.wgink.module.sms.factory.sms.SmsSendFactory; import ink.wgink.module.sms.manager.VerifyCodeManager; import ink.wgink.module.sms.pojo.dtos.sms.SmsDTO; import ink.wgink.module.sms.pojo.pos.sms.SmsPO; +import ink.wgink.module.sms.pojo.vos.sms.SmsPhoneSendVO; import ink.wgink.module.sms.pojo.vos.sms.SmsSendVO; import ink.wgink.module.sms.pojo.vos.sms.SmsVO; import ink.wgink.module.sms.service.sms.ISmsService; @@ -170,6 +171,18 @@ public class SmsServiceImpl extends DefaultBaseService implements ISmsService { }, 3, TimeUnit.SECONDS); } + @Override + public void sendByPhones(SmsPhoneSendVO smsPhoneSendVO) { + for (String phone : smsPhoneSendVO.getPhones()) { + if (!RegexUtil.isPhone(phone)) { + throw new ParamsException(phone + " 不是手机号"); + } + } + scheduledExecutorService.schedule(() -> { + sendContentByUserIdAndPhoneAndUserName(smsPhoneSendVO.getSendUserId(), smsPhoneSendVO.getSendUserUsername(), smsPhoneSendVO.getSendUserName(), smsPhoneSendVO.getContent()); + }, 3, TimeUnit.SECONDS); + } + @Override public List listPO(Map params) { return smsDao.listPO(params);