修改http请求返回数据/钉钉消息通知文案修改

This commit is contained in:
linxiaozhi
2019-02-15 14:26:42 +08:00
parent 09fdd8ad31
commit 7f3ce29b08
4 changed files with 64 additions and 49 deletions

View File

@@ -353,21 +353,19 @@ func (j *Job) Run() {
} else if j.task.NotifyType == 2 && len(dingtalk) > 0 { } else if j.task.NotifyType == 2 && len(dingtalk) > 0 {
TextStatus := []string{ TextStatus := []string{
" 超时", "超时",
" 错误", "错误",
" 正常", "正常",
} }
content := fmt.Sprintf( content := fmt.Sprintf(
`定时任务异常:%s `任务执行异常详情
任务执行详情:
任务 ID%d 任务 ID%d
任务名称:%s 任务名称:%s
执行时间:%s 执行时间:%s
执行耗时:%f秒 执行耗时:%f秒
执行状态:%s 执行状态:%s
任务执行输出 任务执行输出
%s`, %s`,
j.task.TaskName,
j.task.Id, j.task.Id,
j.task.TaskName, j.task.TaskName,
beego.Date(time.Unix(log.CreateTime, 0), "Y-m-d H:i:s"), beego.Date(time.Unix(log.CreateTime, 0), "Y-m-d H:i:s"),

View File

@@ -8,24 +8,17 @@
package libs package libs
import ( import (
"encoding/json"
"github.com/pkg/errors" "github.com/pkg/errors"
"io/ioutil" "io/ioutil"
"net/http"
"strings" "strings"
"net/http"
"io" "io"
) )
type AjaxReturn struct { func HttpGet(url string, param map[string]string) (string, error) {
Status int `json:"status"`
Message string `json:"message"`
Data interface{} `json:"data"`
}
func HttpGet(url string, param map[string]string) error {
if url == "" { if url == "" {
return errors.Errorf("url %s is not exists", url) return "", errors.Errorf("url %s is not exists", url)
} }
paramStr := "" paramStr := ""
for k, v := range param { for k, v := range param {
@@ -40,7 +33,7 @@ func HttpGet(url string, param map[string]string) error {
resp, err := http.Get(url) resp, err := http.Get(url)
if err != nil { if err != nil {
return err return "", err
} }
defer resp.Body.Close() defer resp.Body.Close()
@@ -48,31 +41,27 @@ func HttpGet(url string, param map[string]string) error {
body, err := ioutil.ReadAll(resp.Body) body, err := ioutil.ReadAll(resp.Body)
if err != nil { if err != nil {
return err return "", err
} }
ajaxData := AjaxReturn{}
json.Unmarshal(body, &ajaxData) return string(body), nil
if ajaxData.Status != 200 {
return errors.Errorf("msg %s", ajaxData.Message)
}
return nil
} }
func HttpPost(url string, contentType string, body io.Reader) error { func HttpPost(url string, contentType string, body io.Reader) (string, error) {
resp, err := http.Post(url, contentType, body) resp, err := http.Post(url, contentType, body)
if err != nil { if err != nil {
return err return "", err
} }
defer resp.Body.Close() defer resp.Body.Close()
_, resErr := ioutil.ReadAll(resp.Body) resBody, err := ioutil.ReadAll(resp.Body)
if resErr != nil { if err != nil {
return resErr return "", err
} }
return nil return string(resBody), nil
} }

View File

@@ -17,6 +17,15 @@ import (
"bytes" "bytes"
) )
type Msg struct {
MsgType string `json:"msgtype"`
Text *Text `json:"text"`
}
type Text struct {
Content string `json:"content"`
}
type Dingtalk struct { type Dingtalk struct {
Dingtalks []string Dingtalks []string
Content string Content string
@@ -39,7 +48,7 @@ func init() {
if !ok { if !ok {
return return
} }
if err := m.SendDingtalk(); err != nil { if _, err := m.SendDingtalk(); err != nil {
beego.Error("SendDingtalk:", err.Error()) beego.Error("SendDingtalk:", err.Error())
} }
} }
@@ -62,16 +71,7 @@ func SendDingtalkToChan(dingtalks []string, content string) bool {
} }
} }
type Msg struct { func (s *Dingtalk) SendDingtalk() (string, error) {
MsgType string `json:"msgtype"`
Text *Text `json:"text"`
}
type Text struct {
Content string `json:"content"`
}
func (s *Dingtalk) SendDingtalk() error {
for _, v := range s.Dingtalks { for _, v := range s.Dingtalks {
@@ -83,13 +83,16 @@ func (s *Dingtalk) SendDingtalk() error {
msgJson, err := json.Marshal(msg) msgJson, err := json.Marshal(msg)
if err != nil { if err != nil {
log.Println(err) log.Println(err)
return "", err
} }
url := fmt.Sprintf(DingtalkUrl, v) url := fmt.Sprintf(DingtalkUrl, v)
resErr := libs.HttpPost(url, "application/json;charset=utf-8", bytes.NewBuffer(msgJson)) res, err := libs.HttpPost(url, "application/json;charset=utf-8", bytes.NewBuffer(msgJson))
if resErr != nil { if err != nil {
log.Println(err) log.Println(err)
return "", err
} }
return res, err
} }
return nil return "", nil
} }

View File

@@ -12,8 +12,16 @@ import (
"github.com/george518/PPGo_Job/libs" "github.com/george518/PPGo_Job/libs"
"log" "log"
"time" "time"
"encoding/json"
"github.com/pkg/errors"
) )
type AjaxReturn struct {
Status int `json:"status"`
Message string `json:"message"`
Data interface{} `json:"data"`
}
type Sms struct { type Sms struct {
Mobiles []string Mobiles []string
Param map[string]string Param map[string]string
@@ -36,7 +44,7 @@ func init() {
if !ok { if !ok {
return return
} }
if err := m.SendSms(); err != nil { if _, err := m.SendSms(); err != nil {
beego.Error("SendSms:", err.Error()) beego.Error("SendSms:", err.Error())
} }
} }
@@ -59,13 +67,30 @@ func SendSmsToChan(mobiles []string, param map[string]string) bool {
} }
} }
func (s *Sms) SendSms() error { func (s *Sms) SendSms() (string, error) {
for _, v := range s.Mobiles { for _, v := range s.Mobiles {
s.Param["mobile"] = v s.Param["mobile"] = v
err := libs.HttpGet(SmsUrl, s.Param) res, err := libs.HttpGet(SmsUrl, s.Param)
if err != nil { if err != nil {
log.Println(err) log.Println(err)
return "", err
} }
ajaxData := AjaxReturn{}
jsonErr := json.Unmarshal([]byte(res), &ajaxData)
if jsonErr != nil {
return "", jsonErr
}
if ajaxData.Status != 200 {
return "", errors.Errorf("msg %s", ajaxData.Message)
}
return res, nil
} }
return nil return "", nil
} }