|
|
@@ -6,26 +6,20 @@ import (
|
|
|
"dsbqj-admin/pkg/logger"
|
|
|
"github.com/kamva/mgm/v3"
|
|
|
"go.mongodb.org/mongo-driver/bson"
|
|
|
+ yaml "gopkg.in/yaml.v2"
|
|
|
"log"
|
|
|
"os"
|
|
|
+ "strings"
|
|
|
+ "sync"
|
|
|
)
|
|
|
|
|
|
-var templateMap = map[string]map[string]string{
|
|
|
- "test": {
|
|
|
- "hangup": "0ByvFSV3B3U5-1XyvruRe7AMHAxiwQBFUL50lmoatCY",
|
|
|
- "autofight": "5rwMjLs6nVQ0SMtS0EAPEpmXZduOdEgSWbIjSNG5T7M",
|
|
|
- "guildgame": "e6D_r9_5tKNZK0cvM8fjzMXy9z1-aoNYQ9TSvAEuklU",
|
|
|
- "alliance": "e6D_r9_5tKNZK0cvM8fjzMXy9z1-aoNYQ9TSvAEuklU",
|
|
|
- "warheavens": "e6D_r9_5tKNZK0cvM8fjzMXy9z1-aoNYQ9TSvAEuklU",
|
|
|
- },
|
|
|
- "product": {
|
|
|
- "hangup": "wAXZWcbt8Hkxmt2iZXR7ieiM1A_Mqt7cFU5ky6dZNMo",
|
|
|
- "autofight": "HbFIcVV78vbPr1uhe-tVAo8oQKv2jnljvPYRl-ktiFE",
|
|
|
- "guildgame": "Q6JBEqIPufrfmsZw-Wds2sdLATfJU2zA0ebpMR3W2F4",
|
|
|
- "alliance": "Q6JBEqIPufrfmsZw-Wds2sdLATfJU2zA0ebpMR3W2F4",
|
|
|
- "warheavens": "Q6JBEqIPufrfmsZw-Wds2sdLATfJU2zA0ebpMR3W2F4",
|
|
|
- },
|
|
|
-}
|
|
|
+const subscribeTemplateConfigFile = "config/subscribe_template.yaml"
|
|
|
+
|
|
|
+var (
|
|
|
+ subscribeTemplateOnce sync.Once
|
|
|
+ subscribeTemplateMap map[string]map[string]string
|
|
|
+ subscribeTemplateLoadErr error
|
|
|
+)
|
|
|
|
|
|
type SubscribeSend struct {
|
|
|
DeviceId string
|
|
|
@@ -105,7 +99,7 @@ func (this *SubscribeSender) SendHangupSubscribe(deviceId string) {
|
|
|
msg["thing3"] = make(map[string]string)
|
|
|
msg["thing3"]["value"] = "您的挂机奖励时长已满,请打开游戏领取"
|
|
|
|
|
|
- this.wxHelper.SendWechatSubscribe(subscribeOne.OpenId, templateMap[os.Getenv("CHANNEL")]["hangup"], msg)
|
|
|
+ this.sendWechatSubscribe(subscribeOne.OpenId, "hangup", msg)
|
|
|
}
|
|
|
|
|
|
func (this *SubscribeSender) SendAutoFightSubscribe(deviceId string) {
|
|
|
@@ -120,7 +114,7 @@ func (this *SubscribeSender) SendAutoFightSubscribe(deviceId string) {
|
|
|
msg["thing1"] = make(map[string]string)
|
|
|
msg["thing1"]["value"] = "离线闯关提醒"
|
|
|
|
|
|
- this.wxHelper.SendWechatSubscribe(subscribeOne.OpenId, templateMap[os.Getenv("CHANNEL")]["autofight"], msg)
|
|
|
+ this.sendWechatSubscribe(subscribeOne.OpenId, "autofight", msg)
|
|
|
}
|
|
|
|
|
|
func (this *SubscribeSender) SendGuildGameSubscribe(openIds []string) {
|
|
|
@@ -131,7 +125,7 @@ func (this *SubscribeSender) SendGuildGameSubscribe(openIds []string) {
|
|
|
msg["thing4"]["value"] = "门派攻防战"
|
|
|
|
|
|
for _, openId := range openIds {
|
|
|
- this.wxHelper.SendWechatSubscribe(openId, templateMap[os.Getenv("CHANNEL")]["guildgame"], msg)
|
|
|
+ this.sendWechatSubscribe(openId, "guildgame", msg)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -143,7 +137,7 @@ func (this *SubscribeSender) SendAllianceSubscribe(openIds []string) {
|
|
|
msg["thing4"]["value"] = "三界争峰"
|
|
|
|
|
|
for _, openId := range openIds {
|
|
|
- this.wxHelper.SendWechatSubscribe(openId, templateMap[os.Getenv("CHANNEL")]["alliance"], msg)
|
|
|
+ this.sendWechatSubscribe(openId, "alliance", msg)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -155,6 +149,47 @@ func (this *SubscribeSender) SendWarHeavensSubscribe(openIds []string) {
|
|
|
msg["thing4"]["value"] = "决战诸仙"
|
|
|
|
|
|
for _, openId := range openIds {
|
|
|
- this.wxHelper.SendWechatSubscribe(openId, templateMap[os.Getenv("CHANNEL")]["warheavens"], msg)
|
|
|
+ this.sendWechatSubscribe(openId, "warheavens", msg)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func (this *SubscribeSender) sendWechatSubscribe(openId string, module string, msg map[string]map[string]string) {
|
|
|
+ templateID := subscribeTemplateID(module)
|
|
|
+ if templateID == "" {
|
|
|
+ logger.Info("[push] subscribe template id not configured, channel=%s, module=%s", os.Getenv("CHANNEL"), module)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ this.wxHelper.SendWechatSubscribe(openId, templateID, msg)
|
|
|
+}
|
|
|
+
|
|
|
+func subscribeTemplateID(module string) string {
|
|
|
+ templates, err := loadSubscribeTemplateConfig()
|
|
|
+ if err != nil {
|
|
|
+ logger.Info("[push] load subscribe template config failed: %v", err)
|
|
|
+ return ""
|
|
|
+ }
|
|
|
+
|
|
|
+ channel := strings.ToLower(strings.TrimSpace(os.Getenv("CHANNEL")))
|
|
|
+ moduleKey := strings.ToLower(strings.TrimSpace(module))
|
|
|
+ if channel != "" {
|
|
|
+ if templateID := strings.TrimSpace(templates[channel][moduleKey]); templateID != "" {
|
|
|
+ return templateID
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
+ return strings.TrimSpace(templates["default"][moduleKey])
|
|
|
+}
|
|
|
+
|
|
|
+func loadSubscribeTemplateConfig() (map[string]map[string]string, error) {
|
|
|
+ subscribeTemplateOnce.Do(func() {
|
|
|
+ data, err := os.ReadFile(subscribeTemplateConfigFile)
|
|
|
+ if err != nil {
|
|
|
+ subscribeTemplateLoadErr = err
|
|
|
+ return
|
|
|
+ }
|
|
|
+ subscribeTemplateLoadErr = yaml.Unmarshal(data, &subscribeTemplateMap)
|
|
|
+ })
|
|
|
+
|
|
|
+ return subscribeTemplateMap, subscribeTemplateLoadErr
|
|
|
}
|