浏览代码

路演精华接口详情

xingzai 3 年之前
父节点
当前提交
1d6a73fcf2
共有 6 个文件被更改,包括 224 次插入172 次删除
  1. 126 0
      controllers/report.go
  2. 11 53
      models/minutesSummary.go
  3. 26 0
      models/report.go
  4. 11 40
      models/report_selection.go
  5. 9 38
      models/researchSummary.go
  6. 41 41
      services/task.go

+ 126 - 0
controllers/report.go

@@ -6,6 +6,7 @@ import (
 	"hongze/hongze_cygx/models"
 	"hongze/hongze_cygx/services"
 	"hongze/hongze_cygx/utils"
+	"html"
 	"rdluck_tools/paging"
 	"strconv"
 	"strings"
@@ -1465,3 +1466,128 @@ func (this *ReportController) MinutesDetail() {
 	br.Msg = "获取成功"
 	br.Data = resp
 }
+
+// @Title 获取报告详情
+// @Description 获取报告详情接口
+// @Param   ArticleId   query   int  true       "报告ID"
+// @Success 200 {object} models.RoadshowDetailResp
+// @router /roadshowEssence/detail [get]
+func (this *ReportController) RoadshowDetail() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	user := this.User
+	if user == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,用户信息为空"
+		br.Ret = 408
+		return
+	}
+	uid := user.UserId
+	articleId, err := this.GetInt("ArticleId")
+	if articleId <= 0 {
+		br.Msg = "文章不存在"
+		br.ErrMsg = "文章不存在,文章ID错误"
+		return
+	}
+	detail := new(models.ReportDetailRoadshow)
+	hasPermission := 0
+	hasFree := 0
+	//判断是否已经申请过
+	applyCount, err := models.GetApplyRecordCount(uid)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "判断是否已申请过试用失败,Err:" + err.Error()
+		return
+	}
+	//`description:"1:有该行业权限,正常展示,2:无该行业权限,不存在权益客户下,3:无该品类权限,4:潜在客户,未提交过申请,5:潜在客户,已提交过申请"`
+	if user.CompanyId > 1 {
+		companyPermission, err := models.GetCompanyPermission(user.CompanyId)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "判断是否已申请访谈失败,Err:" + strconv.Itoa(uid) + ";articleId" + strconv.Itoa(articleId)
+			return
+		}
+		detail, err = models.GetReportRoadshowDetailById(articleId)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取信息失败,Err:" + err.Error()
+			return
+		}
+		detail.Body = html.UnescapeString(detail.Body)
+		detail.Abstract, _ = services.GetReportContentTextSub(detail.Abstract)
+		detail.PublishDate = utils.StrTimeToTime(detail.PublishDate).Format("2006-01-02")
+		if companyPermission == "" {
+			if applyCount > 0 {
+				hasPermission = 5
+			} else {
+				hasPermission = 2
+			}
+			hasFree = 2
+			goto Loop
+		} else {
+			hasFree = 1
+			var articlePermissionPermissionName string
+			articlePermissionPermissionName = detail.CategoryName
+			var hasPersion bool
+			slice := strings.Split(articlePermissionPermissionName, ",")
+			for _, v := range slice {
+				if strings.Contains(companyPermission, v) {
+					hasPersion = true
+				}
+			}
+			if hasPersion {
+				hasPermission = 1
+				historyRecord := new(models.CygxArticleHistoryRecord)
+				historyRecord.UserId = uid
+				historyRecord.ArticleId = articleId
+				historyRecord.CreateTime = time.Now()
+				historyRecord.Mobile = user.Mobile
+				historyRecord.Email = user.Email
+				historyRecord.CompanyId = user.CompanyId
+				historyRecord.CompanyName = user.CompanyName
+				go models.AddCygxArticleHistoryRecord(historyRecord)
+			} else { //无该行业权限
+				hasPermission = 3
+			}
+			if hasPermission == 1 {
+				key := "CYGX_ARTICLE_" + strconv.Itoa(articleId) + "_" + strconv.Itoa(uid)
+				if !utils.Rc.IsExist(key) {
+					//新增浏览记录
+					record := new(models.CygxArticleViewRecord)
+					record.UserId = uid
+					record.ArticleId = articleId
+					record.CreateTime = time.Now()
+					record.Mobile = user.Mobile
+					record.Email = user.Email
+					record.CompanyId = user.CompanyId
+					record.CompanyName = user.CompanyName
+					go models.AddCygxArticleViewRecord(record)
+					utils.Rc.Put(key, 1, 5*time.Second)
+					models.ModifyReportLastViewTime(uid)
+				}
+			}
+		}
+	} else { //潜在客户
+		if applyCount > 0 {
+			hasPermission = 5
+		} else {
+			hasPermission = 4
+		}
+	}
+Loop:
+	if hasPermission != 1 {
+		detail.Body = ""
+		detail.Abstract = ""
+	}
+	resp := new(models.RoadshowDetailResp)
+	resp.HasPermission = hasPermission
+	resp.HasFree = hasFree
+	resp.Detail = detail
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}

+ 11 - 53
models/minutesSummary.go

@@ -2,47 +2,17 @@ package models
 
 import (
 	"rdluck_tools/orm"
-	"time"
 )
 
-type CygxMinutesSummary struct {
-	ArticleId          int       `orm:"column(article_id);pk"description:"报告id"`
-	AddType            string    `description:"更新方式 1重新编辑  ,2 继承往期"`
-	Title              string    `description:"标题"`
-	Department         string    `description:"作者"`
-	PublishStatus      int       `description:"发布状态,1已发布,0未发布"`
-	PublishDate        time.Time `description:"发布时间"`
-	CreateTime         time.Time `description:"创建时间"`
-	LastUpdatedTime    time.Time `description:"最后一次更新时间"`
-	Periods            string    `description:"期数"`
-	HavePublish        int       `description:"是否发布过,1是,0否"`
-	InheritPeriods     string    `description:"继承期数"`
-	ProductDescription string    `description:"产品说明"`
-	UpdateDescription  string    `description:"更新说明"`
-	FocusOn            string    `description:"近期重点关注方向"`
-}
-
-type AddCygxMinutesSummary struct {
-	ArticleId          int    `description:"报告Id ,传0时新增,大于0时修改"`
-	AddType            string `description:"更新方式 1重新编辑  ,2 继承往期"`
-	InheritPeriods     string `description:"继承期数"`
-	Title              string `description:"标题"`
-	Department         string `description:"作者"`
-	PublishDate        string `description:"发布时间"`
-	ProductDescription string `description:"产品说明"`
-	UpdateDescription  string `description:"更新说明"`
-	FocusOn            string `description:"近期重点关注方向"`
-	DoType             int    `description:"操作方式,1发布,0保存"`
-}
-
 type DetailCygxMinutesSummaryRep struct {
-	ArticleId        int     `description:"报告Id"`
-	Title            string  `description:"标题"`
-	Department       string  `description:"作者"`
-	PublishDate      string  `description:"发布时间"`
-	VideoUrl         string  `description:"链接"`
-	VideoPlaySeconds float64 `description:"时长"`
-	Abstract         string  `description:"摘要"`
+	ArticleId        int    `description:"报告Id"`
+	Title            string `description:"标题"`
+	Department       string `description:"作者"`
+	PublishDate      string `description:"发布时间"`
+	VideoUrl         string `description:"链接"`
+	VideoPlaySeconds string `description:"时长"`
+	VideoName        string `description:"音频名称"`
+	Abstract         string `description:"摘要"`
 }
 
 type MinutesSummaryLetailResp struct {
@@ -53,7 +23,7 @@ type MinutesSummaryLetailResp struct {
 type MinutesSummaryChartPermission struct {
 	PermissionName    string `description:"行业名称"`
 	ChartPermissionId int    `description:"行业ID"`
-	IcoLink           string `orm:"column(image_url)"description:"图标链接"`
+	MinutesSummary    string `orm:"column(image_url)"description:"图标链接"`
 	List              []*CygxMinutesSummaryLogDetail
 }
 
@@ -73,23 +43,11 @@ type MinutesSummaryId struct {
 //通过纪要ID获取详情
 func GetCygxMinutesSummaryInfoById(articleId int) (item *DetailCygxMinutesSummaryRep, err error) {
 	o := orm.NewOrm()
-	sql := `SELECT * FROM cygx_minutes_summary  WHERE article_id=?`
+	sql := `SELECT * FROM cygx_minutes_summary  WHERE article_id=? AND publish_status = 1 `
 	err = o.Raw(sql, articleId).QueryRow(&item)
 	return
 }
 
-type CygxMinutesSummaryLog struct {
-	ArticleSunId           int       `description:"子级报告id"`
-	ArticleId              int       `description:"父级报告Id"`
-	ChartPermissionId      int       `description:"行业ID"`
-	PermissionName         string    `description:"行业ID"`
-	CreateTime             time.Time `description:"创建时间"`
-	Body                   string    `description:"内容"`
-	IndustrialSubjectId    string    `description:"标的ID"`
-	IndustrialManagementId string    `description:"产业资源包Id  多个用 , 隔开"`
-	SubjectName            string    `description:"标的名称"`
-}
-
 //列表
 func GetMinutesSummarylogListAll(articleId int) (items []*MinutesSummaryChartPermission, err error) {
 	o := orm.NewOrm()
@@ -97,7 +55,7 @@ func GetMinutesSummarylogListAll(articleId int) (items []*MinutesSummaryChartPer
 			FROM
 			cygx_minutes_summary_log AS l
 			INNER JOIN chart_permission AS c ON c.chart_permission_id = l.chart_permission_id 
-			WHERE l.article_id = ?
+			WHERE l.article_id = ? 
 			GROUP BY l.chart_permission_id
 			ORDER BY l.chart_permission_sort ASC   `
 	_, err = o.Raw(sql, articleId).QueryRows(&items)

+ 26 - 0
models/report.go

@@ -225,3 +225,29 @@ func GetUserIsAdminCount(mobile string) (count int, err error) {
 	err = o.Raw(sql, mobile).QueryRow(&count)
 	return
 }
+
+type ReportDetailRoadshow struct {
+	ArticleId        int    `description:"报告Id"`
+	Title            string `description:"标题"`
+	Department       string `orm:"column(seller_and_mobile)"description:"作者"`
+	PublishDate      string `description:"发布时间"`
+	VideoUrl         string `description:"链接"`
+	VideoPlaySeconds string `description:"时长"`
+	VideoName        string `description:"音频名称"`
+	Abstract         string `description:"摘要"`
+	Body             string `description:"内容"`
+	CategoryName     string `description:"行业名称"`
+}
+
+type RoadshowDetailResp struct {
+	Detail        *ReportDetailRoadshow
+	HasPermission int `description:"1:有该行业权限,正常展示,2:无该行业权限,不存在权益客户下,3:无该品类权限,已提交过申请,4:无该行业权限,未提交过申请,5:潜在客户,未提交过申请,6:潜在客户,已提交过申请"`
+	HasFree       int `description:"1:已付费(至少包含一个品类的权限),2:未付费(没有任何品类权限)"`
+}
+
+func GetReportRoadshowDetailById(articleId int) (item *ReportDetailRoadshow, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_article WHERE article_id = ? AND publish_status = 1  `
+	err = o.Raw(sql, articleId).QueryRow(&item)
+	return
+}

+ 11 - 40
models/report_selection.go

@@ -6,23 +6,6 @@ import (
 	"time"
 )
 
-type CygxReportSelection struct {
-	ArticleId          int       `orm:"column(article_id);pk"description:"报告id"`
-	AddType            string    `description:"更新方式 1重新编辑  ,2 继承往期"`
-	Title              string    `description:"标题"`
-	Department         string    `description:"作者"`
-	PublishStatus      int       `description:"发布状态,1已发布,0未发布"`
-	PublishDate        time.Time `description:"发布时间"`
-	CreateTime         time.Time `description:"创建时间"`
-	LastUpdatedTime    time.Time `description:"最后一次更新时间"`
-	Periods            string    `description:"期数"`
-	HavePublish        int       `description:"是否发布过,1是,0否"`
-	InheritPeriods     string    `description:"继承期数"`
-	ProductDescription string    `description:"产品说明"`
-	UpdateDescription  string    `description:"更新说明"`
-	FocusOn            string    `description:"近期重点关注方向"`
-}
-
 type CygxReportSelectionRep struct {
 	ArticleId         int    `orm:"column(article_id);pk"description:"报告id"`
 	Title             string `description:"标题"`
@@ -39,32 +22,20 @@ type CygxReportSelectionListPublicRep struct {
 	List   []*CygxReportSelectionRep
 }
 
-type AddCygxReportSelection struct {
-	ArticleId          int    `description:"报告Id ,传0时新增,大于0时修改"`
-	AddType            string `description:"更新方式 1重新编辑  ,2 继承往期"`
-	InheritPeriods     string `description:"继承期数"`
+type DetailCygxReportSelectionRep struct {
+	ArticleId          int    `description:"报告Id"`
 	Title              string `description:"标题"`
 	Department         string `description:"作者"`
 	PublishDate        string `description:"发布时间"`
+	CreateTime         string `description:"创建时间"`
+	LastUpdatedTime    string `description:"最后一次更新时间"`
+	Periods            string `description:"期数"`
+	VideoUrl           string `description:"链接"`
+	VideoPlaySeconds   string `description:"时长"`
+	VideoName          string `description:"音频名称"`
 	ProductDescription string `description:"产品说明"`
 	UpdateDescription  string `description:"更新说明"`
 	FocusOn            string `description:"近期重点关注方向"`
-	DoType             int    `description:"操作方式,1发布,0保存"`
-}
-
-type DetailCygxReportSelectionRep struct {
-	ArticleId          int     `description:"报告Id"`
-	Title              string  `description:"标题"`
-	Department         string  `description:"作者"`
-	PublishDate        string  `description:"发布时间"`
-	CreateTime         string  `description:"创建时间"`
-	LastUpdatedTime    string  `description:"最后一次更新时间"`
-	Periods            string  `description:"期数"`
-	VideoUrl           string  `description:"链接"`
-	VideoPlaySeconds   float64 `description:"时长"`
-	ProductDescription string  `description:"产品说明"`
-	UpdateDescription  string  `description:"更新说明"`
-	FocusOn            string  `description:"近期重点关注方向"`
 }
 
 type ReportSelectionLetailResp struct {
@@ -94,7 +65,7 @@ type ReportSelectionId struct {
 
 //获取数量
 func GetCygxReportSelectionPublic(condition, tbdb string, pars []interface{}) (count int, err error) {
-	sqlCount := ` SELECT COUNT(1) AS count  FROM ` + tbdb + ` as art WHERE 1= 1  `
+	sqlCount := ` SELECT COUNT(1) AS count  FROM ` + tbdb + ` as art WHERE 1= 1 AND art.publish_status = 1   `
 	if condition != "" {
 		sqlCount += condition
 	}
@@ -106,7 +77,7 @@ func GetCygxReportSelectionPublic(condition, tbdb string, pars []interface{}) (c
 //通过纪要ID获取活动详情
 func GetCygxReportSelectionInfoById(articleId int) (item *DetailCygxReportSelectionRep, err error) {
 	o := orm.NewOrm()
-	sql := `SELECT * FROM cygx_report_selection  WHERE article_id=?`
+	sql := `SELECT * FROM cygx_report_selection  WHERE article_id=? AND publish_status = 1 `
 	err = o.Raw(sql, articleId).QueryRow(&item)
 	return
 }
@@ -114,7 +85,7 @@ func GetCygxReportSelectionInfoById(articleId int) (item *DetailCygxReportSelect
 //列表
 func GetReportSelectionListPublic(condition, tbdb string, pars []interface{}, startSize, pageSize int) (items []*CygxReportSelectionRep, err error) {
 	o := orm.NewOrm()
-	sql := `SELECT * FROM  ` + tbdb + ` as art WHERE 1= 1 `
+	sql := `SELECT * FROM  ` + tbdb + ` as art WHERE 1= 1 AND art.publish_status = 1  `
 	if condition != "" {
 		sql += condition
 	}

+ 9 - 38
models/researchSummary.go

@@ -5,44 +5,15 @@ import (
 	"time"
 )
 
-type CygxResearchSummary struct {
-	ArticleId          int       `orm:"column(article_id);pk"description:"报告id"`
-	AddType            string    `description:"更新方式 1重新编辑  ,2 继承往期"`
-	Title              string    `description:"标题"`
-	Department         string    `description:"作者"`
-	PublishStatus      int       `description:"发布状态,1已发布,0未发布"`
-	PublishDate        time.Time `description:"发布时间"`
-	CreateTime         time.Time `description:"创建时间"`
-	LastUpdatedTime    time.Time `description:"最后一次更新时间"`
-	Periods            string    `description:"期数"`
-	HavePublish        int       `description:"是否发布过,1是,0否"`
-	InheritPeriods     string    `description:"继承期数"`
-	ProductDescription string    `description:"产品说明"`
-	UpdateDescription  string    `description:"更新说明"`
-	FocusOn            string    `description:"近期重点关注方向"`
-}
-
-type AddCygxResearchSummary struct {
-	ArticleId          int    `description:"报告Id ,传0时新增,大于0时修改"`
-	AddType            string `description:"更新方式 1重新编辑  ,2 继承往期"`
-	InheritPeriods     string `description:"继承期数"`
-	Title              string `description:"标题"`
-	Department         string `description:"作者"`
-	PublishDate        string `description:"发布时间"`
-	ProductDescription string `description:"产品说明"`
-	UpdateDescription  string `description:"更新说明"`
-	FocusOn            string `description:"近期重点关注方向"`
-	DoType             int    `description:"操作方式,1发布,0保存"`
-}
-
 type DetailCygxResearchSummaryRep struct {
-	ArticleId        int     `description:"报告Id"`
-	Title            string  `description:"标题"`
-	Department       string  `description:"作者"`
-	PublishDate      string  `description:"发布时间"`
-	VideoUrl         string  `description:"链接"`
-	VideoPlaySeconds float64 `description:"时长"`
-	Abstract         string  `description:"摘要"`
+	ArticleId        int    `description:"报告Id"`
+	Title            string `description:"标题"`
+	Department       string `description:"作者"`
+	PublishDate      string `description:"发布时间"`
+	VideoUrl         string `description:"链接"`
+	VideoPlaySeconds string `description:"时长"`
+	VideoName        string `description:"音频名称"`
+	Abstract         string `description:"摘要"`
 }
 
 type ResearchSummaryLetailResp struct {
@@ -79,7 +50,7 @@ type ResearchSummaryId struct {
 //通过纪要ID获取详情
 func GetCygxResearchSummaryInfoById(articleId int) (item *DetailCygxResearchSummaryRep, err error) {
 	o := orm.NewOrm()
-	sql := `SELECT * FROM cygx_research_summary  WHERE article_id=?`
+	sql := `SELECT * FROM cygx_research_summary  WHERE article_id=?  AND publish_status = 1 `
 	err = o.Raw(sql, articleId).QueryRow(&item)
 	return
 }

+ 41 - 41
services/task.go

@@ -15,47 +15,47 @@ import (
 func Task() {
 	fmt.Println("start")
 	//同步数据
-	//if utils.RunMode == "release" {
-	//	syncTacticsListAddreport := task.NewTask("syncTacticsListAddreport", "0 */5 * * * *", SyncTacticsListAddreport) //同步文章
-	//	task.AddTask("syncTacticsListAddreport", syncTacticsListAddreport)
-	//	//同步纪要库中的Es
-	//	getSummarytoEs := task.NewTask("getSummarytoEs", "0 */30 * * * *", GetSummarytoEs) //同步纪要库内容到Es
-	//	task.AddTask("getSummarytoEs", getSummarytoEs)
-	//}
-	////修改任务状态
-	//updateActivitySattus := task.NewTask("syncTacticsListAddreport", "0 */1 8-22 * * *", UpdateActivitySattus)
-	//task.AddTask("updateActivitySattus", updateActivitySattus)
-	////更新深 和新的标签
-	//updateIndustrialManagementLabel := task.NewTask("updateIndustrialManagementLabel", "0 */30 * * * *", UpdateIndustrialManagementLabel)
-	//task.AddTask("updateIndustrialManagementLabel", updateIndustrialManagementLabel)
-	////更新报告的搜索栏内容
-	////UpdateIndustrialManagementSubjectNnames()
-	////会议提醒模板消息推送
-	//sendActivityBeginMsg := task.NewTask("sendActivityBeginMsg", "0 */10 8-22 * * *", SendActivityBeginMsg) //会议前60分钟的提醒
-	//task.AddTask("sendActivityBeginMsg", sendActivityBeginMsg)
-	//sendActivityBeginMsgMeeting := task.NewTask("sendActivityBeginMsgMeeting", "0 */5 8-22 * * *", SendActivityBeginMsgMeeting) //会议前15分钟的提醒
-	//task.AddTask("sendActivityBeginMsgMeeting", sendActivityBeginMsgMeeting)
-	////预约外呼名单,会前1小时自动发送邮件给专家组
-	//sendEmailFileToExpert := task.NewTask("sendEmailFileToExpert", "0 */5 8-22 * * *", SendEmailFileToExpert) //预约外呼名单,会前1小时自动发送邮件给专家组
-	//task.AddTask("sendEmailFileToExpert", sendEmailFileToExpert)
-	//
-	//sendEmailFileForAskMsgResearch := task.NewTask("sendEmailFileForAskMsgResearch", "0 */5 8-22 * * *", SendEmailFileForAskMsgResearch) //研选系列专家电话会,会前1小时将问题列表发送给邮箱
-	//task.AddTask("sendEmailFileForAskMsgResearch", sendEmailFileForAskMsgResearch)
-	//
-	//sendEmailFileForAskMsg := task.NewTask("sendEmailFileForAskMsg", "0 */5 8-22 * * *", SendEmailFileForAskMsg) //非研选系列专家电话会,根据主持人姓名,会前15分钟将问题列表发送给至该主持人对应邮箱
-	//task.AddTask("sendEmailFileForAskMsg", sendEmailFileForAskMsg)
-	//
-	//////白名单发送
-	////sendEmailUserWhiteList := task.NewTask("sendEmailUserWhiteList", "0 27 17 * * *", SendEmailUserWhiteList) //白名单发送
-	////task.AddTask("sendEmailUserWhiteList", sendEmailUserWhiteList)
-	//
-	////白名单发送2
-	//sendEmailUserWhiteListChange := task.NewTask("sendEmailUserWhiteListChange", "0 00 17 * * *", SendEmailUserWhiteListChange) //新增 和冻结的客户白名单
-	//task.AddTask("sendEmailUserWhiteListChange", sendEmailUserWhiteListChange)
-	//
-	////更改对应产业的文章阅读数量
-	//chageIndustrialArticleNum := task.NewTask("chageIndustrialArticleNum", "0 01 00 * * *", ChageIndustrialArticleNum) //更改对应产业的文章阅读数量
-	//task.AddTask("chageIndustrialArticleNum", chageIndustrialArticleNum)
+	if utils.RunMode == "release" {
+		syncTacticsListAddreport := task.NewTask("syncTacticsListAddreport", "0 */5 * * * *", SyncTacticsListAddreport) //同步文章
+		task.AddTask("syncTacticsListAddreport", syncTacticsListAddreport)
+		//同步纪要库中的Es
+		getSummarytoEs := task.NewTask("getSummarytoEs", "0 */30 * * * *", GetSummarytoEs) //同步纪要库内容到Es
+		task.AddTask("getSummarytoEs", getSummarytoEs)
+	}
+	//修改任务状态
+	updateActivitySattus := task.NewTask("syncTacticsListAddreport", "0 */1 8-22 * * *", UpdateActivitySattus)
+	task.AddTask("updateActivitySattus", updateActivitySattus)
+	//更新深 和新的标签
+	updateIndustrialManagementLabel := task.NewTask("updateIndustrialManagementLabel", "0 */30 * * * *", UpdateIndustrialManagementLabel)
+	task.AddTask("updateIndustrialManagementLabel", updateIndustrialManagementLabel)
+	//更新报告的搜索栏内容
+	//UpdateIndustrialManagementSubjectNnames()
+	//会议提醒模板消息推送
+	sendActivityBeginMsg := task.NewTask("sendActivityBeginMsg", "0 */10 8-22 * * *", SendActivityBeginMsg) //会议前60分钟的提醒
+	task.AddTask("sendActivityBeginMsg", sendActivityBeginMsg)
+	sendActivityBeginMsgMeeting := task.NewTask("sendActivityBeginMsgMeeting", "0 */5 8-22 * * *", SendActivityBeginMsgMeeting) //会议前15分钟的提醒
+	task.AddTask("sendActivityBeginMsgMeeting", sendActivityBeginMsgMeeting)
+	//预约外呼名单,会前1小时自动发送邮件给专家组
+	sendEmailFileToExpert := task.NewTask("sendEmailFileToExpert", "0 */5 8-22 * * *", SendEmailFileToExpert) //预约外呼名单,会前1小时自动发送邮件给专家组
+	task.AddTask("sendEmailFileToExpert", sendEmailFileToExpert)
+
+	sendEmailFileForAskMsgResearch := task.NewTask("sendEmailFileForAskMsgResearch", "0 */5 8-22 * * *", SendEmailFileForAskMsgResearch) //研选系列专家电话会,会前1小时将问题列表发送给邮箱
+	task.AddTask("sendEmailFileForAskMsgResearch", sendEmailFileForAskMsgResearch)
+
+	sendEmailFileForAskMsg := task.NewTask("sendEmailFileForAskMsg", "0 */5 8-22 * * *", SendEmailFileForAskMsg) //非研选系列专家电话会,根据主持人姓名,会前15分钟将问题列表发送给至该主持人对应邮箱
+	task.AddTask("sendEmailFileForAskMsg", sendEmailFileForAskMsg)
+
+	////白名单发送
+	//sendEmailUserWhiteList := task.NewTask("sendEmailUserWhiteList", "0 27 17 * * *", SendEmailUserWhiteList) //白名单发送
+	//task.AddTask("sendEmailUserWhiteList", sendEmailUserWhiteList)
+
+	//白名单发送2
+	sendEmailUserWhiteListChange := task.NewTask("sendEmailUserWhiteListChange", "0 00 17 * * *", SendEmailUserWhiteListChange) //新增 和冻结的客户白名单
+	task.AddTask("sendEmailUserWhiteListChange", sendEmailUserWhiteListChange)
+
+	//更改对应产业的文章阅读数量
+	chageIndustrialArticleNum := task.NewTask("chageIndustrialArticleNum", "0 01 00 * * *", ChageIndustrialArticleNum) //更改对应产业的文章阅读数量
+	task.AddTask("chageIndustrialArticleNum", chageIndustrialArticleNum)
 
 	//editOutboundMobile := task.NewTask("editOutboundMobile", "0 */1 8-22 * * *", EditOutboundMobile) //同步外呼号码与手机号
 	//task.AddTask("sendEmailFileToExpert", editOutboundMobile)