From 8b5d7a5f9d4eeebb326f60856e6360e62e418061 Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Mon, 29 Sep 2025 15:22:31 +0800 Subject: [PATCH] =?UTF-8?q?##=20Opt=20-=20=E6=89=8B=E6=9C=BA=E7=AB=AF?= =?UTF-8?q?=E5=A5=96=E9=87=91=E6=98=8E=E7=BB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/hzs/third/sms/ISmsServiceApi.java | 12 ++++++ .../service/impl/RetailOrderServiceImpl.java | 7 ++++ .../common/core/enums/EAliSmsTemplate.java | 4 ++ .../sms/provider/SmsServiceProvider.java | 15 +++++++ .../java/com/hzs/third/sms/util/SmsUtil.java | 41 +++++++++++++++++++ 5 files changed, 79 insertions(+) diff --git a/bd-api/bd-api-third/src/main/java/com/hzs/third/sms/ISmsServiceApi.java b/bd-api/bd-api-third/src/main/java/com/hzs/third/sms/ISmsServiceApi.java index d8e34a8b..c226dbd8 100644 --- a/bd-api/bd-api-third/src/main/java/com/hzs/third/sms/ISmsServiceApi.java +++ b/bd-api/bd-api-third/src/main/java/com/hzs/third/sms/ISmsServiceApi.java @@ -18,4 +18,16 @@ public interface ISmsServiceApi { */ R sendAliSms(String phone, String code, EAliSmsTemplate aliSmsTemplate); + /** + * 发送会员注册短信 + * + * @param phone + * @param aliSmsTemplate + * @param memberCode + * @param loginPwd + * @param payPwd + * @return + */ + R sendMemberRegister(String phone, EAliSmsTemplate aliSmsTemplate, String memberCode, String loginPwd, String payPwd); + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java index 3de26df8..632f0631 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java @@ -49,6 +49,7 @@ import com.hzs.system.base.ICurrencyServiceApi; import com.hzs.system.base.dto.CurrencyDTO; import com.hzs.system.config.IAwardsServiceApi; import com.hzs.system.config.IGradeServiceApi; +import com.hzs.third.sms.ISmsServiceApi; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.amqp.rabbit.core.RabbitTemplate; @@ -105,6 +106,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService { IMemberServiceApi iMemberServiceApi; @DubboReference IMemberAccountServiceApi iMemberAccountServiceApi; + @DubboReference + ISmsServiceApi iSmsServiceApi; @Override @@ -522,6 +525,10 @@ public class RetailOrderServiceImpl implements IRetailOrderService { throw new RuntimeException("会员注册失败"); } + + // 发送会员注册成功短信 + iSmsServiceApi.sendMemberRegister(newMember.getPhone(), EAliSmsTemplate.MEMBER_REGISTER, + newMember.getMemberCode(), newMember.getLoginPassword(), newMember.getPayPassword()); this.pushOrderMq(saOrderExt); return null; } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EAliSmsTemplate.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EAliSmsTemplate.java index 03a67ce7..26b0a824 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EAliSmsTemplate.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EAliSmsTemplate.java @@ -27,6 +27,10 @@ public enum EAliSmsTemplate { MEMBER_SMS("SMS_485350565"), // MEMBER_SMS("SMS_476795282"), // MEMBER_SMS("SMS_474440238"), + /** + * 会员注册成功(尊敬的会员,您新注册的会员编号:${memberCode},登录密码:${loginPwd},支付密码:${payPwd},请妥善保管) + */ + MEMBER_REGISTER("SMS_491370028"), ; diff --git a/bd-third/src/main/java/com/hzs/third/sms/provider/SmsServiceProvider.java b/bd-third/src/main/java/com/hzs/third/sms/provider/SmsServiceProvider.java index f5bf997a..ef7c74fd 100644 --- a/bd-third/src/main/java/com/hzs/third/sms/provider/SmsServiceProvider.java +++ b/bd-third/src/main/java/com/hzs/third/sms/provider/SmsServiceProvider.java @@ -29,4 +29,19 @@ public class SmsServiceProvider implements ISmsServiceApi { } } + @Override + public R sendMemberRegister(String phone, EAliSmsTemplate aliSmsTemplate, String memberCode, String loginPwd, String payPwd) { + try { + String str = SmsUtil.sendMemberRegister(phone, aliSmsTemplate, memberCode, loginPwd, payPwd); + if (null == str) { + return R.ok(); + } + log.error("发送会员注册短信失败: {}", str); + return R.fail(str); + } catch (Exception e) { + log.error("发送会员注册短信异常 phone: {}, memberCode: {}", phone, memberCode, e); + return R.fail(e.getMessage()); + } + } + } diff --git a/bd-third/src/main/java/com/hzs/third/sms/util/SmsUtil.java b/bd-third/src/main/java/com/hzs/third/sms/util/SmsUtil.java index dbb19a93..92bfbf41 100644 --- a/bd-third/src/main/java/com/hzs/third/sms/util/SmsUtil.java +++ b/bd-third/src/main/java/com/hzs/third/sms/util/SmsUtil.java @@ -82,4 +82,45 @@ public class SmsUtil implements InitializingBean { smsConfig = SpringUtils.getBean(SmsConfig.class); } + public static String sendMemberRegister(String phone, EAliSmsTemplate aliSmsTemplate, String memberCode, String loginPwd, String payPwd) { + if (StringUtils.isAnyEmpty(phone)) { + return "手机号为空"; + } + log.info("注册会员成功,发送手机号:{}, memberCode:{}", phone, memberCode); + if (smsConfig.isEnable()) { + // 只有当开启发送短信才进行发送 + try { + Map templateParam = new HashMap<>(); + templateParam.put("memberCode", memberCode); + templateParam.put("loginPwd", loginPwd); + templateParam.put("payPwd", payPwd); + + Client client = new Client(new Config() + .setAccessKeyId(smsConfig.getAliAccessKeyId()) + .setAccessKeySecret(smsConfig.getAliAccessKeySecret()) + // 短信发送域 + .setEndpoint(smsConfig.getAliEndpoint())); + + SendSmsRequest sendSmsRequest = new SendSmsRequest() + .setPhoneNumbers(phone) + // 短信签名 + .setSignName(smsConfig.getAliSign()) + // 短信模板 + .setTemplateCode(aliSmsTemplate.getCode()) + .setTemplateParam(JSONUtil.toJsonStr(templateParam)); + + SendSmsResponse sendSmsResponse = client.sendSms(sendSmsRequest); + + if (Constants.SUCCESS.equals(sendSmsResponse.getStatusCode())) { + if ("OK".equals(sendSmsResponse.getBody().getCode())) { + return null; + } + log.error("阿里云短信发送失败: {}", sendSmsResponse.getBody().getMessage()); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + return null; + } }