xingzai 1 год назад
Родитель
Сommit
3367ce1013

+ 27 - 0
controllers/cygx/activity.go

@@ -659,6 +659,8 @@ func (this *ActivityCoAntroller) PreserveAndPublish() {
 						itemVoice.VoiceName = vo.Name
 						itemVoice.VoiceUrl = vo.Url
 						itemVoice.VoicePlaySeconds = vo.PlaySeconds
+						itemVoice.BackgroundImg = req.BackgroundImg
+						itemVoice.ShareImg = req.ShareImg
 						itemVoice.CreateTime = time.Now()
 					}
 				}
@@ -669,6 +671,8 @@ func (this *ActivityCoAntroller) PreserveAndPublish() {
 					itemVideo.ActivityId = activityId
 					itemVideo.VideoDuration = videoDetail.VideoDuration
 					itemVideo.VideoUrl = videoDetail.VideoUrl
+					itemVideo.BackgroundImg = req.BackgroundImg
+					itemVideo.ShareImg = req.ShareImg
 					itemVideo.ModifyDate = time.Now().Format(utils.FormatDateTime)
 					itemVideo.CreateTime = time.Now().Format(utils.FormatDateTime)
 				}
@@ -1131,6 +1135,11 @@ func (this *ActivityCoAntroller) Detail() {
 	}
 	if len(VoiceReqList) == 0 {
 		VoiceReqList = make([]*cygx.CygxActivityVoiceReq, 0)
+	} else {
+		for _, v := range VoiceReqList {
+			activityInfo.BackgroundImg = v.BackgroundImg
+			activityInfo.ShareImg = v.ShareImg
+		}
 	}
 	VideoDetail, err := cygx.GetCygxActivityVideoReqDetail(activityId)
 	if err != nil && err.Error() != utils.ErrNoRow() {
@@ -1138,6 +1147,10 @@ func (this *ActivityCoAntroller) Detail() {
 		br.ErrMsg = "GetCygxActivityVideoReqDetail,Err:" + err.Error() + "activityId:" + strconv.Itoa(activityId)
 		return
 	}
+	if VideoDetail != nil {
+		activityInfo.BackgroundImg = VideoDetail.BackgroundImg
+		activityInfo.ShareImg = VideoDetail.ShareImg
+	}
 	if activityInfo.CustomerTypeIds != "" {
 		customerTypeIdslist := strings.Split(activityInfo.CustomerTypeIds, ",")
 		var permissionValueStr string
@@ -1180,6 +1193,20 @@ func (this *ActivityCoAntroller) Detail() {
 	if activityInfo.VisibleRange == 0 {
 		activityInfo.VisibleRange = 2
 	}
+
+	////如果是已结束的活动,而且封面图片为空,那么就给一个默认的图片
+	//if activityInfo.ActiveState == 3 && activityInfo.BackgroundImg == "" {
+	//	// 获取默认图配置 目前音频视频用的是同一个封面图,暂时不做区分处理
+	//	audioMap, _, audioShareMap, _, err := cygxService.GetMicroRoadShowDefaultImgConfig()
+	//	if err != nil && err.Error() != utils.ErrNoRow() {
+	//		br.Msg = "获取信息失败"
+	//		br.ErrMsg = "GetMicroRoadShowDefaultImgConfig,Err:" + err.Error() + "activityId:" + strconv.Itoa(activityId)
+	//		return
+	//	}
+	//	activityInfo.BackgroundImg = audioMap[activityInfo.ChartPermissionId]
+	//	activityInfo.ShareImg = audioShareMap[activityInfo.ChartPermissionId]
+	//}
+
 	//activityInfo.CancelDeadlineType = cygxService.ActivityCancelDeadlineType(activityInfo) //处理活动取消报名截止时间类型展示
 	activityInfo.VoiceList = VoiceReqList
 	activityInfo.VideoDetail = VideoDetail

+ 63 - 0
controllers/cygx/activity_video.go

@@ -1,6 +1,7 @@
 package cygx
 
 import (
+	"encoding/json"
 	"fmt"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"github.com/tealeg/xlsx"
@@ -343,3 +344,65 @@ func (this *ActivityVideoCoAntroller) CommentList() {
 	br.Msg = "获取成功"
 	br.Data = resp
 }
+
+// @Title 获取音视频上传之后的封面图
+// @Description 获取音视频上传之后的封面图
+// @Param   ActivityId   query   int  true       "活动ID"
+// @Param   FileType   query   int  true       "音视频文件类型 。1:音频。2:视频"
+// @Success 200 {object} cygx.ChartPermissionRepMoreList
+// @router /activityVideo/video_and_voice/img [get]
+func (this *ActivityVideoCoAntroller) VideoAndVoice() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	AdminUser := this.SysUser
+	if AdminUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,用户信息为空"
+		br.Ret = 408
+		return
+	}
+	activityId, _ := this.GetInt("ActivityId")
+	fileType, _ := this.GetInt("FileType")
+	if activityId < 1 {
+		br.Msg = "请输入活动ID"
+		return
+	}
+	activityInfo, err := cygx.GetAddActivityInfoById(activityId)
+	if err != nil {
+		br.Msg = "活动不存在"
+		br.ErrMsg = "活动ID错误,Err:" + err.Error() + "activityId:" + strconv.Itoa(activityId)
+		return
+	}
+	//key := utils.MicroRoadshowDefaultImgKey
+	conf, err := cygx.GetCygxConfigDetailByCode("activity_video_default_img")
+	if err != nil {
+		br.Msg = "获取微路演默认图配置失败" + err.Error()
+		return
+	}
+	list := new(cygx.ActivityVideoDefaultImgList)
+	if err = json.Unmarshal([]byte(conf.ConfigValue), &list); err != nil {
+		br.Msg = "微路演默认图配置配置值解析失败" + err.Error()
+		return
+	}
+	resp := new(cygx.ActivityVideoDefaultImgListResp)
+	if fileType == 1 {
+		for _, v := range list.Audio {
+			if v.ChartPermissionId == activityInfo.ChartPermissionId {
+				resp.List = v.List
+			}
+		}
+	} else {
+		for _, v := range list.Video {
+			if v.ChartPermissionId == activityInfo.ChartPermissionId {
+				resp.List = v.List
+			}
+		}
+	}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}

+ 45 - 8
controllers/cygx/report_selection.go

@@ -124,6 +124,7 @@ func (this *ReportSelectionController) PreserveAndPublish() {
 		item.IndustrialManagementId = v.IndustrialManagementId
 		item.OverviewArticleId = v.OverviewArticleId
 		item.IsNew = v.IsNew
+		item.IsShowOverviewArticle = v.IsShowOverviewArticle
 		if len(v.CompanyLabel) > 0 {
 			item.CompanyLabel = cygxService.ArticleComPanyLabelToStr(v.CompanyLabel)
 		}
@@ -168,9 +169,9 @@ func (this *ReportSelectionController) PreserveAndPublish() {
 			return
 		}
 	}
-	if req.DoType == 1 {
-		//cygxService.DoThisWeekLastWeekWxTemplateMsg(itemCrs.Title, itemCrs.PublishDate.Format(utils.FormatDateTime), itemCrs.ProductDescription, req.ArticleId, 1)
-	}
+	//if req.DoType == 1 {
+	//cygxService.DoThisWeekLastWeekWxTemplateMsg(itemCrs.Title, itemCrs.PublishDate.Format(utils.FormatDateTime), itemCrs.ProductDescription, req.ArticleId, 1)
+	//}
 	//生成音频文件
 	//articleId := req.ArticleId
 	//existMap := make(map[int]int)
@@ -341,11 +342,6 @@ func (this *ReportSelectionController) Detail() {
 			}
 		}
 	}
-	if err != nil {
-		br.Msg = "获取失败"
-		br.ErrMsg = "获取失败,Err:" + err.Error()
-		return
-	}
 
 	//获取关联的文章信息
 	mapArticle := make(map[int]string)
@@ -1000,6 +996,7 @@ func (this *ReportSelectionController) History() {
 				item := new(cygx.HistoryReportSelectionLogResp)
 				item.SubjectName = v2.SubjectName
 				item.IndustrialSubjectId = v2.IndustrialSubjectId
+				item.IsNew = v2.IsNew
 				item.Count = mapSubjectHistory[v2.IndustrialSubjectId]
 				resp.Count += item.Count
 				v.List = append(v.List, item)
@@ -1012,3 +1009,43 @@ func (this *ReportSelectionController) History() {
 	br.Msg = "获取成功"
 	br.Data = resp
 }
+
+// @Title  报告精选申请记录
+// @Description  报告精选申请记录接口
+// @Param   ArticleId   query   int  true       "报告Id"
+// @Success Ret=200 {object} cygx.DetailCygxReportSelectionRep
+// @router /reportSelection/tarryList [get]
+func (this *ReportSelectionController) RarryList() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	AdminUser := this.SysUser
+	if AdminUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,用户信息为空"
+		br.Ret = 408
+		return
+	}
+	articleId, _ := this.GetInt("ArticleId")
+	resp := new(cygx.CygxReportSelectionLogApplyListResp)
+	var condition string
+	var pars []interface{}
+	condition = " AND article_id = ? ORDER  BY create_time DESC  "
+	pars = append(pars, articleId)
+	list, err := cygx.GetCygxReportSelectionLogApplyRespList(condition, pars, 0, 0)
+	if err != nil {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "获取信息失败,Err:" + err.Error()
+		return
+	}
+	if len(list) == 0 {
+		list = make([]*cygx.CygxReportSelectionLogApplyResp, 0)
+	}
+	resp.List = list
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}

+ 4 - 0
models/cygx/activity.go

@@ -85,6 +85,8 @@ type ActivityRep struct {
 	VoiceList               []*CygxActivityVoiceReq
 	VideoDetail             *CygxActivityVideoReq
 	ListImgToText           []*AliyunOcrTextActivityResp `description:"识图建会的会议信息列表"`
+	BackgroundImg           string                       `description:"封面图片"`
+	ShareImg                string                       `description:"分享图片"`
 }
 
 // 活动添加、修改入参
@@ -166,6 +168,8 @@ type ActivityDetail struct {
 	PointsSet                 *CygxActivityPointsSetRsq `description:"研选扣点明细"`
 	IsShowHz                  int                       `description:"是否同时在弘则展示  1是,0否"`
 	ChartPermissionNameDeputy string                    `description:"副行业名称"`
+	BackgroundImg             string                    `description:"封面图片"`
+	ShareImg                  string                    `description:"分享图片"`
 }
 
 type ActivityDetailRep struct {

+ 40 - 0
models/cygx/activity_video.go

@@ -14,6 +14,8 @@ type CygxActivityVideo struct {
 	VideoDuration string `description:"视频时长"`
 	VideoCounts   int    `description:"播放量"`
 	VideoUrl      string `description:"视频地址"`
+	BackgroundImg string `description:"封面图片"`
+	ShareImg      string `description:"分享图片"`
 	CreateTime    string `description:"创建时间"`
 }
 
@@ -21,6 +23,8 @@ type CygxActivityVideoReq struct {
 	VideoName     string `description:"视频名称"`
 	VideoDuration string `description:"视频时长"`
 	VideoUrl      string `description:"视频地址"`
+	BackgroundImg string `description:"封面图片"`
+	ShareImg      string `description:"分享图片"`
 }
 
 // 活动详情
@@ -61,6 +65,8 @@ func UpdateCygxActivityVideo(item *CygxActivityVideo) (err error) {
 	updateParams["VideoName"] = item.VideoName
 	updateParams["VideoDuration"] = item.VideoDuration
 	updateParams["VideoUrl"] = item.VideoUrl
+	updateParams["BackgroundImg"] = item.BackgroundImg
+	updateParams["ShareImg"] = item.ShareImg
 	updateParams["ModifyDate"] = time.Now()
 	ptrStructOrTableName := "cygx_activity_video"
 	whereParam := map[string]interface{}{"activity_id": item.ActivityId}
@@ -149,6 +155,40 @@ func GetActivityVideoList(condition string, pars []interface{}) (items []*CygxAc
 	return
 }
 
+// MicroRoadShowDefaultImgList 微路演行业默认背景图列表
+type MicroRoadShowDefaultImgList struct {
+	Audio []*MicroRoadShowDefaultImg `description:"音频"`
+	Video []*MicroRoadShowDefaultImg `description:"视频"`
+}
+
+// MicroRoadShowDefaultImg 微路演行业默认背景图
+type MicroRoadShowDefaultImg struct {
+	ChartPermissionId   int    `description:"行业ID"`
+	ChartPermissionName string `description:"行业名称"`
+	ImgUrl              string `description:"背景图"`
+	ShareImg            string `description:"分享图"`
+}
+
+// MicroRoadShowDefaultImgList 微路演行业默认背景图列表
+type ActivityVideoDefaultImgList struct {
+	Audio []*ActivityVideoDefaultImg `description:"音频"`
+	Video []*ActivityVideoDefaultImg `description:"视频"`
+}
+
+type ActivityVideoDefaultImg struct {
+	ChartPermissionId int `description:"行业ID"`
+	List              []*MicroRoadShowDefaultImg
+}
+
+type ActivityVideoDefaultImgListResp struct {
+	List []*MicroRoadShowDefaultImg
+}
+
+type ActivityVideoDefaultImgResp struct {
+	BackgroundImg string `description:"封面图片"`
+	ShareImg      string `description:"分享图"`
+}
+
 // 删除数据
 func DeleteCygxActivityVideo(activityId int) (err error) {
 	o := orm.NewOrm()

+ 8 - 0
models/cygx/activity_voice.go

@@ -12,6 +12,8 @@ type CygxActivityVoice struct {
 	VoiceUrl         string    `description:"音频地址"`
 	VoiceName        string    `description:"音频名称"`
 	VoicePlaySeconds string    `description:"音频时长"`
+	BackgroundImg    string    `description:"封面图片"`
+	ShareImg         string    `description:"分享图片"`
 	CreateTime       time.Time `description:"创建时间"`
 }
 
@@ -21,6 +23,8 @@ type CygxActivityVoiceReq struct {
 	Name            string `description:"音频名称"`
 	PlaySeconds     string `description:"音频时长"`
 	ActivityVoiceId int    `description:"活动音频ID"`
+	BackgroundImg   string `description:"封面图片"`
+	ShareImg        string `description:"分享图片"`
 }
 
 // 添加
@@ -37,6 +41,8 @@ func UpdateCygxActivityVoice(item *CygxActivityVoice) (err error) {
 	updateParams["VoiceName"] = item.VoiceName
 	updateParams["VoicePlaySeconds"] = item.VoicePlaySeconds
 	updateParams["VoiceUrl"] = item.VoiceUrl
+	updateParams["BackgroundImg"] = item.BackgroundImg
+	updateParams["ShareImg"] = item.ShareImg
 	ptrStructOrTableName := "cygx_activity_voice"
 	whereParam := map[string]interface{}{"activity_id": item.ActivityId}
 	qs := to.QueryTable(ptrStructOrTableName)
@@ -62,6 +68,8 @@ func GetCygxActivityVoiceCount(condition string, pars []interface{}) (count int,
 func GetCygxActivityVoiceReqList(activityId int) (items []*CygxActivityVoiceReq, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT 
+			background_img,
+			share_img,
 			activity_voice_id,
 			voice_url AS url,
 			voice_name AS name,

+ 2 - 0
models/cygx/report_selection.go

@@ -51,6 +51,7 @@ type CygxReportSelectionRep struct {
 	ReportLink         string `description:"报告链接"`
 	VisibleRange       int    `description:"设置可见范围1全部,0内部"`
 	IsSendWxMsg        int    `description:"是否推送过微信模版消息,1是,0否"`
+	ApplyTotal         int    `description:"申请路演的数量"`
 }
 
 type CygxReportSelectionListRep struct {
@@ -116,6 +117,7 @@ type HistoryReportSelectionLogResp struct {
 	IndustrialSubjectId string `description:"标的ID"`
 	SubjectName         string `description:"标的名称"`
 	Count               int    `description:"数量"`
+	IsNew               int    `description:"是否为New标签"`
 }
 
 type ReportSelectionId struct {

+ 4 - 0
models/cygx/report_selection_log.go

@@ -17,6 +17,7 @@ type CygxReportSelectionLog struct {
 	CompanyLabel           string    `description:"公司标签多个用{|}隔开"`
 	OverviewArticleId      int       `description:"关联的综述报告ID"`
 	IsNew                  int       `description:"是否为New标签"`
+	IsShowOverviewArticle  int       `description:"是否展示综述报告 1展示,0隐藏"`
 }
 
 type CygxReportSelectionLogRep struct {
@@ -41,6 +42,7 @@ type AddCygxReportSelectionLog struct {
 	Label                    string   `description:"公司标签"`
 	OverviewArticleId        int      `description:"综述报告Id"`
 	IsNew                    int      `description:"是否为New标签"`
+	IsShowOverviewArticle    int      `description:"是否展示综述报告 1展示,0隐藏"`
 }
 
 type CygxReportSelectionLogResp struct {
@@ -56,6 +58,7 @@ type CygxReportSelectionLogResp struct {
 	OverviewArticleId        int      `description:"综述报告Id"`
 	OverviewArticleTitle     string   `description:"综述报告标题"`
 	IsNew                    int      `description:"是否为New标签"`
+	IsShowOverviewArticle    int      `description:"是否展示综述报告 1展示,0隐藏"`
 	ChartPermissionSort      int      `description:"品种排序"`
 }
 
@@ -110,6 +113,7 @@ type CygxReportSelectionLoglist struct {
 	SubjectName            string    `description:"标的名称"`
 	IcoLink                string    `orm:"column(image_url)"description:"图标链接"`
 	OverviewArticleId      int       `description:"关联的综述报告ID"`
+	IsNew                  int       `description:"是否为New标签"`
 }
 
 // 列表

+ 54 - 0
models/cygx/report_selection_log_apply.go

@@ -0,0 +1,54 @@
+package cygx
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+)
+
+type CygxReportSelectionLogApplyResp struct {
+	ReportSelectionLogApplyId int `orm:"column(report_selection_log_apply_id);pk"`
+	UserId                    int
+	CreateTime                string
+	Mobile                    string `description:"手机号"`
+	Email                     string `description:"邮箱"`
+	CompanyId                 int    `description:"公司id"`
+	CompanyName               string `description:"公司名称"`
+	RealName                  string `description:"用户实际名称"`
+	SellerName                string `description:"所属销售"`
+	RegisterPlatform          int    `description:"来源 1小程序,2:网页"`
+	ArticleId                 int    `description:"报告Id"`
+	IndustrialSubjectId       int    `description:"标的ID"`
+	SubjectName               string `description:"标的名称"`
+}
+
+type CygxReportSelectionLogApplyListResp struct {
+	List []*CygxReportSelectionLogApplyResp
+}
+
+// 获取数量
+func GetCygxReportSelectionLogApplyCount(condition string, pars []interface{}) (count int, err error) {
+	sqlCount := ` SELECT COUNT(1) AS count  FROM cygx_report_selection_log_apply as art WHERE 1= 1  `
+	if condition != "" {
+		sqlCount += condition
+	}
+	o := orm.NewOrm()
+	err = o.Raw(sqlCount, pars).QueryRow(&count)
+	return
+}
+
+// 列表
+func GetCygxReportSelectionLogApplyRespList(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxReportSelectionLogApplyResp, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_report_selection_log_apply as art WHERE 1= 1 `
+	if condition != "" {
+		sql += condition
+	}
+
+	if startSize+pageSize > 0 {
+		sql += ` LIMIT ?,?  `
+		_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	} else {
+		_, err = o.Raw(sql, pars).QueryRows(&items)
+	}
+
+	return
+}

+ 18 - 0
routers/commentsRouter.go

@@ -1240,6 +1240,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:ActivityVideoCoAntroller"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:ActivityVideoCoAntroller"],
+        beego.ControllerComments{
+            Method: "VideoAndVoice",
+            Router: `/activityVideo/video_and_voice/img`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:AdviceController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:AdviceController"],
         beego.ControllerComments{
             Method: "List",
@@ -2185,6 +2194,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:ReportSelectionController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:ReportSelectionController"],
+        beego.ControllerComments{
+            Method: "RarryList",
+            Router: `/reportSelection/tarryList`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:ReportSelectionController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:ReportSelectionController"],
         beego.ControllerComments{
             Method: "VisibleRange",

+ 41 - 0
services/cygx/acitvity.go

@@ -1,6 +1,7 @@
 package cygx
 
 import (
+	"encoding/json"
 	"errors"
 	"fmt"
 	"github.com/PuerkitoBio/goquery"
@@ -1474,3 +1475,43 @@ func CheckActivityUpdatePower(adminId int, activityInfo *cygx.ActivityDetail) (h
 	havePower = true
 	return
 }
+
+// GetMicroRoadShowDefaultImgConfig 获取微路演默认图/分享图配置
+func GetMicroRoadShowDefaultImgConfig() (audioMap, videoMap, audioShareMap, videoShareMap map[int]string, err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println("err:", err)
+			go alarm_msg.SendAlarmMsg("GetMicroRoadShowDefaultImgConfig 获取微路演默认图/分享图配置失败,Err:"+err.Error(), 3)
+		}
+	}()
+	audioMap = make(map[int]string, 0)
+	videoMap = make(map[int]string, 0)
+	audioShareMap = make(map[int]string, 0)
+	videoShareMap = make(map[int]string, 0)
+	key := utils.MicroRoadshowDefaultImgKey
+	conf, e := cygx.GetCygxConfigDetailByCode(key)
+	if e != nil {
+		err = errors.New("获取微路演默认图配置失败, Err: " + e.Error())
+		return
+	}
+	if conf.ConfigValue == "" {
+		err = errors.New("获取微路演默认图配置有误")
+		return
+	}
+	list := new(cygx.MicroRoadShowDefaultImgList)
+	if e = json.Unmarshal([]byte(conf.ConfigValue), &list); e != nil {
+		err = errors.New("微路演默认图配置配置值解析失败, Err: " + e.Error())
+		return
+	}
+	audioList := list.Audio
+	for i := range audioList {
+		audioMap[audioList[i].ChartPermissionId] = audioList[i].ImgUrl
+		audioShareMap[audioList[i].ChartPermissionId] = audioList[i].ShareImg
+	}
+	videoList := list.Video
+	for i := range videoList {
+		videoMap[videoList[i].ChartPermissionId] = videoList[i].ImgUrl
+		videoShareMap[videoList[i].ChartPermissionId] = videoList[i].ShareImg
+	}
+	return
+}

+ 1 - 0
utils/constants.go

@@ -394,6 +394,7 @@ const (
 	YI_DONG_ZHENG_TONG_YUN_TOKEN_KEY        string = "YI_DONG_ZHENG_TONG_YUN_TOKEN_KEY" //易董证通云的token,存Redis使用
 	CYGX_USER_KEY_LABEL                            = "CYGX_USER_KEY_LABEL"              //查研观向用户标签
 	TPL_MSG_WANG_YANG                              = "tpl_msg_wang_yang"                //汪洋手机号地址参数
+	MicroRoadshowDefaultImgKey                     = "micro_roadshow_default_img"       // 音视频封面图
 	PERMISSION_ID_YANXUAN_DIFF                     = 20000                              // 买方研选区分3w和5w的差值
 	ZHUAN_JIA_NAME                          string = "专家"
 	ZHUAN_JIA_ID                            int    = 29