package controllers import ( "encoding/json" "fmt" "github.com/rdlucklib/rdluck_tools/paging" "hongze/hongze_cygx/models" "hongze/hongze_cygx/services" "hongze/hongze_cygx/utils" "strconv" "strings" "time" ) // 微路演 type MicroRoadShowController struct { BaseAuthController } // @Title 微路演列表 // @Description 微路演列表接口 // @Param PageSize query int true "每页数据条数" // @Param CurrentIndex query int true "当前页页码,从1开始" // @Param KeyWord query string false "搜索关键词" // @Param Filter query string false "筛选条件 为空:全部 1:视频 2:音频 多个用 , 隔开" // @Param ChartPermissionIds query string false "行业id 多个用 , 隔开" // @Param SourceId query int true "资源ID" // @Param SourceType query int true " 1:活动音频 2:活动视频 3:产业视频 4:问答系列" // @Param SearchType string int true "搜索类型: 1-路演回放; 2-问答系列; 3-调研反馈 多个用 , 隔开" // @Success 200 {object} models.HomeListResp // @router /list [get] func (this *MicroRoadShowController) List() { 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 } pageSize, _ := this.GetInt("PageSize") currentIndex, _ := this.GetInt("CurrentIndex") keywords := this.GetString("KeyWord") filter := this.GetString("Filter") chartPermissionIds := this.GetString("ChartPermissionIds") sourceId, _ := this.GetInt("SourceId") sourceType, _ := this.GetInt("SourceType") searchType := this.GetString("SearchType") if pageSize <= 0 { pageSize = utils.PageSize20 } if currentIndex <= 0 { currentIndex = 1 } var keyWordArr []string var err error if keywords != "" { keyWordArr, err = services.GetIndustryMapNameSliceV3(keywords) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取分词失败,GetIndustryMapNameSliceV3 Err: " + err.Error() return } keyWordArr = services.RemoveDuplicatesAndEmpty(keyWordArr) } var list []*models.MicroRoadShowPageList var total int var e error // 微路演列表 list, total, e = services.GetMicroRoadShowPageListV12(pageSize, currentIndex, sourceId, sourceType, filter, keywords, searchType, chartPermissionIds) if e != nil { br.Msg = "获取失败" br.ErrMsg = "获取微路演列表失败, Err: " + e.Error() return } userId := user.UserId listMycollect, err := models.GetUserMicroRoadshowCollectList(userId) if err != nil { br.Msg = "获取数据失败" br.ErrMsg = "获取数据失败,Err:" + err.Error() return } mapaudioIds := make(map[int]int) //活动音频 mapvideoIds := make(map[int]int) // 微路演视频 mapactivityVideoIds := make(map[int]int) // 活动视频 mapAskserieVideoIds := make(map[int]int) // 问答系列音频 for _, item := range listMycollect { if item.ActivityVoiceId > 0 { mapaudioIds[item.ActivityVoiceId] = item.ActivityVoiceId } else if item.VideoId > 0 { mapvideoIds[item.VideoId] = item.VideoId } else if item.ActivityVideoId > 0 { mapactivityVideoIds[item.ActivityVideoId] = item.ActivityVideoId } } listAskserieVideoCollect, err := models.GetUserCygxAskserieVideoCollectList(userId) if err != nil { br.Msg = "获取数据失败" br.ErrMsg = "获取数据失败,Err:" + err.Error() return } for _, v := range listAskserieVideoCollect { if v.AskserieVideoId > 0 { mapAskserieVideoIds[v.AskserieVideoId] = v.AskserieVideoId } } for _, item := range list { if item.Type == 1 { //音频 if mapaudioIds[item.Id] > 0 { item.IsCollect = true } } else if item.Type == 2 { //活动视频 if mapactivityVideoIds[item.Id] > 0 { item.IsCollect = true } } else if item.Type == 3 { //微路演视频 if mapvideoIds[item.Id] > 0 { item.IsCollect = true } } else if item.Type == 4 { //系列问答视频 if mapAskserieVideoIds[item.SourceId] > 0 { item.IsCollect = true } } } // 用户权限 authInfo, permissionArr, e := services.GetUserRaiPermissionInfo(user.UserId, user.CompanyId) if e != nil { br.Msg = "获取失败" br.ErrMsg = "获取用户权限失败, Err: " + e.Error() return } // 获取默认图配置 audioMap, videoMap, audioShareMap, videoShareMap, e := services.GetMicroRoadShowDefaultImgConfig() if e != nil { br.Msg = "获取失败" br.ErrMsg = "获取微路演列表失败, Err: " + e.Error() return } for i := range list { // 权限 au := new(models.UserPermissionAuthInfo) au.SellerName = authInfo.SellerName au.SellerMobile = authInfo.SellerMobile au.HasPermission = authInfo.HasPermission au.OperationMode = authInfo.OperationMode if au.HasPermission == 1 { // 非宏观权限进一步判断是否有权限 if list[i].ChartPermissionId != utils.HONG_GUAN_ID && !utils.InArrayByStr(permissionArr, list[i].ChartPermissionName) { au.HasPermission = 2 } } // 无权限的弹框提示 if au.HasPermission != 1 { if au.OperationMode == services.UserPermissionOperationModeCall { if list[i].Type == 1 { au.PopupMsg = services.UserPermissionPopupMsgCallActivity } else { au.PopupMsg = services.UserPermissionPopupMsgCallMicroVideo } } else { if list[i].Type == 1 { au.PopupMsg = services.UserPermissionPopupMsgApplyActivity } else { au.PopupMsg = services.UserPermissionPopupMsgApplyMicroVideo } } } list[i].AuthInfo = au list[i].PublishTime = utils.StrTimeToTime(list[i].PublishTime).Format(utils.FormatDate) // 默认图 if list[i].BackgroundImg == "" { if list[i].Type == 1 { list[i].BackgroundImg = audioMap[list[i].ChartPermissionId] } else { list[i].BackgroundImg = videoMap[list[i].ChartPermissionId] } } // 分享图 if list[i].ShareImg == "" { if list[i].Type == 1 { list[i].ShareImg = audioShareMap[list[i].ChartPermissionId] } else { list[i].ShareImg = videoShareMap[list[i].ChartPermissionId] } } } if len(list) == 0 { list = make([]*models.MicroRoadShowPageList, 0) } resp := new(models.MicroRoadShowListResp) page := paging.GetPaging(currentIndex, pageSize, total) resp.List = list resp.Paging = page br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp } // @Title 记录用户浏览音频回放接口 // @Description 记录用户浏览音频回放接口 // @Param request body models.ActivityIdRep true "type json string" // @Success Ret=200 {object} models.AppointmentResp // @router /videoHistory/add [post] func (this *MicroRoadShowController) VideoHistoryAdd() { 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 } var req models.AddVideoHistoryReq err := json.Unmarshal(this.Ctx.Input.RequestBody, &req) if err != nil { br.Msg = "参数解析异常!" br.ErrMsg = "参数解析失败,Err:" + err.Error() return } sourceId := req.SourceId playSeconds := req.PlaySeconds sourceType := req.SourceType if sourceType == 0 { sourceType = 1 } if sourceType == 1 { //添加活动音频的播放记录 go services.AddActivityVoiceHistory(user, sourceId, playSeconds) } else if sourceType == 2 { //添加活动视频的播放记录 go services.AddActivityVideoHistory(user, sourceId, playSeconds) } else if sourceType == 3 { // 添加产业视频播放记录 go services.AddMicroRoadshowVideoRecord(user, sourceId, playSeconds) } else if sourceType == 4 { go services.AddAskserieVideoHistoryRecord(user, sourceId, playSeconds) } go services.AddAllCygxVoiceAndVideoHistory(user, sourceId, sourceType, playSeconds) br.Ret = 200 br.Success = true br.Msg = "操作成功" return } // @Title 微路演新增留言 // @Description 微路演新增留言接口 // @Param request body models.AddVideoCommnetReq true "type json string" // @Success Ret=200 {object} models.AppointmentResp // @router /comment/add [post] func (this *MicroRoadShowController) CommentAdd() { 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 var req models.AddVideoCommnetReq err := json.Unmarshal(this.Ctx.Input.RequestBody, &req) if err != nil { br.Msg = "参数解析异常!" br.ErrMsg = "参数解析失败,Err:" + err.Error() return } var isResearch bool // 是否属于研选 sourceType := req.SourceType title := req.Title if sourceType == 0 { sourceType = 1 } fmt.Println(sourceType) item := models.CygxArticleComment{ UserId: uid, CreateTime: time.Now(), RealName: user.RealName, Mobile: user.Mobile, Email: user.Email, CompanyId: user.CompanyId, CompanyName: user.CompanyName, Content: req.Content, Title: req.Title, } sourceId := req.SourceId //var resourceId int if sourceType == 1 { activityVoiceInfo, _ := models.GetCygxActivityVoiceByActivityId(sourceId) if activityVoiceInfo == nil { br.Msg = "操作失败" br.ErrMsg = "活动ID错误,不存在activityId:" + strconv.Itoa(sourceId) return } item.ActivityId = sourceId item.ActivityVoiceId = activityVoiceInfo.ActivityVoiceId err = models.UpdateActivityVoiceCommentNum(sourceId) if err != nil { br.Msg = "操作失败" br.ErrMsg = "操作失败 ,更新活动音频留言次数失败:" + strconv.Itoa(sourceId) return } } else if sourceType == 2 { activityInfo, _ := models.GetCygxActivityVideoByActivityId(sourceId) if activityInfo == nil { br.Msg = "操作失败" br.ErrMsg = "活动ID错误,不存在activityId:" + strconv.Itoa(sourceId) return } item.VideoId = activityInfo.VideoId item.ActivityId = sourceId err = models.UpdateActivityVideoCommentNum(sourceId) if err != nil { br.Msg = "操作失败" br.ErrMsg = "操作失败 ,更新活动视频留言次数失败:" + strconv.Itoa(sourceId) return } } else if sourceType == 3 { item.VideoId = sourceId microVideo, e := models.GetMicroRoadshowVideoById(sourceId) if e != nil { br.Msg = "操作失败" br.ErrMsg = "微路演视频信息有误, 不存在的VideoId: " + strconv.Itoa(sourceId) return } item.IndustryId = microVideo.IndustryId //resourceId = microVideo.IndustryId } else if sourceType == 4 { item.AskserieVideoId = sourceId go services.AddCygxAskserieVideoCollection(user, item.AskserieVideoId, req.Content) } if sourceType == 1 || sourceType == 2 { detail, err := models.GetAddActivityInfoById(sourceId) if err != nil { br.Msg = "操作失败" br.ErrMsg = "活动ID错误,不存在activityId:" + strconv.Itoa(sourceId) return } if strings.Contains(detail.ChartPermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) { isResearch = true } } msgId, err := models.AddArticleComment(&item) if err != nil { br.Msg = "提交失败" br.ErrMsg = "提交留言失败,Err:" + err.Error() return } services.SendWxMsgWithMicroRoadshowAsk(req, user, sourceType, int(msgId), title, isResearch) br.Ret = 200 br.Success = true br.Msg = "操作成功" return } // @Title 微路演收藏 // @Description 微路演收藏 // @Param request body models.MicroRoadshowCollectReq true "type json string" // @Success 200 {object} models.FontsCollectResp // @router /collect [post] func (this *MicroRoadShowController) Collect() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() user := this.User if user == nil { br.Msg = "请重新登录" br.Ret = 408 return } uid := user.UserId var req models.MicroRoadshowCollectReq err := json.Unmarshal(this.Ctx.Input.RequestBody, &req) if err != nil { br.Msg = "参数解析异常!" br.ErrMsg = "参数解析失败,Err:" + err.Error() return } sourceId := req.SourceId if req.SourceType == 1 { detail, err := models.GetCygxActivityVoiceByActivityId(sourceId) if err != nil { br.Msg = "获取信息失败" br.ErrMsg = "获取信息失败,Err:" + err.Error() return } count, err := models.GetVoiceCollectCount(uid, detail.ActivityVoiceId) if err != nil { br.Msg = "获取数据失败!" br.ErrMsg = "获取数据失败,Err:" + err.Error() return } resp := new(models.ArticleCollectResp) if count <= 0 { item := new(models.CygxArticleCollect) item.ActivityVoiceId = detail.ActivityVoiceId item.UserId = uid item.CreateTime = time.Now() item.Mobile = user.Mobile item.Email = user.Email item.CompanyId = user.CompanyId item.CompanyName = user.CompanyName item.RealName = user.RealName _, err = models.AddCygxArticleCollect(item) if err != nil { br.Msg = "收藏失败" br.ErrMsg = "收藏失败,Err:" + err.Error() return } br.Msg = "收藏成功" resp.Status = 1 // 文章收藏消息发送 //go services.ArticleUserRemind(user, detail, 2) } else { err = models.RemoveVoiceCollect(uid, detail.ActivityVoiceId) if err != nil { br.Msg = "取消收藏失败" br.ErrMsg = "取消收藏失败,Err:" + err.Error() return } br.Msg = "已取消收藏" resp.Status = 2 } collectTotal, err := models.GetVoiceCollectUsersCount(detail.ActivityVoiceId) if err != nil { br.Msg = "获取数据失败" br.ErrMsg = "获取数据失败,Err:" + err.Error() return } resp.CollectCount = collectTotal br.Ret = 200 br.Success = true br.Data = resp } else if req.SourceType == 2 { detail, err := models.GetCygxActivityVideoByActivityIdInfo(sourceId) if err != nil { br.Msg = "获取信息失败" br.ErrMsg = "获取信息失败,Err:" + err.Error() return } count, err := models.GetActivityVideoCollectCount(uid, detail.Id) if err != nil { br.Msg = "获取数据失败!" br.ErrMsg = "获取数据失败,Err:" + err.Error() return } resp := new(models.ArticleCollectResp) if count <= 0 { item := new(models.CygxArticleCollect) item.ActivityVideoId = detail.Id item.UserId = uid item.CreateTime = time.Now() item.ModifyTime = time.Now() item.Mobile = user.Mobile item.Email = user.Email item.CompanyId = user.CompanyId item.CompanyName = user.CompanyName item.RealName = user.RealName _, err = models.AddCygxArticleCollect(item) if err != nil { br.Msg = "收藏失败" br.ErrMsg = "收藏失败,Err:" + err.Error() return } br.Msg = "收藏成功" resp.Status = 1 // 文章收藏消息发送 //go services.ArticleUserRemind(user, detail, 2) } else { err = models.RemoveActivityVideoCollect(uid, detail.Id) if err != nil { br.Msg = "取消收藏失败" br.ErrMsg = "取消收藏失败,Err:" + err.Error() return } br.Msg = "已取消收藏" resp.Status = 2 } collectTotal, err := models.GetActivityVideoCollectUsersCount(detail.Id) if err != nil { br.Msg = "获取数据失败" br.ErrMsg = "获取数据失败,Err:" + err.Error() return } resp.CollectCount = collectTotal br.Ret = 200 br.Success = true br.Data = resp } else if req.SourceType == 3 { _, err := models.GetMicroRoadshowVideoById(sourceId) if err != nil { br.Msg = "获取信息失败" br.ErrMsg = "获取信息失败,Err:" + err.Error() return } count, err := models.GetVideoCollectCount(uid, sourceId) if err != nil { br.Msg = "获取数据失败!" br.ErrMsg = "获取数据失败,Err:" + err.Error() return } resp := new(models.ArticleCollectResp) if count <= 0 { item := new(models.CygxArticleCollect) item.VideoId = sourceId item.UserId = uid item.CreateTime = time.Now() item.Mobile = user.Mobile item.Email = user.Email item.CompanyId = user.CompanyId item.CompanyName = user.CompanyName item.RealName = user.RealName _, err = models.AddCygxArticleCollect(item) if err != nil { br.Msg = "收藏失败" br.ErrMsg = "收藏失败,Err:" + err.Error() return } br.Msg = "收藏成功" resp.Status = 1 // 文章收藏消息发送 //go services.ArticleUserRemind(user, detail, 2) } else { err = models.RemoveVideoCollect(uid, sourceId) if err != nil { br.Msg = "取消收藏失败" br.ErrMsg = "取消收藏失败,Err:" + err.Error() return } br.Msg = "已取消收藏" resp.Status = 2 } collectTotal, err := models.GetVideoCollectUsersCount(sourceId) if err != nil { br.Msg = "获取数据失败" br.ErrMsg = "获取数据失败,Err:" + err.Error() return } resp.CollectCount = collectTotal br.Ret = 200 br.Success = true br.Data = resp } else if req.SourceType == 4 { // 系列问答视频收藏 count, err := models.GetAskserieVideoCount(uid, sourceId) if err != nil { br.Msg = "获取数据失败!" br.ErrMsg = "获取数据失败,Err:" + err.Error() return } resp := new(models.ArticleCollectResp) if count <= 0 { item := new(models.CygxAskserieVideoCollect) item.AskserieVideoId = sourceId item.UserId = uid item.CreateTime = time.Now() item.Mobile = user.Mobile item.Email = user.Email item.CompanyId = user.CompanyId item.CompanyName = user.CompanyName item.RealName = user.RealName item.RegisterPlatform = utils.REGISTER_PLATFORM err = models.AddCygxAskserieVideoCollect(item) if err != nil { br.Msg = "收藏失败" br.ErrMsg = "收藏失败,Err:" + err.Error() return } br.Msg = "收藏成功" resp.Status = 1 // 文章收藏消息发送 //go services.ArticleUserRemind(user, detail, 2) } else { err = models.RemoveAskserieVideoCollect(uid, sourceId) if err != nil { br.Msg = "取消收藏失败" br.ErrMsg = "取消收藏失败,Err:" + err.Error() return } br.Msg = "已取消收藏" resp.Status = 2 } br.Ret = 200 br.Success = true br.Data = resp } } // @Title 我的收藏微路演列表 // @Description 我的收藏微路演列表接口 // @Param PageSize query int true "每页数据条数" // @Param CurrentIndex query int true "当前页页码,从1开始" // @Success 200 {object} models.HomeListResp // @router /mycollect [get] func (this *MicroRoadShowController) Mycollect() { 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 } pageSize, _ := this.GetInt("PageSize") currentIndex, _ := this.GetInt("CurrentIndex") if pageSize <= 0 { pageSize = utils.PageSize20 } if currentIndex <= 0 { currentIndex = 1 } userId := user.UserId listMycollect, err := models.GetUserMicroRoadshowCollectList(userId) if err != nil { br.Msg = "获取数据失败" br.ErrMsg = "获取数据失败,Err:" + err.Error() return } listAskserieVideoCollect, err := models.GetUserCygxAskserieVideoCollectList(userId) if err != nil { br.Msg = "获取数据失败" br.ErrMsg = "获取数据失败,Err:" + err.Error() return } var audioIds []string var videoIds []string var activityVideoIds []string var askserieVideoIds []string //问答系列视频 for _, item := range listMycollect { if item.ActivityVoiceId > 0 { audioIds = append(audioIds, strconv.Itoa(item.ActivityVoiceId)) } else if item.VideoId > 0 { videoIds = append(videoIds, strconv.Itoa(item.VideoId)) } else if item.ActivityVideoId > 0 { activityVideoIds = append(activityVideoIds, strconv.Itoa(item.ActivityVideoId)) } } for _, item := range listAskserieVideoCollect { askserieVideoIds = append(askserieVideoIds, strconv.Itoa(item.AskserieVideoId)) } if len(audioIds) == 0 && len(videoIds) == 0 && len(activityVideoIds) == 0 && len(askserieVideoIds) == 0 { resp := new(models.MicroRoadShowListResp) page := paging.GetPaging(currentIndex, pageSize, 0) resp.List = make([]*models.MicroRoadShowPageList, 0) resp.Paging = page br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp return } audioIdstr := strings.Join(audioIds, ",") ideoIdsStr := strings.Join(videoIds, ",") activityVideoIdsStr := strings.Join(activityVideoIds, ",") askserieVideoIdsStr := strings.Join(askserieVideoIds, ",") // 微路演列表 list, total, e := services.GetMicroRoadShowMycollectV12(pageSize, currentIndex, audioIdstr, activityVideoIdsStr, ideoIdsStr, askserieVideoIdsStr, user) if e != nil { br.Msg = "获取失败" br.ErrMsg = "获取微路演列表失败, Err: " + e.Error() return } for _, item := range list { //if item.Type == 1 { // //音频 // count, err := models.GetVoiceCollectCount(user.UserId, item.Id) // if err != nil { // br.Msg = "获取数据失败!" // br.ErrMsg = "获取数据失败,Err:" + err.Error() // return // } // if count > 0 { // item.IsCollect = true // } //} else if item.Type == 2 { // //活动视频 // count, err := models.GetActivityVideoCollectCount(user.UserId, item.Id) // if err != nil { // br.Msg = "获取数据失败!" // br.ErrMsg = "获取数据失败,Err:" + err.Error() // return // } // if count > 0 { // item.IsCollect = true // } //} else if item.Type == 3 { // //微路演视频 // count, err := models.GetVideoCollectCount(user.UserId, item.Id) // if err != nil { // br.Msg = "获取数据失败!" // br.ErrMsg = "获取数据失败,Err:" + err.Error() // return // } // if count > 0 { // item.IsCollect = true // } //} item.IsCollect = true } // 用户权限 authInfo, permissionArr, e := services.GetUserRaiPermissionInfo(user.UserId, user.CompanyId) if e != nil { br.Msg = "获取失败" br.ErrMsg = "获取用户权限失败, Err: " + e.Error() return } // 获取默认图配置 audioMap, videoMap, audioShareMap, videoShareMap, e := services.GetMicroRoadShowDefaultImgConfig() if e != nil { br.Msg = "获取失败" br.ErrMsg = "获取微路演列表失败, Err: " + e.Error() return } for i := range list { // 权限 au := new(models.UserPermissionAuthInfo) au.SellerName = authInfo.SellerName au.SellerMobile = authInfo.SellerMobile au.HasPermission = authInfo.HasPermission au.OperationMode = authInfo.OperationMode if au.HasPermission == 1 { // 非宏观权限进一步判断是否有权限 if list[i].ChartPermissionId != utils.HONG_GUAN_ID && !utils.InArrayByStr(permissionArr, list[i].ChartPermissionName) { au.HasPermission = 2 } } // 无权限的弹框提示 if au.HasPermission != 1 { if au.OperationMode == services.UserPermissionOperationModeCall { if list[i].Type == 1 { au.PopupMsg = services.UserPermissionPopupMsgCallActivity } else { au.PopupMsg = services.UserPermissionPopupMsgCallMicroVideo } } else { if list[i].Type == 1 { au.PopupMsg = services.UserPermissionPopupMsgApplyActivity } else { au.PopupMsg = services.UserPermissionPopupMsgApplyMicroVideo } } } list[i].AuthInfo = au list[i].PublishTime = utils.StrTimeToTime(list[i].PublishTime).Format(utils.FormatDate) // 默认图 if list[i].BackgroundImg == "" { if list[i].Type == 1 { list[i].BackgroundImg = audioMap[list[i].ChartPermissionId] } else { list[i].BackgroundImg = videoMap[list[i].ChartPermissionId] } } // 分享图 if list[i].ShareImg == "" { if list[i].Type == 1 { list[i].ShareImg = audioShareMap[list[i].ChartPermissionId] } else { list[i].ShareImg = videoShareMap[list[i].ChartPermissionId] } } } resp := new(models.MicroRoadShowListResp) page := paging.GetPaging(currentIndex, pageSize, total) resp.List = list resp.Paging = page br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp } // @Title 模版消息留言详情 // @Description 模版消息留言详情接口 // @Param SourceId query int true "资源ID" // @Param SourceType query int true "留言类型,1:文章、2:活动、3:微路演视频、4:活动视频、5:活动音频" // @Success Ret=200 {object} models.CygxArticleCommentWxResp // @router /comment/detail [get] func (this *MicroRoadShowController) CommentDetail() { 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 } sourceId, _ := this.GetInt("SourceId") sourceType, _ := this.GetInt("SourceType") resp := new(models.CygxArticleCommentWxResp) if sourceType == 1 || sourceType == 3 || sourceType == 4 || sourceType == 5 { detail, err := models.GetArticleCommentById(sourceId) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取用户权限失败, Err: " + err.Error() return } resp.Content = detail.Content if sourceType == 1 { resp.SourceId = detail.ArticleId resp.RedirectType = 1 } else if sourceType == 3 { resp.SourceId = detail.IndustryId resp.RedirectType = 3 } else { resp.SourceId = detail.ActivityId resp.RedirectType = 2 } } else { detail, err := models.GetCygxActivityHelpAskById(sourceId) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取用户权限失败, Err: " + err.Error() return } resp.Content = detail.Content resp.SourceId = detail.ActivityId resp.RedirectType = 2 } br.Ret = 200 br.Success = true br.Data = resp br.Msg = "操作成功" return } // @Title 策略系列培训视频 // @Description 策略系列培训视频接口 // @Param PageSize query int true "每页数据条数" // @Param CurrentIndex query int true "当前页页码,从1开始" // @Success 200 {object} models.HomeListResp // @router /training/list [get] func (this *MicroRoadShowController) TrainingList() { 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 } pageSize, _ := this.GetInt("PageSize") currentIndex, _ := this.GetInt("CurrentIndex") if pageSize <= 0 { pageSize = utils.PageSize20 } if currentIndex <= 0 { currentIndex = 1 } var audioIds []string var videoIds []string var activityVideoIds []string var askserieVideoIds []string //问答系列视频 activityVideoIds = []string{"461", "462", "463", "464", "465", "466"} // 系列培训视频,固定的六个,这里先写死 activityVideoTitle := []string{"第一期_A股运行特征探讨", "第二期_行业比较研究", "第三期_市场风格观察与我们的研究方法", "第四期_市场估值指标追踪", "第五期_宏观经济研究", "第六期_市场回顾专题"} // 系列培训视频,固定的六个,这里先写死 audioIdstr := strings.Join(audioIds, ",") ideoIdsStr := strings.Join(videoIds, ",") activityVideoIdsStr := strings.Join(activityVideoIds, ",") askserieVideoIdsStr := strings.Join(askserieVideoIds, ",") // 微路演列表 list, total, e := services.GetMicroRoadShowMycollectV12(pageSize, currentIndex, audioIdstr, activityVideoIdsStr, ideoIdsStr, askserieVideoIdsStr, user) if e != nil { br.Msg = "获取失败" br.ErrMsg = "获取微路演列表失败, Err: " + e.Error() return } //存储反转数据 reversed := []*models.MicroRoadShowPageList{} for i := range list { n := list[len(list)-1-i] reversed = append(reversed, n) } list = reversed // 用户权限 authInfo, permissionArr, e := services.GetUserRaiPermissionInfo(user.UserId, user.CompanyId) if e != nil { br.Msg = "获取失败" br.ErrMsg = "获取用户权限失败, Err: " + e.Error() return } // 获取默认图配置 audioMap, videoMap, audioShareMap, videoShareMap, e := services.GetMicroRoadShowDefaultImgConfig() if e != nil { br.Msg = "获取失败" br.ErrMsg = "获取微路演列表失败, Err: " + e.Error() return } for i := range list { // 权限 au := new(models.UserPermissionAuthInfo) au.SellerName = authInfo.SellerName au.SellerMobile = authInfo.SellerMobile au.HasPermission = authInfo.HasPermission au.OperationMode = authInfo.OperationMode if au.HasPermission == 1 { // 非宏观权限进一步判断是否有权限 if list[i].ChartPermissionId != utils.HONG_GUAN_ID && !utils.InArrayByStr(permissionArr, list[i].ChartPermissionName) { au.HasPermission = 2 } } // 无权限的弹框提示 if au.HasPermission != 1 { if au.OperationMode == services.UserPermissionOperationModeCall { if list[i].Type == 1 { au.PopupMsg = services.UserPermissionPopupMsgCallActivity } else { au.PopupMsg = services.UserPermissionPopupMsgCallMicroVideo } } else { if list[i].Type == 1 { au.PopupMsg = services.UserPermissionPopupMsgApplyActivity } else { au.PopupMsg = services.UserPermissionPopupMsgApplyMicroVideo } } } list[i].AuthInfo = au list[i].PublishTime = utils.StrTimeToTime(list[i].PublishTime).Format(utils.FormatDate) // 默认图 if list[i].BackgroundImg == "" { if list[i].Type == 1 { list[i].BackgroundImg = audioMap[list[i].ChartPermissionId] } else { list[i].BackgroundImg = videoMap[list[i].ChartPermissionId] } } list[i].BackgroundImg = "https://hzstatic.hzinsights.com/cygx/micro_roadshow_default_cl_video.png" //前端小程序忘记添加音视频图标,先手动替换 // 分享图 if list[i].ShareImg == "" { if list[i].Type == 1 { list[i].ShareImg = audioShareMap[list[i].ChartPermissionId] } else { list[i].ShareImg = videoShareMap[list[i].ChartPermissionId] } } if i <= len(activityVideoTitle)-1 { list[i].Title = activityVideoTitle[i] } } resp := new(models.MicroRoadShowListResp) page := paging.GetPaging(currentIndex, pageSize, total) resp.List = list resp.Paging = page resp.Describe = "弘则策略首席 马冬凡 主讲" br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp }