Просмотр исходного кода

微路演添加活动的视频

xingzai 2 лет назад
Родитель
Сommit
a0b9939c1f
4 измененных файлов с 67 добавлено и 23 удалено
  1. 3 1
      controllers/micro_roadshow.go
  2. 35 17
      models/micro_roadshow.go
  3. 1 1
      services/activity.go
  4. 28 4
      services/micro_roadshow.go

+ 3 - 1
controllers/micro_roadshow.go

@@ -22,6 +22,7 @@ type MicroRoadShowController struct {
 // @Param   KeyWord			query	string	false	"搜索关键词"
 // @Param   AudioId			query	int		false	"音频ID"
 // @Param   VideoId			query	int		false	"视频ID"
+// @Param   ActivityVideoId			query	int		false	"活动视频ID"
 // @Success 200 {object} models.HomeListResp
 // @router /list [get]
 func (this *MicroRoadShowController) List() {
@@ -42,6 +43,7 @@ func (this *MicroRoadShowController) List() {
 	keywords := this.GetString("KeyWord")
 	audioId, _ := this.GetInt("AudioId")
 	videoId, _ := this.GetInt("VideoId")
+	activityVideoId, _ := this.GetInt("ActivityVideoId")
 
 	if pageSize <= 0 {
 		pageSize = utils.PageSize20
@@ -51,7 +53,7 @@ func (this *MicroRoadShowController) List() {
 	}
 
 	// 微路演列表
-	list, total, e := services.GetMicroRoadShowPageList(pageSize, currentIndex, audioId, videoId, keywords)
+	list, total, e := services.GetMicroRoadShowPageList(pageSize, currentIndex, audioId, videoId, activityVideoId, keywords)
 	if e != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取微路演列表失败, Err: " + e.Error()

+ 35 - 17
models/micro_roadshow.go

@@ -63,35 +63,53 @@ func GetMicroRoadShowAudioPageList(startSize, pageSize int, condition string, pa
 }
 
 // GetMicroRoadShowVideoPageList 获取微路演视频列表-分页
-func GetMicroRoadShowVideoPageList(startSize, pageSize int, condition string, pars []interface{}) (total int, list []*MicroRoadShowPageList, err error) {
+func GetMicroRoadShowVideoPageList(startSize, pageSize int, condition string, pars []interface{}, conditionAct string, parsAct []interface{}) (total int, list []*MicroRoadShowPageList, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT
-				video_id AS id,
-				video_name AS title,
-				video_url AS resource_url,
-				2 AS type,
-				publish_date AS publish_time,
-				chart_permission_id,
-				chart_permission_name,
-				video_duration AS play_seconds,
-				img_url AS background_img
-			FROM
-				cygx_micro_roadshow_video
-			WHERE
-				publish_status = 1 `
+			video_id AS id,
+			video_name AS title,
+			video_url AS resource_url,
+			2 AS type,
+			publish_date AS publish_time,
+			chart_permission_id,
+			chart_permission_name,
+			video_duration AS play_seconds,
+			img_url AS background_img,
+			"" as  activity_id
+		FROM
+			cygx_micro_roadshow_video 
+		WHERE
+			publish_status = 1 `
 	if condition != `` {
 		sql += condition
 	}
+	sql += ` UNION ALL
+		SELECT
+			video_id AS id,
+			video_name AS title,
+			video_url AS resource_url,
+			3 AS type,
+		art.activity_time as publish_time,
+			0,
+			"",
+			"",
+			"",
+			v.activity_id
+		FROM
+			cygx_activity_video as v
+			INNER JOIN cygx_activity as art on art.activity_id = v.activity_id WHERE 1= 1  `
+	if conditionAct != `` {
+		sql += conditionAct
+	}
 	sql += ` ORDER BY publish_time DESC`
-
 	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z `
-	err = o.Raw(totalSql, pars).QueryRow(&total)
+	err = o.Raw(totalSql, pars, parsAct).QueryRow(&total)
 	if err != nil {
 		return
 	}
 
 	sql += ` LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
+	_, err = o.Raw(sql, pars, parsAct, startSize, pageSize).QueryRows(&list)
 	return
 }
 

+ 1 - 1
services/activity.go

@@ -634,7 +634,7 @@ func GetActivityonditionList(user *models.WxUserItem, activityTypeId, chartPermi
 		}
 
 		//活动音频,设置有效时间为30天,失效后该活动就不再支持音频回放。有效期起始时间为活动的开始时间
-		endTime := time.Now().AddDate(0, 0, -90).Format("2006-01-02 15:04:05")
+		endTime := time.Now().AddDate(0, 0, -30).Format("2006-01-02 15:04:05")
 		condition += ` AND art.activity_time > '` + endTime + `'  `
 		if len(ativityVIdArry) > 0 {
 			ativityVIdstr := strings.Join(ativityVIdArry, ",")

+ 28 - 4
services/micro_roadshow.go

@@ -13,7 +13,7 @@ import (
 )
 
 // GetMicroRoadShowPageList 获取微路演列表
-func GetMicroRoadShowPageList(pageSize, currentIndex, audioId, videoId int, keywords string) (respList []*models.MicroRoadShowPageList, total int, err error) {
+func GetMicroRoadShowPageList(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)
@@ -30,7 +30,7 @@ func GetMicroRoadShowPageList(pageSize, currentIndex, audioId, videoId int, keyw
 		keywords = "%" + keywords + "%"
 	}
 	// 查询指定音频/视频时, 调整比例为1方便后面组合数据
-	if audioId > 0 || videoId > 0 {
+	if audioId > 0 || videoId > 0 || activityVideoId > 0 {
 		audioRatio = 1
 		videoRatio = 1
 	}
@@ -43,7 +43,7 @@ func GetMicroRoadShowPageList(pageSize, currentIndex, audioId, videoId int, keyw
 	go func() {
 		defer wg.Done()
 		// 如果筛选条件为指定视频ID则不做音频查询
-		if videoId > 0 {
+		if videoId > 0 || activityVideoId > 0 {
 			return
 		}
 		var audioCond string
@@ -76,22 +76,46 @@ func GetMicroRoadShowPageList(pageSize, currentIndex, audioId, videoId int, keyw
 		if audioId > 0 {
 			return
 		}
+
 		var videoCond string
+		var videoCondAct string
 		var videoPars []interface{}
+		var videoParsAct []interface{}
 		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 `
+		}
+
+		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`
 		videoStartSize := 0
 		if currentIndex > 1 {
 			videoStartSize = (currentIndex - 1) * videoPageNum
 		}
-		videoTotal, videoList, e = models.GetMicroRoadShowVideoPageList(videoStartSize, videoPageNum, videoCond, videoPars)
+		videoTotal, videoList, e = models.GetMicroRoadShowVideoPageList(videoStartSize, videoPageNum, videoCond, videoPars, videoCondAct, videoParsAct)
 	}()
 
 	wg.Wait()