package cygx

import (
	"encoding/json"
	"errors"
	"fmt"
	"hongze/hz_crm_api/models/cygx"
	"hongze/hz_crm_api/services/alarm_msg"
	"hongze/hz_crm_api/utils"
	"io/ioutil"
	"net/http"
	"strconv"
	"strings"
	"time"
)

type ApifoxModalSingUpClass struct {
	ErrorCode *string   `json:"errorCode"` // 错误码，001：活动不存在；002：该活动不支持此渠道报名；003：该手机号或邮箱已经被其他账号提交报名；004：不在报名时间；005：报名人数已满
	ErrorMsg  *string   `json:"errorMsg"`  // 错误信息
	Result    SingUpMap `json:"result"`    // 结果Map，成功
	Success   bool      `json:"success"`   // 成功标识，true：成功；false：失败。可作为判断报名是否成功的标识
	Timestamp float64   `json:"timestamp"` // 时间戳
}

type SingUpMap struct {
	Msg string `json:"msg"` // 请求信息，成功信息
}

type GetYidongTokenResp struct {
	Success     bool   `json:"success"`      // 请求信息，成功信息
	AccessToken string `json:"access_token"` // token
	ExpiresIn   int    `json:"expires_in"`   // 过期时间
}

// 易董建会成功返回的结构体
type YiDongSaveRoadshowDetailResp struct {
	ErrorCode string                         `json:"errorCode"` // 错误码
	ErrorMsg  string                         `json:"errorMsg"`  // 错误信息
	Success   bool                           `json:"success"`   // 请求信息，成功信息
	Result    YiDongSaveRoadshowDetailIdResp `json:"result"`    // 返回信息
}

type YiDongSaveRoadshowDetailIdResp struct {
	ActivityId string `json:"activityId"` //易董返回的活动ID
}

type YiDongUpdateActivityPublishResp struct {
	Id          string `description:"易董活动ID，为空时新增，非空时修改" json:"id"`
	PublishFlag string `description:"发布状态,1发布 0 取消发布" json:"publishFlag"`
}

// 获取路演详细信息（2.0）结构体
type YiDongGetRoadshowDetailResp struct {
	ErrorCode string                            `json:"errorCode"` // 错误码
	ErrorMsg  string                            `json:"errorMsg"`  // 错误信息
	Success   bool                              `json:"success"`   // 请求信息，成功信息
	Result    YiDongGetRoadshowDetailRespResult `json:"result"`    // 返回信息
}

type YiDongGetRoadshowDetailRespResult struct {
	MeetingCode string `json:"meetingCode"` //腾讯会议号
}

// 获取创建人信息列表（新）结构体
type YiDongGetCreateUserListResp struct {
	ErrorCode string                        `json:"errorCode"` // 错误码
	ErrorMsg  string                        `json:"errorMsg"`  // 错误信息
	Success   bool                          `json:"success"`   // 请求信息，成功信息
	Result    YiDongGetCreateUserListResult `json:"result"`    // 返回信息
}
type YiDongGetCreateUserListResult struct {
	PersonList []*PersonUser
}

type PersonUser struct {
	Id               string `description:"人员id" json:"id"`
	PersonName       string `description:"姓名" json:"personName"`
	JobName          string `description:"职务" json:"jobName"`
	UserId           string `description:"用户id" json:"userId"`
	UserName         string `description:"用户账号" json:"userName"`
	IdentityType     string `description:"身份类型：0 不可用，1可用" json:"identityType"`
	Lock             bool   `description:"锁定状态：true 锁定 false 未锁定" json:"lock"`
	CreatePersonName string `description:"创建人姓名:创建时必填" json:"createPersonName"`
}

// CheckYidongActivitySignupTime 校验易董的活动是否可以 添加报名
func CheckYidongActivitySignupTime(activityInfo *cygx.ActivityDetail) (errstr string) {
	if activityInfo.YidongSignUpEnd == "0000-00-00 00:00:00" {
		return
	}
	timeStart := activityInfo.YidongSignUpStart
	timeEnd := activityInfo.YidongSignUpEnd
	resultTimeStart := utils.StrTimeToTime(timeStart) //时间字符串格式转时间格式
	resStart := time.Now().Before(resultTimeStart)
	if resStart {
		errstr = "当前时间不可报名!"
	}
	resultTimeEnd := utils.StrTimeToTime(timeEnd) //时间字符串格式转时间格式
	resend := time.Now().After(resultTimeEnd)
	if resend {
		errstr = "当前时间不可报名!"
	}
	return
}

// YidongActivityUserSingnUp 易董的活动添加报名
func YidongActivityUserSingnUp(items []*cygx.YidongActivitySignup) (err error) {
	url := utils.YiDongHuaWeiYunUrl + "app/hz/signAppointmentsForThird"
	method := "POST"
	for _, v := range items {
		defer func() {
			if err != nil {
				go alarm_msg.SendAlarmMsg("易董的活动添加报名消息失败，Err："+err.Error(), 3)
			}
		}()
		payload := strings.NewReader(`{
    "activityId": "` + v.YidongActivityId + `",
    "personTelephone":"` + v.Mobile + `",
    "personName": "` + v.RealName + `",
    "companyName": "` + v.CompanyName + `",
    "mobileCountryCode": "+` + v.CountryCode + `",
    "thirdPartySource": "01"
}`)
		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 *ApifoxModalSingUpClass
		body, err := ioutil.ReadAll(res.Body)
		if err != nil {
			fmt.Println(err)
			utils.FileLog.Info(err.Error())
			return err
		}
		itemApiLog := new(cygx.CygxThreeApiLog)
		itemApiLog.CreateTime = time.Now()
		itemApiLog.Source = 1
		itemApiLog.Url = url
		itemApiLog.Body = utils.ReplaceSpaceAndWrap(fmt.Sprint(payload))
		itemApiLog.Result = string(body)
		go cygx.AddCygxThreeApiLog(itemApiLog)
		err = json.Unmarshal(body, &ApifoxModal)
	}
	return
}

// GetYidongToken 获取易董证通云接口的token
func GetYidongToken() (token string, err error) {
	defer func() {
		if err != nil {
			go alarm_msg.SendAlarmMsg("获取易董证通云接口的token失败；err："+err.Error(), 3)
		}
	}()
	cacheKey := utils.YI_DONG_ZHENG_TONG_YUN_TOKEN_KEY
	ttlTime := utils.Rc.GetRedisTTL(cacheKey)
	if ttlTime > 0 {
		token, _ = utils.Rc.RedisString(cacheKey)
		if token != "" {
			return
		}
	}
	url := utils.YiDongZhengTongYunUrl + "oauth/token?grant_type=client_credentials&response_type=token&client_id=" + utils.YiDongZhengTongYunClientId + "&client_secret=" + utils.YiDongZhengTongYunClientSecret
	method := "GET"
	client := &http.Client{}
	req, err := http.NewRequest(method, url, nil)
	if err != nil {
		return
	}
	res, err := client.Do(req)
	if err != nil {
		return
	}
	defer res.Body.Close()
	body, err := ioutil.ReadAll(res.Body)
	if err != nil {
		return
	}
	itemApiLog := new(cygx.CygxThreeApiLog)
	itemApiLog.CreateTime = time.Now()
	itemApiLog.Source = 1
	itemApiLog.Url = url
	itemApiLog.Body = ""
	itemApiLog.Result = string(body)
	go cygx.AddCygxThreeApiLog(itemApiLog)
	var yidongTokenResp *GetYidongTokenResp
	err = json.Unmarshal(body, &yidongTokenResp)
	if err != nil {
		return
	}
	token = yidongTokenResp.AccessToken
	err = utils.Rc.Put(cacheKey, token, time.Second*7000)
	if err != nil {
		return
	}
	return
}

// 易董创建/更新路演活动结构体
type SaveRoadshowDetaiParam struct {
	Id               string `description:"易董活动ID，为空时新增，非空时修改" json:"id"`
	PublishFlag      string `description:"发布状态,1发布 0 取消发布" json:"publishFlag"`
	Title            string `description:"主题" json:"title"`
	Type             string `description:"类型:投资策略、深度解读、行业分析、公司分析、自定义活动" json:"type"`
	Start            string `description:"开始时间:开始时间与结束时间，日期必须相同" json:"start"`
	End              string `description:"结束时间:开始时间与结束时间，日期必须相同" json:"end"`
	CreateUserId     string `description:"创建人userId:创建时必填" json:"createUserId"`
	CreatePersonName string `description:"创建人姓名:创建时必填" json:"createPersonName"`
}

// 获取创建人信息列表（新）
func YiDongGetCreateUserList() (userId string) {
	var err error
	defer func() {
		if err != nil {
			fmt.Println(err)
			go alarm_msg.SendAlarmMsg("获取创建人信息列表（新）失败；err："+err.Error(), 3)
		}
	}()
	token, _ := GetYidongToken()
	if token == "" {
		return
	}
	url := utils.YiDongZhengTongYunUrl + "interact/activityThirdApi/getCreateUserList" + "?access_token=" + token
	method := "POST"
	client := &http.Client{}
	req, err := http.NewRequest(method, url, strings.NewReader(""))
	if err != nil {
		fmt.Println(err)
		return
	}
	req.Header.Add("Content-Type", "application/json")
	res, err := client.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer res.Body.Close()
	body, err := ioutil.ReadAll(res.Body)
	if err != nil {
		fmt.Println(err)
		return
	}
	itemApiLog := new(cygx.CygxThreeApiLog)
	itemApiLog.CreateTime = time.Now()
	itemApiLog.Source = 1
	itemApiLog.Url = url
	itemApiLog.Body = ""
	itemApiLog.Result = string(body)
	go cygx.AddCygxThreeApiLog(itemApiLog)
	var yidongResp *YiDongGetCreateUserListResp
	err = json.Unmarshal(body, &yidongResp)
	if err != nil {
		return
	}
	if !yidongResp.Success {
		err = errors.New("获取创建人信息列表（新） 接口失败，" + yidongResp.ErrorCode + yidongResp.ErrorMsg)
		return
	}

	if len(yidongResp.Result.PersonList) > 0 {
		for _, v := range yidongResp.Result.PersonList {
			if v.PersonName == "高亦文" {
				userId = v.UserId
			}
		}
	}
	if userId == "" {
		err = errors.New("获取创建人信息列表（新） 接口失败，" + yidongResp.ErrorCode + yidongResp.ErrorMsg + string(body))
		return
	}
	return
}

//func init() {
//	YiDongUpdateActivityPublish(2149)
//}

// YiDongSaveRoadshowDetail 创建/更新路演活动（新）
func YiDongSaveRoadshowDetail(activityId int) {
	var err error
	defer func() {
		if err != nil {
			fmt.Println(err)
			go alarm_msg.SendAlarmMsg("活动同步到易董失败；err："+err.Error(), 3)
		}
	}()
	activityInfo, err := cygx.GetAddActivityInfoById(activityId)
	if err != nil {
		fmt.Println(err)
		return
	}
	if activityInfo == nil {
		return
	}
	if activityInfo.IsYidongConduct == 0 {
		return
	}
	token, _ := GetYidongToken()
	if token == "" {
		return
	}
	//C类分析师电话会 不对外发布
	if activityInfo.ActivityTypeId == 7 || activityInfo.IsBClass == 1 {
		activityInfo.PublishStatus = 0
	}
	//if activityInfo.PublishStatus == 0 {
	//	return
	//}
	//获取高亦文在易董的用户ID
	var createUserId string
	createUserId = YiDongGetCreateUserList()
	url := utils.YiDongZhengTongYunUrl + "interact/activityThirdApi/saveRoadshowDetail" + "?access_token=" + token
	startTime := activityInfo.ActivityTime
	endTime := utils.StrTimeToTime(startTime).Add(time.Minute * 60).Format(utils.FormatDateTime) // 30分钟后为结束时间
	params := SaveRoadshowDetaiParam{
		Id:               activityInfo.YidongActivityIdByCygx,
		PublishFlag:      strconv.Itoa(activityInfo.PublishStatus),
		Title:            activityInfo.ActivityName,
		Type:             "行业分析",
		Start:            startTime,
		End:              endTime,
		CreateUserId:     createUserId,
		CreatePersonName: "高亦文",
	}
	postData, err := json.Marshal(params)
	if err != nil {
		fmt.Println("PostData json.Marshal Err:" + err.Error())
		utils.FileLogCygx.Info("PostData json.Marshal Err:" + err.Error())
		return
	}
	method := "POST"
	client := &http.Client{}
	req, err := http.NewRequest(method, url, strings.NewReader(string(postData)))
	if err != nil {
		fmt.Println(err)
		return
	}
	req.Header.Add("Content-Type", "application/json")
	res, err := client.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer res.Body.Close()
	body, err := ioutil.ReadAll(res.Body)
	if err != nil {
		fmt.Println(err)
		return
	}
	itemApiLog := new(cygx.CygxThreeApiLog)
	itemApiLog.CreateTime = time.Now()
	itemApiLog.Source = 1
	itemApiLog.Url = url
	itemApiLog.Body = string(postData)
	itemApiLog.Result = string(body)
	go cygx.AddCygxThreeApiLog(itemApiLog)
	var yidongResp *YiDongSaveRoadshowDetailResp
	err = json.Unmarshal(body, &yidongResp)
	if err != nil {
		return
	}
	if !yidongResp.Success {
		err = errors.New("更新易董建会接口失败，" + yidongResp.ErrorCode + yidongResp.ErrorMsg)
		return
	}
	yidongActivityIdByCygx := yidongResp.Result.ActivityId
	YiDongGetRoadshowDetail(activityId, yidongActivityIdByCygx) //获取易董创建的腾讯会议详情，并写入到我们自己的小程序
	YiDongSignAppointmentsForThirdSpeaker(activityId)           // 根据填入的主讲人姓名 以嘉宾的身份自动报名
}

// YiDongGetRoadshowDetail 获取易董创建的腾讯会议详情，并写入到我们自己的小程序
func YiDongGetRoadshowDetail(activityId int, yidongActivityIdByCygx string) {
	var err error
	defer func() {
		if err != nil {
			fmt.Println(err)
			go alarm_msg.SendAlarmMsg("易董获取路演详细信息（2.0）；err："+err.Error(), 3)
		}
	}()
	activityInfo, err := cygx.GetAddActivityInfoById(activityId)
	if err != nil {
		fmt.Println(err)
		return
	}
	if activityInfo == nil {
		return
	}
	token, _ := GetYidongToken()
	if token == "" {
		return
	}
	activityInfo.YidongActivityIdByCygx = yidongActivityIdByCygx
	url := utils.YiDongZhengTongYunUrl + "interact/activityManageApi/getRoadshowDetail" + "?access_token=" + token
	if activityInfo.IsYidongConduct == 0 {
		return
	}
	params := YiDongSaveRoadshowDetailIdResp{
		ActivityId: yidongActivityIdByCygx,
	}
	postData, err := json.Marshal(params)
	if err != nil {
		fmt.Println("PostData json.Marshal Err:" + err.Error())
		utils.FileLogCygx.Info("PostData json.Marshal Err:" + err.Error())
		return
	}
	method := "POST"
	client := &http.Client{}
	req, err := http.NewRequest(method, url, strings.NewReader(string(postData)))
	if err != nil {
		fmt.Println(err)
		return
	}
	req.Header.Add("Content-Type", "application/json")
	res, err := client.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer res.Body.Close()
	body, err := ioutil.ReadAll(res.Body)
	if err != nil {
		fmt.Println(err)
		return
	}
	itemApiLog := new(cygx.CygxThreeApiLog)
	itemApiLog.CreateTime = time.Now()
	itemApiLog.Source = 1
	itemApiLog.Url = url
	itemApiLog.Body = string(postData)
	itemApiLog.Result = string(body)
	go cygx.AddCygxThreeApiLog(itemApiLog)
	var yidongResp *YiDongGetRoadshowDetailResp
	err = json.Unmarshal(body, &yidongResp)
	if err != nil {
		return
	}
	if !yidongResp.Success {
		err = errors.New("易董获取路演详细信息（2.0）接口失败，" + yidongResp.ErrorCode + yidongResp.ErrorMsg)
		return
	}
	MeetingCode := yidongResp.Result.MeetingCode
	if activityInfo.TencentConferenceNumber != "" {
		activityInfo.Body = strings.Replace(activityInfo.Body, activityInfo.TencentConferenceNumber, MeetingCode, -1)
	} else {
		activityInfo.Body += "<p>腾讯会议号：" + MeetingCode + "</p>"
	}
	activityInfo.TencentConferenceNumber = MeetingCode
	err = cygx.UpdateCygxActivityTencentConferenceNumber(activityInfo)
	return
}

// 发布路演到活动广场（新）
func YiDongUpdateActivityPublish(activityId int) {
	var err error
	defer func() {
		if err != nil {
			fmt.Println(err)
			go alarm_msg.SendAlarmMsg("发布路演到活动广场（新）；err："+err.Error(), 3)
		}
	}()
	activityInfo, err := cygx.GetAddActivityInfoById(activityId)
	if err != nil {
		fmt.Println(err)
		return
	}
	if activityInfo == nil {
		return
	}
	//C类分析师电话会 不对外发布
	if activityInfo.ActivityTypeId == 7 {
		activityInfo.PublishStatus = 0
	}
	token, _ := GetYidongToken()
	if token == "" {
		return
	}
	url := utils.YiDongZhengTongYunUrl + "interact/activityThirdApi/updateActivityPublish" + "?access_token=" + token
	if activityInfo.IsYidongConduct == 0 || activityInfo.YidongActivityIdByCygx == "" {
		return
	}
	params := YiDongUpdateActivityPublishResp{
		Id:          activityInfo.YidongActivityIdByCygx,
		PublishFlag: strconv.Itoa(activityInfo.PublishStatus),
	}
	postData, err := json.Marshal(params)
	if err != nil {
		fmt.Println("PostData json.Marshal Err:" + err.Error())
		utils.FileLogCygx.Info("PostData json.Marshal Err:" + err.Error())
		return
	}
	method := "POST"
	client := &http.Client{}
	req, err := http.NewRequest(method, url, strings.NewReader(string(postData)))
	if err != nil {
		fmt.Println(err)
		return
	}
	req.Header.Add("Content-Type", "application/json")
	res, err := client.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer res.Body.Close()
	body, err := ioutil.ReadAll(res.Body)
	if err != nil {
		fmt.Println(err)
		return
	}
	itemApiLog := new(cygx.CygxThreeApiLog)
	itemApiLog.CreateTime = time.Now()
	itemApiLog.Source = 1
	itemApiLog.Url = url
	itemApiLog.Body = string(postData)
	itemApiLog.Result = string(body)
	go cygx.AddCygxThreeApiLog(itemApiLog)
	var yidongResp *YiDongGetRoadshowDetailResp
	err = json.Unmarshal(body, &yidongResp)
	if err != nil {
		return
	}
	if !yidongResp.Success {
		err = errors.New("发布路演到活动广场（新） 接口失败，" + yidongResp.ErrorCode + yidongResp.ErrorMsg)
		return
	}
	if activityInfo.PublishStatus == 0 {
		YiDongUpdateActivityStatus(activityId)
	}
	return
}

// 易董创建/更新路演活动结构体
type SignAppointmentsForThirdParam struct {
	ActivityId        string `description:"易董活动ID" json:"activityId"`
	MobileCountryCode string `description:"国际区号注意要带前面+号 " json:"mobileCountryCode"`
	PersonTelephone   string `description:"手机号" json:"personTelephone"`
	ThirdPartySource  string `description:"第三方来源；弘则固定：01" json:"thirdPartySource"`
	InvestorType      string `description:"投资者类型 0个人1机构" json:"investorType"`
	PersonName        string `description:"姓名" json:"personName"`
	CompanyName       string `description:"公司名" json:"companyName"`
	JoinRole          string `description:"1:嘉宾, 2:普通参会人员, 3:会议助理。不传默认取值2" json:"joinRole"`
	OutCallStatus     string `description:"1:需要，0：不需要。不传取默认值0" json:"outCallStatus"`
}

type YiDongSignAppointmentsForThirdResp struct {
	ErrorCode string  `json:"errorCode"` // 错误码，001：活动不存在；002：该活动不支持此渠道报名；003：该手机号或邮箱已经被其他账号提交报名；004：不在报名时间；005：报名人数已满
	ErrorMsg  string  `json:"errorMsg"`  // 错误信息
	Success   bool    `json:"success"`   // 成功标识，true：成功；false：失败。可作为判断报名是否成功的标识
	Timestamp float64 `json:"timestamp"` // 时间戳
}

// 根据填入的主讲人姓名 以嘉宾的身份自动报名
func YiDongSignAppointmentsForThirdSpeaker(activityId int) {
	var err error
	defer func() {
		if err != nil {
			fmt.Println(err)
			go alarm_msg.SendAlarmMsg("易董获取路演详细信息（2.0）；err："+err.Error(), 3)
		}
	}()
	activityInfo, err := cygx.GetAddActivityInfoById(activityId)
	if err != nil {
		fmt.Println(err)
		return
	}
	if activityInfo == nil {
		return
	}
	speaker := activityInfo.Speaker
	if speaker == "" {
		return
	}
	// 获取admin列表-匹配联系人是否为admin用户
	sysUserList, err := cygx.GetAskEmail()
	var personNameites []*cygx.AskEmailRep
	if err != nil {
		return
	}
	//var personName string
	//var personTelephone string
	for _, v := range sysUserList {
		if strings.Contains(speaker, v.Name) && v.Mobile != "" {
			personNameites = append(personNameites, &cygx.AskEmailRep{
				Name:   v.Name,
				Mobile: v.Mobile,
			})

		}
	}
	if activityInfo.IsYidongConduct == 0 || len(personNameites) == 0 {
		return
	}
	url := utils.YiDongHuaWeiYunUrl + "app/hz/signAppointmentsForThird"
	for _, v := range personNameites {
		params := SignAppointmentsForThirdParam{
			ActivityId:        activityInfo.YidongActivityIdByCygx,
			MobileCountryCode: "+86",
			PersonTelephone:   v.Mobile,
			ThirdPartySource:  "01",
			InvestorType:      "0",
			PersonName:        v.Name,
			JoinRole:          "1",
			CompanyName:       "弘则研究",
			OutCallStatus:     "0",
		}
		postData, err := json.Marshal(params)
		if err != nil {
			fmt.Println("PostData json.Marshal Err:" + err.Error())
			utils.FileLogCygx.Info("PostData json.Marshal Err:" + err.Error())
			return
		}
		method := "POST"
		client := &http.Client{}
		req, err := http.NewRequest(method, url, strings.NewReader(string(postData)))
		if err != nil {
			fmt.Println(err)
			return
		}
		req.Header.Add("Content-Type", "application/json")
		res, err := client.Do(req)
		if err != nil {
			fmt.Println(err)
			return
		}
		defer res.Body.Close()
		body, err := ioutil.ReadAll(res.Body)
		if err != nil {
			fmt.Println(err)
			return
		}
		itemApiLog := new(cygx.CygxThreeApiLog)
		itemApiLog.CreateTime = time.Now()
		itemApiLog.Source = 1
		itemApiLog.Url = url
		itemApiLog.Body = string(postData)
		itemApiLog.Result = string(body)
		go cygx.AddCygxThreeApiLog(itemApiLog)
		var yidongResp *YiDongSignAppointmentsForThirdResp
		err = json.Unmarshal(body, &yidongResp)
		if err != nil {
			return
		}
		if !yidongResp.Success {
			err = errors.New(" 根据填入的主讲人姓名 以嘉宾的身份自动报名 接口失败，" + yidongResp.ErrorCode + yidongResp.ErrorMsg)
			return
		}
	}

	return
}

//func init() {
//	YiDongUpdateActivityStatus(2180)
//}

// 删除路演活动（新）
func YiDongUpdateActivityStatus(activityId int) {
	var err error
	defer func() {
		if err != nil {
			fmt.Println(err)
			go alarm_msg.SendAlarmMsg(" 删除路演活动（新）；err："+err.Error(), 3)
		}
	}()
	activityInfo, err := cygx.GetAddActivityInfoById(activityId)
	if err != nil {
		fmt.Println(err)
		return
	}
	if activityInfo == nil {
		return
	}
	//C类分析师电话会 不对外发布
	if activityInfo.ActivityTypeId == 7 {
		activityInfo.PublishStatus = 0
	}
	//如果关联的易董活动ID为空，那么不做处理
	if activityInfo.YidongActivityIdByCygx == "" {
		return
	}
	//如果状态是已发布，而且是易董办会那么就不做处理
	if activityInfo.IsYidongConduct == 1 && activityInfo.PublishStatus == 1 {
		return
	}
	token, _ := GetYidongToken()
	if token == "" {
		return
	}
	url := utils.YiDongZhengTongYunUrl + "interact/activityThirdApi/updateActivityStatus" + "?access_token=" + token
	//if activityInfo.IsYidongConduct == 0 || activityInfo.YidongActivityIdByCygx == "" {
	//	return
	//}
	params := YiDongUpdateActivityPublishResp{
		Id: activityInfo.YidongActivityIdByCygx,
	}
	postData, err := json.Marshal(params)
	if err != nil {
		fmt.Println("PostData json.Marshal Err:" + err.Error())
		utils.FileLogCygx.Info("PostData json.Marshal Err:" + err.Error())
		return
	}
	method := "POST"
	client := &http.Client{}
	req, err := http.NewRequest(method, url, strings.NewReader(string(postData)))
	if err != nil {
		fmt.Println(err)
		return
	}
	req.Header.Add("Content-Type", "application/json")
	res, err := client.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer res.Body.Close()
	body, err := ioutil.ReadAll(res.Body)
	if err != nil {
		fmt.Println(err)
		return
	}
	itemApiLog := new(cygx.CygxThreeApiLog)
	itemApiLog.CreateTime = time.Now()
	itemApiLog.Source = 1
	itemApiLog.Url = url
	itemApiLog.Body = string(postData)
	itemApiLog.Result = string(body)
	go cygx.AddCygxThreeApiLog(itemApiLog)
	var yidongResp *YiDongGetRoadshowDetailResp
	err = json.Unmarshal(body, &yidongResp)
	if err != nil {
		return
	}
	if !yidongResp.Success {
		err = errors.New("删除路演活动 接口失败，" + yidongResp.ErrorCode + yidongResp.ErrorMsg)
		return
	}
	activityInfo.Body = strings.Replace(activityInfo.Body, "腾讯会议号："+activityInfo.TencentConferenceNumber, "", -1)
	activityInfo.Body = strings.Replace(activityInfo.Body, "<p></p>", "", -1)
	activityInfo.YidongActivityIdByCygx = ""
	activityInfo.TencentConferenceNumber = ""
	err = cygx.UpdateCygxActivityTencentConferenceNumber(activityInfo)
	return
}
