Bläddra i källkod

1.资源格式转换修改
2.资源预览放权
3.应前端需要,资源管理/中心返回新加入信息,如评论数,收藏数,关键词组等
4.给评论、关键词添加一些新方法

honorfire 8 månader sedan
förälder
incheckning
31e5ed5c7d

+ 4 - 0
snowy-modules/snowy-web-app/src/main/java/vip/xiaonuo/web/core/config/GlobalConfigure.java

@@ -176,6 +176,10 @@ public class GlobalConfigure implements WebMvcConfigurer {
             /* 文件预览 */
             "/filetransfer/preview",
             "/filetransfer/downloadfile",
+            "/filetransfer/batchDownloadFile",
+            "/resourceFile/preview",
+            "/resourceFile/downloadfile",
+            "/resourceFile/batchDownloadFile",
 
             /* 资源中心 */
             "/disk/resourcecentre/page",

+ 53 - 3
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/CourseAuditRecordController.java

@@ -32,20 +32,21 @@ import vip.xiaonuo.common.pojo.CommonValidList;
 import vip.xiaonuo.common.util.PinyinUtils;
 import vip.xiaonuo.disk.domain.CourseAuditRecord;
 import vip.xiaonuo.disk.domain.CourseInfo;
+import vip.xiaonuo.disk.domain.KeyWord;
 import vip.xiaonuo.disk.domain.ResourceUserFile;
 import vip.xiaonuo.disk.dto.courseauditrecord.CourseAuditRecordAddParam;
 import vip.xiaonuo.disk.dto.courseauditrecord.CourseAuditRecordEditParam;
 import vip.xiaonuo.disk.dto.courseauditrecord.CourseAuditRecordIdParam;
 import vip.xiaonuo.disk.dto.courseauditrecord.CourseAuditRecordPageParam;
-import vip.xiaonuo.disk.service.CourseAuditRecordService;
-import vip.xiaonuo.disk.service.CourseInfoService;
-import vip.xiaonuo.disk.service.ResourceUserfileService;
+import vip.xiaonuo.disk.service.*;
+import vip.xiaonuo.disk.vo.comment.UserCommentVo;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.validation.Valid;
 import javax.validation.constraints.NotEmpty;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 资源管理控制器
@@ -63,6 +64,15 @@ public class CourseAuditRecordController {
     @Resource
     private CourseAuditRecordService courseAuditRecordService;
 
+    @Resource
+    private UserCommentService userCommentService;
+
+    @Resource
+    private ResourceCollectService resourceCollectService;
+
+    @Resource
+    private KeyWordService keyWordService;
+
     @Resource
     private CourseInfoService courseInfoService;
 
@@ -308,6 +318,17 @@ public class CourseAuditRecordController {
         Map param =new HashMap();
         param.put("id", req.getParameter("id"));
         Map<String,Object> result=courseAuditRecordService.queryInfo(param);
+        //获取关键词
+        String keyword= String.valueOf(result.get("keyword"));
+        if(StringUtils.isNotEmpty(keyword))
+        {
+            String[] keywordIdArray=keyword.split(",");
+            List<Integer> keywordIdList = Arrays.stream(keywordIdArray)
+                    .map(Integer::parseInt)
+                    .collect(Collectors.toList());
+            List<KeyWord>  keywordList=keyWordService.selectByIds(keywordIdList);
+            result.put("keywordList",keywordList);
+        }
         return CommonResult.data(result);
     }
 
@@ -325,6 +346,24 @@ public class CourseAuditRecordController {
         Map param =new HashMap();
         param.put("id", req.getParameter("id"));
         Map<String,Object> result=courseAuditRecordService.queryInfo(param);
+        //评论数
+        List<UserCommentVo> commentList=userCommentService.queryList(req.getParameter("id"));
+        result.put("commentNum",commentList.size());
+        //是否收藏
+        Boolean isCollet=resourceCollectService.queryList(req.getParameter("id"));
+        result.put("isCollet",isCollet);
+        //获取关键词
+        String keyword= String.valueOf(result.get("keyword"));
+        if(StringUtils.isNotEmpty(keyword))
+        {
+            String[] keywordIdArray = keyword.split(",");
+            List<Integer> keywordIdList = Arrays.stream(keywordIdArray)
+                                                .map(Integer::parseInt)
+                                                .collect(Collectors.toList());
+            List<KeyWord>  keywordList=keyWordService.selectByIds(keywordIdList);
+            result.put("keywordList",keywordList);
+        }
+
         return CommonResult.data(result);
     }
 
@@ -343,6 +382,17 @@ public class CourseAuditRecordController {
         String userId = StpLoginUserUtil.getLoginUser().getId();
         param.put("userId", userId);
         Map<String,Object> result=courseAuditRecordService.queryRecentlyRecord(param);
+        //获取关键词
+        String keyword= String.valueOf(result.get("keyword"));
+        if(StringUtils.isNotEmpty(keyword))
+        {
+            String[] keywordIdArray=keyword.split(",");
+            List<Integer> keywordIdList = Arrays.stream(keywordIdArray)
+                    .map(Integer::parseInt)
+                    .collect(Collectors.toList());
+            List<KeyWord>  keywordList=keyWordService.selectByIds(keywordIdList);
+            result.put("keywordList",keywordList);
+        }
         return CommonResult.data(result);
     }
 

+ 1 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/KeyWord.java

@@ -58,4 +58,4 @@ public class KeyWord extends CommonEntity {
 
 
 
-}
+}

+ 6 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/CourseAuditRecordMapper.xml

@@ -144,6 +144,7 @@
             t1.USERFILE_ID AS fileId,
             t2.FILE_NAME AS fileName,
             rf.FILE_URL AS fileUrl,
+            rf.PRIVIEW_FILE_URL as priviewFileUrl,
             rf.FILE_SIZE AS fileSize,
             t2.CREATE_TIME as uploadTime,
             t2.EXTEND_NAME AS suffix,
@@ -162,6 +163,8 @@
             IFNULL (t5.major_name,'') AS majorIdName,
             IFNULL (t1.RESOURCE_TYPE,'') AS resourceType,
             IFNULL(( SELECT dd1.DICT_LABEL FROM (SELECT d1.DICT_LABEL,d1.DICT_VALUE  FROM  DEV_DICT d1 WHERE PARENT_ID = (SELECT d2.ID  FROM  DEV_DICT d2 WHERE d2.DICT_VALUE='RESOURCE_TYPE') )dd1 WHERE dd1.DICT_VALUE = TRIM(t1.RESOURCE_TYPE) ),'') AS resourceTypeName,
+            IFNULL (t1.KEYWORD ,'') as keyword,
+            IFNULL (t1.KEYWORD_VALUE  ,'') as keywordValue,
             IFNULL (t1.COURSE_ID,'') as courseId,
             IFNULL (t3.COURSE_NAME,'') AS courseIdName,
             IFNULL (t1.RESOURCE_DESC,'') AS resourceDesc,
@@ -198,7 +201,9 @@
             IFNULL (t1.MAJOR_ID,'') AS majorId,
             IFNULL (t5.major_name,'') AS majorIdName,
             IFNULL (t1.RESOURCE_TYPE,'') AS resourceType,
-            IFNULL(( SELECT dd1.DICT_LABEL FROM (SELECT d1.DICT_LABEL,d1.DICT_VALUE  FROM  DEV_DICT d1 WHERE PARENT_ID = (SELECT d2.ID  FROM  DEV_DICT d2 WHERE d2.DICT_VALUE='RESOURCE_TYPE') )dd1 WHERE dd1.DICT_VALUE = TRIM(t1.RESOURCE_TYPE) ),'') AS resourceTypeName
+            IFNULL(( SELECT dd1.DICT_LABEL FROM (SELECT d1.DICT_LABEL,d1.DICT_VALUE  FROM  DEV_DICT d1 WHERE PARENT_ID = (SELECT d2.ID  FROM  DEV_DICT d2 WHERE d2.DICT_VALUE='RESOURCE_TYPE') )dd1 WHERE dd1.DICT_VALUE = TRIM(t1.RESOURCE_TYPE) ),'') AS resourceTypeName,
+            IFNULL (t1.KEYWORD ,'') as keyword,
+            IFNULL (t1.KEYWORD_VALUE  ,'') as keywordValue
         FROM COURSE_AUDIT_RECORD t1
         LEFT JOIN college t4 ON t1.COLLEGE_ID=t4.id AND t4.DELETE_FLAG ='NOT_DELETE'
         LEFT JOIN major t5 ON t1.MAJOR_ID=t5.id AND t5.DELETE_FLAG ='NOT_DELETE'

+ 2 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/KeyWordService.java

@@ -79,4 +79,6 @@ public interface KeyWordService extends IService<KeyWord> {
     KeyWord queryEntity(Integer id);
 
     List<KeyWord> select(String popular);
+
+    List<KeyWord> selectByIds(List<Integer> ids);
 }

+ 8 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/UserCommentService.java

@@ -41,6 +41,14 @@ public interface UserCommentService extends IService<UserComment> {
      */
     Page<UserCommentVo> page(UserCommentPageParam userCommentPageParam);
 
+    /**
+     * 获取一个资源记录的所有评论
+     *
+     * @author pans
+     * @date  2025/06/27 11:07
+     */
+    List<UserCommentVo> queryList(String resourceId);
+
     /**
      * 添加user_comment
      *

+ 8 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/KeyWordServiceImpl.java

@@ -116,4 +116,12 @@ public class KeyWordServiceImpl extends ServiceImpl<KeyWordMapper, KeyWord> impl
         return keyWordMapper.selectList(queryWrapper);
     }
 
+    @Override
+    public List<KeyWord> selectByIds(List<Integer> ids) {
+        QueryWrapper<KeyWord> queryWrapper = new QueryWrapper<>();
+        queryWrapper.in("id", ids);
+        queryWrapper.lambda().orderByAsc(KeyWord::getId);
+        return keyWordMapper.selectList(queryWrapper);
+    }
+
 }

+ 2 - 2
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/TranscodingServiceImpl.java

@@ -122,7 +122,7 @@ public class TranscodingServiceImpl implements TranscodingService {
             return CommonResult.error("文件不存在或不是本人的");
         }
 
-        List<String> videoList= Arrays.asList("wmv","avi","flv","mpeg","mpg","rmvb","mov");
+        List<String> videoList= Arrays.asList("wmv","avi","flv","mpeg","mpg","rmvb","mov","mkv");
 
         List<String> wordList= Arrays.asList("doc","docx","ppt","pptx","xls","xlsx");
 
@@ -160,7 +160,7 @@ public class TranscodingServiceImpl implements TranscodingService {
                 }else{
                     ResourceFile newFile = new ResourceFile();
                     newFile.setFileId(fileBean.getFileId());
-                    newFile.setPreviewFileUrl("converted/" + fileBean.getFileId() + "." + transcodingResourceReqDTO.getFormat());
+                    newFile.setPreviewFileUrl(fileBean.getFileUrl());
                     resourceFileMapper.updateById(newFile);
                 }
             } catch (Exception ex) {

+ 7 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/UserCommentServiceImpl.java

@@ -60,6 +60,13 @@ public class UserCommentServiceImpl extends ServiceImpl<UserCommentMapper, UserC
         return page;
     }
 
+    @Override
+    public List<UserCommentVo> queryList(String resourceId)
+    {
+        List<UserCommentVo> list=userCommentMapper.selectCommentNoPid(resourceId);
+        return list;
+    }
+
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void add(UserCommentAddParam userCommentAddParam) {

+ 2 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/util/VideoConverter.java

@@ -38,12 +38,13 @@ public class VideoConverter {
                 .credentials(ACCESS_KEY, SECRET_KEY)
                 .build();
 
+
+        List<File> filesToDelete = new ArrayList<>(); // 待删除文件列表
         // 创建临时目录
 //        File tempDir = new File("temp");
 //        if (!tempDir.exists()) {
 //            tempDir.mkdir();
 //        }
-        List<File> filesToDelete = new ArrayList<>(); // 待删除文件列表
         String fileName = new File(inputKey).getName();
         String uniqueName = UUID.randomUUID() + "_" + fileName;
         File tempFile = new File(tempDir, uniqueName);

+ 4 - 0
snowy-server/snowy-gateway-app/src/main/java/vip/xiaonuo/gateway/config/GatewayConfigure.java

@@ -127,6 +127,10 @@ public class GatewayConfigure {
 
             "/api/webapp/filetransfer/preview",
             "/api/webapp/filetransfer/downloadfile",
+            "/api/webapp/filetransfer/batchDownloadFile",
+            "/api/webapp/resourceFile/preview",
+            "/api/webapp/resourceFile/downloadfile",
+            "/api/webapp/resourceFile/batchDownloadFile",
 
             /* 支付相关回调通知 */
             "/api/bizapp/pay/ali/notifyUrl",