From 4310b7577ce7187236ebe4d5a1d9137377fd295c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BF=9E=E6=89=AC?= Date: Mon, 23 Oct 2023 13:49:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E9=80=81=E9=82=80=E8=AF=B7=E7=9F=AD?= =?UTF-8?q?=E4=BF=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cool/store/enums/SMSMsgEnum.java | 6 +++- .../com/cool/store/enums/UserChannelEnum.java | 4 ++- .../cool/store/dto/sms/SendInvateMsgDTO.java | 17 ++++++++++ .../store/dto/wx/MiniAppUrlLinkReqDTO.java | 1 + .../com/cool/store/service/SmsService.java | 2 ++ .../store/service/WechatMiniAppService.java | 3 ++ .../store/service/impl/SmsServiceImpl.java | 33 ++++++++++++++---- .../impl/WechatMiniAppServiceImpl.java | 9 +++-- .../cool/store/controller/SmsController.java | 34 +++++++++++++++++++ 9 files changed, 97 insertions(+), 12 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/sms/SendInvateMsgDTO.java create mode 100644 coolstore-partner-webb/src/main/java/com/cool/store/controller/SmsController.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/SMSMsgEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/SMSMsgEnum.java index a0d839cdb..33b80f18f 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/SMSMsgEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/SMSMsgEnum.java @@ -14,7 +14,11 @@ public enum SMSMsgEnum { INTERVIEW_BEGIN_IN_DAY("面试开始前一天", "【沪上阿姨】您预约的沪上阿姨加盟资格面试将于明天 {$var}({$var})开始,为保证您能够更加顺利的通过面试,请提前通过沪上阿姨合伙人小程序仔细阅读面试准备材料并做好相应准备。点击转跳小程序:{$var}"), - INTERVIEW_BEGIN_IN_MINUTES("面试开始前30分钟", "【沪上阿姨】您预约的沪上阿姨加盟资格面试将在30分钟后开始。面试预计持续40分钟,请务必提前安排好您的时间。点击跳转沪上阿姨小程序,快速进入面试房间:{$var}"); + INTERVIEW_BEGIN_IN_MINUTES("面试开始前30分钟", "【沪上阿姨】您预约的沪上阿姨加盟资格面试将在30分钟后开始。面试预计持续40分钟,请务必提前安排好您的时间。点击跳转沪上阿姨小程序,快速进入面试房间:{$var}"), + + SMS_INVATE("短信邀约", "【沪上阿姨】感谢您对沪上阿姨品牌的关注与支持,您可通过链接{$var}登记加盟申请信息,我们的客户经理将在第一时间与您联系。"), + + ; private String title; private String content; diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/UserChannelEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserChannelEnum.java index bb32aa061..9865df9dd 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/UserChannelEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserChannelEnum.java @@ -8,7 +8,9 @@ package com.cool.store.enums; public enum UserChannelEnum { EXHIBITION("EXHIBITION","北京展会"), - RECOMMENDED("RECOMMENDED","李德龙推荐"); + RECOMMENDED("RECOMMENDED","李德龙推荐"), + + SMS_INVATE("","短信邀约"); private final String code; private final String desc; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/sms/SendInvateMsgDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/sms/SendInvateMsgDTO.java new file mode 100644 index 000000000..897925ded --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/sms/SendInvateMsgDTO.java @@ -0,0 +1,17 @@ +package com.cool.store.dto.sms; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author: young.yu + * @Date: 2023-10-20 14:51 + * @Description: + */ +@Data +@ApiModel(description = "发送邀请短信") +public class SendInvateMsgDTO { + @ApiModelProperty(value = "手机号", required = true) + private String mobile; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/wx/MiniAppUrlLinkReqDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/wx/MiniAppUrlLinkReqDTO.java index ac449eccf..f9db13499 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/wx/MiniAppUrlLinkReqDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/wx/MiniAppUrlLinkReqDTO.java @@ -11,4 +11,5 @@ import lombok.Data; @Data public class MiniAppUrlLinkReqDTO{ private String path; + private String query; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/SmsService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/SmsService.java index 8a5ad31ff..e830e3637 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/SmsService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/SmsService.java @@ -1,6 +1,7 @@ package com.cool.store.service; import com.aliyun.dysmsapi20170525.models.SendSmsResponse; +import com.cool.store.dto.sms.SendInvateMsgDTO; import com.cool.store.enums.SMSMsgEnum; import com.cool.store.exception.ApiException; import com.cool.store.response.SmsSendResponse; @@ -17,4 +18,5 @@ public interface SmsService { public SmsSendResponse sendSmsVariable(String phone, SMSMsgEnum smsMsgEnum,String... objects); + public void sendInvateMsg(SendInvateMsgDTO sendInvateMsgDTO); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/WechatMiniAppService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/WechatMiniAppService.java index 4097820f0..6418f1100 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/WechatMiniAppService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/WechatMiniAppService.java @@ -1,5 +1,6 @@ package com.cool.store.service; +import com.cool.store.dto.wx.MiniAppUrlLinkReqDTO; import com.cool.store.dto.wx.MiniProgramLoginDTO; import com.cool.store.request.MobileUpdateRequest; import com.cool.store.vo.PartnerUserInfoVO; @@ -21,4 +22,6 @@ public interface WechatMiniAppService { PartnerUserInfoVO getUserInfo(String mobile, String openId); String getMiniAppUrl(); + + String getMiniAppUrlLink(MiniAppUrlLinkReqDTO miniAppUrlLinkReqDTO); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SmsServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SmsServiceImpl.java index 4049bf757..3ce5bfd08 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SmsServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SmsServiceImpl.java @@ -1,24 +1,22 @@ package com.cool.store.service.impl; import com.alibaba.fastjson.JSON; -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.cool.store.context.CurrentUserHolder; +import com.cool.store.context.LoginUserInfo; +import com.cool.store.dto.sms.SendInvateMsgDTO; +import com.cool.store.dto.wx.MiniAppUrlLinkReqDTO; import com.cool.store.enums.SMSMsgEnum; -import com.cool.store.exception.ApiException; import com.cool.store.mq.util.HttpRestTemplateService; import com.cool.store.request.SmsSendRequest; import com.cool.store.response.SmsSendResponse; import com.cool.store.service.SmsService; -import com.cool.store.utils.StringUtil; +import com.cool.store.service.WechatMiniAppService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; -import javax.annotation.Resource; import java.io.IOException; import java.text.MessageFormat; @@ -53,6 +51,14 @@ public class SmsServiceImpl implements SmsService { @Autowired private HttpRestTemplateService httpRestTemplateService; + @Autowired + private WechatMiniAppService wechatMiniAppService; + + @Value("${weixin.index.url}") + private String miniAppIndexUrl; + @Value("${sms.invate.channel.id}") + private String smsInvateChannelId; + /** * 发送普通短信 * @param phone 手机号码 @@ -97,4 +103,17 @@ public class SmsServiceImpl implements SmsService { SmsSendResponse smsSingleResponse = JSON.parseObject(response, SmsSendResponse.class); return smsSingleResponse; } + + @Override + public void sendInvateMsg(SendInvateMsgDTO sendInvateMsgDTO) { + LoginUserInfo operator = CurrentUserHolder.getUser(); + StringBuffer stringBuffer = new StringBuffer(); + MiniAppUrlLinkReqDTO miniAppUrlLinkReqDTO = new MiniAppUrlLinkReqDTO(); + miniAppUrlLinkReqDTO.setPath(miniAppIndexUrl); + stringBuffer.append("userChannelEnum=").append(smsInvateChannelId) + .append("&inviter=").append(operator.getUserId()); + miniAppUrlLinkReqDTO.setQuery(stringBuffer.toString()); + + sendSmsVariable(sendInvateMsgDTO.getMobile(), SMSMsgEnum.SMS_INVATE,wechatMiniAppService.getMiniAppUrlLink(miniAppUrlLinkReqDTO)); + } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java index 98d125db3..0eb5c7351 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java @@ -231,10 +231,13 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService { @Override public String getMiniAppUrl() { - // 获取小程序token - String accessToken = wechatRest.getAccessToken(wxAppId, wxAppSecret); MiniAppUrlLinkReqDTO miniAppUrlLinkReqDTO = new MiniAppUrlLinkReqDTO(); -// miniAppUrlLinkReqDTO.setPath(weixinIndexUrl); + return getMiniAppUrlLink(miniAppUrlLinkReqDTO); + } + + @Override + public String getMiniAppUrlLink(MiniAppUrlLinkReqDTO miniAppUrlLinkReqDTO) { + String accessToken = wechatRest.getAccessToken(wxAppId, wxAppSecret); MiniAppUrlLinkDTO miniAppUrlLink = wechatRest.getMiniAppUrlLink(accessToken, miniAppUrlLinkReqDTO); if (miniAppUrlLink != null){ return miniAppUrlLink.getUrlLink(); diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/SmsController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/SmsController.java new file mode 100644 index 000000000..e7631a087 --- /dev/null +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/SmsController.java @@ -0,0 +1,34 @@ +package com.cool.store.controller; + +import com.cool.store.dto.sms.SendInvateMsgDTO; +import com.cool.store.response.ResponseResult; +import com.cool.store.service.SmsService; +import com.cool.store.vo.role.RolePageVO; +import com.github.pagehelper.PageInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * @Author: young.yu + * @Date: 2023-10-20 13:49 + * @Description: + */ +@RestController +@Slf4j +@RequestMapping("/sms") +@Api(tags = "短信发送") +public class SmsController { + + @Autowired + private SmsService smsService; + + @PostMapping("/invate") + @ApiOperation("招商邀请短信") + public ResponseResult sendInvateMsg(@RequestBody SendInvateMsgDTO sendInvateMsgDTO){ + smsService.sendInvateMsg(sendInvateMsgDTO); + return ResponseResult.success(); + } +}