瀏覽代碼

易董同步 用户的到会详情

xingzai 2 年之前
父節點
當前提交
7b0e075607
共有 7 個文件被更改,包括 146 次插入7 次删除
  1. 19 0
      models/activity.go
  2. 8 0
      models/activity_signup.go
  3. 1 0
      models/db.go
  4. 6 6
      models/yidong.go
  5. 20 0
      models/yidong_activity_meeting_api_log.go
  6. 3 0
      services/task.go
  7. 89 1
      services/yidong.go

+ 19 - 0
models/activity.go

@@ -860,3 +860,22 @@ func AddCygxActivity(item *CygxActivity) (lastId int64, err error) {
 	lastId, err = o.Insert(item)
 	return
 }
+
+//列表
+func GetActivityListByYidong(condition string) (items []*ActivityDetail, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_activity WHERE yidong_activity_id != '' `
+	if condition != "" {
+		sql += condition
+	}
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
+//UpdateCygxActivitySubmitMeetingByYidong  ,跟易董返回的用户状态修改活动以提交到会状态
+func UpdateCygxActivitySubmitMeetingByYidong(yidongActivityId string) (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE cygx_activity SET is_submit_meeting = 1 WHERE yidong_activity_id=?  `
+	_, err = o.Raw(sql, yidongActivityId).Exec()
+	return
+}

+ 8 - 0
models/activity_signup.go

@@ -563,3 +563,11 @@ func UpdateCygxActivitySignup(wxUser *WxUserItem) (err error) {
 	_, err = o.Raw(sql, wxUser.Email, wxUser.CompanyId, wxUser.CompanyName, wxUser.UserId, wxUser.RealName, wxUser.Mobile).Exec()
 	return
 }
+
+//UpdateCygxActivitySignupisMeet 修改易董的活动,用户已到会
+func UpdateCygxActivitySignupisMeet(yidongActivityId, mobile string) (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE cygx_activity_signup SET is_meeting=1 WHERE yidong_activity_id=?  AND mobile = ? `
+	_, err = o.Raw(sql, yidongActivityId, mobile).Exec()
+	return
+}

+ 1 - 0
models/db.go

@@ -113,6 +113,7 @@ func init() {
 		new(CygxSessionMobile),
 		new(CygxSearchKeyWordLog),
 		new(CygxActivity),
+		new(CygxYidongActivityMeetingApiLog),
 	)
 	// 记录ORM查询日志
 	orm.Debug = true

+ 6 - 6
models/yidong.go

@@ -99,12 +99,12 @@ type ApifoxModaluser struct {
 type Resultuser struct {
 	DeviceType      *int64  `json:"deviceType"`                // 参会方式,1-PC,2-Mac,3-Android,4-IOS,5-Web,6-iPad,7-Android Pad,8-小程序
 	Duration        *string `json:"duration"`                  // 参会时长
-	EndTime         *string `json:"endTime"`                   // 最后退会时间
-	ID              *string `json:"id,omitempty"`              // 主键id
-	PersonTelephone *string `json:"personTelephone,omitempty"` // 用户手机号
-	StartTime       *string `json:"startTime"`                 // 最早入会时间
-	Status          *string `json:"status"`                    // 状态,D表示被删除
-	UserID          *string `json:"userId,omitempty"`          // 用户id
+	EndTime         string  `json:"endTime"`                   // 最后退会时间
+	ID              string  `json:"id,omitempty"`              // 主键id
+	PersonTelephone string  `json:"personTelephone,omitempty"` // 用户手机号
+	StartTime       string  `json:"startTime"`                 // 最早入会时间
+	Status          string  `json:"status"`                    // 状态,D表示被删除
+	UserID          string  `json:"userId,omitempty"`          // 用户id
 }
 
 type ApifoxModalUserTgc struct {

+ 20 - 0
models/yidong_activity_meeting_api_log.go

@@ -0,0 +1,20 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type CygxYidongActivityMeetingApiLog struct {
+	Id               int       `orm:"column(id);pk"`
+	Data             string    `description:"返回结果数据"`
+	YidongActivityId string    `description:"易董活动ID"`
+	CreateTime       time.Time `description:"本地创建时间"`
+}
+
+//新增
+func AddCygxYidongActivityMeetingApiLog(item *CygxYidongActivityMeetingApiLog) (err error) {
+	o := orm.NewOrm()
+	_, err = o.Insert(item)
+	return
+}

+ 3 - 0
services/task.go

@@ -87,6 +87,9 @@ func Task() {
 		getYiDongActivity := task.NewTask("getYiDongActivity", "0 */10 * * * *", GetYiDongActivity) //同步易董的活动信息
 		task.AddTask("getYiDongActivity", getYiDongActivity)
 
+		getYiDongActivityMeeting := task.NewTask("getYiDongActivityMeeting", "0 */10 * * * *", GetYiDongActivityMeeting) //同步易董的活动信息
+		task.AddTask("getYiDongActivityMeeting", getYiDongActivityMeeting)
+
 	}
 	if utils.RunMode != "release" {
 		getArticleListByApi := task.NewTask("getArticleListByApi", "0 */60 * * * *", GetArticleListByApi) //通过三方接口获取策略平台上的文章

+ 89 - 1
services/yidong.go

@@ -396,7 +396,8 @@ func GetActivityTextTime(timeYidong string) (timeText string) {
 	return
 }
 
-func init() {
+func init234() {
+	//GetYiDongActivityMeeting()
 	//GetYiDongActivity()
 	//var timeText string
 	//strTime := "2022-08-18 12:34:00"
@@ -417,3 +418,90 @@ func init() {
 	//fmt.Println(strTime)
 	//fmt.Println(timeText)
 }
+
+//GetYiDongActivityMeeting获取易董到会详情
+func GetYiDongActivityMeeting(cont context.Context) (err error) {
+	var condition string
+
+	startDate := time.Now().AddDate(0, 0, -2).Format(utils.FormatDateTime)
+	endDate := time.Now().Add(-time.Minute * 120).Format(utils.FormatDateTime)
+	condition += ` AND   activity_time > ` + "'" + startDate + "'"
+	condition += ` AND  activity_time < ` + "'" + endDate + "'"
+	//fmt.Println(startDate)
+	//fmt.Println(endDate)
+	artivityListYidong, err := models.GetActivityListByYidong(condition)
+	if err != nil {
+		fmt.Println("GetActivityListByYidong Err:", err.Error())
+		return err
+	}
+	fmt.Println(artivityListYidong)
+	if len(artivityListYidong) == 0 {
+		return err
+	}
+	var token string
+	token, _ = GetYiDongToken()
+
+	for _, v := range artivityListYidong {
+		url := utils.YiDongZhengTongYunUrl + "interact/activityManageApi/getAttendPersonList?access_token=" + token
+		method := "POST"
+		payload := strings.NewReader(`{"activityId":"` + v.YidongActivityId + `"}`)
+		client := &http.Client{}
+		req, err := http.NewRequest(method, url, payload)
+		if err != nil {
+			fmt.Println(err)
+			utils.FileLog.Info(err.Error())
+			return err
+		}
+		req.Header.Add("Content-Type", "application/json")
+		res, err := client.Do(req)
+		if err != nil {
+			fmt.Println(err)
+			utils.FileLog.Info(err.Error())
+			return err
+		}
+		defer res.Body.Close()
+		var ApifoxModal *models.ApifoxModaluser
+		body, err := ioutil.ReadAll(res.Body)
+		if err != nil {
+			fmt.Println(err)
+			utils.FileLog.Info(err.Error())
+			return err
+		}
+		//utils.FileLog.Info(string(body))
+		//fmt.Println(string(body))
+		err = json.Unmarshal(body, &ApifoxModal)
+		if err != nil {
+			fmt.Println("Getres.PublicGetDate Err:", err.Error())
+			utils.FileLog.Info(err.Error())
+			return err
+		}
+
+		//跟易董返回的用户状态修改活动以提交到会状态
+		err = models.UpdateCygxActivitySubmitMeetingByYidong(v.YidongActivityId)
+		if err != nil {
+			fmt.Println("UpdateCygxActivitySubmitMeetingByYidong Err:", err.Error())
+			return err
+		}
+		if len(ApifoxModal.Result) > 0 {
+			itemlog := new(models.CygxYidongActivityMeetingApiLog)
+			itemlog.YidongActivityId = v.YidongActivityId
+			itemlog.Data = string(body)
+			itemlog.CreateTime = time.Now()
+			err = models.AddCygxYidongActivityMeetingApiLog(itemlog)
+			if err != nil {
+				fmt.Println("AddCygxYidongActivityMeetingApiLog Err:", err.Error())
+				return err
+			}
+			for _, vresult := range ApifoxModal.Result {
+				if vresult.EndTime != "" {
+					err = models.UpdateCygxActivitySignupisMeet(v.YidongActivityId, vresult.PersonTelephone)
+					if err != nil {
+						fmt.Println("UpdateCygxActivitySignupisMeet Err:", err.Error())
+						return err
+					}
+				}
+			}
+		}
+	}
+	return
+}