Browse Source

新增机器人

rdluck 3 years ago
parent
commit
dd951eab72
6 changed files with 101 additions and 4 deletions
  1. 20 0
      cache/sms_config.go
  2. 20 2
      controllers/sms.go
  3. 29 0
      models/sms_config.go
  4. 8 1
      services/sms_send.go
  5. 14 0
      utils/config.go
  6. 10 1
      utils/constants.go

+ 20 - 0
cache/sms_config.go

@@ -0,0 +1,20 @@
+package cache
+
+import (
+	"encoding/json"
+	"hongze/hongze_robot/models"
+	"hongze/hongze_robot/utils"
+)
+
+func GetSmsConfigByCache(configKey string) (item *models.SmsConfig, err error) {
+	cacheKey := utils.CACHE_HZ_SMS_CONFIG + configKey
+	if utils.Re == nil && utils.Rc.IsExist(cacheKey) {
+		if data, err1 := utils.Rc.RedisBytes(cacheKey); err1 == nil {
+			err = json.Unmarshal(data, &item)
+			if item != nil {
+				return
+			}
+		}
+	}
+	return models.GetSmsConfigByConfigKey(configKey)
+}

+ 20 - 2
controllers/sms.go

@@ -1,10 +1,12 @@
 package controllers
 
 import (
+	"hongze/hongze_robot/cache"
 	"hongze/hongze_robot/models"
 	"hongze/hongze_robot/services"
 	"hongze/hongze_robot/utils"
 	"strconv"
+	"strings"
 	"time"
 )
 
@@ -41,8 +43,21 @@ func (this *SmsController) SmsSend() {
 		br.ErrMsg = "失败;Err:" + err.Error()
 		return
 	}
+
+	item, err := cache.GetSmsConfigByCache("mobile")
+	if err != nil {
+		br.Msg = "失败,请联系技术"
+		br.ErrMsg = "获取配置信息失败;Err:" + err.Error()
+		return
+	}
+	if item.ConfigValue == "" {
+		br.Msg = "失败,请联系技术"
+		br.ErrMsg = "配置信息为空"
+		return
+	}
+	isAdd := false
 	//判断记录是否存在
-	if count <= 0 {
+	if count <= 0 && strings.Contains(item.ConfigValue, address) {
 		var tm time.Time
 		if date != "" {
 			smsDateInt64, _ := strconv.ParseInt(date, 10, 64)
@@ -62,8 +77,11 @@ func (this *SmsController) SmsSend() {
 			br.ErrMsg = "新增记录失败;Err:" + err.Error()
 			return
 		}
+		isAdd = true
+	}
+	if isAdd {
+		go services.SendSms()
 	}
-	go services.SendSms()
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "发送成功"

+ 29 - 0
models/sms_config.go

@@ -0,0 +1,29 @@
+package models
+
+import (
+	"encoding/json"
+	"hongze/hongze_robot/utils"
+	"rdluck_tools/orm"
+	"time"
+)
+
+type SmsConfig struct {
+	ConfigKey   string
+	ConfigValue string
+}
+
+func GetSmsConfigByConfigKey(configKey string) (item *SmsConfig, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT *
+			FROM sms_config AS a 
+            WHERE config_key=? `
+	err = o.Raw(sql, configKey).QueryRow(&item)
+	if err == nil && utils.Re == nil {
+		body, err := json.Marshal(item)
+		if err != nil {
+			return item, err
+		}
+		utils.Rc.Put(utils.CACHE_HZ_SMS_CONFIG+configKey, string(body), 24*time.Hour)
+	}
+	return
+}

+ 8 - 1
services/sms_send.go

@@ -19,7 +19,13 @@ func SendSms() {
 	if err != nil {
 		return
 	}
-	var dingToken = []string{"5f9ae772343b20af806e1f8a6c27a3d8c1b57d8c36f468ab0a12d7eca1cf423c"}
+	var dingToken = []string{
+		"5f9ae772343b20af806e1f8a6c27a3d8c1b57d8c36f468ab0a12d7eca1cf423c",
+		"a3125f68a3b627443aa6756e2e973547d0bf3a346668f0f2794fb6d845e2ce68",
+		"c13598ccb03fc6a2bfa2a7673237c9b375ba0e778a0f0db56ba358b01a9a8d89",
+	}
+
+
 	for _, v := range items {
 		smsDateTime := v.SmsDateTime.Format(utils.FormatDateTime)
 		msg := []string{
@@ -34,5 +40,6 @@ func SendSms() {
 		if err != nil {
 			return
 		}
+		models.ModifySmsRecordIsSend(v.Mobile,v.SmsDate)
 	}
 }

+ 14 - 0
utils/config.go

@@ -1,12 +1,18 @@
 package utils
 
 import (
+	"fmt"
 	"github.com/astaxie/beego"
+	"rdluck_tools/cache"
 )
 
 var (
 	RunMode        string //运行模式
 	MYSQL_URL      string //数据库连接
+
+	REDIS_CACHE string       //缓存地址
+	Rc          *cache.Cache //redis缓存
+	Re          error        //redis错误
 )
 
 var (
@@ -22,6 +28,14 @@ func init() {
 	}
 	beego.Info(RunMode + " 模式")
 	MYSQL_URL = config["mysql_url"]
+
+	REDIS_CACHE = config["beego_cache"]
+	Rc, Re = cache.NewCache(REDIS_CACHE) //初始化缓存
+	if Re != nil {
+		fmt.Println(Re)
+		panic(Re)
+	}
+
 	if RunMode == "release" {
 	} else {
 	}

+ 10 - 1
utils/constants.go

@@ -21,4 +21,13 @@ const (
 const (
 	APPNAME          = "弘则-短信机器人"
 	EmailSendToUsers = "glji@hzinsights.com;pyan@hzinsights.com"
-)
+)
+
+const mobileStr = "106928322746026,106902142772954,10657161610600137218"
+
+const (
+	CACHE_HZ_SMS_CONFIG = "CACHE_HZ_SMS_CONFIG_"
+)
+
+//小智: https://oapi.dingtalk.com/robot/send?access_token=a3125f68a3b627443aa6756e2e973547d0bf3a346668f0f2794fb6d845e2ce68
+//小聪: https://oapi.dingtalk.com/robot/send?access_token=c13598ccb03fc6a2bfa2a7673237c9b375ba0e778a0f0db56ba358b01a9a8d89