framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoServiceImpl.java
@@ -558,15 +558,16 @@
            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();
@@ -651,7 +652,7 @@
     * @param mysqlNum
     * @return
     */
    private Integer getCommentNum(String videoId, Integer mysqlNum) {
    public Integer getCommentNum(String videoId, Integer mysqlNum) {
        Object redisNum = cache.get(CachePrefix.VIDEO_COMMENT_NUM.getPrefixWithId(videoId));
        if (Objects.isNull(redisNum)) {
            // redis中没有就把数据库的写到redis中
@@ -668,7 +669,7 @@
     * @param mysqlNum
     * @return
     */
    private Integer getCollectNum(String videoId, Integer mysqlNum) {
    public Integer getCollectNum(String videoId, Integer mysqlNum) {
        Object redisNum = cache.get(CachePrefix.VIDEO_COLLECT_NUM.getPrefixWithId(videoId));
        if (Objects.isNull(redisNum)) {
            // redis中没有就把数据库的写到redis中
@@ -685,7 +686,7 @@
     * @param mysqlNum
     * @return
     */
    private Integer getThumbsUpNum(String videoId, Integer mysqlNum) {
    public Integer getThumbsUpNum(String videoId, Integer mysqlNum) {
        Object redisNum = cache.get(CachePrefix.VIDEO_THUMBS_UP_NUM.getPrefixWithId(videoId));
        if (Objects.isNull(redisNum)) {
            // redis中没有就把数据库的写到redis中
@@ -699,7 +700,10 @@
    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()));
@@ -723,8 +727,11 @@
    @Override
    public Result kitchenRecommendVideo(WxKitchenVideoQuery query) {
        IPage<WxVideoVO> page = PageUtil.getPage(query, WxVideoVO.class);
         baseMapper.wxKitchenVideoQuery(page, query);
         page.getRecords().forEach(v -> {
        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())) {
                 v.setVideoUrl(cosUtil.getPreviewUrl(v.getVideoFileKey()));
@@ -734,6 +741,51 @@
        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) {