|
@@ -6,6 +6,7 @@ import (
|
|
|
"errors"
|
|
|
"fmt"
|
|
|
"hongze/hongze_cygx/models"
|
|
|
+ "hongze/hongze_cygx/models/yidong"
|
|
|
"hongze/hongze_cygx/utils"
|
|
|
"io/ioutil"
|
|
|
"net/http"
|
|
@@ -975,3 +976,405 @@ type YiDongSignAppointmentsForThirdResp struct {
|
|
|
Success bool `json:"success"` // 成功标识,true:成功;false:失败。可作为判断报名是否成功的标识
|
|
|
Timestamp float64 `json:"timestamp"` // 时间戳
|
|
|
}
|
|
|
+
|
|
|
+//func init() {
|
|
|
+// GroupingActivityToYiDong()
|
|
|
+//}
|
|
|
+
|
|
|
+// GroupingActivityToYiDong 建立与易董的活动关联
|
|
|
+func GroupingActivityToYiDong(cont context.Context) (err error) {
|
|
|
+ //func GroupingActivityToYiDong() (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ go utils.SendAlarmMsg("建立与易董的活动关联失败 GroupingActivityToYiDong"+err.Error(), 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ startDate := time.Now().AddDate(0, 0, -2).Format(utils.FormatDate)
|
|
|
+ endDate := time.Now().AddDate(0, 0, 0).Format(utils.FormatDate)
|
|
|
+
|
|
|
+ var token string
|
|
|
+ token, _ = GetYiDongToken()
|
|
|
+ url := utils.YiDongZhengTongYunUrl + "interact/activityManageApi/getRoadshowList?access_token=" + token
|
|
|
+ method := "POST"
|
|
|
+ payload := strings.NewReader(`{
|
|
|
+ "meetingStatus": "2",
|
|
|
+ "conveneStartStr": "` + startDate + `",
|
|
|
+ "conveneEndStr": "` + endDate + `"}`)
|
|
|
+ client := &http.Client{}
|
|
|
+ req, err := http.NewRequest(method, url, payload)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ utils.FileLog.Info(err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ req.Header.Add("Content-Type", "application/json")
|
|
|
+
|
|
|
+ res, err := client.Do(req)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ utils.FileLog.Info(err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer res.Body.Close()
|
|
|
+ var ApifoxModal *models.ApifoxModal
|
|
|
+ body, err := ioutil.ReadAll(res.Body)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ utils.FileLog.Info(err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //添加请求日志记录
|
|
|
+ itemApiLog := new(models.CygxThreeApiLog)
|
|
|
+ itemApiLog.CreateTime = time.Now()
|
|
|
+ itemApiLog.Source = 1
|
|
|
+ itemApiLog.Url = url
|
|
|
+ itemApiLog.Body = utils.ReplaceSpaceAndWrap(fmt.Sprint(payload))
|
|
|
+ itemApiLog.Result = string(body)
|
|
|
+ go models.AddCygxThreeApiLog(itemApiLog)
|
|
|
+
|
|
|
+ err = json.Unmarshal(body, &ApifoxModal)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("Getres.PublicGetDate Err:", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //var itemsAdd []*models.CygxActivity
|
|
|
+ if len(ApifoxModal.Result) > 0 {
|
|
|
+ actList := ApifoxModal.Result
|
|
|
+ for _, v := range actList {
|
|
|
+ //同步有效性 1有效,0失效
|
|
|
+ if v.SyncFlag == "0" {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ var yidongTitle string
|
|
|
+ titleSlice := strings.Split(v.Title, "】")
|
|
|
+
|
|
|
+ for _, vt := range titleSlice {
|
|
|
+ yidongTitle = vt
|
|
|
+ }
|
|
|
+
|
|
|
+ e := models.UpdateCygxActivityyidongActivityId(v.ID, v.Start, yidongTitle)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("UpdateCygxActivityyidongActivityId, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+// GetLoginAuthCodeReq 获取登录编码请求体
|
|
|
+type GetYiDongActivityByApiReq struct {
|
|
|
+ MeetingStatus string `json:"meetingStatus" description:"会议状态必需(0未开始1进行中2已结束)多个逗号分隔"`
|
|
|
+ ConveneStartStr string `json:"conveneStartStr" description:"活动日期范围开始"`
|
|
|
+ ConveneEndStr string `json:"conveneEndStr" description:"活动日期范围结束"`
|
|
|
+ LastUpdateTime string `json:"lastUpdateTime" description:"上次同步时间(用于筛选更新时间大于同步时间的活动数据)"`
|
|
|
+}
|
|
|
+
|
|
|
+type GetYiDongActivityMeetByActivityIdReq struct {
|
|
|
+ ActivityId string `json:"activityId" description:"活动ID"`
|
|
|
+}
|
|
|
+
|
|
|
+// 根据条件获取易董建会列表信息
|
|
|
+func GetYiDongActivityListByApi(param *GetYiDongActivityByApiReq) (yiDongResult []models.Result) {
|
|
|
+ var err error
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ go utils.SendAlarmMsg(fmt.Sprint("根据条件获取易董建会列表信息 GetYiDongActivityListByApi"+err.Error(), param), 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ var token string
|
|
|
+ token, _ = GetYiDongToken()
|
|
|
+ url := utils.YiDongZhengTongYunUrl + "interact/activityManageApi/getRoadshowList?access_token=" + token
|
|
|
+ method := "POST"
|
|
|
+ data, e := json.Marshal(param)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("data json marshal err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ payload := strings.NewReader(string(data))
|
|
|
+ client := &http.Client{}
|
|
|
+ req, e := http.NewRequest(method, url, payload)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New(" http.NewRequest err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ req.Header.Add("Content-Type", "application/json")
|
|
|
+
|
|
|
+ res, e := client.Do(req)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New(" client.Do err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer res.Body.Close()
|
|
|
+ var ApifoxModal *models.ApifoxModal
|
|
|
+ body, e := ioutil.ReadAll(res.Body)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New(" ioutil.ReadAll: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //添加请求日志记录
|
|
|
+ itemApiLog := new(models.CygxThreeApiLog)
|
|
|
+ itemApiLog.CreateTime = time.Now()
|
|
|
+ itemApiLog.Source = 1
|
|
|
+ itemApiLog.Url = url
|
|
|
+ itemApiLog.Body = utils.ReplaceSpaceAndWrap(fmt.Sprint(payload))
|
|
|
+ itemApiLog.Result = string(body)
|
|
|
+ go models.AddCygxThreeApiLog(itemApiLog)
|
|
|
+
|
|
|
+ err = json.Unmarshal(body, &ApifoxModal)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("Getres.PublicGetDate Err:", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(ApifoxModal.Result) > 0 {
|
|
|
+ yiDongResult = ApifoxModal.Result
|
|
|
+ } else {
|
|
|
+ yiDongResult = make([]models.Result, 0)
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// 根据条件获取易董活动ID获取到会信息
|
|
|
+func GetYiDongActivityMeetDataByaAtivityId(ativityId string) (yiDongResult []models.Resultuser) {
|
|
|
+ var err error
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ go utils.SendAlarmMsg(fmt.Sprint("根据条件获取易董建会列表信息 GetYiDongActivityListByApi"+err.Error(), ativityId), 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ var token string
|
|
|
+ token, _ = GetYiDongToken()
|
|
|
+ url := utils.YiDongZhengTongYunUrl + "interact/activityManageApi/getAttendPersonList?access_token=" + token
|
|
|
+ method := "POST"
|
|
|
+ param := new(GetYiDongActivityMeetByActivityIdReq)
|
|
|
+ param.ActivityId = ativityId
|
|
|
+ data, e := json.Marshal(param)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("data json marshal err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ payload := strings.NewReader(string(data))
|
|
|
+ client := &http.Client{}
|
|
|
+ req, e := http.NewRequest(method, url, payload)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New(" http.NewRequest err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ req.Header.Add("Content-Type", "application/json")
|
|
|
+ res, e := client.Do(req)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New(" client.Do err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer res.Body.Close()
|
|
|
+ var ApifoxModal *models.ApifoxModaluser
|
|
|
+ body, e := ioutil.ReadAll(res.Body)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New(" ioutil.ReadAll err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ e = json.Unmarshal(body, &ApifoxModal)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New(" json.Unmarshal err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //添加请求日志记录
|
|
|
+ itemApiLog := new(models.CygxThreeApiLog)
|
|
|
+ itemApiLog.CreateTime = time.Now()
|
|
|
+ itemApiLog.Source = 1
|
|
|
+ itemApiLog.Url = url
|
|
|
+ itemApiLog.Body = utils.ReplaceSpaceAndWrap(fmt.Sprint(payload))
|
|
|
+ itemApiLog.Result = string(body)
|
|
|
+ go models.AddCygxThreeApiLog(itemApiLog)
|
|
|
+
|
|
|
+ err = json.Unmarshal(body, &ApifoxModal)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("Getres.PublicGetDate Err:", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(ApifoxModal.Result) > 0 {
|
|
|
+ yiDongResult = ApifoxModal.Result
|
|
|
+ } else {
|
|
|
+ yiDongResult = make([]models.Resultuser, 0)
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+//func init() {
|
|
|
+// UpdateYiDongActivityDataToCygx()
|
|
|
+//}
|
|
|
+
|
|
|
+// 更新易董活动信息,到会信息到查研观向数据库
|
|
|
+func UpdateYiDongActivityDataToCygx(cont context.Context) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ go utils.SendAlarmMsg(fmt.Sprint("更新易董活动信息,到会信息到查研观向数据库 UpdateYiDongActivityDataToCygx"+err.Error()), 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ startDate := time.Now().AddDate(0, 0, -3).Format(utils.FormatDate)
|
|
|
+ endDate := time.Now().AddDate(0, 0, 0).Format(utils.FormatDate)
|
|
|
+
|
|
|
+ param := new(GetYiDongActivityByApiReq)
|
|
|
+ param.MeetingStatus = "2"
|
|
|
+ param.ConveneStartStr = startDate
|
|
|
+ param.ConveneEndStr = endDate
|
|
|
+ actList := GetYiDongActivityListByApi(param)
|
|
|
+
|
|
|
+ if len(actList) == 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var itmes []*yidong.CygxYidongActivity
|
|
|
+ var YidongIds []string
|
|
|
+ for _, v := range actList {
|
|
|
+ YidongIds = append(YidongIds, v.ID)
|
|
|
+ }
|
|
|
+
|
|
|
+ listCygx, e := yidong.GetCygxYidongActivityListByYidongIds(YidongIds)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxYidongActivityListByYidongIds, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ mapYidongId := make(map[string]bool)
|
|
|
+ for _, v := range listCygx {
|
|
|
+ mapYidongId[v.YidongId] = true
|
|
|
+ }
|
|
|
+
|
|
|
+ listMeetDataCygx, e := yidong.GetCygxYidongActivityMeetDataListByYidongIds(YidongIds)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxYidongActivityListByYidongIds, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ mapMeetData := make(map[string]bool)
|
|
|
+ for _, v := range listMeetDataCygx {
|
|
|
+ mapMeetData[fmt.Sprint("AID_", v.YidongId, "M_", v.PersonTelephone)] = true
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range actList {
|
|
|
+ if mapYidongId[v.ID] {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ item := new(yidong.CygxYidongActivity)
|
|
|
+ item.YidongId = v.ID
|
|
|
+ item.CompanyInfo = v.CompanyInfo
|
|
|
+ item.Type = v.Type
|
|
|
+ item.IndustrySwName = v.IndustrySwName
|
|
|
+ item.Start = v.Start
|
|
|
+ item.End = v.End
|
|
|
+ item.SignUpStart = v.SignUpStart
|
|
|
+ item.SignUpEnd = v.SignUpEnd
|
|
|
+ item.ActivityJoinType = v.ActivityJoinType
|
|
|
+ item.Banner = v.Banner
|
|
|
+ item.Url = v.URL
|
|
|
+ item.SyncFlag = v.SyncFlag
|
|
|
+ item.BusinessCardOpen = v.BusinessCardOpen
|
|
|
+ item.BusinessCardRequired = v.BusinessCardRequired
|
|
|
+ item.PersonNameOpen = v.PersonNameOpen
|
|
|
+ item.PersonNameRequired = v.PersonNameRequired
|
|
|
+ item.PersonTelephoneOpen = v.PersonTelephoneOpen
|
|
|
+ item.PersonTelephoneRequired = v.PersonTelephoneRequired
|
|
|
+ item.MailOpen = v.MailOpen
|
|
|
+ item.MailRequired = v.MailRequired
|
|
|
+ item.CompanyShortNameOpen = v.CompanyShortNameOpen
|
|
|
+ item.CompanyShortNameRequired = v.CompanyShortNameRequired
|
|
|
+ item.CompanyCodeOpen = v.CompanyCodeOpen
|
|
|
+ item.CompanyCodeRequired = v.CompanyCodeRequired
|
|
|
+ item.JobNameOpen = v.JobNameOpen
|
|
|
+ item.JobNameRequired = v.JobNameRequired
|
|
|
+ item.CertificateInformationOpen = v.CertificateInformationOpen
|
|
|
+ item.CertificateInformationRequired = v.CertificateInformationRequired
|
|
|
+ item.InviteeOpen = v.InviteeOpen
|
|
|
+ item.InviteeRequired = v.InviteeRequired
|
|
|
+ item.CreateTime = time.Now()
|
|
|
+ itmes = append(itmes, item)
|
|
|
+ }
|
|
|
+ //新增记录
|
|
|
+ if len(itmes) > 0 {
|
|
|
+ e = yidong.AddCygxYidongActivityMulti(itmes)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("AddCygxYidongActivityMulti, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var itmesMdata []*yidong.CygxYidongActivityMeetData
|
|
|
+ for _, v := range actList {
|
|
|
+ meetDataList := GetYiDongActivityMeetDataByaAtivityId(v.ID)
|
|
|
+ for _, mdata := range meetDataList {
|
|
|
+ if mapMeetData[fmt.Sprint("AID_", v.ID, "M_", mdata.PersonTelephone)] || mdata.PersonTelephone == "" {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ itmemdata := new(yidong.CygxYidongActivityMeetData)
|
|
|
+ itmemdata.YidongMeetDataId = mdata.ID
|
|
|
+ itmemdata.Title = v.Title
|
|
|
+ itmemdata.YidongId = v.ID
|
|
|
+ itmemdata.UserId = mdata.UserID
|
|
|
+ itmemdata.PersonTelephone = mdata.PersonTelephone
|
|
|
+ itmemdata.Duration = mdata.Duration
|
|
|
+ itmemdata.StartTime = mdata.StartTime
|
|
|
+ itmemdata.EndTime = mdata.EndTime
|
|
|
+ itmemdata.DeviceType = mdata.DeviceType
|
|
|
+ itmemdata.Status = mdata.Status
|
|
|
+ itmemdata.PersonName = mdata.PersonName
|
|
|
+ itmemdata.JobName = mdata.JobName
|
|
|
+ itmemdata.Mail = mdata.Mail
|
|
|
+ itmemdata.CompanyName = mdata.CompanyName
|
|
|
+ itmemdata.MobileCountryCode = mdata.MobileCountryCode
|
|
|
+ itmemdata.SignUpStatus = mdata.SignUpStatus
|
|
|
+ itmemdata.DurationLive = mdata.DurationLive
|
|
|
+ itmemdata.StartTimeLive = mdata.StartTimeLive
|
|
|
+ itmemdata.EndTimeLive = mdata.EndTimeLive
|
|
|
+ itmemdata.DurationReview = mdata.DurationReview
|
|
|
+ itmemdata.StartTimeInteract = mdata.StartTimeInteract
|
|
|
+ itmemdata.EndTimeInteract = mdata.EndTimeInteract
|
|
|
+ itmemdata.CreateTime = time.Now()
|
|
|
+ itmesMdata = append(itmesMdata, itmemdata)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 写入到会信息
|
|
|
+ if len(itmesMdata) > 0 {
|
|
|
+ e = yidong.AddCygxYidongActivityMeetDataMulti(itmesMdata)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("AddCygxYidongActivityMeetDataMulti, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //fmt.Println("end")
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+//func init() {
|
|
|
+// //param := new(GetYiDongActivityByApiReq)
|
|
|
+// //param.MeetingStatus = "2"
|
|
|
+// //param.ConveneStartStr = "2024-10-28"
|
|
|
+// //param.ConveneEndStr = "2024-10-30"
|
|
|
+// actList := GetYiDongActivityMeetDataByaAtivityId("1180584155007237390")
|
|
|
+//
|
|
|
+// for _, v := range actList {
|
|
|
+// //同步有效性 1有效,0失效
|
|
|
+// //if v.SyncFlag == "0" {
|
|
|
+// // continue
|
|
|
+// //}
|
|
|
+// //var yidongTitle string
|
|
|
+// //titleSlice := strings.Split(v.Title, "】")
|
|
|
+// //
|
|
|
+// //for _, vt := range titleSlice {
|
|
|
+// // yidongTitle = vt
|
|
|
+// //}
|
|
|
+//
|
|
|
+// fmt.Println(v.PersonTelephone)
|
|
|
+// fmt.Println(v.PersonName)
|
|
|
+// }
|
|
|
+//}
|