package com.ruoyi.message.sms; import lombok.Data; import java.io.Serializable; import java.util.LinkedHashMap; import java.util.Map; /** * 短信发送请求(与具体发送方无关的统一入参)。 *

* 各发送方需要的差异参数(丽水的机构配置、市一的院区、新华的模板等)通过 * {@link #extras} 透传,避免为了少数站点污染公共接口。 */ @Data public class SmsSendRequest implements Serializable { private static final long serialVersionUID = 1L; /** * 手机号(多个用英文逗号分隔,如 13500000001,13500000002) */ private String phone; /** * 短信内容(调用方已拼接好签名/模板变量) */ private String content; /** * 机构ID,部分发送方(丽水)按机构查配置 */ private String orgid; /** * 院区标识,市一区分湖滨/吴山两套签名: * 1=湖滨(【杭州市第一人民医院】),其他/空=吴山(【杭州市肿瘤医院】) */ private String campus; /** * 短信模板编码(阿里云等模板化发送方使用) */ private String templateCode; /** * 模板参数 JSON(阿里云等模板化发送方使用) */ private String templateParam; /** * 扩展参数 */ private Map extras; public static SmsSendRequest of(String phone, String content) { SmsSendRequest request = new SmsSendRequest(); request.setPhone(phone); request.setContent(content); return request; } public static SmsSendRequest of(String phone, String content, String orgid) { SmsSendRequest request = of(phone, content); request.setOrgid(orgid); return request; } /** * 追加一个扩展参数 */ public SmsSendRequest putExtra(String key, Object value) { if (this.extras == null) { this.extras = new LinkedHashMap<>(); } this.extras.put(key, value); return this; } /** * 读取扩展参数 */ public Object getExtra(String key) { return this.extras == null ? null : this.extras.get(key); } }