package services import ( "encoding/json" "errors" "fmt" "hongze/hongze_cygx/models" "hongze/hongze_cygx/utils" ) // GetMicroRoadShowDefaultImgConfig 获取微路演默认图/分享图配置 func GetMicroRoadShowDefaultImgConfig() (audioMap, videoMap, audioShareMap, videoShareMap map[int]string, err error) { 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 := models.MicroRoadshowDefaultImgKey conf, e := models.GetConfigByCode(key) if e != nil { err = errors.New("获取微路演默认图配置失败, Err: " + e.Error()) return } if conf.ConfigValue == "" { err = errors.New("获取微路演默认图配置有误") return } list := new(models.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 } // GetHomeNewestList 获取首页最新列表 func GetHomeNewestList(userId, companyId, startSize, pageSize int, condition string, pars []interface{}) (resp []*models.HomeArticle, total int, err error) { resp = make([]*models.HomeArticle, 0) unionList, e := models.GetHomeNewestListUnionList(condition, pars, startSize, pageSize) if e != nil { err = errors.New("获取首页最新列表失败") return } unionTotal, e := models.GetHomeNewestListUnionCount(condition, pars) if e != nil { err = errors.New("获取首页最新列表总数失败") return } total = unionTotal // 用户权限 authInfo, permissionArr, e := GetUserRaiPermissionInfo(userId, companyId) if e != nil { err = errors.New("获取用户权限失败, Err: " + e.Error()) return } // 获取默认图配置 audioMap, videoMap, audioShareMap, videoShareMap, e := GetMicroRoadShowDefaultImgConfig() if e != nil { err = errors.New("获取微路演默认图配置失败, Err: " + e.Error()) return } // 此处没有直接使用HomeArticle结构体而是多加了一层, 纯粹是为了方便前端区分纪要和微路演音频=_=! for _, v := range unionList { item := new(models.HomeArticle) item.HomeType = v.HomeType // 纪要 if item.HomeType == 0 { item.ArticleId = v.ArticleId item.Title = v.Title item.TitleEn = v.TitleEn item.UpdateFrequency = v.UpdateFrequency item.CreateDate = v.CreateDate item.PublishDate = v.PublishDate item.Body = v.Body item.BodyHtml = v.BodyHtml item.Abstract = v.Abstract item.CategoryName = v.CategoryName item.SubCategoryName = v.SubCategoryName item.ExpertBackground = v.ExpertBackground item.IsResearch = v.IsResearch item.Pv = v.Pv item.ImgUrlPc = v.ImgUrlPc item.CategoryId = v.CategoryId item.HttpUrl = v.HttpUrl item.IsNeedJump = v.IsNeedJump item.Source = v.Source item.Annotation = v.Annotation } // 音频 if v.HomeType == 1 { ad := new(models.MicroAudioUnionList) ad.Id = v.Id ad.AudioTitle = v.AudioTitle ad.AudioResourceUrl = v.AudioResourceUrl ad.AudioType = v.AudioType ad.AudioPublishTime = utils.StrTimeToTime(v.AudioPublishTime).Format(utils.FormatDate) ad.AudioImgUrl = v.AudioImgUrl ad.AudioChartPermissionId = v.AudioChartPermissionId ad.AudioChartPermissionName = v.AudioChartPermissionName ad.AudioPlaySeconds = v.AudioPlaySeconds ad.AudioPlaySeconds = v.AudioPlaySeconds ad.AudioActivityId = v.AudioActivityId item.MicroAudio = ad // 默认图 if ad.AudioImgUrl == "" { if ad.AudioType == 1 { ad.AudioImgUrl = audioMap[ad.AudioChartPermissionId] } else { ad.AudioImgUrl = videoMap[ad.AudioChartPermissionId] } } // 分享图 if ad.AudioType == 1 { ad.AudioShareImg = audioShareMap[ad.AudioChartPermissionId] } else { ad.AudioShareImg = videoShareMap[ad.AudioChartPermissionId] } // 权限 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 ad.AudioChartPermissionId != utils.HONG_GUAN_ID && !utils.InArrayByStr(permissionArr, ad.AudioChartPermissionName) { au.HasPermission = 2 } } // 无权限的弹框提示 if au.HasPermission != 1 { if au.OperationMode == UserPermissionOperationModeCall { if ad.AudioType == 1 { au.PopupMsg = UserPermissionPopupMsgCallActivity } else { au.PopupMsg = UserPermissionPopupMsgCallMicroVideo } } else { if ad.AudioType == 1 { au.PopupMsg = UserPermissionPopupMsgApplyActivity } else { au.PopupMsg = UserPermissionPopupMsgApplyMicroVideo } } } ad.AuthInfo = au } resp = append(resp, item) } return } // GetMicroRoadShowPageList 获取微路演列表添加活动视频 更新与8.1版本 func GetMicroRoadShowPageListV8(pageSize, currentIndex, audioId, videoId, activityVideoId, filter int, keywords string) (respList []*models.MicroRoadShowPageList, total int, err error) { var e error // 根据每页数据量获取音视频配比 startSize := utils.StartIndex(currentIndex, pageSize) videoList := make([]*models.MicroRoadShowPageList, 0) if keywords != "" { keywords = "%" + keywords + "%" } //音频的查询 var audioCond string var audioPars []interface{} // 如果筛选条件为指定视频ID或只看视频则不做音频查询 fmt.Println("filter:", filter) if videoId > 0 || activityVideoId > 0 || filter == 1{ fmt.Println("11111") audioCond = "" } else { // 活动已发布且已结束 audioCond += ` AND b.publish_status = 1 AND b.active_state = 3` //活动音频,设置有效时间为30天,失效后该活动就不再支持音频回放。有效期起始时间为活动的开始时间 //endTime := time.Now().AddDate(0, 0, -30).Format("2006-01-02 15:04:05") //audioCond += ` AND b.activity_time > ? ` //audioPars = append(audioPars, endTime) if keywords != "" { audioCond += ` AND a.voice_name LIKE ? OR b.label LIKE ?` audioPars = append(audioPars, keywords, keywords) } if audioId > 0 { audioCond += ` AND a.activity_voice_id = ?` audioPars = append(audioPars, audioId) } } //视频的处理 var videoCond string var videoCondAct string var videoPars []interface{} var videoParsAct []interface{} if audioId > 0 || filter == 2{ fmt.Println("22222") videoCond = "" } else { if keywords != "" { videoCond += ` AND video_name LIKE ?` videoPars = append(videoPars, keywords) videoCondAct += ` AND video_name LIKE ?` videoParsAct = append(videoParsAct, keywords) } if videoId > 0 { videoCond += ` AND video_id = ?` videoPars = append(videoPars, videoId) } if activityVideoId > 0 { videoCondAct += ` AND video_id = ?` videoParsAct = append(videoParsAct, activityVideoId) } //如果传了路演的或者活动的视频ID只查询一个 if videoId > 0 { videoCondAct += ` AND video_id = 0 ` } if activityVideoId > 0 { videoCond += ` AND video_id = 0 ` } //if videoId == 0 { // endTime := time.Now().AddDate(0, 0, -30).Format("2006-01-02 15:04:05") // videoCondAct += ` AND art.activity_time > ? ` // videoParsAct = append(videoParsAct, endTime) //} videoCond += ` AND publish_status = 1` } total, videoList, e = models.GetMicroRoadShowVideoPageListV8(startSize, pageSize, videoCond, videoPars, videoCondAct, videoParsAct, audioCond, audioPars, audioId, videoId, activityVideoId, filter) if e != nil { err = errors.New("获取微路演音视频列表失败, Err: " + e.Error()) return } respList = videoList return }