|
@@ -356,28 +356,11 @@ func GetHomeNewestList(userId, companyId, startSize, pageSize int, condition str
|
|
|
func GetMicroRoadShowPageListV8(pageSize, currentIndex, audioId, videoId, activityVideoId int, keywords string) (respList []*models.MicroRoadShowPageList, total int, err error) {
|
|
|
var e error
|
|
|
// 根据每页数据量获取音视频配比
|
|
|
- audioRatio, videoRatio, audioPageNum, videoPageNum, sliceNum, e := getMicroRoadShowDataRatio(pageSize)
|
|
|
- if e != nil {
|
|
|
- err = errors.New("获取微路演列表数据音视频配比失败, Err: " + e.Error())
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- audioPageNumSet := audioPageNum
|
|
|
- videoPageNumSet := videoPageNum
|
|
|
- audioTotal := 0
|
|
|
- audioStartSize := 0
|
|
|
- videoTotal := 0
|
|
|
- videoStartSize := 0
|
|
|
- audioList := make([]*models.MicroRoadShowPageList, 0)
|
|
|
+ startSize := utils.StartIndex(currentIndex, pageSize)
|
|
|
videoList := make([]*models.MicroRoadShowPageList, 0)
|
|
|
if keywords != "" {
|
|
|
keywords = "%" + keywords + "%"
|
|
|
}
|
|
|
- // 查询指定音频/视频时, 调整比例为1方便后面组合数据
|
|
|
- if audioId > 0 || videoId > 0 || activityVideoId > 0 {
|
|
|
- audioRatio = 1
|
|
|
- videoRatio = 1
|
|
|
- }
|
|
|
|
|
|
//音频的查询
|
|
|
var audioCond string
|
|
@@ -400,11 +383,7 @@ func GetMicroRoadShowPageListV8(pageSize, currentIndex, audioId, videoId, activi
|
|
|
audioCond += ` AND a.activity_voice_id = ?`
|
|
|
audioPars = append(audioPars, audioId)
|
|
|
}
|
|
|
- if currentIndex > 1 {
|
|
|
- audioStartSize = (currentIndex - 1) * audioPageNum
|
|
|
- }
|
|
|
}
|
|
|
-
|
|
|
//视频的处理
|
|
|
var videoCond string
|
|
|
var videoCondAct string
|
|
@@ -435,111 +414,18 @@ func GetMicroRoadShowPageListV8(pageSize, currentIndex, audioId, videoId, activi
|
|
|
if activityVideoId > 0 {
|
|
|
videoCond += ` AND video_id = 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`
|
|
|
- if currentIndex > 1 {
|
|
|
- videoStartSize = (currentIndex - 1) * videoPageNum
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if audioCond != "" {
|
|
|
- audioTotal, e = models.GetMicroRoadShowAudioTotal(audioCond, audioPars)
|
|
|
- if e != nil {
|
|
|
- err = errors.New("获取微路演音频数量失败, Err: " + e.Error())
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
- if videoCond != "" {
|
|
|
- videoTotal, e = models.GetMicroRoadShowVideoTotal(videoCond, videoPars, videoCondAct, videoParsAct)
|
|
|
- if e != nil {
|
|
|
- err = errors.New("获取微路演音频数量失败, Err: " + e.Error())
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
- //如果音频数量不够,处理视频的分页
|
|
|
- if currentIndex*audioPageNumSet > audioTotal {
|
|
|
- if audioTotal-(currentIndex-1)*audioPageNumSet > 0 {
|
|
|
- videoPageNum = pageSize - (audioTotal - (currentIndex-1)*audioRatio)
|
|
|
- } else {
|
|
|
- videoPageNum = pageSize
|
|
|
- videoStartSize = pageSize*(currentIndex-1) - audioTotal
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //如果视频数量不够,处理音频的分页
|
|
|
- if currentIndex*videoPageNumSet > videoTotal {
|
|
|
- if videoTotal-(currentIndex-1)*videoPageNumSet > 0 {
|
|
|
- audioPageNum = pageSize - (videoTotal - (currentIndex-1)*videoPageNumSet)
|
|
|
- } else {
|
|
|
- audioPageNum = pageSize
|
|
|
- audioStartSize = pageSize*(currentIndex-1) - videoTotal
|
|
|
+ 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`
|
|
|
}
|
|
|
-
|
|
|
- wg := sync.WaitGroup{}
|
|
|
- wg.Add(2)
|
|
|
- // 分页查询音频
|
|
|
- go func() {
|
|
|
- defer wg.Done()
|
|
|
- _, audioList, e = models.GetMicroRoadShowAudioPageList(audioStartSize, audioPageNum, audioCond, audioPars)
|
|
|
- }()
|
|
|
-
|
|
|
- // 分页查询视频
|
|
|
- go func() {
|
|
|
- defer wg.Done()
|
|
|
- // 如果筛选条件为指定音频ID则不做视频查询
|
|
|
- _, videoList, e = models.GetMicroRoadShowVideoPageList(videoStartSize, videoPageNum, videoCond, videoPars, videoCondAct, videoParsAct)
|
|
|
- }()
|
|
|
- wg.Wait()
|
|
|
-
|
|
|
+ total, videoList, e = models.GetMicroRoadShowVideoPageListV8(startSize, pageSize, videoCond, videoPars, videoCondAct, videoParsAct, audioCond, audioPars, audioId, videoId, activityVideoId)
|
|
|
if e != nil {
|
|
|
err = errors.New("获取微路演音视频列表失败, Err: " + e.Error())
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
- // 按比例组合列表
|
|
|
- audioNum := 0
|
|
|
- videoNum := 0
|
|
|
- audioLen := len(audioList)
|
|
|
- videoLen := len(videoList)
|
|
|
- for i := 0; i < sliceNum; i++ {
|
|
|
- // 音频-每次取对应比例的数据直至取完
|
|
|
- for a := 0; a < audioRatio; a++ {
|
|
|
- if audioNum >= audioLen {
|
|
|
- break
|
|
|
- }
|
|
|
- respList = append(respList, audioList[audioNum])
|
|
|
- audioNum += 1
|
|
|
- }
|
|
|
- // 视频
|
|
|
- for b := 0; b < videoRatio; b++ {
|
|
|
- if videoNum >= videoLen {
|
|
|
- break
|
|
|
- }
|
|
|
- respList = append(respList, videoList[videoNum])
|
|
|
- videoNum += 1
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //如果视频的数量不够,那么空缺的部分用音频来补位
|
|
|
- if len(audioList) > pageSize-videoPageNumSet {
|
|
|
- for k, v := range audioList {
|
|
|
- if k >= pageSize-videoPageNumSet {
|
|
|
- respList = append(respList, v)
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- //如果音频的数量不够,那么空缺的部分用视频来补位
|
|
|
- if len(videoList) > pageSize-audioPageNumSet {
|
|
|
- for k, v := range videoList {
|
|
|
- if k >= pageSize-audioPageNumSet {
|
|
|
- respList = append(respList, v)
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- total = audioTotal + videoTotal
|
|
|
+ respList = videoList
|
|
|
return
|
|
|
}
|