|
@@ -0,0 +1,176 @@
|
|
|
|
+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分钟会议消息提醒失败", 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
|
|
|
|
+}
|