79 lines
3.3 KiB
Go
79 lines
3.3 KiB
Go
package sms
|
|
|
|
// 节点标识:与系统配置 sms.business_templates 中 nodes 的 key 一一对应,
|
|
// 也与分销站点短信配置 business_templates 的 key 一一对应。
|
|
const (
|
|
// NodeListingReviewRejected 账号审核未通过,提醒号主修改后重新上架。
|
|
NodeListingReviewRejected = "listing_review_rejected"
|
|
// NodeOrderHandoffAssist 账号被租用需要号主辅助登录,提醒号主及时处理。
|
|
NodeOrderHandoffAssist = "order_handoff_assist"
|
|
// NodeListingStalePriceSuggestion 账号上架多日仍未成交,建议号主调整比例。
|
|
NodeListingStalePriceSuggestion = "listing_stale_price_suggestion"
|
|
)
|
|
|
|
// NodeMeta 描述一个节点短信,用于后台配置页展示与文案预览。
|
|
type NodeMeta struct {
|
|
Code string `json:"code"`
|
|
Name string `json:"name"`
|
|
Recipient string `json:"recipient"`
|
|
Description string `json:"description"`
|
|
// TemplateCode 是该节点在阿里云报备的模板 CODE,
|
|
// 这里只是后台首次配置时的参考值,真实值以系统配置/站点配置为准。
|
|
TemplateCode string `json:"template_code"`
|
|
// Sample 是报备模板的参考文案,仅供后台预览;真实发送以供应商模板为准。
|
|
Sample string `json:"sample"`
|
|
// SupportsStaleDays 标记该节点是否需要「上架天数」阈值(仅闲置降价提醒使用)。
|
|
SupportsStaleDays bool `json:"supports_stale_days"`
|
|
}
|
|
|
|
var nodeMetas = []NodeMeta{
|
|
{
|
|
Code: NodeListingReviewRejected,
|
|
Name: "账号审核未通过",
|
|
Recipient: "号主",
|
|
Description: "号主上架的账号被后台审核拒绝时,提醒登录网站修改后重新上架。",
|
|
TemplateCode: "SMS_512520993",
|
|
Sample: "板板,您在我们商行上架的账号审核未通过,请登录网站进行修改重新上架",
|
|
},
|
|
{
|
|
Code: NodeOrderHandoffAssist,
|
|
Name: "账号被租用需辅助登录",
|
|
Recipient: "号主",
|
|
Description: "订单支付成功进入待交接后,提醒号主及时辅助登录,避免订单被强制结束。",
|
|
TemplateCode: "SMS_512540945",
|
|
Sample: "板板,您的订单已有人下单,下单方需要辅助登录,请及时留意平台信息!长时间未辅助平台会强制结束订单",
|
|
},
|
|
{
|
|
Code: NodeListingStalePriceSuggestion,
|
|
Name: "上架多日未成交降价建议",
|
|
Recipient: "号主",
|
|
Description: "账号上架满指定天数仍未被租用,建议号主适当调整比例,加快出租。",
|
|
TemplateCode: "SMS_512620985",
|
|
Sample: "板板,您的三角洲账号上架三天还未成功出售,建议您比例适当让一点,比例越高,出租越快、匹配越顺。具体调多少按自己心理价位定",
|
|
SupportsStaleDays: true,
|
|
},
|
|
}
|
|
|
|
// NodeMetas 返回全部节点短信定义(副本,调用方不可修改内部数据)。
|
|
func NodeMetas() []NodeMeta {
|
|
out := make([]NodeMeta, len(nodeMetas))
|
|
copy(out, nodeMetas)
|
|
return out
|
|
}
|
|
|
|
// NodeMetaOf 返回指定节点的定义。
|
|
func NodeMetaOf(code string) (NodeMeta, bool) {
|
|
for _, meta := range nodeMetas {
|
|
if meta.Code == code {
|
|
return meta, true
|
|
}
|
|
}
|
|
return NodeMeta{}, false
|
|
}
|
|
|
|
// IsKnownNode 判断节点标识是否在已登记的节点清单内。
|
|
func IsKnownNode(code string) bool {
|
|
_, ok := NodeMetaOf(code)
|
|
return ok
|
|
}
|