123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- package services
- import (
- "context"
- "crypto/tls"
- "encoding/json"
- "errors"
- "fmt"
- "hongze/hongze_cygx/models"
- "hongze/hongze_cygx/utils"
- "io/ioutil"
- "net/http"
- "strings"
- "time"
- )
- //专门处理活动定时任务相关的业务逻辑
- type VmpRobotMeeting struct {
- ModeID int `json:"mode_id"`
- PhoneNumber string `json:"phone_number"`
- MeetingPassword string `json:"meeting_password"`
- MeetingStartTime string `json:"meeting_start_time"`
- MeetingTitle string `json:"meeting_title"`
- MeetingTypeID int `json:"meeting_type_id"`
- ParsingMethodID int `json:"parsing_method_id"`
- IndustryID int `json:"industry_id"`
- FieldID int `json:"field_id"`
- Stock string `json:"stock"`
- Remark string `json:"remark"`
- ProjectID int `json:"project_id"`
- AuthorPhoneNumber int64 `json:"author_phone_number"`
- ExecutionStatusID int `json:"execution_status_id"`
- ParsingID int `json:"parsing_id"`
- SerialNumber string `json:"serial_number"`
- ChannelID int `json:"channel_id"`
- IsActive int `json:"is_active"`
- }
- type VmpRobotMeetingDataResult struct {
- Code int `json:"code"`
- Msg string `json:"msg"`
- Data VmpRobotMeetingResult `json:"data"`
- }
- type VmpRobotMeetingResult struct {
- ModeID int `json:"mode_id"`
- PhoneNumber string `json:"phone_number"`
- MeetingPassword string `json:"meeting_password"`
- MeetingStartTime string `json:"meeting_start_time"`
- MeetingTitle string `json:"meeting_title"`
- MeetingTypeID int `json:"meeting_type_id"`
- ParsingMethodID int `json:"parsing_method_id"`
- IndustryID int `json:"industry_id"`
- FieldID int `json:"field_id"`
- Stock string `json:"stock"`
- Remark string `json:"remark"`
- ProjectID int `json:"project_id"`
- AuthorPhoneNumber int64 `json:"author_phone_number"`
- ExecutionStatusID int `json:"execution_status_id"`
- ParsingID int `json:"parsing_id"`
- SerialNumber string `json:"serial_number"`
- ChannelID int `json:"channel_id"`
- IsActive int `json:"is_active"`
- VmpRobotMeetinId int `json:"id"`
- }
- //func init() {
- // PushVmpRobotMeeting()
- //}
- // 研选活动会前15分钟推送给上海那边的机器人
- func PushVmpRobotMeeting(cont context.Context) (err error) {
- //func PushVmpRobotMeeting() (err error) {
- defer func() {
- if err != nil {
- //go utils.SendAlarmMsg("15分钟会议消息提醒失败err :"+err.Error(), 2)
- go utils.SendAlarmMsg(fmt.Sprint("研选活动会前15分钟推送给上海那边的机器人失败 PushVmpRobotMeeting Err:", err.Error()), 2)
- //fmt.Println("发送失败,Err:", err.Error())
- }
- }()
- postUrl := "https://vmp.hzinsights.com/v2api/meeting"
- authorization := "bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxNTAwMDEyMzA1NiIsInBob25lX251bWJlciI6IjE1MDAwMTIzMDU2IiwibmFtZSI6IumrmOS6puaWhyIsImVudHJhbmNlIjoicGFzc3d3b3JkIiwiaWF0IjoxNzAzODM1OTc4LCJleHAiOjE3MDM4Mzk1Nzh9.qX6EFkVPn2R0SqIQXJ4tyub--iiqKqrJnz9lbdcVetw"
- var condition string
- var pars []interface{}
- endDate := time.Now().Add(+time.Minute * 15).Format(utils.FormatDateTime)
- condition = ` AND activity_time <= ? AND activity_time >= NOW() AND publish_status = 1 AND chart_permission_id = ? AND vmp_robot_meeting_id = 0 AND active_state = 1 AND mainland_tell != '' `
- pars = append(pars, endDate, utils.CHART_PERMISSION_ID_YANXUAN)
- listActivity, e := models.GetCygxActivityList(condition, pars, 0, 10)
- if e != nil && e.Error() != utils.ErrNoRow() {
- err = errors.New("GetCygxActivityList, Err: " + e.Error())
- return
- }
- //fmt.Println(len(listActivity))
- //return
- if len(listActivity) == 0 {
- return
- }
- for _, v := range listActivity {
- item := new(VmpRobotMeeting)
- item.ModeID = 2
- item.PhoneNumber = utils.GetArabicNumbers(v.MainlandTell)
- item.MeetingPassword = utils.GetArabicNumbers(v.ParticipationCode) + "#" // 业务需求,必须带有一个#
- item.MeetingStartTime = v.ActivityTime
- item.MeetingTitle = v.ActivityName
- item.MeetingTypeID = 1
- item.ParsingMethodID = 0
- item.IndustryID = 13
- item.FieldID = 0
- item.Stock = ""
- item.Remark = v.Remarks // 处理HTML格式样式
- item.ProjectID = 1
- item.AuthorPhoneNumber = 15000123056 // 高亦文 手机号
- item.ExecutionStatusID = 0
- item.ParsingID = 0
- item.SerialNumber = ""
- item.ChannelID = -1
- item.IsActive = 1
- jsonBody, e := json.Marshal(item)
- if e != nil {
- err = errors.New("json.Marshal, Err: " + e.Error())
- fmt.Println("json.Marshal Err:" + err.Error())
- return
- }
- //fmt.Println(item)
- //return
- tr := &http.Transport{
- TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
- }
- client := &http.Client{Transport: tr}
- req, e := http.NewRequest("POST", postUrl, strings.NewReader(string(jsonBody)))
- if e != nil {
- err = e
- return
- }
- req.Header.Set("Content-Type", "application/json")
- req.Header.Set("Authorization", authorization)
- resp, e := client.Do(req)
- if e != nil {
- err = errors.New("client.Do Err: " + e.Error())
- fmt.Println("client.Do Err:" + err.Error())
- return
- }
- //fmt.Println(resp)
- defer resp.Body.Close()
- body, e := ioutil.ReadAll(resp.Body)
- if e != nil {
- fmt.Println("err:" + err.Error())
- err = e
- return
- }
- result := new(VmpRobotMeetingDataResult)
- e = json.Unmarshal(body, &result)
- if e != nil {
- fmt.Println(" json.Unmarshal Err:" + err.Error())
- err = errors.New("json.Unmarshal Err: " + e.Error())
- return
- }
- vmpRobotMeetinId := result.Data.VmpRobotMeetinId
- e = models.UpdateActivityVmpRobotMeetingId(vmpRobotMeetinId, v.ActivityId)
- if e != nil {
- fmt.Println("UpdateActivityVmpRobotMeetingId Err:" + err.Error())
- err = errors.New("UpdateActivityVmpRobotMeetingId Err: " + e.Error())
- return
- }
- itemlog := new(models.CygxShanghaiCompanyLog)
- itemlog.CreateTime = time.Now()
- itemlog.Url = postUrl
- itemlog.Body = string(jsonBody)
- itemlog.Result = string(body)
- go models.AddCygxShanghaiCompanyLog(itemlog)
- }
- return
- }
|