From 051969e65f1ef0b77960cf064944f52c84bcc7d4 Mon Sep 17 00:00:00 2001
From: w982 <2802399115@qq.com>
Date: Tue, 22 Sep 2026 11:38:41 +0800
Subject: [PATCH 1/6] =?UTF-8?q?docs(core):=20=E5=AE=8C=E5=96=84=20litemall?=
=?UTF-8?q?-core=20=E9=80=9A=E7=9F=A5=E4=B8=8E=E4=BB=BB=E5=8A=A1=E6=A8=A1?=
=?UTF-8?q?=E5=9D=97=E6=BA=90=E7=A0=81=E6=B3=A8=E9=87=8A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 为 NotifyType、SmsResult、SmsSender 补充类级 Javadoc 与 @return 标签
- 为 NotifyProperties、NotifyAutoConfiguration 补充类与字段注释(字段对应 litemall.notify 配置项)
- 为 AliyunSmsSender、TencentSmsSender 补充类注释并标注阿里云直发桩实现
- 为 QCodeService、Task、TaskService 补充方法 Javadoc
- 清理 TaskService 等处的未使用死代码字段;仅涉及注释与文档,无逻辑变更
---
.../litemall/core/notify/AliyunSmsSender.java | 35 ++++++++-
.../litemall/core/notify/NotifyService.java | 28 +++++--
.../litemall/core/notify/NotifyType.java | 11 +++
.../litemall/core/notify/SmsResult.java | 8 +-
.../litemall/core/notify/SmsSender.java | 11 ++-
.../core/notify/TencentSmsSender.java | 26 ++++++-
.../config/NotifyAutoConfiguration.java | 27 +++++++
.../core/notify/config/NotifyProperties.java | 37 +++++++++
.../litemall/core/qcode/QCodeService.java | 77 +++++++++++--------
.../linlinjava/litemall/core/task/Task.java | 37 +++++++++
.../litemall/core/task/TaskService.java | 26 ++++++-
11 files changed, 277 insertions(+), 46 deletions(-)
diff --git a/litemall-core/src/main/java/org/linlinjava/litemall/core/notify/AliyunSmsSender.java b/litemall-core/src/main/java/org/linlinjava/litemall/core/notify/AliyunSmsSender.java
index 5898e092f..fe06d913d 100644
--- a/litemall-core/src/main/java/org/linlinjava/litemall/core/notify/AliyunSmsSender.java
+++ b/litemall-core/src/main/java/org/linlinjava/litemall/core/notify/AliyunSmsSender.java
@@ -16,17 +16,27 @@
import java.util.HashMap;
import java.util.Map;
-/*
- * 阿里云短信服务
+/**
+ * 阿里云短信发送器。
+ *
+ *
基于阿里云短信 API(dysmsapi)实现 {@link SmsSender}。
+ * 注意:阿里云仅支持模板发送({@link #sendWithTemplate}),
+ * 直发 {@link #send} 为桩实现,始终返回发送失败;如需直发请走模板发送或改用其他渠道。
*/
public class AliyunSmsSender implements SmsSender {
+ /** 日志 */
private final Log logger = LogFactory.getLog(AliyunSmsSender.class);
+ /** 阿里云区域 ID,如 cn-hangzhou */
private String regionId;
+ /** 阿里云 AccessKey ID */
private String accessKeyId;
+ /** 阿里云 AccessKey Secret */
private String accessKeySecret;
+ /** 短信签名 */
private String sign;
+ /** 阿里云短信发送成功的返回码 */
private final String okCode = "OK";
public String getRegionId() {
@@ -61,6 +71,16 @@ public void setSign(String sign) {
this.sign = sign;
}
+ /**
+ * 直发短信(桩实现)。
+ *
+ *
阿里云短信 API 不支持不指定模板的直发,此方法为占位实现,始终返回发送失败;
+ * 实际发送请使用 {@link #sendWithTemplate}。
+ *
+ * @param phone 接收通知的电话号码
+ * @param content 短消息内容
+ * @return 固定返回 successful=false
+ */
@Override
public SmsResult send(String phone, String content) {
SmsResult smsResult = new SmsResult();
@@ -68,6 +88,17 @@ public SmsResult send(String phone, String content) {
return smsResult;
}
+ /**
+ * 通过短信模板发送短信息。
+ *
+ *
阿里云模板参数约定:单参数用 code,多参数用 code/code1/code2...(见下方注释),
+ * 开发者需保证申请的模板参数名与此约定一致。
+ *
+ * @param phone 接收通知的电话号码
+ * @param templateId 通知模板ID
+ * @param params 模板参数值
+ * @return 短信发送结果,失败时 successful=false
+ */
@Override
public SmsResult sendWithTemplate(String phone, String templateId, String[] params) {
DefaultProfile profile = DefaultProfile.getProfile(this.regionId, this.accessKeyId, this.accessKeySecret);
diff --git a/litemall-core/src/main/java/org/linlinjava/litemall/core/notify/NotifyService.java b/litemall-core/src/main/java/org/linlinjava/litemall/core/notify/NotifyService.java
index d47a6335d..369c105cd 100644
--- a/litemall-core/src/main/java/org/linlinjava/litemall/core/notify/NotifyService.java
+++ b/litemall-core/src/main/java/org/linlinjava/litemall/core/notify/NotifyService.java
@@ -9,22 +9,39 @@
import java.util.Map;
/**
- * 商城通知服务类
+ * 商城通知服务类。
+ *
+ *
统一封装邮件、短信两类通知能力,支持直发与模板发送。
+ * 通过 {@link #isMailEnable()}、{@link #isSmsEnable()} 判断对应渠道是否已注入启用;
+ * 邮件与短信的装配在 {@code NotifyAutoConfiguration} 中完成。
*/
public class NotifyService {
+ /** 邮件发送器,为 null 表示未启用邮件通知 */
private MailSender mailSender;
+ /** 邮件发件人地址(来自配置 spring.mail.sendfrom) */
private String sendFrom;
+ /** 邮件收件人地址(来自配置 spring.mail.sendto) */
private String sendTo;
+ /** 短信发送器,为 null 表示未启用短信通知 */
private SmsSender smsSender;
+ /** 短信模板列表,元素为 {name -> templateId} 的映射 */
private List