diff --git a/bug-notify.log b/bug-notify.log
index 539d7ae..10b7cc2 100644
--- a/bug-notify.log
+++ b/bug-notify.log
@@ -699,3 +699,82 @@
{"level":"ERROR","time":"2024-09-15T09:35:31.055+0800","caller":"handle/timeing.go:89","msg":" 定时任务发送消息失败:","error":"description:机器人发送签名不匹配;solution:请确认签名和生成签名的时间戳必须都放在调用的网址中,请确认机器人的密钥加密和填写正确;link:请参考本接口对应文档获得具体要求,或者在https://open.dingtalk.com/document/ 搜索相关文档;"}
{"level":"ERROR","time":"2024-09-15T09:35:34.056+0800","caller":"handle/timeing.go:89","msg":" 定时任务发送消息失败:","error":"description:机器人发送签名不匹配;solution:请确认签名和生成签名的时间戳必须都放在调用的网址中,请确认机器人的密钥加密和填写正确;link:请参考本接口对应文档获得具体要求,或者在https://open.dingtalk.com/document/ 搜索相关文档;"}
{"level":"INFO","time":"2024-09-15T09:36:17.579+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T09:57:31.327+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"ERROR","time":"2024-09-15T09:57:34.599+0800","caller":"handle/timeing.go:89","msg":" 定时任务发送消息失败:","error":"description:机器人发送签名不匹配;solution:请确认签名和生成签名的时间戳必须都放在调用的网址中,请确认机器人的密钥加密和填写正确;link:请参考本接口对应文档获得具体要求,或者在https://open.dingtalk.com/document/ 搜索相关文档;"}
+{"level":"ERROR","time":"2024-09-15T09:57:37.082+0800","caller":"handle/timeing.go:89","msg":" 定时任务发送消息失败:","error":"description:机器人发送签名不匹配;solution:请确认签名和生成签名的时间戳必须都放在调用的网址中,请确认机器人的密钥加密和填写正确;link:请参考本接口对应文档获得具体要求,或者在https://open.dingtalk.com/document/ 搜索相关文档;"}
+{"level":"ERROR","time":"2024-09-15T09:57:40.058+0800","caller":"handle/timeing.go:89","msg":" 定时任务发送消息失败:","error":"description:机器人发送签名不匹配;solution:请确认签名和生成签名的时间戳必须都放在调用的网址中,请确认机器人的密钥加密和填写正确;link:请参考本接口对应文档获得具体要求,或者在https://open.dingtalk.com/document/ 搜索相关文档;"}
+{"level":"ERROR","time":"2024-09-15T09:57:43.077+0800","caller":"handle/timeing.go:89","msg":" 定时任务发送消息失败:","error":"description:机器人发送签名不匹配;solution:请确认签名和生成签名的时间戳必须都放在调用的网址中,请确认机器人的密钥加密和填写正确;link:请参考本接口对应文档获得具体要求,或者在https://open.dingtalk.com/document/ 搜索相关文档;"}
+{"level":"ERROR","time":"2024-09-15T09:57:46.074+0800","caller":"handle/timeing.go:89","msg":" 定时任务发送消息失败:","error":"description:机器人发送签名不匹配;solution:请确认签名和生成签名的时间戳必须都放在调用的网址中,请确认机器人的密钥加密和填写正确;link:请参考本接口对应文档获得具体要求,或者在https://open.dingtalk.com/document/ 搜索相关文档;"}
+{"level":"ERROR","time":"2024-09-15T09:57:49.066+0800","caller":"handle/timeing.go:89","msg":" 定时任务发送消息失败:","error":"description:机器人发送签名不匹配;solution:请确认签名和生成签名的时间戳必须都放在调用的网址中,请确认机器人的密钥加密和填写正确;link:请参考本接口对应文档获得具体要求,或者在https://open.dingtalk.com/document/ 搜索相关文档;"}
+{"level":"INFO","time":"2024-09-15T09:58:01.178+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T09:59:04.627+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"ERROR","time":"2024-09-15T09:59:08.223+0800","caller":"handle/timeing.go:88","msg":" 定时任务发送消息失败:","error":"错误描述:关键词不匹配;解决方案:请联系群管理员查看此机器人的关键词,并在发送的信息中包含此关键词;"}
+{"level":"ERROR","time":"2024-09-15T09:59:11.068+0800","caller":"handle/timeing.go:88","msg":" 定时任务发送消息失败:","error":"错误描述:关键词不匹配;解决方案:请联系群管理员查看此机器人的关键词,并在发送的信息中包含此关键词;"}
+{"level":"ERROR","time":"2024-09-15T09:59:14.078+0800","caller":"handle/timeing.go:88","msg":" 定时任务发送消息失败:","error":"错误描述:关键词不匹配;解决方案:请联系群管理员查看此机器人的关键词,并在发送的信息中包含此关键词;"}
+{"level":"ERROR","time":"2024-09-15T09:59:17.057+0800","caller":"handle/timeing.go:88","msg":" 定时任务发送消息失败:","error":"错误描述:关键词不匹配;解决方案:请联系群管理员查看此机器人的关键词,并在发送的信息中包含此关键词;"}
+{"level":"ERROR","time":"2024-09-15T09:59:20.070+0800","caller":"handle/timeing.go:88","msg":" 定时任务发送消息失败:","error":"错误描述:关键词不匹配;解决方案:请联系群管理员查看此机器人的关键词,并在发送的信息中包含此关键词;"}
+{"level":"ERROR","time":"2024-09-15T09:59:23.053+0800","caller":"handle/timeing.go:88","msg":" 定时任务发送消息失败:","error":"错误描述:关键词不匹配;解决方案:请联系群管理员查看此机器人的关键词,并在发送的信息中包含此关键词;"}
+{"level":"ERROR","time":"2024-09-15T09:59:26.076+0800","caller":"handle/timeing.go:88","msg":" 定时任务发送消息失败:","error":"错误描述:关键词不匹配;解决方案:请联系群管理员查看此机器人的关键词,并在发送的信息中包含此关键词;"}
+{"level":"ERROR","time":"2024-09-15T09:59:29.074+0800","caller":"handle/timeing.go:88","msg":" 定时任务发送消息失败:","error":"错误描述:关键词不匹配;解决方案:请联系群管理员查看此机器人的关键词,并在发送的信息中包含此关键词;"}
+{"level":"ERROR","time":"2024-09-15T09:59:32.075+0800","caller":"handle/timeing.go:88","msg":" 定时任务发送消息失败:","error":"错误描述:关键词不匹配;解决方案:请联系群管理员查看此机器人的关键词,并在发送的信息中包含此关键词;"}
+{"level":"ERROR","time":"2024-09-15T09:59:35.064+0800","caller":"handle/timeing.go:88","msg":" 定时任务发送消息失败:","error":"错误描述:关键词不匹配;解决方案:请联系群管理员查看此机器人的关键词,并在发送的信息中包含此关键词;"}
+{"level":"ERROR","time":"2024-09-15T09:59:38.070+0800","caller":"handle/timeing.go:88","msg":" 定时任务发送消息失败:","error":"错误描述:关键词不匹配;解决方案:请联系群管理员查看此机器人的关键词,并在发送的信息中包含此关键词;"}
+{"level":"INFO","time":"2024-09-15T09:59:45.169+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T10:01:15.725+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T10:01:59.486+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T10:03:32.086+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T10:09:47.693+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T10:09:57.517+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T10:11:33.949+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T10:13:30.235+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T10:19:47.349+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T10:20:45.975+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T10:21:40.598+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T14:34:48.829+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T14:34:49.597+0800","caller":"handle/notify-handle.go:122","msg":"更新事件,状态没有变化,不做处理"}
+{"level":"INFO","time":"2024-09-15T14:34:49.725+0800","caller":"handle/notify-handle.go:122","msg":"更新事件,状态没有变化,不做处理"}
+{"level":"INFO","time":"2024-09-15T14:35:15.512+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T14:36:20.647+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"ERROR","time":"2024-09-15T14:37:24.037+0800","caller":"handle/timeing.go:102","msg":" 定时任务发送消息失败:","error":"send too fast, exceed 20 times per minute"}
+{"level":"INFO","time":"2024-09-15T14:39:46.130+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T14:53:50.495+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T14:54:31.204+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T15:49:32.705+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T15:50:05.257+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T15:50:35.551+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T15:51:20.568+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T16:09:36.491+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T16:09:36.633+0800","caller":"handle/notify-handle.go:122","msg":"更新事件,状态没有变化,不做处理"}
+{"level":"INFO","time":"2024-09-15T16:09:36.634+0800","caller":"handle/notify-handle.go:122","msg":"更新事件,状态没有变化,不做处理"}
+{"level":"INFO","time":"2024-09-15T16:09:37.239+0800","caller":"handle/notify-handle.go:122","msg":"更新事件,状态没有变化,不做处理"}
+{"level":"INFO","time":"2024-09-15T16:09:37.241+0800","caller":"handle/notify-handle.go:122","msg":"更新事件,状态没有变化,不做处理"}
+{"level":"INFO","time":"2024-09-15T16:09:37.365+0800","caller":"handle/notify-handle.go:122","msg":"更新事件,状态没有变化,不做处理"}
+{"level":"INFO","time":"2024-09-15T16:09:37.368+0800","caller":"handle/notify-handle.go:122","msg":"更新事件,状态没有变化,不做处理"}
+{"level":"INFO","time":"2024-09-15T16:11:19.163+0800","caller":"handle/notify-handle.go:122","msg":"更新事件,状态没有变化,不做处理"}
+{"level":"INFO","time":"2024-09-15T16:12:11.971+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T16:14:12.062+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T16:14:25.541+0800","caller":"handle/notify-handle.go:122","msg":"更新事件,状态没有变化,不做处理"}
+{"level":"INFO","time":"2024-09-15T16:15:21.649+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T16:15:48.428+0800","caller":"handle/notify-handle.go:122","msg":"更新事件,状态没有变化,不做处理"}
+{"level":"INFO","time":"2024-09-15T16:16:38.146+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T16:16:47.190+0800","caller":"handle/notify-handle.go:230","msg":"任务没有处理者,也没有关注者,不做通知。"}
+{"level":"INFO","time":"2024-09-15T16:16:50.336+0800","caller":"handle/notify-handle.go:122","msg":"更新事件,状态没有变化,不做处理"}
+{"level":"INFO","time":"2024-09-15T16:17:31.948+0800","caller":"handle/notify-handle.go:230","msg":"任务没有处理者,也没有关注者,不做通知。"}
+{"level":"INFO","time":"2024-09-15T16:17:31.949+0800","caller":"handle/notify-handle.go:122","msg":"更新事件,状态没有变化,不做处理"}
+{"level":"INFO","time":"2024-09-15T16:18:05.926+0800","caller":"handle/notify-handle.go:230","msg":"任务没有处理者,也没有关注者,不做通知。"}
+{"level":"INFO","time":"2024-09-15T16:18:31.006+0800","caller":"handle/notify-handle.go:122","msg":"更新事件,状态没有变化,不做处理"}
+{"level":"INFO","time":"2024-09-15T16:19:21.631+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T16:20:16.464+0800","caller":"handle/notify-handle.go:230","msg":"任务没有处理者,也没有关注者,不做通知。"}
+{"level":"INFO","time":"2024-09-15T16:20:16.464+0800","caller":"handle/notify-handle.go:122","msg":"更新事件,状态没有变化,不做处理"}
+{"level":"INFO","time":"2024-09-15T16:20:20.740+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T16:20:44.087+0800","caller":"handle/notify-handle.go:230","msg":"任务没有处理者,也没有关注者,不做通知。"}
+{"level":"INFO","time":"2024-09-15T16:20:44.745+0800","caller":"handle/notify-handle.go:122","msg":"更新事件,状态没有变化,不做处理"}
+{"level":"INFO","time":"2024-09-15T16:22:39.561+0800","caller":"handle/notify-handle.go:230","msg":"任务没有处理者,也没有关注者,不做通知。"}
+{"level":"INFO","time":"2024-09-15T16:22:46.659+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T16:23:29.124+0800","caller":"handle/notify-handle.go:228","msg":"任务没有处理者,也没有关注者,不做通知。"}
+{"level":"INFO","time":"2024-09-15T16:24:46.863+0800","caller":"handle/notify-handle.go:228","msg":"任务没有处理者,也没有关注者,不做通知。"}
+{"level":"INFO","time":"2024-09-15T16:24:46.863+0800","caller":"handle/notify-handle.go:120","msg":"更新事件,状态没有变化,不做处理"}
+{"level":"INFO","time":"2024-09-15T16:25:02.408+0800","caller":"handle/notify-handle.go:228","msg":"任务没有处理者,也没有关注者,不做通知。"}
+{"level":"INFO","time":"2024-09-15T16:27:24.059+0800","caller":"handle/notify-handle.go:120","msg":"更新事件,状态没有变化,不做处理"}
+{"level":"INFO","time":"2024-09-15T16:33:25.860+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
+{"level":"INFO","time":"2024-09-15T16:35:10.959+0800","caller":"init-tool/logger.go:36","msg":"init logger success"}
diff --git a/dao/mysql.go b/dao/mysql.go
index ccfe039..f6da76f 100644
--- a/dao/mysql.go
+++ b/dao/mysql.go
@@ -46,5 +46,4 @@ func GetAllProjectID() (ids []int64, err error) {
func GetURLByProjectId(ids []int64) (urls []model.RobotUrl, err error) {
err = init_tool.DB.Table("custom_values").Where("customized_id in ? and customized_type = ?", ids, "Project").Select("customized_id,value").Find(&urls).Error
return
-
}
diff --git a/go.mod b/go.mod
index 861ae13..58afbef 100644
--- a/go.mod
+++ b/go.mod
@@ -51,6 +51,7 @@ require (
github.com/pingcap/log v1.1.1-0.20230317032135-a0d097d16e22 // indirect
github.com/pingcap/tidb/pkg/parser v0.0.0-20231103042308-035ad5ccbe67 // indirect
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
+ github.com/robfig/cron/v3 v3.0.0 // indirect
github.com/sagikazarmark/locafero v0.4.0 // indirect
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
github.com/shopspring/decimal v1.2.0 // indirect
diff --git a/go.sum b/go.sum
index 78e97c7..7b7ad2a 100644
--- a/go.sum
+++ b/go.sum
@@ -109,6 +109,8 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
+github.com/robfig/cron/v3 v3.0.0 h1:kQ6Cb7aHOHTSzNVNEhmp8EcWKLb4CbiMW9h9VyIhO4E=
+github.com/robfig/cron/v3 v3.0.0/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog=
github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ=
diff --git a/handle/notify-handle.go b/handle/notify-handle.go
index 5759ad8..099df28 100644
--- a/handle/notify-handle.go
+++ b/handle/notify-handle.go
@@ -41,8 +41,6 @@ func (h *MyEventHandler) OnPosSynced(header *replication.EventHeader, pos mysql.
func (h *MyEventHandler) OnRow(e *canal.RowsEvent) error {
action := e.Action
- fmt.Println("我是action", e.Action)
- fmt.Println("我是rows", e.Rows)
olddata, newdata := GetData(e)
//根据状态判断是否发送通知,如果是update行为,关注状态是否有变化,如果没有变化就不通知
switch action {
@@ -212,15 +210,26 @@ func Handle(newdata *model.DataChanges) (err error) {
}
//发消息的时候根据bug状态通知到作者或处理者
- //3、4、5、6通知创建者
- //1、2、7 通知处理者
+ //如果在任务创建的时候没有处理者也没有关注者,就不发送消息通知
+ //3、4、5、6通知创建者,但不通知处理者
+ //1、2、7 通知处理者,但不通知作者
+ var newUserIds []int32
if controller.CreateMap[newdata.StatusID] {
userids = append(userids, newdata.AuthorID)
+ //给处理者去掉
+ newUserIds = utils.DeleteSlice(userids, newdata.AssignedToID)
} else if controller.ProcessorMap[newdata.StatusID] {
userids = append(userids, newdata.AssignedToID)
+ //给作者去掉
+ newUserIds = utils.DeleteSlice(userids, newdata.AuthorID)
}
- phones, err := dao.GetPhoneByUserID(userids)
+ if newdata.AssignedToID == 0 && len(newUserIds) == 0 {
+ zap.L().Info("任务没有处理者,也没有关注者,不做通知。")
+ return
+ }
+
+ phones, err := dao.GetPhoneByUserID(newUserIds)
if err != nil {
zap.L().Error("获取手机号失败:", zap.Error(err))
return
diff --git a/handle/timeing.go b/handle/timeing.go
index f40b1cd..5f68519 100644
--- a/handle/timeing.go
+++ b/handle/timeing.go
@@ -2,14 +2,11 @@ package handle
import (
"bug-notify/api"
- "bug-notify/dao"
"bug-notify/model"
"bug-notify/utils"
"fmt"
- "github.com/andeya/goutil/calendar/cron"
+ "github.com/robfig/cron/v3"
"go.uber.org/zap"
- "strings"
- "time"
)
const (
@@ -22,74 +19,86 @@ var P = []int{NOTPROCESSEDID, PROCESSINGID}
func TimeingTasks() {
c := cron.New()
- c.AddFunc("0 21 * * *", func() {
+ c.AddFunc("36 16 * * *", func() {
//c.AddFunc("@every 3s", func() {
//获取所有项目id
- ids, err := dao.GetAllProjectID()
- if err != nil {
- zap.L().Error("获取项目id失败:", zap.Error(err))
- return
+ //ids, err := dao.GetAllProjectID()
+ //if err != nil {
+ // zap.L().Error("获取项目id失败:", zap.Error(err))
+ // return
+ //}
+ ////根据项目id获取相对应的回调地址并加签
+ //urls, err := dao.GetURLByProjectId(ids)
+ //if err != nil {
+ // zap.L().Error("获取钉钉webhook失败:", zap.Error(err))
+ // return
+ //}
+ //urlMap := make(map[int64]string)
+ //for i := 0; i < len(urls); i++ {
+ // urlMap[urls[i].CustomizedId] = urls[i].Value
+ //}
+ //for _, id := range ids {
+ // a, err := dao.GetStatusNumByID(P, id)
+ // if err != nil {
+ // zap.L().Error("查询数量失败:", zap.Error(err))
+ // return
+ // }
+ // maps := map[int]map[int]int{}
+ // for _, value := range a {
+ // childMap := make(map[int]int)
+ // childMap[value.StatusId] = int(value.Count)
+ // maps[value.PriorityId] = childMap
+ // }
+ // for i := 0; i < 3; i++ {
+ // for j := 0; j < 2; j++ {
+ // if _, ok := maps[i+1][j+1]; !ok {
+ // maps[i+1][j+1] = 0
+ // }
+ // }
+ // }
+
+ // 使用markdown格式
+
+ //content := "# %s 任务状态统计 \n" +
+ // "\n| **级别** | **未处理** | **处理中** | \n" +
+ // "\n| :--: | :--: | :--: | \n" +
+ // "\n| **重要** | %d | %d | \n" +
+ // "\n| **中等** | %d | %d | \n" +
+ // "\n| **普通** | %d | %d | \n" +
+ // "\n [@所有人](#)\n"
+ //nowTime := time.Now().Format("2006-01-02")
+
+ //content := fmt.Sprintf("# %s 任务状态统计\n"+
+ // "\n| **级别** | **未处理** | **处理中** |\n"+
+ // "\n| ---- | ---- | ---- |\n"+
+ // "\n| **重要** | %d | %d |\n"+
+ // "\n| **中等** | %d | %d |\n"+
+ // "\n| **普通** | %d | %d |\n"+
+ // "\n [@所有人](#)\n", nowTime, maps[1][2], maps[1][3], maps[2][2], maps[2][3], maps[3][2], maps[3][3])
+ //分割字符串
+ //split := strings.Split(urlMap[id], "@")
+ //var secret string
+ //if len(split) >= 2 {
+ // secret = split[1]
+ //}
+ content := fmt.Sprintf(
+ "\n--- \n" +
+ "**所属项目:** 123|" +
+ "**任务主题:** 456" +
+ "**任务状态:** 789")
+ sign := utils.DingSecret("SEC7c4636349cf3dde4ce3ba607a236e2adf2b74d32935832ed5d86d097726b790f")
+ data := model.SendMsg{
+ DingRobotURL: "https://oapi.dingtalk.com/robot/send?access_token=8ff6cde9a01910e897cb6461e75bd515ed9d683cc4924aad9439fda3e9689de1" + sign,
+ Content: content,
+ IsAtAll: true,
+ MsgType: "markdown",
}
- //根据项目id获取相对应的回调地址并加签
- urls, err := dao.GetURLByProjectId(ids)
+ err := api.SendMessage(data)
if err != nil {
- zap.L().Error("获取钉钉webhook失败:", zap.Error(err))
+ zap.L().Error(" 定时任务发送消息失败:", zap.Error(err))
return
}
- urlMap := make(map[int64]string)
- for i := 0; i < len(urls); i++ {
- urlMap[urls[i].CustomizedId] = urls[i].Value
- }
- for _, id := range ids {
- a, err := dao.GetStatusNumByID(P, id)
- if err != nil {
- zap.L().Error("查询数量失败:", zap.Error(err))
- return
- }
- maps := map[int]map[int]int{}
- for _, value := range a {
- childMap := make(map[int]int)
- childMap[value.StatusId] = int(value.Count)
- maps[value.PriorityId] = childMap
- }
- for i := 0; i < 3; i++ {
- for j := 0; j < 2; j++ {
- if _, ok := maps[i+1][j+1]; !ok {
- maps[i+1][j+1] = 0
- }
- }
- }
-
- // 使用markdown格式
- content := "# %s 任务状态统计 \n" +
- "\n| **级别** | **未处理** | **处理中** | " +
- "\n| :--: | :--: | :--: | " +
- "\n| **重要** | %d | %d | " +
- "\n| **中等** | %d | %d | " +
- "\n| **普通** | %d | %d |" +
- "\n\n [@所有人](#)\n"
- nowTime := time.Now().Format("2006-01-02")
-
- content = fmt.Sprintf(content, nowTime, maps[1][2], maps[1][3], maps[2][2], maps[2][3], maps[3][2], maps[3][3])
- //分割字符串
- split := strings.Split(urlMap[id], "@")
- var secret string
- if len(split) >= 2 {
- secret = split[1]
- }
- sign := utils.DingSecret(secret)
- data := model.SendMsg{
- DingRobotURL: split[0] + sign,
- Content: content,
- IsAtAll: true,
- MsgType: "markdown",
- }
- err = api.SendMessage(data)
- if err != nil {
- zap.L().Error(" 定时任务发送消息失败:", zap.Error(err))
- return
- }
- }
+ //}
})
c.Start()
}
diff --git a/main.go b/main.go
index 32394f5..dfa2994 100644
--- a/main.go
+++ b/main.go
@@ -16,7 +16,7 @@ func main() {
engine := gin.Default()
//启动一个协程用于执行binlog
go safelyRun(handle.NotifyHandle)
- go safelyRun(handle.TimeingTasks)
+ //go safelyRun(handle.TimeingTasks)
engine.Run(init_tool.Conf.ProjectConfig.Address + ":" + init_tool.Conf.ProjectConfig.Port)
}
diff --git a/pos.txt b/pos.txt
index d55c6d2..be533ae 100644
--- a/pos.txt
+++ b/pos.txt
@@ -1 +1 @@
-{"Name":"binlog.000022","Pos":282625}
\ No newline at end of file
+{"Name":"binlog.000022","Pos":364616}
\ No newline at end of file
diff --git a/utils/utils.go b/utils/utils.go
index e59ae01..c93e31d 100644
--- a/utils/utils.go
+++ b/utils/utils.go
@@ -26,3 +26,15 @@ func DingSecret(secret string) (sign string) {
sign = "×tamp=" + timestamp + "&sign=" + signature
return
}
+
+// 移除切片元素
+func DeleteSlice(s []int32, elem int32) []int32 {
+ j := 0
+ for _, v := range s {
+ if v != elem && v != 0 {
+ s[j] = v
+ j++
+ }
+ }
+ return s[:j]
+}