Files

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
}