bzd_lkh пре 1 недеља
комит
ca8f038a66

+ 8 - 0
.idea/.gitignore

@@ -0,0 +1,8 @@
+# 默认忽略的文件
+/shelf/
+/workspace.xml
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# 基于编辑器的 HTTP 客户端请求
+/httpRequests/

+ 9 - 0
.idea/Cold_DeductionNotice.iml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="WEB_MODULE" version="4">
+  <component name="Go" enabled="true" />
+  <component name="NewModuleRootManager">
+    <content url="file://$MODULE_DIR$" />
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>

+ 14 - 0
.idea/deployment.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="PublishConfigData" remoteFilesAllowedToDisappearOnAutoupload="false">
+    <serverData>
+      <paths name="huitong">
+        <serverdata>
+          <mappings>
+            <mapping local="$PROJECT_DIR$" web="/" />
+          </mappings>
+        </serverdata>
+      </paths>
+    </serverData>
+  </component>
+</project>

+ 8 - 0
.idea/modules.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/Cold_DeductionNotice.iml" filepath="$PROJECT_DIR$/.idea/Cold_DeductionNotice.iml" />
+    </modules>
+  </component>
+</project>

BIN
Cold_DeductionNotice


+ 23 - 0
Nats/Nats.go

@@ -0,0 +1,23 @@
+package Nats
+
+import (
+	"Cold_DeductionNotice/conf"
+	"Cold_DeductionNotice/lib"
+	"Cold_DeductionNotice/logs"
+	"github.com/nats-io/nats.go"
+	"time"
+)
+
+func NatsInit() {
+	time.Sleep(time.Second * 3)
+	var err error
+	// 连接Nats服务器
+	lib.Nats, err = nats.Connect("nats://" + conf.NatsServer_Url)
+	if err != nil {
+		logs.Println("nats 连接失败!")
+		panic(any(err))
+	}
+	logs.Println("nats OK!")
+
+
+}

+ 36 - 0
Nats/NatsServer/AddWarning.go

@@ -0,0 +1,36 @@
+package NatsServer
+
+import (
+	"Cold_DeductionNotice/lib"
+	"fmt"
+	"github.com/vmihailenco/msgpack/v5"
+	"time"
+)
+
+type T_Warning struct {
+	T_tp      int       `xml:"T_tp"`      // 报警类型   ->WarningList
+	T_sn      string    `xml:"T_sn"`      // 设备序列号
+	T_D_name  string    `xml:"T_D_name"`  // 设备名称
+	T_id      int       `xml:"T_id"`      // 传感器 ID
+	T_DS_name string    `xml:"T_DS_name"` // 传感器名称
+	T_Remark  string    `xml:"T_Remark"`  // 采集内容
+	T_Ut      time.Time `xml:"T_Ut"`      // 采集时间
+	T_ToAdmin []int     `xml:"T_ToAdmin"` // 发送给谁 Admin.Id
+}
+
+func AddWarning(r T_Warning) bool {
+	b, err := msgpack.Marshal(&r)
+	if err != nil {
+		fmt.Println(err)
+	}
+	// 请求-响应, 向 test3 发布一个 `help me` 请求数据,设置超时间3秒,如果有多个响应,只接收第一个收到的消息
+	msg, err := lib.Nats.Request("AddWarning", b, 3*time.Second)
+	if err != nil {
+		fmt.Println(err)
+	} else {
+		fmt.Println("AddWarning : %s\n", string(msg.Data))
+		return true
+	}
+
+	return false
+}

+ 86 - 0
Nats/NatsServer/Hw_VoiceNotice.go

@@ -0,0 +1,86 @@
+package NatsServer
+
+import (
+	"Cold_DeductionNotice/lib"
+	"Cold_DeductionNotice/logs"
+	"Cold_DeductionNotice/models/Warning"
+	"strconv"
+	"strings"
+	"time"
+)
+
+// 发送 DEMO
+//NatsServer.Hw_VoiceNotice([]byte(fmt.Sprintf(`{"displayNbr":"+8675536362854","calleeNbr":"%s","playInfoList":[{"templateId":"f70c83b230dd4794860a383c38abdefa","templateParas":["%s"]}],"userData":"testUserData"}`,"18777951277","超过上线报警") ) )
+
+
+// 华为云 电话通知报警
+func Hw_VoiceNotice(Warning_r *Warning.Warning,PhoneNumbers string,b []byte) {
+	logs.Println(" => Nats", lib.FuncName(), PhoneNumbers, string(b))
+	cun_x := 0
+	Data := ""
+breakHere:
+	cun_x++
+	// 控制发送
+	if cun_x > 3 {
+		// 添加
+		Warning_r_e := Warning.Warning{}
+		Warning_r_e.T_pid = 0
+		Warning_r_e.T_tp = 1012
+		Warning_r_e.T_D_name = "语音服务通讯"
+		Warning_r_e.T_Remark = "语音服务通讯 异常!"
+		Warning_r_e.T_Log = Data
+		Warning_r_e.T_State = 3
+		Warning_r_e.T_Ut = time.Now()
+		//WarningNotice.WarningToAdminId(&Warning_r_e, []int{1}) // 发送给 绑定公司管理员
+		// 添加报警
+		Warning.Add_Warning(Warning_r_e)
+
+		logs.PrintlnError("电话通知","华为云语音服务通讯 异常!")
+		// 达到数量上线跳出
+		return
+	}
+	// 请求-响应, 向 test3 发布一个 `help me` 请求数据,设置超时间3秒,如果有多个响应,只接收第一个收到的消息
+	msg, err := lib.Nats.Request("Hw_VoiceNotice", b, 3*time.Second)
+	if err != nil {
+		logs.PrintlnError("Hw_VoiceNotice %s", err.Error())
+		Warning.Add_Warning_Log(Warning_r, "---->语音服务通讯 异常!Nats Err!尝试发送 "+strconv.Itoa(cun_x)+" 次\n")
+		Data = "语音服务通讯 异常!Nats Err!"
+		time.Sleep(time.Second * time.Duration(cun_x))
+		goto breakHere // 跳转到标签
+	}
+	Data = string(msg.Data)
+	logs.Println("Hw_VoiceNotice => : %s\n", Data)
+	if !strings.Contains(Data, "成功"){
+		Warning.Add_Warning_Log(Warning_r, "---->语音信服务发送失败!["+Data+"]!尝试发送 "+strconv.Itoa(cun_x)+" 次\n")
+		time.Sleep(time.Second * time.Duration(cun_x))
+		goto breakHere // 跳转到标签
+	}
+	Warning.Add_Warning_Log(Warning_r, "->"+Data+"\n")
+
+
+
+	// ============== 计费 ==============
+
+
+	Warning.Add_WarningSand(Warning.WarningSand{
+		T_pid:    Warning_r.T_pid,
+		T_tp:     Warning_r.T_tp,
+		T_Notice: PhoneNumbers,
+		T_Ntype:   2,
+		T_Remark: "WID:"+strconv.FormatInt(Warning_r.Id,10)+"\n" +
+			"类型:"+Warning.Read_WarningType_Get(Warning_r.T_tp)+"\n"+
+			"SN:"+Warning_r.T_sn+"\n"+
+			"主机:"+Warning_r.T_D_name+"\n"+
+			"设备:"+Warning_r.T_DS_name+"\n"+
+			"备注:"+Warning_r.T_Remark+"\n"+
+			"通知方式:电话通知\n"+
+			"通知对象:"+PhoneNumbers,
+	})
+
+
+
+	return
+
+
+
+}

+ 93 - 0
Nats/NatsServer/NatsAliM.go

@@ -0,0 +1,93 @@
+package NatsServer
+
+import (
+	"Cold_DeductionNotice/lib"
+	"Cold_DeductionNotice/logs"
+	"Cold_DeductionNotice/models/Warning"
+	"github.com/vmihailenco/msgpack/v5"
+	"strconv"
+	"strings"
+	"time"
+)
+
+func Ali_Message(Warning_r *Warning.Warning, PhoneNumbers string, TemplateCode string, TemplateParam string) {
+	logs.Println("Nats =>", lib.FuncName(), PhoneNumbers, TemplateCode, TemplateParam)
+
+	type Ali_Message struct {
+		PhoneNumbers  string
+		TemplateCode  string
+		TemplateParam string
+	}
+
+	b, err := msgpack.Marshal(&Ali_Message{
+		PhoneNumbers:  PhoneNumbers,
+		TemplateCode:  TemplateCode,
+		TemplateParam: TemplateParam,
+	})
+	if err != nil {
+		logs.Println("Ali_Message", err)
+		return
+	}
+
+	cun_x := 0
+	Data := ""
+breakHere:
+	cun_x++
+	// 控制发送
+	if cun_x > 3 {
+		// 添加
+		Warning_r_e := Warning.Warning{}
+		Warning_r_e.T_pid = 0
+		Warning_r_e.T_tp = 1012
+		Warning_r_e.T_D_name = "短信服务通讯"
+		Warning_r_e.T_Remark = "短信服务通讯 异常!"
+		Warning_r_e.T_Log = Data
+		Warning_r_e.T_State = 3
+		Warning_r_e.T_Ut = time.Now()
+		//WarningNotice.WarningToAdminId(&Warning_r_e, []int{1}) // 发送给 绑定公司管理员
+		// 添加报警
+		Warning.Add_Warning(Warning_r_e)
+
+		logs.PrintlnError("短信通知","短信服务通讯 异常!")
+		// 达到数量上线跳出
+		return
+	}
+	// 请求-响应, 向 test3 发布一个 `help me` 请求数据,设置超时间3秒,如果有多个响应,只接收第一个收到的消息
+	msg, err := lib.Nats.Request("Ali_Message", b, 3*time.Second)
+	if err != nil {
+		logs.PrintlnError("Ali_Message %s", err.Error())
+		Warning.Add_Warning_Log(Warning_r, "---->短信服务通讯 异常!Nats Err!尝试发送 "+strconv.Itoa(cun_x)+" 次\n")
+		Data = "短信服务通讯 异常!Nats Err!"
+		time.Sleep(time.Second * time.Duration(cun_x))
+		goto breakHere // 跳转到标签
+	}
+	Data = string(msg.Data)
+	logs.Println("Ali_Message => : %s\n", Data)
+	if !strings.Contains(Data, "成功"){
+		Warning.Add_Warning_Log(Warning_r, "---->短信服务发送失败!["+Data+"]!尝试发送 "+strconv.Itoa(cun_x)+" 次\n")
+		time.Sleep(time.Second * time.Duration(cun_x))
+		goto breakHere // 跳转到标签
+	}
+	Warning.Add_Warning_Log(Warning_r, "->"+Data+"\n")
+
+
+
+
+	// ============== 计费 ==============
+	Warning.Add_WarningSand(Warning.WarningSand{
+		T_pid:    Warning_r.T_pid,
+		T_tp:     Warning_r.T_tp,
+		T_Notice: PhoneNumbers,
+		T_Ntype:   1,
+		T_Remark: "WID:"+strconv.FormatInt(Warning_r.Id,10)+"\n" +
+			"类型:"+Warning.Read_WarningType_Get(Warning_r.T_tp)+"\n"+
+			"SN:"+Warning_r.T_sn+"\n"+
+			"主机:"+Warning_r.T_D_name+"\n"+
+			"设备:"+Warning_r.T_DS_name+"\n"+
+			"备注:"+Warning_r.T_Remark+"\n"+
+			"通知方式:短信通知\n"+
+			"通知对象:"+PhoneNumbers,
+	})
+
+
+}

+ 14 - 0
Nats/NatsServer/NatsMqtt.go

@@ -0,0 +1,14 @@
+package NatsServer
+
+import (
+	"Cold_DeductionNotice/lib"
+	"Cold_DeductionNotice/logs"
+)
+
+func Mqtt_DeviceReal(msg []byte) {
+	logs.Println("Nats =>", lib.FuncName(), string(msg))
+
+	// 请求-响应, 向 test3 发布一个 `help me` 请求数据,设置超时间3秒,如果有多个响应,只接收第一个收到的消息
+	lib.Nats.Publish("Mqtt_DeviceReal", msg)
+
+}

+ 94 - 0
Nats/NatsServer/NatsWx.go

@@ -0,0 +1,94 @@
+package NatsServer
+
+import (
+	"Cold_DeductionNotice/lib"
+	"Cold_DeductionNotice/logs"
+	"Cold_DeductionNotice/models/Warning"
+	"github.com/vmihailenco/msgpack/v5"
+	"strconv"
+	"strings"
+	"time"
+)
+
+func Wx_MessageTemplate(Warning_r *Warning.Warning, openid string, templateid string, reqdata string) {
+	logs.Println(" => Nats", lib.FuncName(), openid, templateid, reqdata)
+
+	type Wx_MessageTemplate struct {
+		Openid     string
+		Templateid string
+		Parameter  string
+		Reqdata    string
+	}
+
+	b, err := msgpack.Marshal(&Wx_MessageTemplate{
+		Openid:     openid,
+		Templateid: templateid,
+		Parameter:  "index?wid=" + strconv.Itoa(Warning_r.T_id),
+		Reqdata:    reqdata,
+	})
+	if err != nil {
+		logs.Println("Wx_MessageTemplate", err)
+		return
+	}
+	cun_x := 0
+	Data := ""
+breakHere:
+	cun_x++
+	// 控制发送
+	if cun_x > 3 {
+		// 添加
+		Warning_r_e := Warning.Warning{}
+		Warning_r_e.T_pid = 0
+		Warning_r_e.T_tp = 1012
+		Warning_r_e.T_D_name = "微信服务通讯"
+		Warning_r_e.T_Remark = "微信服务通讯 异常!"
+		Warning_r_e.T_Log = Data
+		Warning_r_e.T_State = 3
+		Warning_r_e.T_Ut = time.Now()
+		//WarningNotice.WarningToAdminId(&Warning_r_e, []int{1}) // 发送给 绑定公司管理员
+		// 添加报警
+		Warning.Add_Warning(Warning_r_e)
+
+		logs.PrintlnError("微信通知","微信服务通讯 异常!")
+		// 达到数量上线跳出
+		return
+	}
+	// 请求-响应, 向 test3 发布一个 `help me` 请求数据,设置超时间3秒,如果有多个响应,只接收第一个收到的消息
+	msg, err := lib.Nats.Request("Wx_MessageTemplate", b, 3*time.Second)
+	if err != nil {
+		logs.PrintlnError("Wx_MessageTemplate %s", err.Error())
+		Warning.Add_Warning_Log(Warning_r, "---->微信服务通讯 异常!Nats Err!尝试发送 "+strconv.Itoa(cun_x)+" 次\n")
+		Data = "微信服务通讯 异常!Nats Err!"
+		time.Sleep(time.Second * time.Duration(cun_x))
+		goto breakHere // 跳转到标签
+	}
+	Data = string(msg.Data)
+	logs.Println("Wx_MessageTemplate => : %s\n", Data)
+	if !strings.Contains(Data, "成功"){
+		Warning.Add_Warning_Log(Warning_r, "---->微信服务发送失败!["+Data+"]!尝试发送 "+strconv.Itoa(cun_x)+" 次\n")
+		time.Sleep(time.Second * time.Duration(cun_x))
+		goto breakHere // 跳转到标签
+	}
+	Warning.Add_Warning_Log(Warning_r, "->"+Data+"\n")
+
+
+	// ============== 计费 ==============
+	Warning.Add_WarningSand(Warning.WarningSand{
+		T_pid:    Warning_r.T_pid,
+		T_tp:     Warning_r.T_tp,
+		T_Notice: openid,
+		T_Ntype:   0,
+		T_Remark: "WID:"+strconv.FormatInt(Warning_r.Id,10)+"\n" +
+			"类型:"+Warning.Read_WarningType_Get(Warning_r.T_tp)+"\n"+
+			"SN:"+Warning_r.T_sn+"\n"+
+			"主机:"+Warning_r.T_D_name+"\n"+
+			"设备:"+Warning_r.T_DS_name+"\n"+
+			"备注:"+Warning_r.T_Remark+"\n"+
+			"通知方式:短信通知\n"+
+			"通知对象:"+openid,
+	})
+
+
+
+
+}

+ 107 - 0
TimeMonitor/DeductionNotice.go

@@ -0,0 +1,107 @@
+package TimeMonitor
+
+import (
+	"Cold_DeductionNotice/WarningNotice"
+	"Cold_DeductionNotice/logs"
+	"Cold_DeductionNotice/models/Account"
+	"Cold_DeductionNotice/models/Company"
+	"Cold_DeductionNotice/models/Warning"
+	"fmt"
+	"github.com/robfig/cron/v3"
+	"strconv"
+	"time"
+)
+
+func DeductionNoticeInit() {
+	//go DeductionNoticeStatus()
+
+	crontab := cron.New(cron.WithSeconds())
+	_, err := crontab.AddFunc("0 0 1 * * *", DeductionNoticeStatus)
+	if err != nil {
+		fmt.Printf("err: %v\n", err)
+		fmt.Println("初始化成功")
+	}
+	crontab.Start()
+	defer crontab.Stop()
+	select {}
+
+}
+func DeductionNoticeStatus() {
+	fmt.Println("==============定时 通知扣费================")
+	now := time.Now()
+	d, _ := time.ParseDuration("-24h")
+	currentTime := now.Add(d)
+	logs.Println(fmt.Sprintf("%d-%02d-%02d", currentTime.Year(), currentTime.Month(), currentTime.Day()))
+	TABLE_name := fmt.Sprintf("warning_sand_%d%02d", currentTime.Year(), currentTime.Month())
+	logs.Println("TABLE_name:", TABLE_name)
+	StartTine := fmt.Sprintf("%d-%02d-%02d 00:00:00", currentTime.Year(), currentTime.Month(), currentTime.Day())
+	EndTime := fmt.Sprintf("%d-%02d-%02d 23:59:59", currentTime.Year(), currentTime.Month(), currentTime.Day())
+
+	for _,v := range Account.Read_Company_All(){
+		logs.Println("=======",v.Id,v.T_name)
+		var Money float32
+		// 微信计费
+		Ntype_0 := Warning.Get_WarningSandNum(TABLE_name, v.Id, 0, StartTine, EndTime)
+		logs.Println("微信条数:",Ntype_0," 金额:",Ntype_0 * 0)
+		// 短信计费
+		Ntype_1 := Warning.Get_WarningSandNum(TABLE_name, v.Id, 1, StartTine, EndTime)
+		logs.Println("短信条数:",Ntype_1," 金额:",float32(Ntype_1) * 0.1)
+		Money += float32(Ntype_1) * 0.12
+		// 电话计费
+		Ntype_2 := Warning.Get_WarningSandNum(TABLE_name, v.Id, 2, StartTine, EndTime)
+		logs.Println("电话条数:",Ntype_2," 金额:",float32(Ntype_2) * 0.1)
+		Money += float32(Ntype_2) * 0.15
+
+		if Money == 0 {
+			// 没有费用,跳过
+			continue
+		}
+
+
+
+		// 更新费用
+		_, Company_r := Account.Read_Company_id(v.Id)
+		logs.Println(Company_r.T_name," 扣费记录 -"," 当期余额:",Company_r.T_money,"  ",fmt.Sprintf("%d-%02d-%02d", currentTime.Year(), currentTime.Month(), currentTime.Day()),"扣除:",Money)
+		Company_r.T_money = Company_r.T_money - Money
+		Account.Update_Company(Company_r,"T_money")
+
+		// 插入账单
+		CompanyBill_r := Company.CompanyBill{
+			T_pid : Company_r.Id,
+			T_type : "扣费",
+			T_project : "通知计费(天)",
+			T_bill : fmt.Sprintf("%d-%02d-%02d", currentTime.Year(), currentTime.Month(), currentTime.Day())+"通知计费(天),短信条数:"+strconv.Itoa(Ntype_1)+"条,电话条数:"+strconv.Itoa(Ntype_2)+"条",
+			T_charging : Money,
+			T_balance : Company_r.T_money,
+		}
+		Company.Add_CompanyBill(CompanyBill_r)
+
+
+		var Warning_r Warning.Warning
+		Warning_r.T_pid = Company_r.Id // 报警类型
+		Warning_r.T_tp = 1002 // 报警类型
+		Warning_r.T_sn = ""
+		Warning_r.T_id = 0
+		Warning_r.T_Msid = 0
+		Warning_r.T_D_name = Company_r.T_name
+		Warning_r.T_DS_name = Company_r.T_name
+		Warning_r.T_Ut = time.Now()
+		Warning_r.T_State = 1
+
+		// 余额预警
+		if Company_r.T_money < 10{
+			Warning_r.T_Remark = "您当前余额不足10元,请及时充值"
+		}
+		if Company_r.T_money <= 0{
+			Warning_r.T_Remark = "您当前余额"+fmt.Sprintf("%.2f", Company_r.T_money)+"元,请及时充值"
+		}
+
+		// 发送给用户
+		WarningNotice.WarningToUser(&Warning_r,Warning_r.T_pid)
+		Warning.Add_Warning(Warning_r) // 添加报警
+	}
+
+
+	//
+
+}

+ 204 - 0
WarningNotice/WarningNotice.go

@@ -0,0 +1,204 @@
+package WarningNotice
+
+import (
+	"Cold_DeductionNotice/Nats/NatsServer"
+	"Cold_DeductionNotice/lib"
+	"Cold_DeductionNotice/logs"
+	"Cold_DeductionNotice/models/Account"
+	"Cold_DeductionNotice/models/Warning"
+	"encoding/json"
+	"strconv"
+	"strings"
+)
+
+// 报警发送给用户表
+func WarningToUser(Warning_r *Warning.Warning, T_pid int) {
+	logs.Println("==>WarningToUserId  ", "Msid", Warning_r.T_Msid, "  T_pid:", T_pid)
+
+	Warning_r.T_pid = T_pid
+	var T_Admin_list []int
+
+	Tpid := Account.Read_Admin_Tpid_List(Warning_r.T_pid)
+	for _, v := range Tpid {
+		T_Admin_list = append(T_Admin_list, v.Id)
+	}
+
+	if len(T_Admin_list) == 0 {
+		Warning.Add_Warning_Log(Warning_r, "!!!没有要通知的用户!!!\n")
+		return
+	}
+
+	T_Admin_list_str := ""
+	for _, T_Admin_list_r := range T_Admin_list {
+		T_Admin_list_str += strconv.Itoa(T_Admin_list_r) + "|"
+	}
+	Warning.Add_Warning_Log(Warning_r, "通知 用户ID列表 -> ["+T_Admin_list_str+"]\n")
+	// 通知策略
+	for _, T_Admin_list_r := range T_Admin_list {
+
+		logs.Println("==> WarningToAdminId  T_Admin_id:", T_Admin_list_r)
+		Admin_r, err := Account.Read_Admin_Byid(T_Admin_list_r)
+		if err != nil {
+			logs.Println("==> WarningToAdminId  没找到 T_Admin_id:", err)
+			Warning.Add_Warning_Log(Warning_r, "没找到 T_Admin_id:-> "+strconv.Itoa(T_Admin_list_r)+"\n")
+			continue
+		}
+		Warning.Add_Warning_Log(Warning_r, "通知-> ["+strconv.Itoa(Admin_r.Id)+"|"+Admin_r.T_name+"]\n")
+		// 累积报警记录数
+		key_Warning_num := "A" + strconv.Itoa(Admin_r.Id) + "|" + Warning_r.T_sn + "|" + strconv.Itoa(Warning_r.T_tp) // 用户+报警类型
+		if !Warning.Redis_WarningToAdmin_Num(key_Warning_num) {
+			Warning.Add_Warning_Log(Warning_r, "-> "+Admin_r.T_name+"["+strconv.Itoa(Admin_r.Id)+"]"+"相同报警(30分钟内),跳过该用户通知\n")
+			continue
+		}
+		// 获取公司名称
+		_, Company_r := Account.Read_Company_id(Warning_r.T_pid)
+		if Company_r.Id == 0 {
+			Company_r.T_name = "冷链系统"
+		}
+		// 微信通知
+		if len(Admin_r.T_wx) > 3 {
+
+			data_json_t := Wx_d_struct{
+				Corporate: Wx_struct{Value: lib.Limit_len(Company_r.T_name, 10)},
+				Type:      Wx_struct{Value: Warning.Read_WarningType_Get(Warning_r.T_tp)},
+				Name:      Wx_struct{Value: lib.Limit_len(Warning_r.T_D_name, 20)},
+				Time:      Wx_struct{Value: Warning_r.T_Ut.Format("2006-01-02 15:04:05")},
+				Remark:    Wx_struct{Value: lib.Limit_len(Warning_r.T_Remark, 20)},
+			}
+			data_json_str, _ := json.Marshal(data_json_t)
+			logs.Println("==> WarningToAdminId  通知内容:", string(data_json_str))
+
+			// 用户下 多个微信
+			arr_b := strings.Split(Admin_r.T_wx, "|")
+			for _, v_b := range arr_b {
+				v_b_l := strings.Split(v_b, "/")
+				if len(v_b_l) != 2 {
+					logs.Println("==> WarningToAdminId  推送 T_Notice_wx:", v_b, " len(v_b_l) != 2")
+					continue
+				}
+				if len(v_b_l[0]) == 0 {
+					logs.Println("==> WarningToAdminId   推送 T_Notice_wx:", v_b, " len(v_b_l[0]) == 0")
+					continue
+				}
+
+				NatsServer.Wx_MessageTemplate(Warning_r, v_b_l[0], "gnpERD6ilOQK6zvp1W_Pmae-to4wEqXmHrM0poN7IoY", string(data_json_str))
+
+			}
+
+			//Warning.Add_Warning_Log(Warning_r, "微信-> "+Admin_r.T_name+"\n")
+		}
+
+		// 短信通知
+		//if len(Admin_r.T_phone) > 3 {
+		//	reqdata_Message := ""
+		//	NatsServer.Ali_Message(Warning_r, Admin_r.T_phone, "SMS_232170337", reqdata_Message)
+		//	Warning.Add_Warning_Log(Warning_r, "微信-> "+Admin_r.T_name+"\n")
+		//}
+
+	}
+
+	defer func() {
+		if Warning_r.Id > 0 {
+			Warning.Update_Warning(*Warning_r, "T_Log")
+		}
+	}()
+
+}
+
+// 报警发送给用户表
+//func WarningToUser(Warning_r *Warning.Warning, T_pid int) {
+//	logs.Println("==>WarningToUserId  ", "Msid", Warning_r.T_Msid, "  T_pid:", T_pid)
+//
+//	var T_Admin_list []int
+//
+//	Tpid := Account.Read_Admin_Tpid_List(Warning_r.T_pid)
+//	for _, v := range Tpid {
+//		T_Admin_list = append(T_Admin_list, v.Id)
+//	}
+//
+//	if len(T_Admin_list) == 0 {
+//		Warning.Add_Warning_Log(Warning_r, "!!!没有要通知的用户!!!\n")
+//		return
+//	}
+//
+//	T_Admin_list_str := ""
+//	for _, T_Admin_list_r := range T_Admin_list {
+//		T_Admin_list_str += strconv.Itoa(T_Admin_list_r) + "|"
+//	}
+//	Warning.Add_Warning_Log(Warning_r, "通知 用户ID列表 -> ["+T_Admin_list_str+"]\n")
+//	// 通知策略
+//	for _, T_Admin_list_r := range T_Admin_list {
+//
+//		logs.Println("T_Admin_id:", T_Admin_list_r)
+//		Admin_r, err := Account.Read_Admin_Byid(T_Admin_list_r)
+//		if err != nil {
+//			logs.Println("没找到 T_Admin_id:", err)
+//			Warning.Add_Warning_Log(Warning_r, "没找到 T_Admin_id:-> "+strconv.Itoa(T_Admin_list_r)+"\n")
+//			continue
+//		}
+//		Warning.Add_Warning_Log(Warning_r, "通知-> ["+strconv.Itoa(Admin_r.Id)+"|"+Admin_r.T_name+"]\n")
+//		// 累积报警记录数
+//		key_Warning_num := "A" + strconv.Itoa(Admin_r.Id) + "|" + strconv.Itoa(Warning_r.T_tp) // 用户+报警类型
+//		if !Warning.Redis_WarningToAdmin_Num(key_Warning_num) {
+//			Warning.Add_Warning_Log(Warning_r, "-> "+Admin_r.T_name+"["+strconv.Itoa(Admin_r.Id)+"]"+"相同报警(30分钟内),跳过该用户通知\n")
+//			continue
+//		}
+//		// 获取公司名称
+//		_, Company_r := Account.Read_Company_id(Warning_r.T_pid)
+//		if Company_r.Id == 0 {
+//			Company_r.T_name = "冷链系统"
+//		}
+//		// 微信通知
+//		if len(Admin_r.T_wx) > 3 {
+//
+//			data_json_t := Wx_d_struct{
+//				Corporate: Wx_struct{Value: lib.Limit_len(Company_r.T_name, 10)},
+//				Type:      Wx_struct{Value: Warning.Read_WarningType_Get(Warning_r.T_tp)},
+//				Name:      Wx_struct{Value: lib.Limit_len(Warning_r.T_D_name, 20)},
+//				Time:      Wx_struct{Value: Warning_r.T_Ut.Format("2006-01-02 15:04:05")},
+//				Remark:    Wx_struct{Value: lib.Limit_len(Warning_r.T_Remark, 20)},
+//			}
+//			data_json_str, _ := json.Marshal(data_json_t)
+//			logs.Println("通知内容:", string(data_json_str))
+//
+//			// 用户下 多个微信
+//			arr_b := strings.Split(Admin_r.T_wx, "|")
+//			for _, v_b := range arr_b {
+//				v_b_l := strings.Split(v_b, "/")
+//				if len(v_b_l) != 2 {
+//					logs.Println("推送 T_Notice_wx:", v_b, " len(v_b_l) != 2")
+//					continue
+//				}
+//				if len(v_b_l[0]) == 0 {
+//					logs.Println("推送 T_Notice_wx:", v_b, " len(v_b_l[0]) == 0")
+//					continue
+//				}
+//				NatsServer.Wx_MessageTemplate(Warning_r, v_b_l[0], "gnpERD6ilOQK6zvp1W_Pmae-to4wEqXmHrM0poN7IoY", string(data_json_str))
+//
+//			}
+//
+//			//Warning.Add_Warning_Log(Warning_r, "微信-> "+Admin_r.T_name+"\n")
+//		}
+//
+//		// 短信通知
+//		//if len(Admin_r.T_phone) > 3 {
+//		//	reqdata_Message := ""
+//		//	NatsServer.Ali_Message(Warning_r, Admin_r.T_phone, "SMS_232170337", reqdata_Message)
+//		//	Warning.Add_Warning_Log(Warning_r, "微信-> "+Admin_r.T_name+"\n")
+//		//}
+//
+//	}
+//
+//	defer func() {
+//		if Warning_r.Id > 0 {
+//			Warning.Update_Warning(*Warning_r, "T_Log")
+//		}
+//	}()
+//
+//}
+//
+
+
+
+
+

+ 36 - 0
WarningNotice/WarningNoticeTruct.go

@@ -0,0 +1,36 @@
+package WarningNotice
+
+//设备温度异常通知
+
+type Wx_struct struct {
+	Value string `json:"value"`
+}
+
+// 微信_设备温度异常通知
+type Wx_t_struct struct {
+	Corporate Wx_struct `json:"thing14"`
+	Type      Wx_struct `json:"thing7"`
+	Name      Wx_struct `json:"thing2"`
+	Time      Wx_struct `json:"time8"`
+	//T         Wx_struct `json:"character_string3"`
+	Remark Wx_struct `json:"thing13"`
+}
+
+// 微信_设备湿度异常通知
+type Wx_h_struct struct {
+	Corporate Wx_struct `json:"thing14"`
+	Type      Wx_struct `json:"thing4"`
+	Name      Wx_struct `json:"thing2"`
+	Time      Wx_struct `json:"time5"`
+	//H         Wx_struct `json:"short_thing7"`
+	Remark Wx_struct `json:"thing13"`
+}
+
+// 微信_主机报警通知
+type Wx_d_struct struct {
+	Corporate Wx_struct `json:"thing22"`
+	Type      Wx_struct `json:"thing38"`
+	Name      Wx_struct `json:"thing2"`
+	Time      Wx_struct `json:"time4"`
+	Remark    Wx_struct `json:"thing5"`
+}

+ 8 - 0
Z_Build.bat

@@ -0,0 +1,8 @@
+cd %~dp0
+set GOARCH=amd64
+set GOOS=linux
+set GOPATH=C:\Users\SIKED\go
+set GO111MODULE=auto
+
+
+go build -o Cold_DeductionNotice main.go

+ 23 - 0
conf/app.conf

@@ -0,0 +1,23 @@
+appname = Cold_DeductionNotice
+httpport = 6232
+runmode = dev
+# 冷链 通知 收费结算系统
+
+# Nats
+NatsServer_Url = "127.0.0.1:43422"
+
+
+# Mysql
+MysqlServer_UrlPort = "127.0.0.1:40306"
+MysqlServer_Database = "cold"
+MysqlServer_Username = "cold"
+MysqlServer_Password = "yjwyEckZS7rE5H!"
+MysqlServer_MaxIdleConnections = 100
+MysqlServer_MaxOpenConnections = 200
+
+
+
+# Redis
+Redis_address = "127.0.0.1:43379"
+Redis_password = ""
+Redis_dbNum = "1"

+ 29 - 0
conf/config.go

@@ -0,0 +1,29 @@
+package conf
+
+import (
+	beego "github.com/beego/beego/v2/server/web"
+)
+
+func init() {
+	beego.LoadAppConfig("ini", "a/conf/app.conf")
+}
+
+var HTTPPort, _ = beego.AppConfig.Int("HTTPPort")
+var AppName, _ = beego.AppConfig.String("appname")
+
+// Redis
+var Redis_address, _ = beego.AppConfig.String("Redis_address")
+var Redis_password, _ = beego.AppConfig.String("Redis_password")
+var Redis_dbNum, _ = beego.AppConfig.String("Redis_dbNum")
+
+// Mysql
+var MysqlServer_UrlPort, _ = beego.AppConfig.String("MysqlServer_UrlPort")
+var MysqlServer_Database, _ = beego.AppConfig.String("MysqlServer_Database")
+var MysqlServer_Username, _ = beego.AppConfig.String("MysqlServer_Username")
+var MysqlServer_Password, _ = beego.AppConfig.String("MysqlServer_Password")
+var MysqlServer_MaxIdleConnections, _ = beego.AppConfig.Int("MysqlServer_MaxIdleConnections")
+var MysqlServer_MaxOpenConnections, _ = beego.AppConfig.Int("MysqlServer_MaxOpenConnections")
+
+var EWarningAdmin = []int{1} // 管理
+// Nats
+var NatsServer_Url, _ = beego.AppConfig.String("NatsServer_Url")

+ 9 - 0
controllers/default.go

@@ -0,0 +1,9 @@
+package controllers
+
+import (
+	beego "github.com/beego/beego/v2/server/web"
+)
+
+type MainController struct {
+	beego.Controller
+}

+ 46 - 0
go.mod

@@ -0,0 +1,46 @@
+module Cold_DeductionNotice
+
+go 1.19
+
+require github.com/beego/beego/v2 v2.0.1
+
+require (
+	github.com/astaxie/beego v1.12.3
+	github.com/go-sql-driver/mysql v1.5.0
+	github.com/nats-io/nats.go v1.24.0
+	github.com/robfig/cron/v3 v3.0.1
+	github.com/smartystreets/goconvey v1.6.4
+	github.com/thinkeridea/go-extend v1.3.2
+	github.com/vmihailenco/msgpack/v5 v5.3.5
+)
+
+require (
+	github.com/beorn7/perks v1.0.1 // indirect
+	github.com/cespare/xxhash/v2 v2.1.1 // indirect
+	github.com/golang/protobuf v1.4.2 // indirect
+	github.com/gomodule/redigo v2.0.0+incompatible // indirect
+	github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 // indirect
+	github.com/hashicorp/golang-lru v0.5.4 // indirect
+	github.com/jtolds/gls v4.20.0+incompatible // indirect
+	github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
+	github.com/mitchellh/mapstructure v1.3.3 // indirect
+	github.com/nats-io/nats-server/v2 v2.9.15 // indirect
+	github.com/nats-io/nkeys v0.3.0 // indirect
+	github.com/nats-io/nuid v1.0.1 // indirect
+	github.com/pkg/errors v0.9.1 // indirect
+	github.com/prometheus/client_golang v1.7.0 // indirect
+	github.com/prometheus/client_model v0.2.0 // indirect
+	github.com/prometheus/common v0.10.0 // indirect
+	github.com/prometheus/procfs v0.1.3 // indirect
+	github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 // indirect
+	github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d // indirect
+	github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect
+	golang.org/x/crypto v0.6.0 // indirect
+	golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect
+	golang.org/x/net v0.6.0 // indirect
+	golang.org/x/sys v0.5.0 // indirect
+	golang.org/x/text v0.7.0 // indirect
+	golang.org/x/tools v0.1.12 // indirect
+	google.golang.org/protobuf v1.23.0 // indirect
+	gopkg.in/yaml.v2 v2.2.8 // indirect
+)

+ 317 - 0
go.sum

@@ -0,0 +1,317 @@
+cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
+github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
+github.com/Knetic/govaluate v3.0.0+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
+github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
+github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
+github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
+github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
+github.com/alicebob/gopher-json v0.0.0-20180125190556-5a6b3ba71ee6/go.mod h1:SGnFV6hVsYE877CKEZ6tDNTjaSXYUk6QqoIK6PrAtcc=
+github.com/alicebob/miniredis v2.5.0+incompatible/go.mod h1:8HZjEj4yU0dwhYHky+DxYx+6BMjkBbe5ONFIF1MXffk=
+github.com/astaxie/beego v1.12.3 h1:SAQkdD2ePye+v8Gn1r4X6IKZM1wd28EyUOVQ3PDSOOQ=
+github.com/astaxie/beego v1.12.3/go.mod h1:p3qIm0Ryx7zeBHLljmd7omloyca1s4yu1a8kM1FkpIA=
+github.com/beego/beego/v2 v2.0.1 h1:07a7Z0Ok5vbqyqh+q53sDPl9LdhKh0ZDy3gbyGrhFnE=
+github.com/beego/beego/v2 v2.0.1/go.mod h1:8zyHi1FnWO1mZLwTn62aKRIZF/aIKvkCBB2JYs+eqQI=
+github.com/beego/goyaml2 v0.0.0-20130207012346-5545475820dd/go.mod h1:1b+Y/CofkYwXMUU0OhQqGvsY2Bvgr4j6jfT699wyZKQ=
+github.com/beego/x2j v0.0.0-20131220205130-a0352aadc542/go.mod h1:kSeGC/p1AbBiEp5kat81+DSQrZenVBZXklMLaELspWU=
+github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
+github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
+github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
+github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
+github.com/bradfitz/gomemcache v0.0.0-20180710155616-bc664df96737/go.mod h1:PmM6Mmwb0LSuEubjR8N7PtNe1KxZLtOUHtbeikc5h60=
+github.com/casbin/casbin v1.7.0/go.mod h1:c67qKN6Oum3UF5Q1+BByfFxkwKvhwW57ITjqwtzR1KE=
+github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
+github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
+github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
+github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80=
+github.com/coreos/etcd v3.3.25+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
+github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
+github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
+github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
+github.com/couchbase/go-couchbase v0.0.0-20200519150804-63f3cdb75e0d/go.mod h1:TWI8EKQMs5u5jLKW/tsb9VwauIrMIxQG1r5fMsswK5U=
+github.com/couchbase/gomemcached v0.0.0-20200526233749-ec430f949808/go.mod h1:srVSlQLB8iXBVXHgnqemxUXqN6FCvClgCMPCsjBDR7c=
+github.com/couchbase/goutils v0.0.0-20180530154633-e865a1461c8a/go.mod h1:BQwMFlJzDjFDG3DJUdU0KORxn88UlsOULuxLExMh3Hs=
+github.com/cupcake/rdb v0.0.0-20161107195141-43ba34106c76/go.mod h1:vYwsqCOLxGiisLwp9rITslkFNpZD5rz43tf41QFkTWY=
+github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
+github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
+github.com/elastic/go-elasticsearch/v6 v6.8.5/go.mod h1:UwaDJsD3rWLM5rKNFzv9hgox93HoX8utj1kxD9aFUcI=
+github.com/elazarl/go-bindata-assetfs v1.0.0 h1:G/bYguwHIzWq9ZoyUQqrjTmJbbYn3j3CKKpKinvZLFk=
+github.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=
+github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
+github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
+github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
+github.com/glendc/gopher-json v0.0.0-20170414221815-dc4743023d0c/go.mod h1:Gja1A+xZ9BoviGJNA2E9vFkPjjsl+CoJxSXiQM1UXtw=
+github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
+github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
+github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
+github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
+github.com/go-redis/redis v6.14.2+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
+github.com/go-redis/redis/v7 v7.4.0/go.mod h1:JDNMw23GTyLNC4GZu9njt15ctBQVn7xjRfnwdHj/Dcg=
+github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs=
+github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
+github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
+github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
+github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
+github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
+github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
+github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
+github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
+github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
+github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
+github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
+github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0=
+github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
+github.com/golang/snappy v0.0.0-20170215233205-553a64147049/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/gomodule/redigo v2.0.0+incompatible h1:K/R+8tc58AaqLkqG2Ol3Qk+DR/TlNuhuh457pBFPtt0=
+github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
+github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
+github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w=
+github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
+github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
+github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8=
+github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
+github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
+github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=
+github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
+github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
+github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
+github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
+github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
+github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
+github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
+github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
+github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
+github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4=
+github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
+github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
+github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
+github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
+github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
+github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
+github.com/ledisdb/ledisdb v0.0.0-20200510135210-d35789ec47e6/go.mod h1:n931TsDuKuq+uX4v1fulaMbA/7ZLLhjc85h7chZGBCQ=
+github.com/lib/pq v1.0.0 h1:X5PMW56eZitiTeO7tKzZxFCSpbFZJtkMMooicw2us9A=
+github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
+github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U=
+github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
+github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
+github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
+github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g=
+github.com/mitchellh/mapstructure v1.3.3 h1:SzB1nHZ2Xi+17FP0zVQBHIZqvwRN9408fJO8h+eeNA8=
+github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
+github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
+github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
+github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
+github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
+github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
+github.com/nats-io/jwt/v2 v2.3.0 h1:z2mA1a7tIf5ShggOFlR1oBPgd6hGqcDYsISxZByUzdI=
+github.com/nats-io/nats-server/v2 v2.9.15 h1:MuwEJheIwpvFgqvbs20W8Ish2azcygjf4Z0liVu2I4c=
+github.com/nats-io/nats-server/v2 v2.9.15/go.mod h1:QlCTy115fqpx4KSOPFIxSV7DdI6OxtZsGOL1JLdeRlE=
+github.com/nats-io/nats.go v1.24.0 h1:CRiD8L5GOQu/DcfkmgBcTTIQORMwizF+rPk6T0RaHVQ=
+github.com/nats-io/nats.go v1.24.0/go.mod h1:dVQF+BK3SzUZpwyzHedXsvH3EO38aVKuOPkkHlv5hXA=
+github.com/nats-io/nkeys v0.3.0 h1:cgM5tL53EvYRU+2YLXIK0G2mJtK12Ft9oeooSZMA2G8=
+github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4=
+github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw=
+github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
+github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
+github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
+github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
+github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
+github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg=
+github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
+github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
+github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
+github.com/pelletier/go-toml v1.0.1/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
+github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
+github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc=
+github.com/peterh/liner v1.0.1-0.20171122030339-3681c2a91233/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc=
+github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
+github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
+github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
+github.com/prometheus/client_golang v1.7.0 h1:wCi7urQOGBsYcQROHqpUUX4ct84xp40t9R9JX0FuA/U=
+github.com/prometheus/client_golang v1.7.0/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
+github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
+github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M=
+github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
+github.com/prometheus/common v0.10.0 h1:RyRA7RzGXQZiW+tGMr7sxa85G1z0yOpM1qq5c8lNawc=
+github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
+github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
+github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
+github.com/prometheus/procfs v0.1.3 h1:F0+tqvhOksq22sc6iCHF5WGlWjdwj92p0udFh1VFBS8=
+github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
+github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
+github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
+github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
+github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 h1:X+yvsM2yrEktyI+b2qND5gpH8YhURn0k8OCaeRnkINo=
+github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644/go.mod h1:nkxAfR/5quYxwPZhyDxgasBMnRtBZd0FCEpawpjMUFg=
+github.com/siddontang/go v0.0.0-20170517070808-cb568a3e5cc0/go.mod h1:3yhqj7WBBfRhbBlzyOC3gUxftwsU0u8gqevxwIHQpMw=
+github.com/siddontang/goredis v0.0.0-20150324035039-760763f78400/go.mod h1:DDcKzU3qCuvj/tPnimWSsZZzvk9qvkvrIL5naVBPh5s=
+github.com/siddontang/rdb v0.0.0-20150307021120-fc89ed2e418d/go.mod h1:AMEsy7v5z92TR1JKMkLLoaOQk++LVnOKL3ScbJ8GNGA=
+github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
+github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
+github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM=
+github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
+github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s=
+github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
+github.com/ssdb/gossdb v0.0.0-20180723034631-88f6b59b84ec/go.mod h1:QBvMkMya+gXctz3kmljlUCu/yB3GZ6oee+dUozsezQE=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
+github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
+github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
+github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
+github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/syndtr/goleveldb v0.0.0-20160425020131-cfa635847112/go.mod h1:Z4AUp2Km+PwemOoO/VB5AOx9XSsIItzFjoJlOSiYmn0=
+github.com/syndtr/goleveldb v0.0.0-20181127023241-353a9fca669c/go.mod h1:Z4AUp2Km+PwemOoO/VB5AOx9XSsIItzFjoJlOSiYmn0=
+github.com/thinkeridea/go-extend v1.3.2 h1:0ZImRXpJc+wBNIrNEMbTuKwIvJ6eFoeuNAewvzONrI0=
+github.com/thinkeridea/go-extend v1.3.2/go.mod h1:xqN1e3y1PdVSij1VZp6iPKlO8I4jLbS8CUuTySj981g=
+github.com/ugorji/go v0.0.0-20171122102828-84cb69a8af83/go.mod h1:hnLbHMwcvSihnDhEfx2/BzKp2xb0Y+ErdfYcrs9tkJQ=
+github.com/vmihailenco/msgpack/v5 v5.3.5 h1:5gO0H1iULLWGhs2H5tbAHIZTV8/cYafcFOr9znI5mJU=
+github.com/vmihailenco/msgpack/v5 v5.3.5/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q/V5KbhBonMG9jc=
+github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g=
+github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds=
+github.com/wendal/errors v0.0.0-20130201093226-f66c77a7882b/go.mod h1:Q12BUT7DqIlHRmgv3RskH+UCM/4eqVMgI0EMmlSpAXc=
+github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+github.com/yuin/gopher-lua v0.0.0-20171031051903-609c9cd26973/go.mod h1:aEV29XrmTYFr3CiRxZeGHpkvbwq+prZduBqMaascyCU=
+go.etcd.io/etcd v3.3.25+incompatible/go.mod h1:yaeTdrJi5lOmYerz05bd8+V7KubZs8YSFZfzsF9A6aI=
+go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
+go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
+go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
+go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc=
+golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
+golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc=
+golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58=
+golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
+golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
+golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
+golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
+golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
+golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s=
+golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
+golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
+golang.org/x/net v0.6.0 h1:L4ZwwTvKW9gr0ZMS1yrHD9GZhIuVjOBBnaKH+SPQK0Q=
+golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
+golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
+golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU=
+golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
+golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo=
+golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
+golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
+golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
+golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
+golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20201211185031-d93e913c1a58/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU=
+golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
+golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
+golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
+google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
+google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
+google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
+google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
+google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
+google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
+google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
+google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
+google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
+google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
+google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
+google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM=
+google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
+gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
+gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
+gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA=
+gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
+gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
+gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
+gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
+honnef.co/go/tools v0.0.1-2020.1.5/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=

+ 1 - 0
lastupdate.tmp

@@ -0,0 +1 @@
+{"C:\\BZD\\Cold\\Cold_DeductionNotice\\controllers":1678167354143603900}

+ 61 - 0
lib/Aes.go

@@ -0,0 +1,61 @@
+package lib
+
+import (
+	"bytes"
+	"crypto/aes"
+	"crypto/cipher"
+	"encoding/base64"
+)
+
+func AesEncryptCBC(orig string, key string) string {
+	// 转成字节数组
+	origData := []byte(orig)
+	k := []byte(key)
+	// 分组秘钥
+	// NewCipher该函数限制了输入k的长度必须为16, 24或者32
+	block, _ := aes.NewCipher(k)
+	// 获取秘钥块的长度
+	blockSize := block.BlockSize()
+	// 补全码
+	origData = PKCS7Padding(origData, blockSize)
+	// 加密模式
+	blockMode := cipher.NewCBCEncrypter(block, k[:blockSize])
+	// 创建数组
+	cryted := make([]byte, len(origData))
+	// 加密
+	blockMode.CryptBlocks(cryted, origData)
+	return base64.StdEncoding.EncodeToString(cryted)
+}
+func AesDecryptCBC(cryted string, key string) string {
+	// 转成字节数组
+	crytedByte, _ := base64.StdEncoding.DecodeString(cryted)
+	k := []byte(key)
+	// 分组秘钥
+	block, _ := aes.NewCipher(k)
+	// 获取秘钥块的长度
+	blockSize := block.BlockSize()
+	// 加密模式
+	blockMode := cipher.NewCBCDecrypter(block, k[:blockSize])
+	// 创建数组
+	orig := make([]byte, len(crytedByte))
+	// 解密
+	blockMode.CryptBlocks(orig, crytedByte)
+	// 去补全码
+	orig = PKCS7UnPadding(orig)
+	return string(orig)
+}
+
+//补码
+//AES加密数据块分组长度必须为128bit(byte[16]),密钥长度可以是128bit(byte[16])、192bit(byte[24])、256bit(byte[32])中的任意一个。
+func PKCS7Padding(ciphertext []byte, blocksize int) []byte {
+	padding := blocksize - len(ciphertext)%blocksize
+	padtext := bytes.Repeat([]byte{byte(padding)}, padding)
+	return append(ciphertext, padtext...)
+}
+
+//去码
+func PKCS7UnPadding(origData []byte) []byte {
+	length := len(origData)
+	unpadding := int(origData[length-1])
+	return origData[:(length - unpadding)]
+}

+ 60 - 0
lib/MinuteToDataTime.go

@@ -0,0 +1,60 @@
+package lib
+
+import (
+	"strconv"
+)
+
+/*
+时间常量
+*/
+const (
+	//定义每分钟的秒数
+	SecondsPerMinute = 60
+	//定义每小时的秒数
+	SecondsPerHour = SecondsPerMinute * 60
+	//定义每天的秒数
+	SecondsPerDay = SecondsPerHour * 24
+)
+
+/*
+时间转换函数
+*/
+func resolveTime(seconds int) (day int, hour int, minute int, second int) {
+	//秒
+	second = seconds % 60
+
+	//天
+	day = seconds / SecondsPerDay
+	seconds -= day * SecondsPerDay
+
+	//时
+	hour = seconds / SecondsPerHour
+	seconds -= hour * SecondsPerHour
+
+	//分
+	minute = seconds / SecondsPerMinute
+	seconds -= minute * SecondsPerHour
+
+
+
+	return
+}
+
+func MinuteToDataTime(t int) string {
+	str := ""
+	day, hour, minute, second := resolveTime(t)
+	if day > 0 {
+		str += strconv.Itoa(day) + "天 "
+	}
+	if hour > 0 {
+		str += strconv.Itoa(hour) + "小时 "
+	}
+	if minute > 0 {
+		str += strconv.Itoa(minute) + "分钟 "
+	}
+	if second > 0 {
+		str += strconv.Itoa(second) + "秒"
+	}
+
+	return str
+}

+ 124 - 0
lib/lib.go

@@ -0,0 +1,124 @@
+package lib
+
+import (
+	"encoding/json"
+	"github.com/nats-io/nats.go"
+	"github.com/thinkeridea/go-extend/exunicode/exutf8"
+	"runtime"
+	"strconv"
+	"unicode/utf8"
+)
+
+var Nats *nats.Conn
+
+func To_int64(value interface{}) int64 {
+	var key int64
+	if value == nil {
+		return key
+	}
+	switch value.(type) {
+	case float64:
+		key = int64(value.(float64))
+	case float32:
+		key = int64(value.(float32))
+	case int:
+		key = int64(value.(int))
+	case uint:
+		key = int64(value.(uint))
+	case int8:
+		key = int64(value.(int8))
+	case uint8:
+		key = int64(value.(uint8))
+	case int16:
+		key = int64(value.(int16))
+	case uint16:
+		key = int64(value.(uint16))
+	case int32:
+		key = int64(value.(int32))
+	case uint32:
+		key = int64(value.(uint32))
+	case int64:
+		key = int64(value.(int64))
+	case uint64:
+		key = int64(value.(uint64))
+	case string:
+		key, _ = strconv.ParseInt(value.(string), 10, 64)
+	case []byte:
+		key, _ = strconv.ParseInt(string(value.([]byte)), 10, 64)
+	default:
+		newValue, _ := json.Marshal(value)
+		key, _ = strconv.ParseInt(string(newValue), 10, 64)
+	}
+	return key
+}
+
+
+func To_string(value interface{}) string {
+	var key string
+	if value == nil {
+		return key
+	}
+
+	switch value.(type) {
+	case float64:
+		ft := value.(float64)
+		key = strconv.FormatFloat(ft, 'f', -1, 64)
+	case float32:
+		ft := value.(float32)
+		key = strconv.FormatFloat(float64(ft), 'f', -1, 64)
+	case int:
+		it := value.(int)
+		key = strconv.Itoa(it)
+	case uint:
+		it := value.(uint)
+		key = strconv.Itoa(int(it))
+	case int8:
+		it := value.(int8)
+		key = strconv.Itoa(int(it))
+	case uint8:
+		it := value.(uint8)
+		key = strconv.Itoa(int(it))
+	case int16:
+		it := value.(int16)
+		key = strconv.Itoa(int(it))
+	case uint16:
+		it := value.(uint16)
+		key = strconv.Itoa(int(it))
+	case int32:
+		it := value.(int32)
+		key = strconv.Itoa(int(it))
+	case uint32:
+		it := value.(uint32)
+		key = strconv.Itoa(int(it))
+	case int64:
+		it := value.(int64)
+		key = strconv.FormatInt(it, 10)
+	case uint64:
+		it := value.(uint64)
+		key = strconv.FormatUint(it, 10)
+	case string:
+		key = value.(string)
+	case []byte:
+		key = string(value.([]byte))
+	default:
+		newValue, _ := json.Marshal(value)
+		key = string(newValue)
+	}
+	return key
+}
+
+
+// 获取正在运行的函数名
+func FuncName() string {
+	pc := make([]uintptr, 1)
+	runtime.Callers(2, pc)
+	f := runtime.FuncForPC(pc[0])
+	return f.Name()
+}
+
+func Limit_len(str string,lenx int) string {
+	if utf8.RuneCountInString(str) > lenx {
+		return exutf8.RuneSubString(str, 0, lenx-3)+"..."
+	}
+	return exutf8.RuneSubString(str, 0, lenx)
+}

+ 40 - 0
logs/LogPrintln.go

@@ -0,0 +1,40 @@
+package logs
+
+import (
+	"fmt"
+	"github.com/astaxie/beego/logs"
+	"runtime"
+)
+
+var Test = true
+var logx *logs.BeeLogger
+var logxE *logs.BeeLogger
+
+func init() {
+
+	if runtime.GOOS == "windows" {
+		Test = true
+	} else {
+		Test = false
+	}
+
+	logx = logs.NewLogger()
+	logx.SetLogger(logs.AdapterFile, `{"filename":"logs/logx/logx.log"}`)
+
+	logxE = logs.NewLogger()
+	logxE.SetLogger(logs.AdapterFile, `{"filename":"logs/logxE/logx.log"}`)
+
+
+}
+
+func Println(format string, v ...interface{}) {
+	if Test{fmt.Println(format, v)}
+	logx.Info(format, v)
+
+}
+
+func PrintlnError(format string, v ...interface{}) {
+	if Test{fmt.Println(format, v)}
+	logxE.Error(format, v)
+	logx.Info(format, v)
+}

+ 1434 - 0
logs/logx/logx.log

@@ -0,0 +1,1434 @@
+2023/03/07 13:47:49.276 [I]  {"key":"redis_Device","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 13:47:49.304 [I]  {"key":"redis_WarningNum","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 13:47:49.359 [I]  {"key":"redis_Company","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 13:47:49.917 [I]  MqttServer%!(EXTRA []interface {}=[ ======= 项目启动 ========])
+2023/03/07 13:47:49.917 [I]  2023-03-06%!(EXTRA []interface {}=[])
+2023/03/07 13:47:49.917 [I]  TABLE_name:%!(EXTRA []interface {}=[warning_sand_202303])
+2023/03/07 13:47:49.949 [I]  =======%!(EXTRA []interface {}=[1 宝智达])
+2023/03/07 13:47:49.964 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 1 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:49.965 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:49.978 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 1 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:49.978 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:49.995 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 1 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:49.995 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:49.995 [I]  =======%!(EXTRA []interface {}=[2 宝智达IOT])
+2023/03/07 13:47:50.009 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 2 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.009 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.022 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 2 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.022 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.040 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 2 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.040 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.040 [I]  =======%!(EXTRA []interface {}=[3 宝智达冷链])
+2023/03/07 13:47:50.054 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 3 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.054 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.068 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 3 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.068 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.081 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 3 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.081 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.081 [I]  =======%!(EXTRA []interface {}=[5 测试0202总公司])
+2023/03/07 13:47:50.095 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 5 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.095 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.109 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 5 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.109 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.123 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 5 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.123 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.123 [I]  =======%!(EXTRA []interface {}=[8 测试0202总公司-分公司1])
+2023/03/07 13:47:50.136 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 8 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.136 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.150 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 8 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.150 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.164 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 8 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.164 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.164 [I]  =======%!(EXTRA []interface {}=[9 测试0202总公司-分公司2])
+2023/03/07 13:47:50.177 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 9 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.177 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.191 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 9 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.191 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.204 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 9 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.204 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.204 [I]  =======%!(EXTRA []interface {}=[19 测试公司19])
+2023/03/07 13:47:50.219 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 19 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.219 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.233 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 19 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.233 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.251 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 19 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.251 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.251 [I]  =======%!(EXTRA []interface {}=[20 测试公司20])
+2023/03/07 13:47:50.265 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 20 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.265 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.279 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 20 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.279 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.293 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 20 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.293 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.293 [I]  =======%!(EXTRA []interface {}=[21 测试公司21])
+2023/03/07 13:47:50.307 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 21 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.307 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.320 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 21 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.320 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.334 [I]  =========== 初始化报警规则 =========%!(EXTRA []interface {}=[])
+2023/03/07 13:47:50.335 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 21 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.335 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.335 [I]  =======%!(EXTRA []interface {}=[22 测试公司22])
+2023/03/07 13:47:50.361 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 22 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.361 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.375 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 22 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.375 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.390 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 22 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.390 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.390 [I]  =======%!(EXTRA []interface {}=[26 测试公司1])
+2023/03/07 13:47:50.405 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 26 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.405 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.419 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 26 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.419 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.433 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 26 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.433 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.433 [I]  =======%!(EXTRA []interface {}=[31 11111])
+2023/03/07 13:47:50.447 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 31 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.447 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.460 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 31 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.460 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.475 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 31 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.475 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.475 [I]  =======%!(EXTRA []interface {}=[32 测试公司1])
+2023/03/07 13:47:50.490 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 32 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.490 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.504 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 32 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.504 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.519 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 32 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.519 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.519 [I]  =======%!(EXTRA []interface {}=[33 贵州科开有限公司])
+2023/03/07 13:47:50.533 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 33 0 2023-03-06 00:00:00 2023-03-06 23:59:59 6])
+2023/03/07 13:47:50.533 [I]  微信条数:%!(EXTRA []interface {}=[6  金额: 0])
+2023/03/07 13:47:50.547 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 33 1 2023-03-06 00:00:00 2023-03-06 23:59:59 1])
+2023/03/07 13:47:50.547 [I]  短信条数:%!(EXTRA []interface {}=[1  金额: 0.1])
+2023/03/07 13:47:50.560 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 33 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:47:50.560 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:47:50.589 [I]  贵州科开有限公司%!(EXTRA []interface {}=[ 扣费记录 -  当期余额: 0.5999999    2023-03-06 扣除: 0.1])
+2023/03/07 13:47:50.624 [I]  Number of records updated in database:%!(EXTRA []interface {}=[1])
+2023/03/07 13:47:50.638 [I]  ==>WarningToUserId  %!(EXTRA []interface {}=[Msid 0   T_pid: 0])
+2023/03/07 13:47:50.666 [I]  T_Admin_id:%!(EXTRA []interface {}=[38])
+2023/03/07 13:47:50.776 [I]  T_Admin_id:%!(EXTRA []interface {}=[31])
+2023/03/07 13:47:50.876 [I]  通知内容:%!(EXTRA []interface {}=[{"first":{"value":"冷链系统","color":"#ff450a"},"thing2":{"value":"用户余额通知","color":"#bb450a"},"thing4":{"value":"贵州科开有限公司","color":"#ff450a"},"time3":{"value":"2023-03-07 13:47:50","color":"#aa450a"},"remark":{"value":"您当前余额不足10元,请及时充值","color":"#11450a"}}])
+2023/03/07 13:47:50.876 [I]   => Nats%!(EXTRA []interface {}=[Cold_DeductionNotice/Nats/NatsServer.Wx_MessageTemplate oZMR-6eyBpryepFcaFawH7n6b2ZI Zi8vDVbyHhyOuhYuSHQvaTo9xsIzvH66CfPvqeLUnDs {"first":{"value":"冷链系统","color":"#ff450a"},"thing2":{"value":"用户余额通知","color":"#bb450a"},"thing4":{"value":"贵州科开有限公司","color":"#ff450a"},"time3":{"value":"2023-03-07 13:47:50","color":"#aa450a"},"remark":{"value":"您当前余额不足10元,请及时充值","color":"#11450a"}}])
+2023/03/07 13:47:50.877 [I]  Wx_MessageTemplate [nats: invalid connection]
+2023/03/07 13:48:32.344 [I]  {"key":"redis_Device","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 13:48:32.387 [I]  {"key":"redis_WarningNum","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 13:48:32.443 [I]  {"key":"redis_Company","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 13:48:32.991 [I]  MqttServer%!(EXTRA []interface {}=[ ======= 项目启动 ========])
+2023/03/07 13:48:32.991 [I]  2023-03-06%!(EXTRA []interface {}=[])
+2023/03/07 13:48:32.991 [I]  TABLE_name:%!(EXTRA []interface {}=[warning_sand_202303])
+2023/03/07 13:48:33.020 [I]  =======%!(EXTRA []interface {}=[1 宝智达])
+2023/03/07 13:48:33.033 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 1 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.033 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.047 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 1 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.047 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.060 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 1 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.060 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.060 [I]  =======%!(EXTRA []interface {}=[2 宝智达IOT])
+2023/03/07 13:48:33.074 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 2 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.074 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.088 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 2 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.088 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.101 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 2 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.101 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.101 [I]  =======%!(EXTRA []interface {}=[3 宝智达冷链])
+2023/03/07 13:48:33.115 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 3 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.115 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.129 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 3 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.129 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.143 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 3 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.143 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.143 [I]  =======%!(EXTRA []interface {}=[5 测试0202总公司])
+2023/03/07 13:48:33.156 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 5 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.156 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.170 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 5 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.170 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.184 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 5 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.184 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.184 [I]  =======%!(EXTRA []interface {}=[8 测试0202总公司-分公司1])
+2023/03/07 13:48:33.198 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 8 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.198 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.211 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 8 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.211 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.225 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 8 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.225 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.225 [I]  =======%!(EXTRA []interface {}=[9 测试0202总公司-分公司2])
+2023/03/07 13:48:33.239 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 9 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.239 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.258 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 9 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.258 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.271 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 9 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.271 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.271 [I]  =======%!(EXTRA []interface {}=[19 测试公司19])
+2023/03/07 13:48:33.288 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 19 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.288 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.301 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 19 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.301 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.315 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 19 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.315 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.315 [I]  =======%!(EXTRA []interface {}=[20 测试公司20])
+2023/03/07 13:48:33.329 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 20 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.329 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.343 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 20 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.343 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.357 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 20 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.357 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.357 [I]  =======%!(EXTRA []interface {}=[21 测试公司21])
+2023/03/07 13:48:33.370 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 21 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.370 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.385 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 21 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.385 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.398 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 21 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.398 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.398 [I]  =======%!(EXTRA []interface {}=[22 测试公司22])
+2023/03/07 13:48:33.414 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 22 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.414 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.416 [I]  =========== 初始化报警规则 =========%!(EXTRA []interface {}=[])
+2023/03/07 13:48:33.432 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 22 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.432 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.446 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 22 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.446 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.446 [I]  =======%!(EXTRA []interface {}=[26 测试公司1])
+2023/03/07 13:48:33.460 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 26 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.460 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.473 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 26 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.473 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.487 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 26 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.487 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.487 [I]  =======%!(EXTRA []interface {}=[31 11111])
+2023/03/07 13:48:33.501 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 31 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.501 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.515 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 31 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.515 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.529 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 31 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.530 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.530 [I]  =======%!(EXTRA []interface {}=[32 测试公司1])
+2023/03/07 13:48:33.544 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 32 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.544 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.567 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 32 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.567 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.581 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 32 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.581 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.581 [I]  =======%!(EXTRA []interface {}=[33 贵州科开有限公司])
+2023/03/07 13:48:33.597 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 33 0 2023-03-06 00:00:00 2023-03-06 23:59:59 6])
+2023/03/07 13:48:33.597 [I]  微信条数:%!(EXTRA []interface {}=[6  金额: 0])
+2023/03/07 13:48:33.610 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 33 1 2023-03-06 00:00:00 2023-03-06 23:59:59 1])
+2023/03/07 13:48:33.610 [I]  短信条数:%!(EXTRA []interface {}=[1  金额: 0.1])
+2023/03/07 13:48:33.625 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 33 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:33.625 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:33.651 [I]  贵州科开有限公司%!(EXTRA []interface {}=[ 扣费记录 -  当期余额: 0.4999999    2023-03-06 扣除: 0.1])
+2023/03/07 13:48:33.696 [I]  Number of records updated in database:%!(EXTRA []interface {}=[1])
+2023/03/07 13:48:33.710 [I]  ==>WarningToUserId  %!(EXTRA []interface {}=[Msid 0   T_pid: 0])
+2023/03/07 13:48:33.737 [I]  T_Admin_id:%!(EXTRA []interface {}=[38])
+2023/03/07 13:48:33.787 [I]  T_Admin_id:%!(EXTRA []interface {}=[31])
+2023/03/07 13:48:33.829 [I]  T_Admin_id:%!(EXTRA []interface {}=[27])
+2023/03/07 13:48:33.935 [I]  通知内容:%!(EXTRA []interface {}=[{"first":{"value":"冷链系统","color":"#ff450a"},"thing2":{"value":"用户余额通知","color":"#bb450a"},"thing4":{"value":"贵州科开有限公司","color":"#ff450a"},"time3":{"value":"2023-03-07 13:48:33","color":"#aa450a"},"remark":{"value":"您当前余额不足10元,请及时充值","color":"#11450a"}}])
+2023/03/07 13:48:33.935 [I]   => Nats%!(EXTRA []interface {}=[Cold_DeductionNotice/Nats/NatsServer.Wx_MessageTemplate oZMR-6dna8HILQu_sVeQb-inaCpI Zi8vDVbyHhyOuhYuSHQvaTo9xsIzvH66CfPvqeLUnDs {"first":{"value":"冷链系统","color":"#ff450a"},"thing2":{"value":"用户余额通知","color":"#bb450a"},"thing4":{"value":"贵州科开有限公司","color":"#ff450a"},"time3":{"value":"2023-03-07 13:48:33","color":"#aa450a"},"remark":{"value":"您当前余额不足10元,请及时充值","color":"#11450a"}}])
+2023/03/07 13:48:33.937 [I]  Wx_MessageTemplate [nats: invalid connection]
+2023/03/07 13:48:34.941 [I]  Wx_MessageTemplate [nats: invalid connection]
+2023/03/07 13:48:36.032 [I]  nats OK!%!(EXTRA []interface {}=[])
+2023/03/07 13:48:37.456 [I]  Wx_MessageTemplate => : [发送成功!]
+
+2023/03/07 13:48:37.456 [I]  INSERT INTO warning_sand_202303(`t_pid`, `t_tp`, `t__ntype`, `t__notice`, `t__remark`, `create_time`) VALUES (0 , 1012, 0, 'oZMR-6dna8HILQu_sVeQb-inaCpI', 'WID:0
+类型:用户余额通知
+SN:
+主机:贵州科开有限公司
+设备:贵州科开有限公司
+备注:您当前余额不足10元,请及时充值
+通知方式:短信通知
+通知对象:oZMR-6dna8HILQu_sVeQb-inaCpI', '2023-03-07 13:48:37')%!(EXTRA []interface {}=[])
+2023/03/07 13:48:37.475 [I]  推送 T_Notice_wx:%!(EXTRA []interface {}=[  len(v_b_l) != 2])
+2023/03/07 13:48:37.475 [I]  T_Admin_id:%!(EXTRA []interface {}=[23])
+2023/03/07 13:48:37.575 [I]  T_Admin_id:%!(EXTRA []interface {}=[18])
+2023/03/07 13:48:37.681 [I]  T_Admin_id:%!(EXTRA []interface {}=[13])
+2023/03/07 13:48:37.778 [I]  T_Admin_id:%!(EXTRA []interface {}=[4])
+2023/03/07 13:48:37.876 [I]  T_Admin_id:%!(EXTRA []interface {}=[1])
+2023/03/07 13:48:37.978 [I]  通知内容:%!(EXTRA []interface {}=[{"first":{"value":"冷链系统","color":"#ff450a"},"thing2":{"value":"用户余额通知","color":"#bb450a"},"thing4":{"value":"贵州科开有限公司","color":"#ff450a"},"time3":{"value":"2023-03-07 13:48:33","color":"#aa450a"},"remark":{"value":"您当前余额不足10元,请及时充值","color":"#11450a"}}])
+2023/03/07 13:48:37.978 [I]   => Nats%!(EXTRA []interface {}=[Cold_DeductionNotice/Nats/NatsServer.Wx_MessageTemplate -oZMR-6aeVEGYRSJGyEXo-ATGOvV4 Zi8vDVbyHhyOuhYuSHQvaTo9xsIzvH66CfPvqeLUnDs {"first":{"value":"冷链系统","color":"#ff450a"},"thing2":{"value":"用户余额通知","color":"#bb450a"},"thing4":{"value":"贵州科开有限公司","color":"#ff450a"},"time3":{"value":"2023-03-07 13:48:33","color":"#aa450a"},"remark":{"value":"您当前余额不足10元,请及时充值","color":"#11450a"}}])
+2023/03/07 13:48:38.228 [I]  Wx_MessageTemplate => : [{"errcode":40003,"errmsg":"invalid openid rid: 6406d035-4e1a7879-2364ed7e"}]
+
+2023/03/07 13:48:39.631 [I]  Wx_MessageTemplate => : [{"errcode":40003,"errmsg":"invalid openid rid: 6406d037-29265373-2a1af9b4"}]
+
+2023/03/07 13:48:41.871 [I]  Wx_MessageTemplate => : [{"errcode":40003,"errmsg":"invalid openid rid: 6406d039-6d89ad19-2840ebea"}]
+
+2023/03/07 13:48:44.907 [I]  微信通知%!(EXTRA []interface {}=[微信服务通讯 异常!])
+2023/03/07 13:48:44.907 [I]   => Nats%!(EXTRA []interface {}=[Cold_DeductionNotice/Nats/NatsServer.Wx_MessageTemplate oZMR-6VfvmW0ocvZTIibBdsR7yyI Zi8vDVbyHhyOuhYuSHQvaTo9xsIzvH66CfPvqeLUnDs {"first":{"value":"冷链系统","color":"#ff450a"},"thing2":{"value":"用户余额通知","color":"#bb450a"},"thing4":{"value":"贵州科开有限公司","color":"#ff450a"},"time3":{"value":"2023-03-07 13:48:33","color":"#aa450a"},"remark":{"value":"您当前余额不足10元,请及时充值","color":"#11450a"}}])
+2023/03/07 13:48:45.320 [I]  Wx_MessageTemplate => : [发送成功!]
+
+2023/03/07 13:48:45.320 [I]  INSERT INTO warning_sand_202303(`t_pid`, `t_tp`, `t__ntype`, `t__notice`, `t__remark`, `create_time`) VALUES (0 , 1012, 0, 'oZMR-6VfvmW0ocvZTIibBdsR7yyI', 'WID:0
+类型:用户余额通知
+SN:
+主机:贵州科开有限公司
+设备:贵州科开有限公司
+备注:您当前余额不足10元,请及时充值
+通知方式:短信通知
+通知对象:oZMR-6VfvmW0ocvZTIibBdsR7yyI', '2023-03-07 13:48:45')%!(EXTRA []interface {}=[])
+2023/03/07 13:48:45.339 [I]  推送 T_Notice_wx:%!(EXTRA []interface {}=[  len(v_b_l) != 2])
+2023/03/07 13:48:45.371 [I]  =======%!(EXTRA []interface {}=[34 贵州科开贵阳公司])
+2023/03/07 13:48:45.385 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 34 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:45.385 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:45.399 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 34 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:45.399 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:45.412 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 34 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:45.412 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:45.412 [I]  =======%!(EXTRA []interface {}=[35 贵州科开遵义公司])
+2023/03/07 13:48:45.426 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 35 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:45.426 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:45.439 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 35 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:45.439 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:45.453 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 35 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:45.453 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:45.453 [I]  =======%!(EXTRA []interface {}=[36 贵州科开金融城公司])
+2023/03/07 13:48:45.467 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 36 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:45.467 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:45.481 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 36 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:45.481 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:45.494 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 36 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:45.494 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:45.494 [I]  =======%!(EXTRA []interface {}=[37 内部测试公司])
+2023/03/07 13:48:45.508 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 37 0 2023-03-06 00:00:00 2023-03-06 23:59:59 1])
+2023/03/07 13:48:45.508 [I]  微信条数:%!(EXTRA []interface {}=[1  金额: 0])
+2023/03/07 13:48:45.521 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 37 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:45.521 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:45.535 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 37 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:45.535 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:45.535 [I]  =======%!(EXTRA []interface {}=[38 冯靖沣测试])
+2023/03/07 13:48:45.549 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 38 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:45.549 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:45.562 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 38 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:45.562 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:45.576 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 38 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:45.576 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:45.576 [I]  =======%!(EXTRA []interface {}=[40 QSTQ])
+2023/03/07 13:48:45.590 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 40 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:45.590 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:45.603 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 40 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:45.603 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:45.617 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 40 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:45.617 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:45.617 [I]  =======%!(EXTRA []interface {}=[41 baozhidao-YJ])
+2023/03/07 13:48:45.631 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 41 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:45.631 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:45.644 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 41 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:45.644 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:48:45.658 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 41 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:48:45.658 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:26.971 [I]  {"key":"redis_Device","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 13:50:27.000 [I]  {"key":"redis_WarningNum","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 13:50:27.055 [I]  {"key":"redis_Company","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 13:50:27.617 [I]  MqttServer%!(EXTRA []interface {}=[ ======= 项目启动 ========])
+2023/03/07 13:50:27.617 [I]  2023-03-06%!(EXTRA []interface {}=[])
+2023/03/07 13:50:27.617 [I]  TABLE_name:%!(EXTRA []interface {}=[warning_sand_202303])
+2023/03/07 13:50:27.645 [I]  =======%!(EXTRA []interface {}=[1 宝智达])
+2023/03/07 13:50:27.659 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 1 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:27.659 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:27.673 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 1 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:27.673 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:27.688 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 1 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:27.688 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:27.688 [I]  =======%!(EXTRA []interface {}=[2 宝智达IOT])
+2023/03/07 13:50:27.702 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 2 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:27.702 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:27.715 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 2 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:27.715 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:27.729 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 2 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:27.729 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:27.729 [I]  =======%!(EXTRA []interface {}=[3 宝智达冷链])
+2023/03/07 13:50:27.743 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 3 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:27.743 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:27.756 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 3 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:27.756 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:27.771 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 3 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:27.771 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:27.771 [I]  =======%!(EXTRA []interface {}=[5 测试0202总公司])
+2023/03/07 13:50:27.791 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 5 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:27.791 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:27.805 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 5 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:27.805 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:27.818 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 5 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:27.818 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:27.818 [I]  =======%!(EXTRA []interface {}=[8 测试0202总公司-分公司1])
+2023/03/07 13:50:27.832 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 8 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:27.832 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:27.846 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 8 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:27.846 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:27.860 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 8 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:27.860 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:27.860 [I]  =======%!(EXTRA []interface {}=[9 测试0202总公司-分公司2])
+2023/03/07 13:50:27.873 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 9 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:27.873 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:27.888 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 9 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:27.888 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:27.901 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 9 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:27.901 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:27.901 [I]  =======%!(EXTRA []interface {}=[19 测试公司19])
+2023/03/07 13:50:27.917 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 19 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:27.917 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:27.931 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 19 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:27.931 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:27.945 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 19 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:27.945 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:27.945 [I]  =======%!(EXTRA []interface {}=[20 测试公司20])
+2023/03/07 13:50:27.964 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 20 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:27.964 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:27.978 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 20 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:27.978 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:27.992 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 20 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:27.992 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:27.992 [I]  =======%!(EXTRA []interface {}=[21 测试公司21])
+2023/03/07 13:50:28.006 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 21 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.006 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.020 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 21 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.020 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.034 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 21 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.034 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.034 [I]  =======%!(EXTRA []interface {}=[22 测试公司22])
+2023/03/07 13:50:28.034 [I]  =========== 初始化报警规则 =========%!(EXTRA []interface {}=[])
+2023/03/07 13:50:28.048 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 22 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.048 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.062 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 22 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.062 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.076 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 22 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.076 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.076 [I]  =======%!(EXTRA []interface {}=[26 测试公司1])
+2023/03/07 13:50:28.091 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 26 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.091 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.105 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 26 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.105 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.120 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 26 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.120 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.120 [I]  =======%!(EXTRA []interface {}=[31 11111])
+2023/03/07 13:50:28.135 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 31 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.135 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.148 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 31 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.148 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.162 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 31 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.163 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.163 [I]  =======%!(EXTRA []interface {}=[32 测试公司1])
+2023/03/07 13:50:28.178 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 32 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.178 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.192 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 32 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.192 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.206 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 32 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.206 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.206 [I]  =======%!(EXTRA []interface {}=[33 贵州科开有限公司])
+2023/03/07 13:50:28.220 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 33 0 2023-03-06 00:00:00 2023-03-06 23:59:59 6])
+2023/03/07 13:50:28.220 [I]  微信条数:%!(EXTRA []interface {}=[6  金额: 0])
+2023/03/07 13:50:28.234 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 33 1 2023-03-06 00:00:00 2023-03-06 23:59:59 1])
+2023/03/07 13:50:28.234 [I]  短信条数:%!(EXTRA []interface {}=[1  金额: 0.1])
+2023/03/07 13:50:28.250 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 33 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.250 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.278 [I]  贵州科开有限公司%!(EXTRA []interface {}=[ 扣费记录 -  当期余额: 0.39999992    2023-03-06 扣除: 0.1])
+2023/03/07 13:50:28.312 [I]  Number of records updated in database:%!(EXTRA []interface {}=[1])
+2023/03/07 13:50:28.331 [I]  ==>WarningToUserId  %!(EXTRA []interface {}=[Msid 0   T_pid: 0])
+2023/03/07 13:50:28.363 [I]  T_Admin_id:%!(EXTRA []interface {}=[38])
+2023/03/07 13:50:28.404 [I]  T_Admin_id:%!(EXTRA []interface {}=[31])
+2023/03/07 13:50:28.445 [I]  T_Admin_id:%!(EXTRA []interface {}=[27])
+2023/03/07 13:50:28.489 [I]  T_Admin_id:%!(EXTRA []interface {}=[23])
+2023/03/07 13:50:28.533 [I]  T_Admin_id:%!(EXTRA []interface {}=[18])
+2023/03/07 13:50:28.575 [I]  T_Admin_id:%!(EXTRA []interface {}=[13])
+2023/03/07 13:50:28.635 [I]  T_Admin_id:%!(EXTRA []interface {}=[4])
+2023/03/07 13:50:28.687 [I]  T_Admin_id:%!(EXTRA []interface {}=[1])
+2023/03/07 13:50:28.769 [I]  =======%!(EXTRA []interface {}=[34 贵州科开贵阳公司])
+2023/03/07 13:50:28.783 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 34 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.784 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.799 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 34 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.799 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.814 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 34 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.814 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.814 [I]  =======%!(EXTRA []interface {}=[35 贵州科开遵义公司])
+2023/03/07 13:50:28.829 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 35 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.829 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.844 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 35 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.844 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.859 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 35 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.859 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.859 [I]  =======%!(EXTRA []interface {}=[36 贵州科开金融城公司])
+2023/03/07 13:50:28.874 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 36 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.874 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.888 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 36 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.888 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.906 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 36 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.906 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.906 [I]  =======%!(EXTRA []interface {}=[37 内部测试公司])
+2023/03/07 13:50:28.920 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 37 0 2023-03-06 00:00:00 2023-03-06 23:59:59 1])
+2023/03/07 13:50:28.920 [I]  微信条数:%!(EXTRA []interface {}=[1  金额: 0])
+2023/03/07 13:50:28.933 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 37 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.933 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.948 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 37 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.948 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.948 [I]  =======%!(EXTRA []interface {}=[38 冯靖沣测试])
+2023/03/07 13:50:28.968 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 38 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.968 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.983 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 38 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.983 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.997 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 38 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:28.997 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:28.997 [I]  =======%!(EXTRA []interface {}=[40 QSTQ])
+2023/03/07 13:50:29.010 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 40 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:29.010 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:29.024 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 40 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:29.024 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:29.038 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 40 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:29.038 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:29.038 [I]  =======%!(EXTRA []interface {}=[41 baozhidao-YJ])
+2023/03/07 13:50:29.054 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 41 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:29.054 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:29.068 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 41 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:29.068 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:29.082 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 41 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:50:29.082 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:50:30.657 [I]  nats OK!%!(EXTRA []interface {}=[])
+2023/03/07 13:52:32.391 [I]  {"key":"redis_Device","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 13:52:32.419 [I]  {"key":"redis_WarningNum","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 13:52:32.473 [I]  {"key":"redis_Company","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 13:52:33.057 [I]  MqttServer%!(EXTRA []interface {}=[ ======= 项目启动 ========])
+2023/03/07 13:52:33.057 [I]  2023-03-06%!(EXTRA []interface {}=[])
+2023/03/07 13:52:33.057 [I]  TABLE_name:%!(EXTRA []interface {}=[warning_sand_202303])
+2023/03/07 13:52:33.098 [I]  =======%!(EXTRA []interface {}=[1 宝智达])
+2023/03/07 13:52:33.112 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 1 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.112 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.126 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 1 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.126 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.140 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 1 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.140 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.140 [I]  =======%!(EXTRA []interface {}=[2 宝智达IOT])
+2023/03/07 13:52:33.162 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 2 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.162 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.177 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 2 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.177 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.191 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 2 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.191 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.191 [I]  =======%!(EXTRA []interface {}=[3 宝智达冷链])
+2023/03/07 13:52:33.204 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 3 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.204 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.218 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 3 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.218 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.231 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 3 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.231 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.231 [I]  =======%!(EXTRA []interface {}=[5 测试0202总公司])
+2023/03/07 13:52:33.245 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 5 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.245 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.259 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 5 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.259 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.272 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 5 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.272 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.272 [I]  =======%!(EXTRA []interface {}=[8 测试0202总公司-分公司1])
+2023/03/07 13:52:33.286 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 8 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.286 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.300 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 8 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.300 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.314 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 8 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.314 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.314 [I]  =======%!(EXTRA []interface {}=[9 测试0202总公司-分公司2])
+2023/03/07 13:52:33.330 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 9 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.330 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.344 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 9 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.344 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.358 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 9 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.358 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.358 [I]  =======%!(EXTRA []interface {}=[19 测试公司19])
+2023/03/07 13:52:33.371 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 19 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.371 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.384 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 19 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.384 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.398 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 19 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.398 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.398 [I]  =======%!(EXTRA []interface {}=[20 测试公司20])
+2023/03/07 13:52:33.412 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 20 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.412 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.432 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 20 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.432 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.446 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 20 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.446 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.446 [I]  =======%!(EXTRA []interface {}=[21 测试公司21])
+2023/03/07 13:52:33.452 [I]  =========== 初始化报警规则 =========%!(EXTRA []interface {}=[])
+2023/03/07 13:52:33.460 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 21 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.460 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.474 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 21 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.474 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.488 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 21 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.489 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.489 [I]  =======%!(EXTRA []interface {}=[22 测试公司22])
+2023/03/07 13:52:33.503 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 22 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.503 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.517 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 22 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.517 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.531 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 22 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.531 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.531 [I]  =======%!(EXTRA []interface {}=[26 测试公司1])
+2023/03/07 13:52:33.548 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 26 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.548 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.562 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 26 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.562 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.575 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 26 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.575 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.575 [I]  =======%!(EXTRA []interface {}=[31 11111])
+2023/03/07 13:52:33.589 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 31 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.590 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.603 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 31 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.603 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.617 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 31 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.617 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.617 [I]  =======%!(EXTRA []interface {}=[32 测试公司1])
+2023/03/07 13:52:33.630 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 32 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.630 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.644 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 32 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.644 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.658 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 32 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.658 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.658 [I]  =======%!(EXTRA []interface {}=[33 贵州科开有限公司])
+2023/03/07 13:52:33.672 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 33 0 2023-03-06 00:00:00 2023-03-06 23:59:59 6])
+2023/03/07 13:52:33.672 [I]  微信条数:%!(EXTRA []interface {}=[6  金额: 0])
+2023/03/07 13:52:33.685 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 33 1 2023-03-06 00:00:00 2023-03-06 23:59:59 1])
+2023/03/07 13:52:33.685 [I]  短信条数:%!(EXTRA []interface {}=[1  金额: 0.1])
+2023/03/07 13:52:33.699 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 33 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:33.699 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:33.726 [I]  贵州科开有限公司%!(EXTRA []interface {}=[ 扣费记录 -  当期余额: 0.29999992    2023-03-06 扣除: 0.1])
+2023/03/07 13:52:33.759 [I]  Number of records updated in database:%!(EXTRA []interface {}=[1])
+2023/03/07 13:52:33.772 [I]  ==>WarningToUserId  %!(EXTRA []interface {}=[Msid 0   T_pid: 0])
+2023/03/07 13:52:33.800 [I]  T_Admin_id:%!(EXTRA []interface {}=[38])
+2023/03/07 13:52:33.841 [I]  T_Admin_id:%!(EXTRA []interface {}=[31])
+2023/03/07 13:52:33.883 [I]  T_Admin_id:%!(EXTRA []interface {}=[27])
+2023/03/07 13:52:33.925 [I]  T_Admin_id:%!(EXTRA []interface {}=[23])
+2023/03/07 13:52:33.967 [I]  T_Admin_id:%!(EXTRA []interface {}=[18])
+2023/03/07 13:52:34.039 [I]  T_Admin_id:%!(EXTRA []interface {}=[13])
+2023/03/07 13:52:34.088 [I]  T_Admin_id:%!(EXTRA []interface {}=[4])
+2023/03/07 13:52:34.131 [I]  T_Admin_id:%!(EXTRA []interface {}=[1])
+2023/03/07 13:52:34.220 [I]  =======%!(EXTRA []interface {}=[34 贵州科开贵阳公司])
+2023/03/07 13:52:34.237 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 34 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:34.237 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:34.250 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 34 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:34.250 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:34.272 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 34 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:34.272 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:34.272 [I]  =======%!(EXTRA []interface {}=[35 贵州科开遵义公司])
+2023/03/07 13:52:34.286 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 35 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:34.286 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:34.301 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 35 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:34.301 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:34.320 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 35 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:34.320 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:34.320 [I]  =======%!(EXTRA []interface {}=[36 贵州科开金融城公司])
+2023/03/07 13:52:34.334 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 36 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:34.334 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:34.354 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 36 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:34.354 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:34.368 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 36 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:34.368 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:34.368 [I]  =======%!(EXTRA []interface {}=[37 内部测试公司])
+2023/03/07 13:52:34.382 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 37 0 2023-03-06 00:00:00 2023-03-06 23:59:59 1])
+2023/03/07 13:52:34.382 [I]  微信条数:%!(EXTRA []interface {}=[1  金额: 0])
+2023/03/07 13:52:34.396 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 37 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:34.396 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:34.410 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 37 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:34.410 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:34.410 [I]  =======%!(EXTRA []interface {}=[38 冯靖沣测试])
+2023/03/07 13:52:34.427 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 38 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:34.427 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:34.441 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 38 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:34.441 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:34.455 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 38 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:34.455 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:34.455 [I]  =======%!(EXTRA []interface {}=[40 QSTQ])
+2023/03/07 13:52:34.470 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 40 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:34.470 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:34.488 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 40 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:34.489 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:34.503 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 40 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:34.503 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:34.503 [I]  =======%!(EXTRA []interface {}=[41 baozhidao-YJ])
+2023/03/07 13:52:34.517 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 41 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:34.517 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:34.534 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 41 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:34.534 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:34.548 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 41 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:52:34.548 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:52:36.101 [I]  nats OK!%!(EXTRA []interface {}=[])
+2023/03/07 13:55:04.368 [I]  {"key":"redis_Device","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 13:55:04.396 [I]  {"key":"redis_WarningNum","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 13:55:04.451 [I]  {"key":"redis_Company","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 13:55:04.990 [I]  MqttServer%!(EXTRA []interface {}=[ ======= 项目启动 ========])
+2023/03/07 13:55:04.990 [I]  2023-03-06%!(EXTRA []interface {}=[])
+2023/03/07 13:55:04.991 [I]  TABLE_name:%!(EXTRA []interface {}=[warning_sand_202303])
+2023/03/07 13:55:05.018 [I]  =======%!(EXTRA []interface {}=[1 宝智达])
+2023/03/07 13:55:05.032 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 1 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.032 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.046 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 1 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.046 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.060 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 1 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.060 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.060 [I]  =======%!(EXTRA []interface {}=[2 宝智达IOT])
+2023/03/07 13:55:05.078 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 2 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.078 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.092 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 2 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.092 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.110 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 2 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.110 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.110 [I]  =======%!(EXTRA []interface {}=[3 宝智达冷链])
+2023/03/07 13:55:05.124 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 3 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.124 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.138 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 3 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.138 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.151 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 3 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.151 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.151 [I]  =======%!(EXTRA []interface {}=[5 测试0202总公司])
+2023/03/07 13:55:05.165 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 5 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.165 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.186 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 5 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.186 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.200 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 5 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.200 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.200 [I]  =======%!(EXTRA []interface {}=[8 测试0202总公司-分公司1])
+2023/03/07 13:55:05.213 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 8 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.213 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.227 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 8 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.227 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.245 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 8 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.245 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.245 [I]  =======%!(EXTRA []interface {}=[9 测试0202总公司-分公司2])
+2023/03/07 13:55:05.259 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 9 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.259 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.273 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 9 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.273 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.286 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 9 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.286 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.286 [I]  =======%!(EXTRA []interface {}=[19 测试公司19])
+2023/03/07 13:55:05.310 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 19 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.310 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.325 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 19 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.325 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.338 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 19 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.338 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.338 [I]  =======%!(EXTRA []interface {}=[20 测试公司20])
+2023/03/07 13:55:05.352 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 20 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.352 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.366 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 20 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.366 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.379 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 20 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.379 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.379 [I]  =======%!(EXTRA []interface {}=[21 测试公司21])
+2023/03/07 13:55:05.393 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 21 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.393 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.407 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 21 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.407 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.421 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 21 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.421 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.421 [I]  =======%!(EXTRA []interface {}=[22 测试公司22])
+2023/03/07 13:55:05.434 [I]  =========== 初始化报警规则 =========%!(EXTRA []interface {}=[])
+2023/03/07 13:55:05.435 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 22 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.436 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.449 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 22 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.449 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.465 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 22 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.465 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.465 [I]  =======%!(EXTRA []interface {}=[26 测试公司1])
+2023/03/07 13:55:05.479 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 26 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.479 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.493 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 26 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.493 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.507 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 26 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.507 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.507 [I]  =======%!(EXTRA []interface {}=[31 11111])
+2023/03/07 13:55:05.521 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 31 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.521 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.534 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 31 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.534 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.549 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 31 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.549 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.549 [I]  =======%!(EXTRA []interface {}=[32 测试公司1])
+2023/03/07 13:55:05.563 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 32 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.563 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.577 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 32 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.577 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.591 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 32 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.591 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.591 [I]  =======%!(EXTRA []interface {}=[33 贵州科开有限公司])
+2023/03/07 13:55:05.605 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 33 0 2023-03-06 00:00:00 2023-03-06 23:59:59 6])
+2023/03/07 13:55:05.605 [I]  微信条数:%!(EXTRA []interface {}=[6  金额: 0])
+2023/03/07 13:55:05.618 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 33 1 2023-03-06 00:00:00 2023-03-06 23:59:59 1])
+2023/03/07 13:55:05.618 [I]  短信条数:%!(EXTRA []interface {}=[1  金额: 0.1])
+2023/03/07 13:55:05.636 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 33 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:05.636 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:05.668 [I]  贵州科开有限公司%!(EXTRA []interface {}=[ 扣费记录 -  当期余额: 0.19999993    2023-03-06 扣除: 0.1])
+2023/03/07 13:55:05.701 [I]  Number of records updated in database:%!(EXTRA []interface {}=[1])
+2023/03/07 13:55:05.716 [I]  ==>WarningToUserId  %!(EXTRA []interface {}=[Msid 0   T_pid: 0])
+2023/03/07 13:55:05.744 [I]  T_Admin_id:%!(EXTRA []interface {}=[38])
+2023/03/07 13:55:05.842 [I]  T_Admin_id:%!(EXTRA []interface {}=[31])
+2023/03/07 13:55:05.975 [I]  通知内容:%!(EXTRA []interface {}=[{"first":{"value":"冷链系统","color":"#ff450a"},"thing2":{"value":"用户余额通知","color":"#bb450a"},"thing4":{"value":"贵州科开有限公司","color":"#ff450a"},"time3":{"value":"2023-03-07 13:55:05","color":"#aa450a"},"remark":{"value":"您当前余额不足10元,请及时充值","color":"#11450a"}}])
+2023/03/07 13:55:05.975 [I]   => Nats%!(EXTRA []interface {}=[Cold_DeductionNotice/Nats/NatsServer.Wx_MessageTemplate oZMR-6eyBpryepFcaFawH7n6b2ZI Zi8vDVbyHhyOuhYuSHQvaTo9xsIzvH66CfPvqeLUnDs {"first":{"value":"冷链系统","color":"#ff450a"},"thing2":{"value":"用户余额通知","color":"#bb450a"},"thing4":{"value":"贵州科开有限公司","color":"#ff450a"},"time3":{"value":"2023-03-07 13:55:05","color":"#aa450a"},"remark":{"value":"您当前余额不足10元,请及时充值","color":"#11450a"}}])
+2023/03/07 13:55:05.975 [I]  Wx_MessageTemplate [nats: invalid connection]
+2023/03/07 13:55:06.986 [I]  Wx_MessageTemplate [nats: invalid connection]
+2023/03/07 13:55:08.025 [I]  nats OK!%!(EXTRA []interface {}=[])
+2023/03/07 13:55:09.615 [I]  Wx_MessageTemplate => : [发送成功!]
+
+2023/03/07 13:55:09.615 [I]  INSERT INTO warning_sand_202303(`t_pid`, `t_tp`, `t__ntype`, `t__notice`, `t__remark`, `create_time`) VALUES (0 , 1012, 0, 'oZMR-6eyBpryepFcaFawH7n6b2ZI', 'WID:0
+类型:用户余额通知
+SN:
+主机:贵州科开有限公司
+设备:贵州科开有限公司
+备注:您当前余额不足10元,请及时充值
+通知方式:短信通知
+通知对象:oZMR-6eyBpryepFcaFawH7n6b2ZI', '2023-03-07 13:55:09')%!(EXTRA []interface {}=[])
+2023/03/07 13:55:09.635 [I]  推送 T_Notice_wx:%!(EXTRA []interface {}=[  len(v_b_l) != 2])
+2023/03/07 13:55:09.635 [I]  T_Admin_id:%!(EXTRA []interface {}=[27])
+2023/03/07 13:55:09.731 [I]  通知内容:%!(EXTRA []interface {}=[{"first":{"value":"冷链系统","color":"#ff450a"},"thing2":{"value":"用户余额通知","color":"#bb450a"},"thing4":{"value":"贵州科开有限公司","color":"#ff450a"},"time3":{"value":"2023-03-07 13:55:05","color":"#aa450a"},"remark":{"value":"您当前余额不足10元,请及时充值","color":"#11450a"}}])
+2023/03/07 13:55:09.731 [I]   => Nats%!(EXTRA []interface {}=[Cold_DeductionNotice/Nats/NatsServer.Wx_MessageTemplate oZMR-6dna8HILQu_sVeQb-inaCpI Zi8vDVbyHhyOuhYuSHQvaTo9xsIzvH66CfPvqeLUnDs {"first":{"value":"冷链系统","color":"#ff450a"},"thing2":{"value":"用户余额通知","color":"#bb450a"},"thing4":{"value":"贵州科开有限公司","color":"#ff450a"},"time3":{"value":"2023-03-07 13:55:05","color":"#aa450a"},"remark":{"value":"您当前余额不足10元,请及时充值","color":"#11450a"}}])
+2023/03/07 13:55:10.172 [I]  Wx_MessageTemplate => : [发送成功!]
+
+2023/03/07 13:55:10.172 [I]  INSERT INTO warning_sand_202303(`t_pid`, `t_tp`, `t__ntype`, `t__notice`, `t__remark`, `create_time`) VALUES (0 , 1012, 0, 'oZMR-6dna8HILQu_sVeQb-inaCpI', 'WID:0
+类型:用户余额通知
+SN:
+主机:贵州科开有限公司
+设备:贵州科开有限公司
+备注:您当前余额不足10元,请及时充值
+通知方式:短信通知
+通知对象:oZMR-6dna8HILQu_sVeQb-inaCpI', '2023-03-07 13:55:10')%!(EXTRA []interface {}=[])
+2023/03/07 13:55:10.192 [I]  推送 T_Notice_wx:%!(EXTRA []interface {}=[  len(v_b_l) != 2])
+2023/03/07 13:55:10.192 [I]  T_Admin_id:%!(EXTRA []interface {}=[23])
+2023/03/07 13:55:10.287 [I]  T_Admin_id:%!(EXTRA []interface {}=[18])
+2023/03/07 13:55:10.382 [I]  T_Admin_id:%!(EXTRA []interface {}=[13])
+2023/03/07 13:55:10.479 [I]  T_Admin_id:%!(EXTRA []interface {}=[4])
+2023/03/07 13:55:10.575 [I]  T_Admin_id:%!(EXTRA []interface {}=[1])
+2023/03/07 13:55:10.672 [I]  通知内容:%!(EXTRA []interface {}=[{"first":{"value":"冷链系统","color":"#ff450a"},"thing2":{"value":"用户余额通知","color":"#bb450a"},"thing4":{"value":"贵州科开有限公司","color":"#ff450a"},"time3":{"value":"2023-03-07 13:55:05","color":"#aa450a"},"remark":{"value":"您当前余额不足10元,请及时充值","color":"#11450a"}}])
+2023/03/07 13:55:10.672 [I]   => Nats%!(EXTRA []interface {}=[Cold_DeductionNotice/Nats/NatsServer.Wx_MessageTemplate -oZMR-6aeVEGYRSJGyEXo-ATGOvV4 Zi8vDVbyHhyOuhYuSHQvaTo9xsIzvH66CfPvqeLUnDs {"first":{"value":"冷链系统","color":"#ff450a"},"thing2":{"value":"用户余额通知","color":"#bb450a"},"thing4":{"value":"贵州科开有限公司","color":"#ff450a"},"time3":{"value":"2023-03-07 13:55:05","color":"#aa450a"},"remark":{"value":"您当前余额不足10元,请及时充值","color":"#11450a"}}])
+2023/03/07 13:55:10.952 [I]  Wx_MessageTemplate => : [{"errcode":40003,"errmsg":"invalid openid rid: 6406d1be-615a5935-521ca08b"}]
+
+2023/03/07 13:55:12.243 [I]  Wx_MessageTemplate => : [{"errcode":40003,"errmsg":"invalid openid rid: 6406d1c0-70673f05-02adda38"}]
+
+2023/03/07 13:55:14.524 [I]  Wx_MessageTemplate => : [{"errcode":40003,"errmsg":"invalid openid rid: 6406d1c2-7d3a7a0a-685d2466"}]
+
+2023/03/07 13:55:17.560 [I]  微信通知%!(EXTRA []interface {}=[微信服务通讯 异常!])
+2023/03/07 13:55:17.560 [I]   => Nats%!(EXTRA []interface {}=[Cold_DeductionNotice/Nats/NatsServer.Wx_MessageTemplate oZMR-6VfvmW0ocvZTIibBdsR7yyI Zi8vDVbyHhyOuhYuSHQvaTo9xsIzvH66CfPvqeLUnDs {"first":{"value":"冷链系统","color":"#ff450a"},"thing2":{"value":"用户余额通知","color":"#bb450a"},"thing4":{"value":"贵州科开有限公司","color":"#ff450a"},"time3":{"value":"2023-03-07 13:55:05","color":"#aa450a"},"remark":{"value":"您当前余额不足10元,请及时充值","color":"#11450a"}}])
+2023/03/07 13:55:18.013 [I]  Wx_MessageTemplate => : [发送成功!]
+
+2023/03/07 13:55:18.013 [I]  INSERT INTO warning_sand_202303(`t_pid`, `t_tp`, `t__ntype`, `t__notice`, `t__remark`, `create_time`) VALUES (0 , 1012, 0, 'oZMR-6VfvmW0ocvZTIibBdsR7yyI', 'WID:0
+类型:用户余额通知
+SN:
+主机:贵州科开有限公司
+设备:贵州科开有限公司
+备注:您当前余额不足10元,请及时充值
+通知方式:短信通知
+通知对象:oZMR-6VfvmW0ocvZTIibBdsR7yyI', '2023-03-07 13:55:18')%!(EXTRA []interface {}=[])
+2023/03/07 13:55:18.034 [I]  推送 T_Notice_wx:%!(EXTRA []interface {}=[  len(v_b_l) != 2])
+2023/03/07 13:55:18.068 [I]  =======%!(EXTRA []interface {}=[34 贵州科开贵阳公司])
+2023/03/07 13:55:18.081 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 34 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:18.081 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:18.095 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 34 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:18.095 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:18.109 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 34 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:18.109 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:18.109 [I]  =======%!(EXTRA []interface {}=[35 贵州科开遵义公司])
+2023/03/07 13:55:18.122 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 35 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:18.122 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:18.137 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 35 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:18.137 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:18.150 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 35 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:18.150 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:18.150 [I]  =======%!(EXTRA []interface {}=[36 贵州科开金融城公司])
+2023/03/07 13:55:18.164 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 36 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:18.164 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:18.178 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 36 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:18.178 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:18.191 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 36 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:18.192 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:18.192 [I]  =======%!(EXTRA []interface {}=[37 内部测试公司])
+2023/03/07 13:55:18.205 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 37 0 2023-03-06 00:00:00 2023-03-06 23:59:59 1])
+2023/03/07 13:55:18.205 [I]  微信条数:%!(EXTRA []interface {}=[1  金额: 0])
+2023/03/07 13:55:18.219 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 37 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:18.219 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:18.233 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 37 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:18.233 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:18.233 [I]  =======%!(EXTRA []interface {}=[38 冯靖沣测试])
+2023/03/07 13:55:18.247 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 38 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:18.247 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:18.260 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 38 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:18.260 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:18.274 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 38 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:18.274 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:18.274 [I]  =======%!(EXTRA []interface {}=[40 QSTQ])
+2023/03/07 13:55:18.288 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 40 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:18.288 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:18.301 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 40 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:18.301 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:18.315 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 40 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:18.315 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:18.315 [I]  =======%!(EXTRA []interface {}=[41 baozhidao-YJ])
+2023/03/07 13:55:18.329 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 41 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:18.329 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:18.342 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 41 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:18.342 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 13:55:18.355 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 41 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 13:55:18.355 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:18.787 [I]  {"key":"redis_Device","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 14:00:18.815 [I]  {"key":"redis_WarningNum","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 14:00:18.870 [I]  {"key":"redis_Company","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 14:00:19.410 [I]  MqttServer%!(EXTRA []interface {}=[ ======= 项目启动 ========])
+2023/03/07 14:00:19.410 [I]  2023-03-06%!(EXTRA []interface {}=[])
+2023/03/07 14:00:19.411 [I]  TABLE_name:%!(EXTRA []interface {}=[warning_sand_202303])
+2023/03/07 14:00:19.440 [I]  =======%!(EXTRA []interface {}=[1 宝智达])
+2023/03/07 14:00:19.454 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 1 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.454 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.467 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 1 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.467 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.481 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 1 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.481 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.481 [I]  =======%!(EXTRA []interface {}=[2 宝智达IOT])
+2023/03/07 14:00:19.495 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 2 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.495 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.519 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 2 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.519 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.534 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 2 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.534 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.534 [I]  =======%!(EXTRA []interface {}=[3 宝智达冷链])
+2023/03/07 14:00:19.548 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 3 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.548 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.561 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 3 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.561 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.575 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 3 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.575 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.575 [I]  =======%!(EXTRA []interface {}=[5 测试0202总公司])
+2023/03/07 14:00:19.588 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 5 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.588 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.602 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 5 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.602 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.617 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 5 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.617 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.617 [I]  =======%!(EXTRA []interface {}=[8 测试0202总公司-分公司1])
+2023/03/07 14:00:19.634 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 8 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.634 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.647 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 8 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.647 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.661 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 8 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.661 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.661 [I]  =======%!(EXTRA []interface {}=[9 测试0202总公司-分公司2])
+2023/03/07 14:00:19.675 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 9 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.675 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.689 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 9 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.689 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.703 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 9 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.703 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.703 [I]  =======%!(EXTRA []interface {}=[19 测试公司19])
+2023/03/07 14:00:19.717 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 19 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.717 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.730 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 19 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.731 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.744 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 19 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.744 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.744 [I]  =======%!(EXTRA []interface {}=[20 测试公司20])
+2023/03/07 14:00:19.758 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 20 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.758 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.771 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 20 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.771 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.785 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 20 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.785 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.785 [I]  =======%!(EXTRA []interface {}=[21 测试公司21])
+2023/03/07 14:00:19.799 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 21 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.799 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.813 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 21 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.813 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.827 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 21 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.827 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.827 [I]  =======%!(EXTRA []interface {}=[22 测试公司22])
+2023/03/07 14:00:19.842 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 22 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.842 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.856 [I]  =========== 初始化报警规则 =========%!(EXTRA []interface {}=[])
+2023/03/07 14:00:19.859 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 22 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.859 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.875 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 22 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.875 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.875 [I]  =======%!(EXTRA []interface {}=[26 测试公司1])
+2023/03/07 14:00:19.889 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 26 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.889 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.904 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 26 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.904 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.917 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 26 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.917 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.918 [I]  =======%!(EXTRA []interface {}=[31 11111])
+2023/03/07 14:00:19.933 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 31 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.933 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.951 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 31 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.951 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.970 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 31 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.970 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.970 [I]  =======%!(EXTRA []interface {}=[32 测试公司1])
+2023/03/07 14:00:19.984 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 32 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.984 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:19.998 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 32 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:19.998 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:20.011 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 32 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:20.011 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:20.011 [I]  =======%!(EXTRA []interface {}=[33 贵州科开有限公司])
+2023/03/07 14:00:20.025 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 33 0 2023-03-06 00:00:00 2023-03-06 23:59:59 6])
+2023/03/07 14:00:20.025 [I]  微信条数:%!(EXTRA []interface {}=[6  金额: 0])
+2023/03/07 14:00:20.041 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 33 1 2023-03-06 00:00:00 2023-03-06 23:59:59 1])
+2023/03/07 14:00:20.041 [I]  短信条数:%!(EXTRA []interface {}=[1  金额: 0.1])
+2023/03/07 14:00:20.058 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 33 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:20.058 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:20.087 [I]  贵州科开有限公司%!(EXTRA []interface {}=[ 扣费记录 -  当期余额: 0.09999993    2023-03-06 扣除: 0.1])
+2023/03/07 14:00:20.119 [I]  Number of records updated in database:%!(EXTRA []interface {}=[1])
+2023/03/07 14:00:20.133 [I]  ==>WarningToUserId  %!(EXTRA []interface {}=[Msid 0   T_pid: 0])
+2023/03/07 14:00:20.162 [I]  T_Admin_id:%!(EXTRA []interface {}=[38])
+2023/03/07 14:00:20.265 [I]  T_Admin_id:%!(EXTRA []interface {}=[31])
+2023/03/07 14:00:20.410 [I]  通知内容:%!(EXTRA []interface {}=[{"first":{"value":"冷链系统","color":"#ff450a"},"thing2":{"value":"用户余额通知","color":"#bb450a"},"thing4":{"value":"贵州科开有限公司","color":"#ff450a"},"time3":{"value":"2023-03-07 14:00:20","color":"#aa450a"},"remark":{"value":"您当前余额-0.00元,请及时充值","color":"#11450a"}}])
+2023/03/07 14:00:20.410 [I]   => Nats%!(EXTRA []interface {}=[Cold_DeductionNotice/Nats/NatsServer.Wx_MessageTemplate oZMR-6eyBpryepFcaFawH7n6b2ZI Zi8vDVbyHhyOuhYuSHQvaTo9xsIzvH66CfPvqeLUnDs {"first":{"value":"冷链系统","color":"#ff450a"},"thing2":{"value":"用户余额通知","color":"#bb450a"},"thing4":{"value":"贵州科开有限公司","color":"#ff450a"},"time3":{"value":"2023-03-07 14:00:20","color":"#aa450a"},"remark":{"value":"您当前余额-0.00元,请及时充值","color":"#11450a"}}])
+2023/03/07 14:00:20.411 [I]  Wx_MessageTemplate [nats: invalid connection]
+2023/03/07 14:00:21.418 [I]  Wx_MessageTemplate [nats: invalid connection]
+2023/03/07 14:00:22.443 [I]  nats OK!%!(EXTRA []interface {}=[])
+2023/03/07 14:00:24.039 [I]  Wx_MessageTemplate => : [发送成功!]
+
+2023/03/07 14:00:24.039 [I]  INSERT INTO warning_sand_202303(`t_pid`, `t_tp`, `t__ntype`, `t__notice`, `t__remark`, `create_time`) VALUES (0 , 1012, 0, 'oZMR-6eyBpryepFcaFawH7n6b2ZI', 'WID:0
+类型:用户余额通知
+SN:
+主机:贵州科开有限公司
+设备:贵州科开有限公司
+备注:您当前余额-0.00元,请及时充值
+通知方式:短信通知
+通知对象:oZMR-6eyBpryepFcaFawH7n6b2ZI', '2023-03-07 14:00:24')%!(EXTRA []interface {}=[])
+2023/03/07 14:00:24.060 [I]  推送 T_Notice_wx:%!(EXTRA []interface {}=[  len(v_b_l) != 2])
+2023/03/07 14:00:24.060 [I]  T_Admin_id:%!(EXTRA []interface {}=[27])
+2023/03/07 14:00:24.171 [I]  通知内容:%!(EXTRA []interface {}=[{"first":{"value":"冷链系统","color":"#ff450a"},"thing2":{"value":"用户余额通知","color":"#bb450a"},"thing4":{"value":"贵州科开有限公司","color":"#ff450a"},"time3":{"value":"2023-03-07 14:00:20","color":"#aa450a"},"remark":{"value":"您当前余额-0.00元,请及时充值","color":"#11450a"}}])
+2023/03/07 14:00:24.171 [I]   => Nats%!(EXTRA []interface {}=[Cold_DeductionNotice/Nats/NatsServer.Wx_MessageTemplate oZMR-6dna8HILQu_sVeQb-inaCpI Zi8vDVbyHhyOuhYuSHQvaTo9xsIzvH66CfPvqeLUnDs {"first":{"value":"冷链系统","color":"#ff450a"},"thing2":{"value":"用户余额通知","color":"#bb450a"},"thing4":{"value":"贵州科开有限公司","color":"#ff450a"},"time3":{"value":"2023-03-07 14:00:20","color":"#aa450a"},"remark":{"value":"您当前余额-0.00元,请及时充值","color":"#11450a"}}])
+2023/03/07 14:00:24.629 [I]  Wx_MessageTemplate => : [发送成功!]
+
+2023/03/07 14:00:24.629 [I]  INSERT INTO warning_sand_202303(`t_pid`, `t_tp`, `t__ntype`, `t__notice`, `t__remark`, `create_time`) VALUES (0 , 1012, 0, 'oZMR-6dna8HILQu_sVeQb-inaCpI', 'WID:0
+类型:用户余额通知
+SN:
+主机:贵州科开有限公司
+设备:贵州科开有限公司
+备注:您当前余额-0.00元,请及时充值
+通知方式:短信通知
+通知对象:oZMR-6dna8HILQu_sVeQb-inaCpI', '2023-03-07 14:00:24')%!(EXTRA []interface {}=[])
+2023/03/07 14:00:24.648 [I]  推送 T_Notice_wx:%!(EXTRA []interface {}=[  len(v_b_l) != 2])
+2023/03/07 14:00:24.648 [I]  T_Admin_id:%!(EXTRA []interface {}=[23])
+2023/03/07 14:00:24.743 [I]  T_Admin_id:%!(EXTRA []interface {}=[18])
+2023/03/07 14:00:24.838 [I]  T_Admin_id:%!(EXTRA []interface {}=[13])
+2023/03/07 14:00:24.939 [I]  T_Admin_id:%!(EXTRA []interface {}=[4])
+2023/03/07 14:00:25.034 [I]  T_Admin_id:%!(EXTRA []interface {}=[1])
+2023/03/07 14:00:25.139 [I]  通知内容:%!(EXTRA []interface {}=[{"first":{"value":"冷链系统","color":"#ff450a"},"thing2":{"value":"用户余额通知","color":"#bb450a"},"thing4":{"value":"贵州科开有限公司","color":"#ff450a"},"time3":{"value":"2023-03-07 14:00:20","color":"#aa450a"},"remark":{"value":"您当前余额-0.00元,请及时充值","color":"#11450a"}}])
+2023/03/07 14:00:25.139 [I]   => Nats%!(EXTRA []interface {}=[Cold_DeductionNotice/Nats/NatsServer.Wx_MessageTemplate -oZMR-6aeVEGYRSJGyEXo-ATGOvV4 Zi8vDVbyHhyOuhYuSHQvaTo9xsIzvH66CfPvqeLUnDs {"first":{"value":"冷链系统","color":"#ff450a"},"thing2":{"value":"用户余额通知","color":"#bb450a"},"thing4":{"value":"贵州科开有限公司","color":"#ff450a"},"time3":{"value":"2023-03-07 14:00:20","color":"#aa450a"},"remark":{"value":"您当前余额-0.00元,请及时充值","color":"#11450a"}}])
+2023/03/07 14:00:25.445 [I]  Wx_MessageTemplate => : [{"errcode":40003,"errmsg":"invalid openid rid: 6406d2f9-1fa6e534-6c7f9e55"}]
+
+2023/03/07 14:00:26.774 [I]  Wx_MessageTemplate => : [{"errcode":40003,"errmsg":"invalid openid rid: 6406d2fa-2d76f446-73a97d50"}]
+
+2023/03/07 14:00:29.117 [I]  Wx_MessageTemplate => : [{"errcode":40003,"errmsg":"invalid openid rid: 6406d2fc-4dd5d41b-17d07b68"}]
+
+2023/03/07 14:00:32.165 [I]  微信通知%!(EXTRA []interface {}=[微信服务通讯 异常!])
+2023/03/07 14:00:32.165 [I]   => Nats%!(EXTRA []interface {}=[Cold_DeductionNotice/Nats/NatsServer.Wx_MessageTemplate oZMR-6VfvmW0ocvZTIibBdsR7yyI Zi8vDVbyHhyOuhYuSHQvaTo9xsIzvH66CfPvqeLUnDs {"first":{"value":"冷链系统","color":"#ff450a"},"thing2":{"value":"用户余额通知","color":"#bb450a"},"thing4":{"value":"贵州科开有限公司","color":"#ff450a"},"time3":{"value":"2023-03-07 14:00:20","color":"#aa450a"},"remark":{"value":"您当前余额-0.00元,请及时充值","color":"#11450a"}}])
+2023/03/07 14:00:32.605 [I]  Wx_MessageTemplate => : [发送成功!]
+
+2023/03/07 14:00:32.605 [I]  INSERT INTO warning_sand_202303(`t_pid`, `t_tp`, `t__ntype`, `t__notice`, `t__remark`, `create_time`) VALUES (0 , 1012, 0, 'oZMR-6VfvmW0ocvZTIibBdsR7yyI', 'WID:0
+类型:用户余额通知
+SN:
+主机:贵州科开有限公司
+设备:贵州科开有限公司
+备注:您当前余额-0.00元,请及时充值
+通知方式:短信通知
+通知对象:oZMR-6VfvmW0ocvZTIibBdsR7yyI', '2023-03-07 14:00:32')%!(EXTRA []interface {}=[])
+2023/03/07 14:00:32.624 [I]  推送 T_Notice_wx:%!(EXTRA []interface {}=[  len(v_b_l) != 2])
+2023/03/07 14:00:32.658 [I]  =======%!(EXTRA []interface {}=[34 贵州科开贵阳公司])
+2023/03/07 14:00:32.672 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 34 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:32.672 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:32.686 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 34 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:32.686 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:32.700 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 34 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:32.700 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:32.700 [I]  =======%!(EXTRA []interface {}=[35 贵州科开遵义公司])
+2023/03/07 14:00:32.713 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 35 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:32.713 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:32.727 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 35 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:32.727 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:32.741 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 35 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:32.741 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:32.741 [I]  =======%!(EXTRA []interface {}=[36 贵州科开金融城公司])
+2023/03/07 14:00:32.754 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 36 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:32.754 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:32.768 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 36 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:32.768 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:32.782 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 36 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:32.782 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:32.782 [I]  =======%!(EXTRA []interface {}=[37 内部测试公司])
+2023/03/07 14:00:32.795 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 37 0 2023-03-06 00:00:00 2023-03-06 23:59:59 1])
+2023/03/07 14:00:32.795 [I]  微信条数:%!(EXTRA []interface {}=[1  金额: 0])
+2023/03/07 14:00:32.809 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 37 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:32.809 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:32.823 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 37 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:32.823 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:32.823 [I]  =======%!(EXTRA []interface {}=[38 冯靖沣测试])
+2023/03/07 14:00:32.837 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 38 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:32.837 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:32.850 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 38 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:32.850 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:32.864 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 38 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:32.864 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:32.864 [I]  =======%!(EXTRA []interface {}=[40 QSTQ])
+2023/03/07 14:00:32.878 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 40 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:32.878 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:32.897 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 40 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:32.897 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:32.915 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 40 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:32.915 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:32.915 [I]  =======%!(EXTRA []interface {}=[41 baozhidao-YJ])
+2023/03/07 14:00:32.929 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 41 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:32.929 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:32.943 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 41 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:32.943 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:00:32.957 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 41 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:00:32.957 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:49.779 [I]  {"key":"redis_Device","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 14:01:49.854 [I]  {"key":"redis_WarningNum","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 14:01:50.005 [I]  {"key":"redis_Company","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 14:01:50.855 [I]  MqttServer%!(EXTRA []interface {}=[ ======= 项目启动 ========])
+2023/03/07 14:01:50.855 [I]  2023-03-06%!(EXTRA []interface {}=[])
+2023/03/07 14:01:50.855 [I]  TABLE_name:%!(EXTRA []interface {}=[warning_sand_202303])
+2023/03/07 14:01:50.892 [I]  =======%!(EXTRA []interface {}=[1 宝智达])
+2023/03/07 14:01:50.908 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 1 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:50.908 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:50.922 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 1 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:50.922 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:50.935 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 1 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:50.935 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:50.935 [I]  =======%!(EXTRA []interface {}=[2 宝智达IOT])
+2023/03/07 14:01:50.935 [I]  =========== 初始化报警规则 =========%!(EXTRA []interface {}=[])
+2023/03/07 14:01:50.949 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 2 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:50.949 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:50.963 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 2 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:50.963 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:50.977 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 2 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:50.977 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:50.977 [I]  =======%!(EXTRA []interface {}=[3 宝智达冷链])
+2023/03/07 14:01:50.990 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 3 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:50.990 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.004 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 3 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.004 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.018 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 3 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.018 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.018 [I]  =======%!(EXTRA []interface {}=[5 测试0202总公司])
+2023/03/07 14:01:51.032 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 5 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.032 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.045 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 5 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.045 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.061 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 5 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.061 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.061 [I]  =======%!(EXTRA []interface {}=[8 测试0202总公司-分公司1])
+2023/03/07 14:01:51.075 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 8 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.075 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.092 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 8 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.092 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.106 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 8 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.106 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.106 [I]  =======%!(EXTRA []interface {}=[9 测试0202总公司-分公司2])
+2023/03/07 14:01:51.120 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 9 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.120 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.133 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 9 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.133 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.147 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 9 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.147 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.147 [I]  =======%!(EXTRA []interface {}=[19 测试公司19])
+2023/03/07 14:01:51.162 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 19 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.163 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.176 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 19 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.176 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.190 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 19 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.190 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.190 [I]  =======%!(EXTRA []interface {}=[20 测试公司20])
+2023/03/07 14:01:51.206 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 20 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.206 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.220 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 20 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.220 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.234 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 20 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.234 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.234 [I]  =======%!(EXTRA []interface {}=[21 测试公司21])
+2023/03/07 14:01:51.248 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 21 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.248 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.262 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 21 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.262 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.276 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 21 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.276 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.276 [I]  =======%!(EXTRA []interface {}=[22 测试公司22])
+2023/03/07 14:01:51.290 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 22 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.290 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.304 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 22 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.304 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.318 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 22 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.318 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.318 [I]  =======%!(EXTRA []interface {}=[26 测试公司1])
+2023/03/07 14:01:51.332 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 26 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.332 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.347 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 26 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.347 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.360 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 26 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.361 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.361 [I]  =======%!(EXTRA []interface {}=[31 11111])
+2023/03/07 14:01:51.376 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 31 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.376 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.389 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 31 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.389 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.403 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 31 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.403 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.403 [I]  =======%!(EXTRA []interface {}=[32 测试公司1])
+2023/03/07 14:01:51.417 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 32 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.417 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.432 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 32 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.432 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.446 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 32 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.446 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.446 [I]  =======%!(EXTRA []interface {}=[33 贵州科开有限公司])
+2023/03/07 14:01:51.460 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 33 0 2023-03-06 00:00:00 2023-03-06 23:59:59 6])
+2023/03/07 14:01:51.460 [I]  微信条数:%!(EXTRA []interface {}=[6  金额: 0])
+2023/03/07 14:01:51.477 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 33 1 2023-03-06 00:00:00 2023-03-06 23:59:59 1])
+2023/03/07 14:01:51.477 [I]  短信条数:%!(EXTRA []interface {}=[1  金额: 0.1])
+2023/03/07 14:01:51.490 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 33 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:51.490 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:51.523 [I]  贵州科开有限公司%!(EXTRA []interface {}=[ 扣费记录 -  当期余额: -7.4505806e-08    2023-03-06 扣除: 0.1])
+2023/03/07 14:01:51.556 [I]  Number of records updated in database:%!(EXTRA []interface {}=[1])
+2023/03/07 14:01:51.569 [I]  ==>WarningToUserId  %!(EXTRA []interface {}=[Msid 0   T_pid: 0])
+2023/03/07 14:01:51.597 [I]  T_Admin_id:%!(EXTRA []interface {}=[38])
+2023/03/07 14:01:51.637 [I]  T_Admin_id:%!(EXTRA []interface {}=[31])
+2023/03/07 14:01:51.679 [I]  T_Admin_id:%!(EXTRA []interface {}=[27])
+2023/03/07 14:01:51.721 [I]  T_Admin_id:%!(EXTRA []interface {}=[23])
+2023/03/07 14:01:51.766 [I]  T_Admin_id:%!(EXTRA []interface {}=[18])
+2023/03/07 14:01:51.819 [I]  T_Admin_id:%!(EXTRA []interface {}=[13])
+2023/03/07 14:01:51.879 [I]  T_Admin_id:%!(EXTRA []interface {}=[4])
+2023/03/07 14:01:51.926 [I]  T_Admin_id:%!(EXTRA []interface {}=[1])
+2023/03/07 14:01:52.008 [I]  =======%!(EXTRA []interface {}=[34 贵州科开贵阳公司])
+2023/03/07 14:01:52.022 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 34 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:52.022 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:52.037 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 34 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:52.037 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:52.051 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 34 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:52.051 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:52.051 [I]  =======%!(EXTRA []interface {}=[35 贵州科开遵义公司])
+2023/03/07 14:01:52.064 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 35 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:52.064 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:52.078 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 35 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:52.078 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:52.095 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 35 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:52.095 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:52.095 [I]  =======%!(EXTRA []interface {}=[36 贵州科开金融城公司])
+2023/03/07 14:01:52.112 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 36 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:52.112 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:52.126 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 36 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:52.126 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:52.141 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 36 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:52.141 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:52.141 [I]  =======%!(EXTRA []interface {}=[37 内部测试公司])
+2023/03/07 14:01:52.155 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 37 0 2023-03-06 00:00:00 2023-03-06 23:59:59 1])
+2023/03/07 14:01:52.155 [I]  微信条数:%!(EXTRA []interface {}=[1  金额: 0])
+2023/03/07 14:01:52.169 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 37 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:52.169 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:52.183 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 37 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:52.183 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:52.183 [I]  =======%!(EXTRA []interface {}=[38 冯靖沣测试])
+2023/03/07 14:01:52.197 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 38 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:52.197 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:52.210 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 38 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:52.210 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:52.224 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 38 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:52.224 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:52.224 [I]  =======%!(EXTRA []interface {}=[40 QSTQ])
+2023/03/07 14:01:52.238 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 40 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:52.238 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:52.252 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 40 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:52.252 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:52.268 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 40 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:52.268 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:52.268 [I]  =======%!(EXTRA []interface {}=[41 baozhidao-YJ])
+2023/03/07 14:01:52.282 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 41 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:52.282 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:52.295 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 41 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:52.295 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:52.309 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 41 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:01:52.309 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:01:53.899 [I]  nats OK!%!(EXTRA []interface {}=[])
+2023/03/07 14:02:46.139 [I]  {"key":"redis_Device","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 14:02:46.167 [I]  {"key":"redis_WarningNum","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 14:02:46.223 [I]  {"key":"redis_Company","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 14:02:46.766 [I]  MqttServer%!(EXTRA []interface {}=[ ======= 项目启动 ========])
+2023/03/07 14:02:46.766 [I]  2023-03-06%!(EXTRA []interface {}=[])
+2023/03/07 14:02:46.766 [I]  TABLE_name:%!(EXTRA []interface {}=[warning_sand_202303])
+2023/03/07 14:02:46.797 [I]  =======%!(EXTRA []interface {}=[1 宝智达])
+2023/03/07 14:02:46.812 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 1 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:46.812 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:46.825 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 1 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:46.825 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:46.839 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 1 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:46.839 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:46.839 [I]  =======%!(EXTRA []interface {}=[2 宝智达IOT])
+2023/03/07 14:02:46.853 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 2 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:46.853 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:46.867 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 2 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:46.867 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:46.880 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 2 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:46.880 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:46.880 [I]  =======%!(EXTRA []interface {}=[3 宝智达冷链])
+2023/03/07 14:02:46.894 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 3 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:46.894 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:46.907 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 3 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:46.907 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:46.921 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 3 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:46.921 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:46.921 [I]  =======%!(EXTRA []interface {}=[5 测试0202总公司])
+2023/03/07 14:02:46.936 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 5 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:46.936 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:46.950 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 5 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:46.950 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:46.963 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 5 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:46.963 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:46.963 [I]  =======%!(EXTRA []interface {}=[8 测试0202总公司-分公司1])
+2023/03/07 14:02:46.977 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 8 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:46.977 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:46.991 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 8 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:46.991 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.004 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 8 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.004 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.004 [I]  =======%!(EXTRA []interface {}=[9 测试0202总公司-分公司2])
+2023/03/07 14:02:47.018 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 9 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.018 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.032 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 9 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.032 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.048 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 9 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.048 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.048 [I]  =======%!(EXTRA []interface {}=[19 测试公司19])
+2023/03/07 14:02:47.062 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 19 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.062 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.075 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 19 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.075 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.089 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 19 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.089 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.089 [I]  =======%!(EXTRA []interface {}=[20 测试公司20])
+2023/03/07 14:02:47.102 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 20 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.103 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.116 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 20 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.116 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.130 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 20 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.130 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.130 [I]  =======%!(EXTRA []interface {}=[21 测试公司21])
+2023/03/07 14:02:47.143 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 21 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.144 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.157 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 21 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.157 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.172 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 21 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.172 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.172 [I]  =======%!(EXTRA []interface {}=[22 测试公司22])
+2023/03/07 14:02:47.186 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 22 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.186 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.198 [I]  =========== 初始化报警规则 =========%!(EXTRA []interface {}=[])
+2023/03/07 14:02:47.200 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 22 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.200 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.213 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 22 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.213 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.213 [I]  =======%!(EXTRA []interface {}=[26 测试公司1])
+2023/03/07 14:02:47.227 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 26 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.227 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.241 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 26 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.241 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.255 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 26 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.255 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.255 [I]  =======%!(EXTRA []interface {}=[31 11111])
+2023/03/07 14:02:47.268 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 31 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.268 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.283 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 31 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.283 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.296 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 31 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.296 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.296 [I]  =======%!(EXTRA []interface {}=[32 测试公司1])
+2023/03/07 14:02:47.311 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 32 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.311 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.326 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 32 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.326 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.342 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 32 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.342 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.342 [I]  =======%!(EXTRA []interface {}=[33 贵州科开有限公司])
+2023/03/07 14:02:47.357 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 33 0 2023-03-06 00:00:00 2023-03-06 23:59:59 6])
+2023/03/07 14:02:47.357 [I]  微信条数:%!(EXTRA []interface {}=[6  金额: 0])
+2023/03/07 14:02:47.372 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 33 1 2023-03-06 00:00:00 2023-03-06 23:59:59 1])
+2023/03/07 14:02:47.372 [I]  短信条数:%!(EXTRA []interface {}=[1  金额: 0.1])
+2023/03/07 14:02:47.386 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 33 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:47.386 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:47.413 [I]  贵州科开有限公司%!(EXTRA []interface {}=[ 扣费记录 -  当期余额: -0.100000076    2023-03-06 扣除: 0.1])
+2023/03/07 14:02:47.446 [I]  Number of records updated in database:%!(EXTRA []interface {}=[1])
+2023/03/07 14:02:47.465 [I]  ==>WarningToUserId  %!(EXTRA []interface {}=[Msid 0   T_pid: 33])
+2023/03/07 14:02:47.500 [I]  T_Admin_id:%!(EXTRA []interface {}=[28])
+2023/03/07 14:02:47.581 [I]  通知内容:%!(EXTRA []interface {}=[{"first":{"value":"贵州科开有限公司","color":"#ff450a"},"thing2":{"value":"用户余额通知","color":"#bb450a"},"thing4":{"value":"贵州科开有限公司","color":"#ff450a"},"time3":{"value":"2023-03-07 14:02:47","color":"#aa450a"},"remark":{"value":"您当前余额-0.20元,请及时充值","color":"#11450a"}}])
+2023/03/07 14:02:47.581 [I]   => Nats%!(EXTRA []interface {}=[Cold_DeductionNotice/Nats/NatsServer.Wx_MessageTemplate oZMR-6dna8HILQu_sVeQb-inaCpI Zi8vDVbyHhyOuhYuSHQvaTo9xsIzvH66CfPvqeLUnDs {"first":{"value":"贵州科开有限公司","color":"#ff450a"},"thing2":{"value":"用户余额通知","color":"#bb450a"},"thing4":{"value":"贵州科开有限公司","color":"#ff450a"},"time3":{"value":"2023-03-07 14:02:47","color":"#aa450a"},"remark":{"value":"您当前余额-0.20元,请及时充值","color":"#11450a"}}])
+2023/03/07 14:02:47.582 [I]  Wx_MessageTemplate [nats: invalid connection]
+2023/03/07 14:02:48.592 [I]  Wx_MessageTemplate [nats: invalid connection]
+2023/03/07 14:02:49.808 [I]  nats OK!%!(EXTRA []interface {}=[])
+2023/03/07 14:02:51.181 [I]  Wx_MessageTemplate => : [发送成功!]
+
+2023/03/07 14:02:51.181 [I]  INSERT INTO warning_sand_202303(`t_pid`, `t_tp`, `t__ntype`, `t__notice`, `t__remark`, `create_time`) VALUES (33 , 1012, 0, 'oZMR-6dna8HILQu_sVeQb-inaCpI', 'WID:0
+类型:用户余额通知
+SN:
+主机:贵州科开有限公司
+设备:贵州科开有限公司
+备注:您当前余额-0.20元,请及时充值
+通知方式:短信通知
+通知对象:oZMR-6dna8HILQu_sVeQb-inaCpI', '2023-03-07 14:02:51')%!(EXTRA []interface {}=[])
+2023/03/07 14:02:51.203 [I]   => Nats%!(EXTRA []interface {}=[Cold_DeductionNotice/Nats/NatsServer.Wx_MessageTemplate oZMR-6VfvmW0ocvZTIibBdsR7yyI Zi8vDVbyHhyOuhYuSHQvaTo9xsIzvH66CfPvqeLUnDs {"first":{"value":"贵州科开有限公司","color":"#ff450a"},"thing2":{"value":"用户余额通知","color":"#bb450a"},"thing4":{"value":"贵州科开有限公司","color":"#ff450a"},"time3":{"value":"2023-03-07 14:02:47","color":"#aa450a"},"remark":{"value":"您当前余额-0.20元,请及时充值","color":"#11450a"}}])
+2023/03/07 14:02:51.677 [I]  Wx_MessageTemplate => : [发送成功!]
+
+2023/03/07 14:02:51.677 [I]  INSERT INTO warning_sand_202303(`t_pid`, `t_tp`, `t__ntype`, `t__notice`, `t__remark`, `create_time`) VALUES (33 , 1012, 0, 'oZMR-6VfvmW0ocvZTIibBdsR7yyI', 'WID:0
+类型:用户余额通知
+SN:
+主机:贵州科开有限公司
+设备:贵州科开有限公司
+备注:您当前余额-0.20元,请及时充值
+通知方式:短信通知
+通知对象:oZMR-6VfvmW0ocvZTIibBdsR7yyI', '2023-03-07 14:02:51')%!(EXTRA []interface {}=[])
+2023/03/07 14:02:51.695 [I]  推送 T_Notice_wx:%!(EXTRA []interface {}=[  len(v_b_l) != 2])
+2023/03/07 14:02:51.728 [I]  =======%!(EXTRA []interface {}=[34 贵州科开贵阳公司])
+2023/03/07 14:02:51.742 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 34 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:51.742 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:51.756 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 34 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:51.756 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:51.776 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 34 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:51.776 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:51.776 [I]  =======%!(EXTRA []interface {}=[35 贵州科开遵义公司])
+2023/03/07 14:02:51.789 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 35 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:51.789 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:51.803 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 35 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:51.803 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:51.817 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 35 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:51.817 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:51.817 [I]  =======%!(EXTRA []interface {}=[36 贵州科开金融城公司])
+2023/03/07 14:02:51.830 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 36 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:51.830 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:51.846 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 36 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:51.846 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:51.861 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 36 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:51.861 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:51.861 [I]  =======%!(EXTRA []interface {}=[37 内部测试公司])
+2023/03/07 14:02:51.875 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 37 0 2023-03-06 00:00:00 2023-03-06 23:59:59 1])
+2023/03/07 14:02:51.875 [I]  微信条数:%!(EXTRA []interface {}=[1  金额: 0])
+2023/03/07 14:02:51.889 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 37 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:51.889 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:51.902 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 37 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:51.902 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:51.902 [I]  =======%!(EXTRA []interface {}=[38 冯靖沣测试])
+2023/03/07 14:02:51.916 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 38 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:51.916 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:51.930 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 38 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:51.930 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:51.944 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 38 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:51.944 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:51.944 [I]  =======%!(EXTRA []interface {}=[40 QSTQ])
+2023/03/07 14:02:51.958 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 40 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:51.958 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:51.972 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 40 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:51.972 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:51.986 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 40 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:51.986 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:51.986 [I]  =======%!(EXTRA []interface {}=[41 baozhidao-YJ])
+2023/03/07 14:02:52.000 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 41 0 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:52.000 [I]  微信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:52.014 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 41 1 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:52.014 [I]  短信条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:02:52.028 [I]  Get_WarningSandNum:%!(EXTRA []interface {}=[warning_sand_202303 41 2 2023-03-06 00:00:00 2023-03-06 23:59:59 0])
+2023/03/07 14:02:52.028 [I]  电话条数:%!(EXTRA []interface {}=[0  金额: 0])
+2023/03/07 14:03:59.444 [I]  {"key":"redis_Device","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 14:03:59.474 [I]  {"key":"redis_WarningNum","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 14:03:59.531 [I]  {"key":"redis_Company","conn":"127.0.0.1:43379","dbNum":"1","password":""}%!(EXTRA []interface {}=[])
+2023/03/07 14:04:00.074 [I]  MqttServer%!(EXTRA []interface {}=[ ======= 项目启动 ========])
+2023/03/07 14:04:00.515 [I]  =========== 初始化报警规则 =========%!(EXTRA []interface {}=[])
+2023/03/07 14:04:03.107 [I]  nats OK!%!(EXTRA []interface {}=[])

+ 12 - 0
logs/logxE/logx.log

@@ -0,0 +1,12 @@
+2023/03/07 13:47:50.876 [E]  Wx_MessageTemplate [nats: invalid connection]
+2023/03/07 13:48:33.936 [E]  Wx_MessageTemplate [nats: invalid connection]
+2023/03/07 13:48:34.941 [E]  Wx_MessageTemplate [nats: invalid connection]
+2023/03/07 13:48:44.907 [E]  微信通知%!(EXTRA []interface {}=[微信服务通讯 异常!])
+2023/03/07 13:55:05.975 [E]  Wx_MessageTemplate [nats: invalid connection]
+2023/03/07 13:55:06.986 [E]  Wx_MessageTemplate [nats: invalid connection]
+2023/03/07 13:55:17.560 [E]  微信通知%!(EXTRA []interface {}=[微信服务通讯 异常!])
+2023/03/07 14:00:20.411 [E]  Wx_MessageTemplate [nats: invalid connection]
+2023/03/07 14:00:21.418 [E]  Wx_MessageTemplate [nats: invalid connection]
+2023/03/07 14:00:32.165 [E]  微信通知%!(EXTRA []interface {}=[微信服务通讯 异常!])
+2023/03/07 14:02:47.581 [E]  Wx_MessageTemplate [nats: invalid connection]
+2023/03/07 14:02:48.592 [E]  Wx_MessageTemplate [nats: invalid connection]

+ 42 - 0
main.go

@@ -0,0 +1,42 @@
+package main
+
+import (
+	"Cold_DeductionNotice/Nats"
+	"Cold_DeductionNotice/TimeMonitor"
+	"Cold_DeductionNotice/conf"
+	"Cold_DeductionNotice/logs"
+	_ "Cold_DeductionNotice/routers"
+	"github.com/beego/beego/v2/adapter/orm"
+	beego "github.com/beego/beego/v2/server/web"
+	_ "github.com/go-sql-driver/mysql"
+	"strconv"
+)
+
+func init() {
+
+	orm.RegisterDriver("mysql", orm.DRMySQL)
+	orm.RegisterDataBase("default", "mysql",
+		conf.MysqlServer_Username+":"+conf.MysqlServer_Password+"@tcp("+conf.MysqlServer_UrlPort+")/"+conf.MysqlServer_Database+"?charset=utf8mb4&loc=Local&parseTime=True",
+		conf.MysqlServer_MaxIdleConnections, conf.MysqlServer_MaxOpenConnections)
+	orm.RunSyncdb("default", false, false) // 创建数据库
+
+	//logs.Println("MysqlServer:" + conf.MysqlServer_Username + ":" + conf.MysqlServer_Password + "@tcp(" + conf.MysqlServer_UrlPort + ")/" + conf.MysqlServer_Database + "?charset=utf8mb4&loc=Local&parseTime=True")
+
+}
+
+func main() {
+
+	beego.BConfig.AppName = conf.AppName + "_" + strconv.Itoa(conf.HTTPPort)    // 项目名
+	beego.BConfig.ServerName = conf.AppName + "_" + strconv.Itoa(conf.HTTPPort) //server  名称
+	beego.BConfig.RunMode = "dev"                                               //  应用的运行模式
+	beego.BConfig.Listen.HTTPPort = conf.HTTPPort                               //监听端口  本地:8518  线上:8528
+	logs.Println("MqttServer", " ======= 项目启动 ========")
+
+	go Nats.NatsInit() // Nats 通讯
+
+
+	go TimeMonitor.DeductionNoticeInit()  // 定时 通知扣费
+
+	beego.Run()
+}
+

+ 127 - 0
models/Account/Admin.go

@@ -0,0 +1,127 @@
+package Account
+
+import (
+	"Cold_DeductionNotice/conf"
+	"Cold_DeductionNotice/logs"
+	"encoding/json"
+	"fmt"
+	"github.com/astaxie/beego/cache"
+	_ "github.com/astaxie/beego/cache/redis"
+	"github.com/beego/beego/v2/adapter/orm"
+	orm2 "github.com/beego/beego/v2/client/orm"
+	_ "github.com/go-sql-driver/mysql"
+	"time"
+)
+
+type Admin struct {
+	Id      int    `orm:"column(ID);size(11);auto;pk"`
+	T_uuid  string `orm:"size(256);null"` //  用户编号
+	T_pid   int    `orm:"size(200);null"` //  绑定公司 ( 只有创建公司用户时添加,内部人员 为0)
+	T_pids  string `orm:"size(256);null"` //   绑定公司管理  Pid|  如:P1|P2|
+	T_power int    `orm:"size(2);0"`      // 权限 (关联权限表)
+	T_user  string `orm:"size(256);null"` // 用户名 (唯一)
+	T_pass  string `orm:"size(256);null"` // MD5
+
+	T_name  string `orm:"size(256);null"` // 姓名
+	T_phone string `orm:"size(256);null"` // 电话
+	T_mail  string `orm:"size(200);null"` // 邮箱
+	T_wx    string `orm:"size(256);null"` // 微信
+
+	T_State    int       `orm:"size(200);1"`                                           //  0删除  1 正常
+	CreateTime time.Time `orm:"column(create_time);type(timestamp);null;auto_now_add"` //auto_now 每次 model 保存时都会对时间自动更新
+	UpdateTime time.Time `orm:"column(update_time);type(timestamp);null;auto_now"`     //auto_now_add 第一次保存时才设置时间
+}
+
+func (t *Admin) TableName() string {
+	return "admin" // 数据库名称   // ************** 替换 FormulaList **************
+}
+
+var redisCache_Admin cache.Cache
+
+func init() {
+	//注册模型
+	orm.RegisterModel(new(Admin))
+
+	config := fmt.Sprintf(`{"key":"%s","conn":"%s","dbNum":"%s","password":"%s"}`,
+		"redis_Cold_User_Admin", conf.Redis_address, conf.Redis_dbNum, conf.Redis_password)
+	fmt.Println(config)
+	var err error
+	redisCache_Admin, err = cache.NewCache("redis", config)
+	if err != nil || redisCache_Admin == nil {
+		errMsg := "failed to init redis"
+		fmt.Println(errMsg, err)
+	}
+
+}
+
+// if r,is :=Redis_Get(T_sn);is{
+// return r,nil
+// }
+func Redis_Admin_Get(key string) (r Admin, is bool) {
+	if redisCache_Admin.IsExist(key) {
+		//println("找到key:",key)
+		v := redisCache_Admin.Get(key)
+
+		json.Unmarshal(v.([]byte), &r)
+		return r, true
+	}
+	//println("没有 找到key:",key)
+	return Admin{}, false
+}
+
+// 获取 ById
+func Read_Admin_Byid(Id int) (r Admin, err error) {
+
+	o := orm.NewOrm()
+	r = Admin{Id: Id, T_State: 1}
+	err = o.Read(&r, "Id", "T_State") // o.Read(&r,"Tokey") 如果不是 主键 就得指定字段名
+	if err != nil {
+		logs.Println("Read_Admin_Byid", err)
+	}
+	return r, err
+}
+
+// 获取列表
+func Read_Admin_Tpids_List(CompanyID int) (maps []Admin) {
+
+	o := orm.NewOrm()
+	// 也可以直接使用 Model 结构体作为表名
+
+	qs := o.QueryTable(new(Admin))
+
+	cond := orm.NewCondition()
+	cond1 := cond.And("T_State", 1).And("T_pids__icontains", CompanyID)
+
+	qs.SetCond((*orm2.Condition)(cond1)).OrderBy("-Id").All(&maps)
+
+	return maps
+}
+// 获取列表
+func Read_Admin_Tpid_List(CompanyID int) (maps []Admin) {
+
+	o := orm.NewOrm()
+	// 也可以直接使用 Model 结构体作为表名
+
+	qs := o.QueryTable(new(Admin))
+
+	cond := orm.NewCondition()
+	cond1 := cond.And("T_State", 1).And("T_pid", CompanyID)
+
+	qs.SetCond((*orm2.Condition)(cond1)).OrderBy("-Id").All(&maps)
+
+	return maps
+}
+// 获取 ByT_uuid
+func Read_Admin_ByUuid(T_uuid string) (r Admin, err error) {
+	if r, is := Redis_Admin_Get(T_uuid); is {
+		//println("Redis_Get  OK")
+		return r, nil
+	}
+	o := orm.NewOrm()
+	r = Admin{T_uuid: T_uuid, T_State: 1}
+	err = o.Read(&r, "T_uuid", "T_State") // o.Read(&r,"Tokey") 如果不是 主键 就得指定字段名
+	if err != nil {
+		fmt.Println(err)
+	}
+	return r, err
+}

+ 118 - 0
models/Account/Company.go

@@ -0,0 +1,118 @@
+package Account
+
+import (
+	"Cold_DeductionNotice/conf"
+	"Cold_DeductionNotice/logs"
+	"encoding/json"
+	"fmt"
+	"github.com/astaxie/beego/cache"
+	_ "github.com/astaxie/beego/cache/redis"
+	"github.com/beego/beego/v2/adapter/orm"
+	_ "github.com/go-sql-driver/mysql"
+	"strconv"
+	"time"
+)
+
+type Company struct {
+	Id     int    `orm:"column(ID);size(11);auto;pk"`
+	T_mid  int    `orm:"size(200);null"`       //  上一级 ID
+	T_name string `orm:"size(256);null"`       // 公司名称
+	T_key  string `orm:"size(256);index;null"` // 公司密钥
+
+	T_money    float32   `orm:"digits(12);decimals(2)"`                                //  余额
+	T_State    int       `orm:"size(200);"`                                            //  0删除  1 正常
+	CreateTime time.Time `orm:"column(create_time);type(timestamp);null;auto_now_add"` //auto_now 每次 model 保存时都会对时间自动更新
+	UpdateTime time.Time `orm:"column(update_time);type(timestamp);null;auto_now"`     //auto_now_add 第一次保存时才设置时间
+}
+
+func (t *Company) TableName() string {
+	return "company" // 数据库名称   // ************** 替换 FormulaList **************
+}
+
+var redisCache_Company cache.Cache
+
+func init() {
+	//注册模型
+	orm.RegisterModel(new(Company))
+
+	config := fmt.Sprintf(`{"key":"%s","conn":"%s","dbNum":"%s","password":"%s"}`,
+		"redis_Company", conf.Redis_address, conf.Redis_dbNum, conf.Redis_password)
+	logs.Println(config)
+	var err error
+	redisCache_Company, err = cache.NewCache("redis", config)
+	if err != nil || redisCache_Company == nil {
+		errMsg := "failed to init redis"
+		logs.Println(errMsg, err)
+	}
+
+}
+
+// ---------------- Redis -------------------
+// Redis_Set(m.T_sn,m) // Redis 更新缓存
+func Redis_Company_Set(r Company) (err error) {
+	//json序列化
+	str, err := json.Marshal(r)
+	if err != nil {
+		fmt.Print(err)
+		return
+	}
+
+	err = redisCache_Company.Put(strconv.Itoa(r.Id), str, 24*time.Hour)
+	if err != nil {
+		logs.Println("set key:", strconv.Itoa(r.Id), ",value:", str, err)
+	}
+	return
+}
+
+// if r,is :=Redis_Get(T_sn);is{
+// return r,nil
+// }
+func Redis_Company_Get(key string) (r Company, is bool) {
+	if redisCache_Company.IsExist(key) {
+		//println("找到key:",key)
+		v := redisCache_Company.Get(key)
+
+		json.Unmarshal(v.([]byte), &r)
+		return r, true
+	}
+	//println("没有 找到key:",key)
+	return Company{}, false
+}
+
+func Redis_Company_DelK(key string) (err error) {
+	err = redisCache_Company.Delete(key)
+	return
+}
+
+// ---------------- 特殊方法 -------------------
+
+// 修改
+func Update_Company(m Company, cols ...string) bool {
+	o := orm.NewOrm()
+	if num, err := o.Update(&m, cols...); err == nil {
+		logs.Println("Number of records updated in database:", num)
+		Redis_Company_Set(m) // Redis 更新缓存
+		return true
+	}
+	return false
+}
+// 获取全部
+func Read_Company_All() (r_l []Company) {
+	o := orm.NewOrm()
+	qs := o.QueryTable(new(Company))
+	qs.Filter("T_State", 1).All(&r_l)
+	return
+}
+
+// 获取 ById
+func Read_Company_id(Id int) (e error, r Company) {
+	if r, is := Redis_Company_Get(strconv.Itoa(Id)); is {
+		//println("Redis_Get  OK")
+		return nil, r
+	}
+
+	o := orm.NewOrm()
+	qs := o.QueryTable(new(Company))
+	e = qs.Filter("Id", Id).Filter("T_State", 1).One(&r)
+	return e, r
+}

+ 41 - 0
models/Company/CompanyBill.go

@@ -0,0 +1,41 @@
+package Company
+
+import (
+	"Cold_DeductionNotice/logs"
+	_ "github.com/astaxie/beego/cache/redis"
+	"github.com/beego/beego/v2/adapter/orm"
+	_ "github.com/go-sql-driver/mysql"
+	"time"
+)
+
+type CompanyBill struct {
+	Id         int     `orm:"column(ID);size(11);auto;pk"`
+	T_pid      int     `orm:"index;size(256);"`       // Account.Company 绑定公司
+	T_type     string  `orm:"size(256);"`             // 扣费/充值
+	T_project  string  `orm:"size(256);"`             // 项目
+	T_bill     string  `orm:"type(text);"`            // 说明
+	T_charging float32 `orm:"digits(12);decimals(2)"` // 金额
+	T_balance  float32 `orm:"digits(12);decimals(2)"` // 余额(扣费后)
+
+	CreateTime time.Time `orm:"column(create_time);type(timestamp);null;auto_now_add"` //auto_now_add 第一次保存时才设置时间
+}
+
+func (t *CompanyBill) TableName() string {
+	return "company_bill" // 数据库名称   // ************** 替换 DesignDeviceNotice **************
+}
+
+func init() {
+	//注册模型
+	orm.RegisterModel(new(CompanyBill))
+
+}
+
+// 添加
+func Add_CompanyBill(m CompanyBill) {
+	o := orm.NewOrm()
+	_, err := o.Insert(&m)
+	if err != nil {
+		logs.PrintlnError("Add_CompanyBill err:", err)
+	}
+	return
+}

+ 47 - 0
models/Company/CompanyNotice.go

@@ -0,0 +1,47 @@
+package Company
+
+import (
+	_ "github.com/astaxie/beego/cache/redis"
+	"github.com/beego/beego/v2/adapter/orm"
+	_ "github.com/go-sql-driver/mysql"
+	"time"
+)
+
+type CompanyNotice struct {
+	Id                 int    `orm:"column(ID);size(11);auto;pk"`
+	T_pid              int    `orm:"index;size(256);null"` // Account.Company 绑定公司
+	T_name             string `orm:"size(256);null"`       // 分类
+	T_Notice_wx        string `orm:"type(text);null"`      //w微信公众号  uuid/名字|
+	T_Notice_phone     string `orm:"type(text);null"`      //p手机  uuid/名字|
+	T_Notice_message   string `orm:"type(text);null"`      //m短信   uuid/名字|
+	T_Notice_mailbox   string `orm:"type(text);null"`      //e邮箱    uuid/名字|
+	T_Notice_mechanism string `orm:"type(text);null"`      // 报警机制
+	T_Notice_bind      string `orm:"type(text);null"`      // 绑定T_sn,Tid|    862289056463538,1|8622546456433,1|
+	// W报警编号,处理,w启用,持续秒,间隔秒,发送条数,d启用,持续秒,间隔秒,发送条数,p启用,持续秒,间隔秒,发送条数|
+	// W15,1,0,1,0,9999,0,0,0,0,0,0,0,0,0|
+
+	T_State    int       `orm:"size(2);1"`                                             // 0 删除   1 正常
+	CreateTime time.Time `orm:"column(create_time);type(timestamp);null;auto_now_add"` //auto_now_add 第一次保存时才设置时间
+	UpdateTime time.Time `orm:"column(update_time);type(timestamp);null;auto_now"`     //auto_now 每次 model 保存时都会对时间自动更新
+}
+
+func (t *CompanyNotice) TableName() string {
+	return "company_notice" // 数据库名称   // ************** 替换 DesignDeviceNotice **************
+}
+
+func init() {
+	//注册模型
+	orm.RegisterModel(new(CompanyNotice))
+
+}
+
+// 获取列表
+func Read_CompanyNotice_List(T_pid int) (r []CompanyNotice) {
+
+	o := orm.NewOrm()
+	qs := o.QueryTable(new(CompanyNotice))
+
+	qs.Filter("T_pid", T_pid).OrderBy("Id").All(&r)
+
+	return r
+}

+ 139 - 0
models/Device/Device.go

@@ -0,0 +1,139 @@
+package Device
+
+import (
+	"Cold_DeductionNotice/conf"
+	"Cold_DeductionNotice/logs"
+	"encoding/json"
+	"fmt"
+	"github.com/astaxie/beego/cache"
+	_ "github.com/astaxie/beego/cache/redis"
+	"github.com/beego/beego/v2/adapter/orm"
+	_ "github.com/go-sql-driver/mysql"
+	"time"
+)
+
+// 模板
+type Device struct {
+	T_sn              string    `orm:"pk;size(256);null"`    // 设备序列号
+	T_pid             int       `orm:"index;size(256);null"` // Account.Company 绑定公司
+	T_devName         string    `orm:"size(256);null"`       // 设备名称  20字
+	T_protocol        int       `orm:"size(2);default(1)"`   // 冷链通讯协议 1 :1.0协议   2 :2.0协议    3 :3.0协议
+	T_mqttid          string    `orm:"size(256);null"`       // MQTT 服务ID
+	T_VerifyTime      time.Time `orm:"type(timestamp);null"` // 验证时间
+	T_CalibrationTime time.Time `orm:"type(timestamp);null"` // 校准时间
+	T_PatrolTime      time.Time `orm:"type(timestamp);null"` // 巡检时间
+	T_ist             int       `orm:"size(2);default(1)"`   // 温度   1开启   2关闭
+	T_ish             int       `orm:"size(2);default(1)"`   // 湿度   1开启   2关闭
+
+	// 设备同步参数
+	T_Dattery  int    `orm:"size(4);null"`             // 电量
+	T_Site     string `orm:"size(200);null"`           // GPS
+	T_monitor  int    `orm:"index;size(2);null"`       // 监控状态 0 未监控 1 监控  停止记录
+	T_online   int    `orm:"index;size(2);default(1)"` // 在线状态 0 未启用  1 在线  2 离线
+	T_online_s int    `orm:"index;size(2);default(0)"` // 在线状态-备用  0 未启用  1 在线  2 离线
+	T_State    int    `orm:"index;size(2);default(1)"` // 0 屏蔽   1 正常  (屏蔽后 只有内部管理员才能看到,用户 输入SN\名称 搜索时 也能看到)
+
+	// 硬件信息
+	T_model string `orm:"size(200);null"` // KF200BG  设备型号
+	T_sver  string `orm:"size(200);null"` // "1.0.0",//软件版本
+	T_hver  string `orm:"size(200);null"` // "1.0.0",//硬件版本
+	T_imei  string `orm:"size(200);null"` // "867387060327718",//模组imei
+	T_iccid string `orm:"size(200);null"` // "89860477102170049750",//sim卡号
+	T_rssi  string `orm:"size(200);null"` // "80",//信号强度
+
+	CreateTime time.Time `orm:"column(create_time);type(timestamp);null;auto_now_add"` //auto_now_add 第一次保存时才设置时间
+	UpdateTime time.Time `orm:"column(update_time);type(timestamp);null;auto_now"`     //auto_now 每次 model 保存时都会对时间自动更新
+}
+
+type Device_task struct {
+	T_sn   string
+	T_task string
+}
+
+func (t *Device) TableName() string {
+	return "device" // 数据库名称   // ************** 替换 FormulaList **************
+}
+
+var redisCache_Device cache.Cache
+
+func init() {
+	//注册模型
+	orm.RegisterModel(new(Device))
+
+	config := fmt.Sprintf(`{"key":"%s","conn":"%s","dbNum":"%s","password":"%s"}`,
+		"redis_Device", conf.Redis_address, conf.Redis_dbNum, conf.Redis_password)
+	logs.Println(config)
+	var err error
+	redisCache_Device, err = cache.NewCache("redis", config)
+	if err != nil || redisCache_Device == nil {
+		errMsg := "failed to init redis"
+		logs.Println(errMsg, err)
+		panic(any(errMsg))
+	}
+
+}
+
+// ---------------- Redis -------------------
+// Redis_Set(m.T_sn,m) // Redis 更新缓存
+func Redis_Set(key string, r Device) (err error) {
+	//json序列化
+	str, err := json.Marshal(r)
+	if err != nil {
+		fmt.Print(err)
+		return
+	}
+
+	err = redisCache_Device.Put(key, str, 24*time.Hour)
+	if err != nil {
+		logs.Println("set key:", key, ",value:", str, err)
+	}
+	return
+}
+
+// if r,is :=Redis_Get(T_sn);is{
+// return r,nil
+// }
+func Redis_Get(key string) (r Device, is bool) {
+	if redisCache_Device.IsExist(key) {
+		//println("找到key:",key)
+		v := redisCache_Device.Get(key)
+		if v == nil {
+			return Device{}, false
+		}
+		json.Unmarshal(v.([]byte), &r)
+		return r, true
+	}
+	//println("没有 找到key:",key)
+	return Device{}, false
+}
+
+// ---------------- 特殊方法 -------------------
+
+// 获取 ById
+func Read_Device_ByT_sn(T_sn string) (r Device, err error) {
+	if r, is := Redis_Get(T_sn); is {
+		//println("Redis_Get  OK")
+		return r, nil
+	}
+	//println("没有 Redis_Get SN")
+	o := orm.NewOrm()
+	r = Device{T_sn: T_sn, T_State: 1}
+	err = o.Read(&r, "T_sn", "T_State") // o.Read(&r,"Tokey") 如果不是 主键 就得指定字段名
+	if err != nil {
+		logs.Println("Read_Device_ByT_sn", err)
+		return r, err
+	}
+	Redis_Set(r.T_sn, r) // Redis 更新缓存
+	return r, err
+}
+
+// 修改
+func Update_Device(r Device, cols ...string) bool {
+	o := orm.NewOrm()
+	if num, err := o.Update(&r, cols...); err == nil {
+		logs.Println("Number of records updated in database:", num)
+		Redis_Set(r.T_sn, r) // Redis 更新缓存
+		return true
+	}
+	return false
+}

+ 33 - 0
models/GTime.go

@@ -0,0 +1,33 @@
+package models
+
+import (
+	"database/sql/driver"
+	"fmt"
+	"time"
+)
+
+type JsonTime struct {
+	time.Time
+}
+
+func (t JsonTime) MarshalJSON() ([]byte, error) {
+	str := fmt.Sprintf("\"%s\"", t.Format("2006-01-02 15:04:05"))
+	return []byte(str), nil
+}
+
+func (t JsonTime) Value() (driver.Value, error) {
+	var zeroTime time.Time
+	if t.Time.UnixNano() == zeroTime.UnixNano() {
+		return nil, nil
+	}
+	return t.Time, nil
+}
+
+func (t *JsonTime) Scan(v interface{}) error {
+	value, ok := v.(time.Time)
+	if ok {
+		*t = JsonTime{Time: value}
+		return nil
+	}
+	return fmt.Errorf("error %v", v)
+}

+ 212 - 0
models/Warning/Warning.go

@@ -0,0 +1,212 @@
+package Warning
+
+import (
+	"Cold_DeductionNotice/conf"
+	"Cold_DeductionNotice/lib"
+	"Cold_DeductionNotice/logs"
+	"Cold_DeductionNotice/models/Device"
+	"fmt"
+	"github.com/astaxie/beego/cache"
+	_ "github.com/astaxie/beego/cache/redis"
+	"github.com/beego/beego/v2/adapter/orm"
+	_ "github.com/go-sql-driver/mysql"
+	"strconv"
+	"strings"
+	"time"
+)
+
+// 模板
+type Warning struct {
+	Id        int64       `orm:"column(ID);size(11);auto;pk"`
+	T_pid     int       `orm:"index;size(256);null"`        // Account.Company 绑定公司, -1:未知   0:管理员  >0 :绑定公司
+	T_tp      int       `orm:"index;size(200);null"`        // 报警类型   ->WarningList
+	T_sn      string    `orm:"index;size(256);null"`        // 设备序列号
+	T_D_name  string    `orm:"size(256);null"`              // 设备名称
+	T_id      int       `orm:"index;size(200);null"`        // 传感器 ID
+	T_DS_name string    `orm:"size(256);null"`              // 传感器名称
+	T_Remark  string    `orm:"type(text);null"`             // 采集内容
+	T_Ut      time.Time `orm:"index;type(timestamp);null;"` // 采集时间
+	T_fUt     time.Time `orm:"type(timestamp);null;"`       // 首次采集时间
+
+	T_Text string `orm:"type(text);null"` // 处理备注
+	T_Log  string `orm:"type(text);null"` // 通知日志
+	T_Msid int64  `orm:"size(256);null"`  // 消息ID
+
+	T_State    int       `orm:"size(2);1"`                                             // 0 删除   1 不处理   2 已处理   3 未处理
+	CreateTime time.Time `orm:"column(create_time);type(timestamp);null;auto_now_add"` //auto_now_add 第一次保存时才设置时间
+	UpdateTime time.Time `orm:"column(update_time);type(timestamp);null;auto_now"`     //auto_now 每次 model 保存时都会对时间自动更新
+}
+
+func (t *Warning) TableName() string {
+	return "warning" // 数据库名称   // ************** 替换 FormulaList **************
+}
+
+var redisCache_Warning cache.Cache
+
+func init() {
+	//注册模型
+	orm.RegisterModel(new(Warning))
+
+	config := fmt.Sprintf(`{"key":"%s","conn":"%s","dbNum":"%s","password":"%s"}`,
+		"redis_WarningNum", conf.Redis_address, conf.Redis_dbNum, conf.Redis_password)
+	logs.Println(config)
+	var err error
+	redisCache_Warning, err = cache.NewCache("redis", config)
+	if err != nil || redisCache_Warning == nil {
+		errMsg := "failed to init redis"
+		logs.Println(errMsg, err)
+	}
+}
+
+// ---------------- Redis -------------------
+// Redis_Set(m.T_sn,m) // Redis 更新缓存
+func Redis_Warning_Set(key string) (err error) {
+
+	err = redisCache_Warning.Put(key, "", 24*time.Hour)
+	if err != nil {
+		logs.Println("set key:", key)
+	}
+	return
+}
+
+// if r,is :=Redis_Get(T_sn);is{
+// return r,nil
+// }
+func Redis_Warning_Repeat_T_sn_Msid(key string) (is bool) {
+	if redisCache_Warning.IsExist(key) {
+		//println("找到key:",key)
+		return true
+	}
+	redisCache_Warning.Put(key, "", 1*time.Minute)
+	return false
+}
+// 缓存报警次数     cut 持续秒        (计次,剩余时间s)
+func Redis_Warning_Num(key string) (int64, int) {
+	if redisCache_Warning.IsExist(key) {
+		//logs.Println("Redis_Warning_Num  找到key:", key)
+		r := redisCache_Warning.Get(key)
+		if r == nil {
+			return 0, 0
+		}
+		value_str := string(r.([]byte))
+		value_str_list := strings.Split(value_str, "|")
+		if len(value_str_list) != 2 {
+			return 0, 0
+		}
+		logs.Println("value_str_list:",value_str_list)  //value_str_list: [[1 1677724222]]
+		value_int, _ := strconv.ParseInt(value_str_list[0], 10, 64)
+		cut := int(time.Unix(lib.To_int64(value_str_list[1]), 0).Unix() - time.Now().Unix()) // 计算 还剩 s秒时间
+		return value_int, cut
+	}
+	return 0, 0
+}
+// 缓存报警次数     cut 持续秒        (计次,剩余时间s)
+func Redis_Warning_Num_W(key,cuts string) (int64, int) {
+	cut,err := strconv.Atoi(cuts)
+	if err != nil {
+		logs.PrintlnError("Redis_Warning_Num err:", err)
+	}
+
+	if redisCache_Warning.IsExist(key) {
+		//logs.Println("Redis_Warning_Num  找到key:", key)
+		r := redisCache_Warning.Get(key)
+		if r == nil {
+			goto breakHere // 跳转到标签
+		}
+		value_str := string(r.([]byte))
+		value_str_list := strings.Split(value_str, "|")
+		logs.Println("value_str_list:",value_str_list)  //value_str_list: [[1 1677724222]]
+		if len(value_str_list) != 2 {
+			goto breakHere // 跳转到标签
+		}
+		value_int, _ := strconv.ParseInt(value_str_list[0], 10, 64)
+		value_int += 1  // 数量
+		//logs.Println("有数据 value_int:", value_int)
+		cut = int(time.Unix(lib.To_int64(value_str_list[1]), 0).Unix() - time.Now().Unix()) // 计算 还剩 s秒时间
+		redisCache_Warning.Put(key, fmt.Sprintf("%d|%s", value_int, value_str_list[1]), time.Duration(cut)*time.Second)
+		logs.Println("Redis_Warning_Num KEY:", key, "->", value_int, "  还剩时间 ->", cut)
+
+		return value_int, cut
+	}
+breakHere:
+	//logs.Println("没有数据 value_int:", 1)
+	s, _ := time.ParseDuration(fmt.Sprintf("%ds",cut))
+	redisCache_Warning.Put(key, fmt.Sprintf("1|%d", time.Now().Add(s).Unix()), time.Duration(cut)*time.Second)
+	logs.Println("Redis_Warning_Num NewKEY:", key," cut:",cut)
+	return 1, cut
+}
+
+// 管理员 缓存报警次数
+func Redis_WarningToAdmin_Num(key string) bool {
+	if redisCache_Warning.IsExist(key) {
+		////logs.Println("Redis_Warning_Num  找到key:", key)
+		//r := redisCache_Warning.Get(key)
+		//value_str := string(r.([]byte))
+		//value_int, _ := strconv.ParseInt(value_str, 10, 64)
+		//value_int += 1
+		////logs.Println("有数据 value_int:", value_int)
+		////redisCache_Warning.Put(key, strconv.FormatInt(value_int, 10), 11*time.Minute)
+		return false
+	}
+	//logs.Println("没有数据 value_int:", 1)
+	redisCache_Warning.Put(key, "1", 30*time.Minute)
+	return true
+}
+
+// ---------------- 特殊方法 -------------------
+
+// 添加
+func Add_Warning(m Warning) (id int64, err error) {
+
+	o := orm.NewOrm()
+
+	id, err = o.Insert(&m)
+	if err != nil {
+		logs.PrintlnError("Add_Warning err:", err)
+	}
+	return id, err
+}
+// 修改
+func Update_Warning(r Warning, cols ...string) bool {
+	o := orm.NewOrm()
+	if num, err := o.Update(&r, cols...); err == nil {
+		logs.Println("Number of records updated in database:", num)
+		return true
+	}
+	return false
+}
+// 追加 日志
+func Add_Warning_Log(r *Warning, T_Log string) {
+	r.T_Log = r.T_Log + T_Log
+	return
+}
+
+func Add_DeviceLogs(T_tp int,r_Device Device.Device, T_Remark string) Warning {
+	var Warning_r Warning
+	Warning_r.T_pid = r_Device.T_pid
+	Warning_r.T_tp = T_tp
+	Warning_r.T_sn = r_Device.T_sn
+	Warning_r.T_D_name = r_Device.T_devName
+	Warning_r.T_DS_name = r_Device.T_devName
+	Warning_r.T_id = 0
+	Warning_r.T_Remark = T_Remark
+	Warning_r.T_Ut = time.Now()
+	Warning_r.T_State = 1
+
+	// 查看 sn 是否有归属
+	if Warning_r.T_pid == 0 { //  寻找报警归属
+		if len(Warning_r.T_sn) > 10 {
+			r_Device, err := Device.Read_Device_ByT_sn(Warning_r.T_sn)
+			if err != nil {
+				logs.Println("MessageDisconnected 没有该设备:", Warning_r.T_sn)
+			}
+			Warning_r.T_pid = r_Device.T_pid
+		}
+	}
+
+	// 添加报警
+	id, _ :=Add_Warning(Warning_r)
+	Warning_r.Id = id
+
+	return Warning_r
+}

+ 83 - 0
models/Warning/WarningSand.go

@@ -0,0 +1,83 @@
+package Warning
+
+import (
+	"Cold_DeductionNotice/lib"
+	"Cold_DeductionNotice/logs"
+	"fmt"
+	"github.com/beego/beego/v2/client/orm"
+
+	_ "github.com/go-sql-driver/mysql"
+	"strconv"
+	"strings"
+	"time"
+)
+
+// 报警发送统计
+type WarningSand struct {
+	Id       int    `orm:"column(ID);size(11);auto;pk"`
+	T_pid    int    `orm:"index;size(100);null"` // Account.Company 绑定公司, -1:未知   0:管理员  >0 :绑定公司
+	T_tp     int    `orm:"size(20);null"`        // 报警类型   ->WarningList
+	T_Ntype  int    `orm:"size(4);null"`         // 通知方式    0:微信    1:短信 ¥0.1        2:电话 ¥0.2
+	T_Notice string `orm:"size(256);null"`       // 18888888888
+	T_Remark string `orm:"type(text);null"`      // 备注
+	//CreateTime time.Time `orm:"column(create_time);type(timestamp);null;auto_now_add"` //auto_now_add 第一次保存时才设置时间
+}
+
+func (t *WarningSand) TableName() string {
+	return "warning_sand" // 数据库名称   // ************** 替换 FormulaList **************
+}
+
+func init() {
+	//注册模型
+	orm.RegisterModel(new(WarningSand))
+
+}
+
+func CREATE(name string) string {
+	sql := "CREATE TABLE IF NOT EXISTS `warning_sand` (\n        `ID` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,\n        `t_pid` integer,\n        `t_tp` integer,\n        `t__ntype` integer,\n        `t__notice` varchar(256),\n        `t__remark` longtext,\n        `create_time` datetime\n    ) ENGINE=InnoDB;"
+	sql = strings.Replace(sql, "warning_sand", name, -1)
+	return sql
+}
+
+// 添加 数据   返回   真:替换   假:第一条无替换
+func Add_WarningSand(v WarningSand) bool {
+	o := orm.NewOrm()
+	currentTime := time.Now()
+	TABLE_name := fmt.Sprintf("warning_sand_%d%02d", currentTime.Year(), currentTime.Month())
+breakHere:
+	// 开始插入数据
+	sql := "INSERT INTO " + TABLE_name + "(`t_pid`, `t_tp`, `t__ntype`, `t__notice`, `t__remark`, `create_time`) " +
+		"VALUES (" + strconv.Itoa(v.T_pid) + " , " + strconv.Itoa(v.T_tp) + ", " + strconv.Itoa(v.T_Ntype) + ", '" + v.T_Notice + "', '" + v.T_Remark + "', '" + currentTime.Format("2006-01-02 15:04:05") + "')"
+	//  这里有时间优化  用于一次 prepare 多次 exec,以提高批量执行的速度
+	logs.Println(sql)
+	_, err := o.Raw(sql).Exec()
+	if err != nil {
+		//Error 1146: Table 'cold.z_device_data_202335objgv2pzk' doesn't exist
+		if strings.Contains(err.Error(), "1146") { // 没有创建表
+			_, err = o.Raw(CREATE(TABLE_name)).Exec()
+			if err != nil {
+				logs.PrintlnError("SELECT_Add_WarningSand:" + err.Error())
+				return false
+			}
+			goto breakHere // 跳转到标签
+		}
+
+	}
+	return true
+}
+
+
+
+// 获取 发送统计数量
+func Get_WarningSandNum(TABLE_name string,Pid,Ntype int,StartTine,EndTime string ) int {
+	o := orm.NewOrm()
+	var maps []orm.Params
+	num, err := o.Raw("SELECT count(ID) AS count FROM "+TABLE_name+" WHERE `t_pid` = "+strconv.Itoa(Pid)+" AND `t__ntype` = "+strconv.Itoa(Ntype)+" AND `create_time` >= '"+StartTine+"' AND `create_time` <= '"+EndTime+"'").Values(&maps)
+	if err == nil && num > 0 {
+		intx,_:=strconv.Atoi(lib.To_string(maps[0]["count"]))
+		logs.Println("Get_WarningSandNum:",TABLE_name ,Pid,Ntype ,StartTine,EndTime,intx) // slene
+		return intx
+	}
+	logs.PrintlnError("执行错误!!!","Get_WarningSandNum:",TABLE_name ,Pid,Ntype ,StartTine,EndTime,maps) // slene
+	return 0
+}

+ 103 - 0
models/Warning/WarningType.go

@@ -0,0 +1,103 @@
+package Warning
+
+import (
+	"Cold_DeductionNotice/logs"
+	_ "github.com/astaxie/beego/cache/redis"
+	"github.com/beego/beego/v2/adapter/orm"
+	_ "github.com/go-sql-driver/mysql"
+	"time"
+)
+
+// 模板
+type WarningType struct {
+	Id     int    `orm:"column(ID);size(11);auto;pk"`
+	T_name string `orm:"size(256);null"`            // 分类
+	T_Tips string `orm:"type(text);size(256);null"` // 提示
+}
+
+//3
+//tp	报警类型
+//	1	温度超上限报警
+//	2	温度超下限报警
+//	3	温度超上限预警
+//	4	温度超下限预警
+//	5	温度恢复正常
+//	6	湿度超上限报警
+//	7	湿度超下限报警
+//	8	湿度超上限预警
+//	9	湿度超下限预警
+//	10	湿度恢复正常
+
+//12
+//tp	报警类型
+// 101	主机报警
+// 102	时间报警
+// 103	闪存报警
+// 104	SD卡报警
+// 105	网络报警
+// 106  普通日志
+// 107	升级固件报警
+// 108	系统故障报警
+// 109	市电断电报警
+// 110	市电已恢复
+// 111	电池电量低报警
+// 112	电池电量恢复
+// 113	传感器故障报警
+// 114	传感器恢复
+// 115	开始任务(移动端)
+// 116	中途打印任务(移动端)
+// 117	结束任务(移动端)
+
+// 预警系统
+// 1001 设备状态异常
+// 1002 传感器数据异常
+// 1011	报警策略异常
+// 1012 Nats通讯异常
+//INSERT INTO `cold`.`warning_type`(`ID`, `t_name`) VALUES (4, '44444')
+
+var WarningType_list map[int]string // 泛型
+
+func (t *WarningType) TableName() string {
+	return "warning_type" // 数据库名称   // ************** 替换 FormulaList **************
+}
+
+//var redisCache_WarningType cache.Cache
+
+func init() {
+	//注册模型
+	orm.RegisterModel(new(WarningType))
+
+	WarningType_list = make(map[int]string)
+
+	go Read_WarningType_All()
+
+}
+
+// 获取全部
+func Read_WarningType_All() {
+	time.Sleep(time.Second)
+
+	logs.Println("=========== 初始化报警规则 =========")
+
+	o := orm.NewOrm()
+	for true {
+		var r []WarningType
+		qs := o.QueryTable(new(WarningType))
+		qs.All(&r)
+		for _, v := range r {
+			WarningType_list[v.Id] = v.T_name
+			//logs.Println(v.T_name,v.Id)
+		}
+		time.Sleep(1 * time.Hour)
+	}
+
+}
+func Read_WarningType_Get(Id int) string {
+	// 有先加入 给全部人发消息
+	v, ok := WarningType_list[Id] /*如果确定是真实的,则存在,否则不存在 */
+	if ok {
+		return v
+	} else {
+		return "未知报警"
+	}
+}

+ 10 - 0
routers/router.go

@@ -0,0 +1,10 @@
+package routers
+
+import (
+	"Cold_DeductionNotice/controllers"
+	beego "github.com/beego/beego/v2/server/web"
+)
+
+func init() {
+    beego.Router("/", &controllers.MainController{})
+}

+ 1 - 0
static/js/reload.min.js

@@ -0,0 +1 @@
+function b(a){var c=new WebSocket(a);c.onclose=function(){setTimeout(function(){b(a)},2E3)};c.onmessage=function(){location.reload()}}try{if(window.WebSocket)try{b("ws://localhost:12450/reload")}catch(a){console.error(a)}else console.log("Your browser does not support WebSockets.")}catch(a){console.error("Exception during connecting to Reload:",a)};

+ 24 - 0
tests/default_test.go

@@ -0,0 +1,24 @@
+package test
+
+import (
+	"path/filepath"
+	"runtime"
+	"testing"
+
+	_ "Cold_DeductionNotice/routers"
+
+	beego "github.com/beego/beego/v2/server/web"
+)
+
+func init() {
+	_, file, _, _ := runtime.Caller(0)
+	apppath, _ := filepath.Abs(filepath.Dir(filepath.Join(file, ".." + string(filepath.Separator))))
+	beego.TestBeegoInit(apppath)
+}
+
+
+// TestBeego is a sample to run an endpoint test
+func TestBeego(t *testing.T) {
+
+}
+

Разлика између датотеке није приказан због своје велике величине
+ 6 - 0
views/index.tpl


Неке датотеке нису приказане због велике количине промена