kbTask.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package timeTask
  2. import (
  3. "app.yhyue.com/moapp/jybase/common"
  4. . "biBackService/config"
  5. "biBackService/public"
  6. "fmt"
  7. "github.com/robfig/cron"
  8. "log"
  9. "time"
  10. )
  11. func Task() {
  12. cr := cron.New()
  13. cr.AddFunc(SysConfig.TimeTaskCron, kbTaskWechatPrivateMsg)
  14. cr.Start()
  15. //select {}
  16. }
  17. func kbTaskWechatPrivateMsg() {
  18. log.Println("start cron ......")
  19. //查询已完成工单
  20. fiveMinutesAgo := time.Now().Local().Add(-5 * time.Minute).Unix()
  21. data := KbDb.SelectBySql("SELECT t.id,t.title,u.name,u.username,u.email FROM `tasks` t LEFT JOIN users u ON t.creator_id = u.id WHERE date_moved > ? AND date_moved <= NOW() AND t.column_id = ? AND t.project_id = ?", fiveMinutesAgo, SysConfig.Project.FinishColumnId, SysConfig.Project.ProjectId)
  22. if data != nil && len(*data) > 0 {
  23. for _, v := range *data {
  24. log.Println("task id ", v["id"])
  25. //createUser := common.InterfaceToStr(v["username"])
  26. title := common.InterfaceToStr(v["title"])
  27. email := common.InterfaceToStr(v["email"])
  28. msg := fmt.Sprintf("您反馈的“%s”的问题已解决", title)
  29. userId := QywxUserIdMap[email]
  30. //发送企业微信
  31. if userId == "" {
  32. log.Println("未找到创建人企业微信userid ", common.InterfaceToStr(v["username"]), email)
  33. continue
  34. }
  35. ok, err := public.SendMsg(userId, msg)
  36. if !ok && err != nil {
  37. log.Printf("工单id:%v发送企业微信消息出错:%s", common.IntAll(v["id"]), err)
  38. }
  39. }
  40. }
  41. log.Println("定时任务完成.....")
  42. }