123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- package ice_message
- import (
- "bytes"
- "encoding/json"
- "errors"
- "eta_gn/eta_api/models"
- "eta_gn/eta_api/utils"
- "fmt"
- "io"
- "net/http"
- )
- // pushIceMessageLib 推送ICE消息
- func pushIceMessageLib(req *models.ReportIceMsgPushLibReq) (err error) {
- defer func() {
- if err != nil {
- utils.FileLog.Error("pushIceMessageLib, err:", err.Error())
- }
- }()
- if req == nil {
- return errors.New("request cannot be nil")
- }
- if utils.IceMsgPushUrl == "" {
- return errors.New("iceMsgPushUrl cannot be empty")
- }
- if req.PlatformId == "" {
- return errors.New("platformId cannot be empty")
- }
- // 参数校验
- req.Type = 0 // 此处必须传入:2,如果为非待办则传0, 本次传输的是订阅号消息,故传0
- if req.Title == "" {
- return errors.New("title cannot be empty")
- }
- if req.Code == "" { //用户工号
- return errors.New("code cannot be empty")
- }
-
- if req.URL == "" {
- return errors.New("url cannot be empty")
- }
- if req.TaskId == "" {
- return errors.New("taskId cannot be empty")
- }
- if req.SystemId == "" {
- return errors.New("systemId cannot be empty")
- }
- req.IsCompleted = 0
- // 准备请求数据
- jsonData, err := json.Marshal(req)
- if err != nil {
- return err
- }
- // 发送HTTP请求
- client := &http.Client{}
- request, err := http.NewRequest("POST", utils.IceMsgPushUrl, bytes.NewBuffer(jsonData))
- if err != nil {
- return err
- }
- request.Header.Set("Content-Type", "application/json")
- // 执行请求
- response, err := client.Do(request)
- if err != nil {
- return err
- }
- defer response.Body.Close()
- // 读取响应
- body, err := io.ReadAll(response.Body)
- if err != nil {
- return err
- }
- utils.FileLog.Info("pushIceMessageLib, req:", string(jsonData), "body:", string(body))
- // 解析响应
- var result models.IceMsgPushLibResp
- if err = json.Unmarshal(body, &result); err != nil {
- return err
- }
- // 检查响应状态
- if result.Code != 0 {
- return errors.New(result.Msg)
- }
- if result.Info.Ret != "0" {
- return errors.New(result.Info.Msg)
- }
- return nil
- }
- func PushIceMessage(title, summary, content, code, taskId string, reportId, pptId int, url string, classifyName string) (err error) {
- if url == "" {
- err = errors.New("url cannot be empty")
- return
- }
- platformId := GetIcePlatformIdByClassifyName(classifyName)
- req := &models.ReportIceMsgPushLibReq{
- PlatformId: platformId,
- Title: title,
- Summary: summary,
- Content: content,
- Code: code,
- URL: url,
- TaskId: taskId,
- SystemId: taskId,
- }
- //fmt.Println("req:", req)
-
- err = pushIceMessageLib(req)
- if err != nil {
- err = errors.New(fmt.Sprintf("推送失败,Err:%s", err.Error()))
- return err
- }
- return nil
- }
- //生产platform_id:
- //煤炭市场日报:e3Rz
- //煤炭市场快讯:e3Ry
- //煤炭市场周报(简报):e3R9
- //煤炭市场周报:e3R8
- //煤炭市场月报:e3t1
- func GetIcePlatformIdByClassifyName(classifyName string) (string) {
- switch classifyName {
- case "煤炭市场日报":
- return "e3Rz"
- case "煤炭市场快讯":
- return "e3Ry"
- case "煤炭市场周报(简报)":
- return "e3R9"
- case "煤炭市场周报":
- return "e3R8"
- case "煤炭市场月报":
- return "e3t1"
- }
- return ""
- }
|