| | |
| | | case "recommend":// 加载推荐视频 |
| | | baseMapper.recommendVideo(page, query); |
| | | //推荐视频重新排序 |
| | | WxVideoVO wxVideoVO = null; |
| | | if (StringUtils.isNotBlank(query.getVideoId())) { |
| | | wxVideoVO = baseMapper.recommendVideoByVideoId(query); |
| | | } |
| | | List<WxVideoVO> records = page.getRecords(); |
| | | Collections.shuffle(records); |
| | | if (wxVideoVO!=null) { |
| | | records.set(0, wxVideoVO); |
| | | } |
| | | buildRecommendVideoList(page, query.getVideoId()); |
| | | // WxVideoVO wxVideoVO = null; |
| | | // if (StringUtils.isNotBlank(query.getVideoId())) { |
| | | // wxVideoVO = baseMapper.recommendVideoByVideoId(query); |
| | | // } |
| | | // List<WxVideoVO> records = page.getRecords(); |
| | | // Collections.shuffle(records); |
| | | // if (wxVideoVO!=null) { |
| | | // records.set(0, wxVideoVO); |
| | | // } |
| | | break; |
| | | case "author": // 加载视频主页我发布的视频 |
| | | AuthorVideoQuery query1 = new AuthorVideoQuery(); |
| | |
| | | public Result healthRecommendVideo(WxHealthVideoQuery query) { |
| | | IPage<WxVideoVO> page = PageUtil.getPage(query, WxVideoVO.class); |
| | | //获取大健康视频列表 |
| | | |
| | | baseMapper.recommendHealthVideo(page,query); |
| | | buildRecommendVideoList(page, query.getVideoId()); |
| | | |
| | | if (page.getTotal() > 0) { |
| | | page.getRecords().forEach(v -> { |
| | | v.setAuthorAvatar(cosUtil.getPreviewUrl(v.getAuthorAvatar())); |
| | |
| | | public Result kitchenRecommendVideo(WxKitchenVideoQuery query) { |
| | | IPage<WxVideoVO> page = PageUtil.getPage(query, WxVideoVO.class); |
| | | baseMapper.wxKitchenVideoQuery(page, query); |
| | | |
| | | buildRecommendVideoList(page, query.getVideoId()); |
| | | |
| | | page.getRecords().forEach(v -> { |
| | | v.setAuthorAvatar(cosUtil.getPreviewUrl(v.getAuthorAvatar())); |
| | | if (VideoContentTypeEnum.VIDEO.getValue().equals(v.getVideoContentType())) { |
| | |
| | | return Result.ok().data(page.getRecords()).total(page.getTotal()); |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * @param page |
| | | * @param videoId videoId推荐的视频id |
| | | */ |
| | | private void buildRecommendVideoList(IPage<WxVideoVO> page, String videoId) { |
| | | //查询到有视频列表 |
| | | |
| | | if(org.apache.commons.collections.CollectionUtils.isNotEmpty(page.getRecords())){ |
| | | //现将视频顺序打乱 |
| | | Collections.shuffle(page.getRecords()); |
| | | |
| | | WxVideoVO wxVideoVO = null; |
| | | if (StringUtils.isNotBlank(videoId)){ |
| | | VideoQuery videoQuery = new VideoQuery(); |
| | | videoQuery.setVideoId(videoId); |
| | | wxVideoVO = baseMapper.recommendVideoByVideoId(videoQuery); |
| | | |
| | | boolean found = false; |
| | | int foundIndex = -1; |
| | | |
| | | List<WxVideoVO> records = page.getRecords(); |
| | | //判断二维码过来的videoId是否存在与page.getRecords重复 记录下标 |
| | | for (int i = 0; i < records.size(); i++) { |
| | | if (wxVideoVO.getId().equals(records.get(i).getId())) { |
| | | found = true; |
| | | foundIndex = i; |
| | | break; |
| | | } |
| | | } |
| | | if (found){ |
| | | WxVideoVO matchedRecord = records.remove(foundIndex); |
| | | records.add(0, matchedRecord); |
| | | }else { |
| | | // 如果没找到,替换首位 |
| | | records.set(0, wxVideoVO); |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateCollectNumBatch(List<CollectTypeNumVO> numList) { |