Browse Source

微路演搜索处理

xingzai 2 năm trước cách đây
mục cha
commit
8fb7d56347

+ 47 - 64
controllers/micro_roadshow.go

@@ -53,14 +53,12 @@ func (this *MicroRoadShowController) List() {
 	activityVideoIds := this.GetString("ActivityVideoIds")
 	activityVideoId, _ := this.GetInt("ActivityVideoId")
 	filter, _ := this.GetInt("Filter", 0)
-
 	if pageSize <= 0 {
 		pageSize = utils.PageSize20
 	}
 	if currentIndex <= 0 {
 		currentIndex = 1
 	}
-
 	keyWordArr, err := services.GetIndustryMapNameSliceV3(keywords)
 	if err != nil {
 		br.Msg = "获取失败"
@@ -68,8 +66,6 @@ func (this *MicroRoadShowController) List() {
 		return
 	}
 	keyWordArr = services.RemoveDuplicatesAndEmpty(keyWordArr)
-
-	//keyWordLen := len(keyWordArr)
 	var list []*models.MicroRoadShowPageList
 	var total int
 	var e error
@@ -80,68 +76,64 @@ func (this *MicroRoadShowController) List() {
 		br.ErrMsg = "获取微路演列表失败, Err: " + e.Error()
 		return
 	}
-	//var pageSizeIk int
-	//var currentIndexIk int
-	//pageSizeIk = pageSize - len(list)
-	//
-	//currentIndexIk = currentIndex - (total / pageSize) - 1
-	////获取总的数量
-	//totalIk, e := services.CountMicroRoadShowPageListIkWord(audioId, videoId, activityVideoId, filter, keyWordArr, audioIds, videoIds, activityVideoIds)
-	//if e != nil {
-	//	br.Msg = "获取失败"
-	//	br.ErrMsg = "获取微路演联想词列表失败, Err: " + e.Error()
-	//	return
-	//}
-	//
-	////startSize, pageSize,
-	//startSize := utils.StartIndex(currentIndex, pageSize)
-	//
-	//lisIk, e := services.GetMicroRoadShowPageListIkWord(pageSizeIk, currentIndexIk, audioId, videoId, activityVideoId, filter, keyWordArr, audioIds, videoIds, activityVideoIds)
-	//if e != nil {
-	//	br.Msg = "获取失败"
-	//	br.ErrMsg = "获取微路演列表失败, Err: " + e.Error()
-	//	return
-	//}
-	//
-	//total = totalIk
-	//if keyWordLen > 1 && pageSizeIk > 0 {
-	//	for _, item := range listIk {
-	//		list = append(list, item)
-	//	}
-	//}
-	//return
+	var pageSizeIk int
+	pageSizeIk = pageSize - len(list)
+	//获取总的数量
+	totalIk, e := services.CountMicroRoadShowPageListIkWord(audioId, videoId, activityVideoId, filter, keyWordArr, audioIds, videoIds, activityVideoIds)
+	if e != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取微路演联想词列表失败, Err: " + e.Error()
+		return
+	}
+	//处理IK分词部分的分页获取条数
+	startSizeIk := utils.StartIndex(currentIndex, pageSize)
+	startSizeIk = startSizeIk - total
+
+	if pageSizeIk > 0 {
+		lisIk, e := services.GetMicroRoadShowPageListIkWord(startSizeIk, pageSizeIk, audioId, videoId, activityVideoId, filter, keyWordArr, audioIds, videoIds, activityVideoIds)
+		if e != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取微路演列表失败, Err: " + e.Error()
+			return
+		}
+		for _, item := range lisIk {
+			list = append(list, item)
+		}
+	}
+	total = totalIk
+	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) // 活动视频
+	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.ActivityVoiceId] = item.ActivityVoiceId
+		}
+	}
 	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 {
+			if mapaudioIds[item.Id] > 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 {
+			if mapactivityVideoIds[item.Id] > 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 {
+			if mapvideoIds[item.Id] > 0 {
 				item.IsCollect = true
 			}
 		}
@@ -153,7 +145,6 @@ func (this *MicroRoadShowController) List() {
 		br.ErrMsg = "获取用户权限失败, Err: " + e.Error()
 		return
 	}
-
 	// 获取默认图配置
 	audioMap, videoMap, audioShareMap, videoShareMap, e := services.GetMicroRoadShowDefaultImgConfig()
 	if e != nil {
@@ -161,7 +152,6 @@ func (this *MicroRoadShowController) List() {
 		br.ErrMsg = "获取微路演列表失败, Err: " + e.Error()
 		return
 	}
-
 	for i := range list {
 		// 权限
 		au := new(models.UserPermissionAuthInfo)
@@ -209,18 +199,11 @@ func (this *MicroRoadShowController) List() {
 				list[i].ShareImg = videoShareMap[list[i].ChartPermissionId]
 			}
 		}
-
-		//修改产业视频的标题
-		//if list[i].Type == 3 && list[i].IndustryName != "" {
-		//	list[i].Title = "5min" + "【" + list[i].IndustryName + "】" + "逻辑解析"
-		//}
 	}
-
 	resp := new(models.MicroRoadShowListResp)
 	page := paging.GetPaging(currentIndex, pageSize, total)
 	resp.List = list
 	resp.Paging = page
-
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "获取成功"

+ 5 - 1
models/article.go

@@ -270,7 +270,11 @@ func GetArticleDetailTestById(articleId int) (item *ArticleDetail, err error) {
 
 func GetArticleAll() (item []*ArticleDetail, err error) {
 	o := orm.NewOrm()
-	sql := `SELECT * FROM cygx_article WHERE is_summary=1 `
+	sql := `SELECT * FROM cygx_article WHERE article_id  IN (7667,
+5282,
+5215,
+4615,
+4902) `
 	_, err = o.Raw(sql).QueryRows(&item)
 	return
 }

+ 2 - 2
models/micro_roadshow.go

@@ -194,7 +194,7 @@ func CountMicroRoadShowVideoPageList(condition string, pars []interface{}, condi
 }
 
 // GetMicroRoadShowVideoPageList 获取微路演视频列表-分页
-func GetMicroRoadShowVideoPageListIkWord(startSize, pageSize int, condition string, pars []interface{}, conditionAct string, parsAct []interface{}, conditionAudio string, parsAudio []interface{}, audioId, videoId, activityVideoId, filter int) (total int, list []*MicroRoadShowPageList, err error) {
+func GetMicroRoadShowVideoPageListIkWord(startSize, pageSize int, condition string, pars []interface{}, conditionAct string, parsAct []interface{}, conditionAudio string, parsAudio []interface{}, audioId, videoId, activityVideoId, filter int) (list []*MicroRoadShowPageList, err error) {
 	o := orm.NewOrm()
 	var sql string
 	if audioId+activityVideoId == 0 && filter != 2 {
@@ -230,7 +230,7 @@ func GetMicroRoadShowVideoPageListIkWord(startSize, pageSize int, condition stri
 			video_name AS title,
 			video_url AS resource_url,
 			2 AS type,
-		art.activity_time as publish_time,
+			art.activity_time as publish_time,
 			art.chart_permission_id,
 			art.chart_permission_name,
 			"" AS play_seconds,

+ 9 - 3
services/article.go

@@ -674,9 +674,15 @@ func GetArticleListByApi(cont context.Context) (err error) {
 	return
 }
 
-//func init() {
-//	HandleArticleListByApi(7801)
-//}
+func init122() {
+	allList, err := models.GetArticleAll()
+
+	fmt.Println(err)
+	for _, v := range allList {
+		HandleArticleListByApi(v.ArticleId)
+	}
+
+}
 
 //处理同步过来的文章
 func HandleArticleListByApi(artcleId int) (err error) {

+ 1 - 2
services/elasticsearch.go

@@ -407,7 +407,6 @@ func KeyWordArrSqlRegexp(a []string) (ret string) {
 		ret += a[i] + "|"
 	}
 	ret = strings.TrimRight(ret, "|")
-	ret = "'" + ret + "'"
 	return
 }
 
@@ -418,7 +417,7 @@ func KeyWordArrSqlRegexpAll(a []string) (ret string) {
 		ret += a[i] + "|"
 	}
 	ret = strings.TrimRight(ret, "|")
-	ret = "'" + ret + "'"
+	//ret = "'" + ret + "'"
 	return
 }
 

+ 8 - 5
services/micro_roadshow.go

@@ -307,7 +307,7 @@ func CountMicroRoadShowPageListIkWord(audioId, videoId, activityVideoId, filter
 		if keywords != "" {
 			videoCond += ` AND video_name REGEXP ?`
 			videoPars = append(videoPars, keywords)
-			videoCondAct += ` AND video_name LIKE ?`
+			videoCondAct += ` AND video_name REGEXP ?`
 			videoParsAct = append(videoParsAct, keywords)
 		}
 		if videoId > 0 {
@@ -356,7 +356,9 @@ func CountMicroRoadShowPageListIkWord(audioId, videoId, activityVideoId, filter
 }
 
 // GetMicroRoadShowPageListIkWord  添加IK分词联想词 获取微路演列表添加活动视频 更新与8.1版本
-func GetMicroRoadShowPageListIkWord(pageSize, currentIndex, audioId, videoId, activityVideoId, filter int, keywordArr []string, audioIds, videoIds, activityVideoIds string) (total int, err error) {
+func GetMicroRoadShowPageListIkWord(startSize, pageSize, audioId, videoId, activityVideoId, filter int, keywordArr []string, audioIds, videoIds, activityVideoIds string) (respList []*models.MicroRoadShowPageList, err error) {
+
+	videoList := make([]*models.MicroRoadShowPageList, 0)
 	var e error
 	var keywords string
 	if len(keywordArr) > 1 {
@@ -400,7 +402,7 @@ func GetMicroRoadShowPageListIkWord(pageSize, currentIndex, audioId, videoId, ac
 		if keywords != "" {
 			videoCond += ` AND video_name REGEXP ?`
 			videoPars = append(videoPars, keywords)
-			videoCondAct += ` AND video_name LIKE ?`
+			videoCondAct += ` AND video_name REGEXP ?`
 			videoParsAct = append(videoParsAct, keywords)
 		}
 		if videoId > 0 {
@@ -440,11 +442,12 @@ func GetMicroRoadShowPageListIkWord(pageSize, currentIndex, audioId, videoId, ac
 		}
 		videoCond += ` AND publish_status = 1`
 	}
-	total, e = models.CountMicroRoadShowVideoPageList(videoCond, videoPars, videoCondAct, videoParsAct, audioCond, audioPars)
+	videoList, e = models.GetMicroRoadShowVideoPageListIkWord(startSize, pageSize, videoCond, videoPars, videoCondAct, videoParsAct, audioCond, audioPars, audioId, videoId, activityVideoId, filter)
 	if e != nil {
-		err = errors.New("获取微路演音视频列表失败, Err: " + e.Error())
+		err = errors.New("获取微路演音视频列表失败分词, Err: " + e.Error())
 		return
 	}
+	respList = videoList
 	return
 }