Browse Source

活动列表视频字段添加

xingzai 2 years ago
parent
commit
b29a7c948f
5 changed files with 136 additions and 8 deletions
  1. 15 1
      controllers/activity.go
  2. 5 3
      models/activity.go
  3. 50 0
      models/activity_video.go
  4. 15 3
      models/activity_voice.go
  5. 51 1
      services/activity.go

+ 15 - 1
controllers/activity.go

@@ -3052,17 +3052,31 @@ func (this *ActivityCoAntroller) ActivityListNew() {
 		br.ErrMsg = "GetActivityVoiceResp,Err:" + err.Error()
 		return
 	}
+
+	//处理视频回放
+	mapActivityVideo, err := services.GetActivityVideoResp(mapActivityId)
+	if err != nil {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "GetActivityVideoResp,Err:" + err.Error()
+		return
+	}
+
 	for _, v := range list {
 		if mapDingActivityId[v.ActivityId] == 0 {
 			activityList = append(activityList, v)
 		}
 	}
-
 	for k, v := range activityList {
 		if mapActivityVoice[v.ActivityId] != nil {
+			list[k].FileType = 1
 			list[k].AudioLink = true
 			list[k].VoiceList = mapActivityVoice[v.ActivityId]
 		}
+		if mapActivityVideo[v.ActivityId] != nil {
+			list[k].FileType = 2
+			list[k].AudioLink = true
+			list[k].VideoDetail = mapActivityVideo[v.ActivityId]
+		}
 		resp.List = append(resp.List, services.ActivityButtonShow(v))
 	}
 

+ 5 - 3
models/activity.go

@@ -74,7 +74,7 @@ type Activity struct {
 	ShowType         string `description:"人数限制类型,1不展示限制,2可选限制,3强制限制"`
 }
 type ActivityIdRep struct {
-	ActivityId int `description:"活动id"`
+	ActivityId  int `description:"活动id"`
 	PlaySeconds int `description:"播放时长"`
 }
 
@@ -189,6 +189,8 @@ type ActivityDetail struct {
 	AdminId                 int                        `description:"管理员、销售ID "`
 	IsMakerShow             int                        `description:"是否仅决策人可见 0,否 、1,是"`
 	VisibleRange            int                        `description:"可见范围 1,仅本组可见 、2,全部客户可见"`
+	VideoDetail             *CygxActivityVideoListResp `description:"视频数据"`
+	FileType                int                        `description:"类型: 1-音频; 2-视频"`
 }
 
 type CygxActivityResp struct {
@@ -280,7 +282,7 @@ type GetCygxActivityListRep struct {
 func GetActivityListAll(condition string, pars []interface{}, uid, startSize, pageSize, playBack int) (items []*ActivityDetail, err error) {
 	var sqlJiontable string
 	if playBack == 1 {
-		sqlJiontable = ` INNER JOIN cygx_activity_voice AS ac ON ac.activity_id = art.activity_id `
+		//sqlJiontable = ` INNER JOIN cygx_activity_voice AS ac ON ac.activity_id = art.activity_id `
 	}
 	o := orm.NewOrm()
 	sql := `SELECT art.* ,t.activity_type,t.img_url_text,c.image_url as  img_url,
@@ -316,7 +318,7 @@ func GetActivityListByDateTime(startDate, endDate, activityIds, activityIdsLongT
 func GetActivityCount(condition string, playBack int, pars []interface{}) (count int, err error) {
 	var sqlJiontable string
 	if playBack == 1 {
-		sqlJiontable = ` INNER JOIN cygx_activity_voice AS ac ON ac.activity_id = art.activity_id `
+		//sqlJiontable = ` INNER JOIN cygx_activity_voice AS ac ON ac.activity_id = art.activity_id `
 	}
 	sqlCount := ` SELECT COUNT(1) AS count  FROM cygx_activity as art ` + sqlJiontable + ` WHERE 1= 1  `
 	if condition != "" {

+ 50 - 0
models/activity_video.go

@@ -0,0 +1,50 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"github.com/rdlucklib/rdluck_tools/paging"
+)
+
+type CygxActivityVideo struct {
+	VideoId       int    `orm:"column(video_id);pk"description:"视频id"`
+	VideoName     string `description:"视频名称"`
+	ActivityId    int    ` description:"活动ID"`
+	ModifyDate    string `description:"更新时间"`
+	VideoDuration string `description:"视频时长"`
+	VideoCounts   int    `description:"播放量"`
+	VideoUrl      string `description:"视频地址"`
+	CreateTime    string `description:"创建时间"`
+}
+
+type CygxActivityVideoReq struct {
+	VideoName     string `description:"视频名称"`
+	VideoDuration string `description:"视频时长"`
+	VideoUrl      string `description:"视频地址"`
+}
+
+//string `orm:"column(label)";description:"主题"`
+//活动详情
+type CygxActivityVideoListResp struct {
+	ActivityId    int    `description:"活动ID 等于0新增活动,大于0修改活动"`
+	Id            int    `orm:"column(video_id)";description:"视频id"`
+	Title         string `orm:"column(video_name)";description:"视频名称"`
+	VideoUrl      string `description:"视频地址"`
+	VideoDuration string `description:"视频时长"`
+}
+
+type CygxActivityVideoListRep struct {
+	Paging *paging.PagingItem `description:"分页数据"`
+	List   []*CygxActivityVideoListResp
+}
+
+//列表
+func GetActivityVideoListAll(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxActivityVideoListResp, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT art.*,v.video_id,v.video_name,v.video_url,video_duration FROM cygx_activity as art  INNER JOIN cygx_activity_video AS v ON v.activity_id = art.activity_id   WHERE 1= 1  `
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` LIMIT ?,?`
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	return
+}

+ 15 - 3
models/activity_voice.go

@@ -13,8 +13,8 @@ type CygxActivityVoice struct {
 	VoiceUrl         string    `description:"音频地址"`
 	VoiceName        string    `description:"音频名称"`
 	VoicePlaySeconds string    `description:"音频时长"`
-	VoiceCounts         int    `description:"播放量"`
-	ModifyTime          string `description:"更新时间"`
+	VoiceCounts      int       `description:"播放量"`
+	ModifyTime       string    `description:"更新时间"`
 	CreateTime       time.Time `description:"创建时间"`
 }
 
@@ -61,4 +61,16 @@ func GetCygxActivityVoiceById(videoId int) (item *CygxActivityVoice, err error)
 	sql := `SELECT * FROM cygx_activity_voice WHERE activity_voice_id = ? LIMIT 1`
 	err = orm.NewOrm().Raw(sql, videoId).QueryRow(&item)
 	return
-}
+}
+
+//列表
+func GetActivityVoiceListAll(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxActivityVideoListResp, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT art.*  FROM cygx_activity as art  INNER JOIN cygx_activity_voice AS v ON v.activity_id = art.activity_id   WHERE 1= 1  `
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` LIMIT ?,?`
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	return
+}

+ 51 - 1
services/activity.go

@@ -613,9 +613,34 @@ func GetActivityonditionList(user *models.WxUserItem, activityTypeId, chartPermi
 	}
 
 	if playBack == 1 {
+		var pars []interface{}
+		ativityVIdArry := make([]string, 0)
+		voiceList, e := models.GetActivityVoiceListAll("", pars, 0, 1000)
+		if e != nil && e.Error() != utils.ErrNoRow() {
+			err = e
+			return
+		}
+		for _, v := range voiceList {
+			ativityVIdArry = append(ativityVIdArry, strconv.Itoa(v.ActivityId))
+		}
+
+		videoList, e := models.GetActivityVideoListAll("", pars, 0, 1000)
+		if e != nil && e.Error() != utils.ErrNoRow() {
+			err = e
+			return
+		}
+		for _, v := range videoList {
+			ativityVIdArry = append(ativityVIdArry, strconv.Itoa(v.ActivityId))
+		}
+
 		//活动音频,设置有效时间为30天,失效后该活动就不再支持音频回放。有效期起始时间为活动的开始时间
-		endTime := time.Now().AddDate(0, 0, -30).Format("2006-01-02 15:04:05")
+		endTime := time.Now().AddDate(0, 0, -90).Format("2006-01-02 15:04:05")
 		condition += ` AND art.activity_time > '` + endTime + `'  `
+		if len(ativityVIdArry) > 0 {
+			ativityVIdstr := strings.Join(ativityVIdArry, ",")
+			fmt.Println(ativityVIdstr)
+			condition += ` AND art.activity_id IN  (` + ativityVIdstr + `) `
+		}
 	}
 
 	//查询全部可见的数据(是否全部客户可见)
@@ -1580,3 +1605,28 @@ func AddActivitykeyWordSearch(keyWordSearch string, user *models.WxUserItem) {
 		}
 	}
 }
+
+//GetActivityVideoResp 处理活动视频频回放
+func GetActivityVideoResp(mapActivityId []int) (mapItem map[int]*models.CygxActivityVideoListResp, err error) {
+	var condition string
+	var ativityVIdstr string
+	for _, v := range mapActivityId {
+		ativityVIdstr += strconv.Itoa(v) + ","
+	}
+	ativityVIdstr = strings.TrimRight(ativityVIdstr, ",")
+	condition += ` AND art.activity_id IN  (` + ativityVIdstr + `) `
+	var pars []interface{}
+	videoList, e := models.GetActivityVideoListAll(condition, pars, 0, 1000)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = e
+		return
+	}
+	mapActivityVideo := make(map[int]*models.CygxActivityVideoListResp)
+	if len(videoList) > 0 {
+		for _, v := range videoList {
+			mapActivityVideo[v.ActivityId] = v
+		}
+	}
+	mapItem = mapActivityVideo
+	return
+}