Преглед изворни кода

资源转码代码提交和用户表添加学号等字段

pans пре 7 месеци
родитељ
комит
65a013fbe4
16 измењених фајлова са 776 додато и 12 уклоњено
  1. 131 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/ResourceUserfileConvertController.java
  2. 0 1
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/UserController.java
  3. 94 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/ResourceUserfileConvert.java
  4. 38 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/enums/ResourceUserfileConvertEnum.java
  5. 26 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/ResourceUserfileConvertMapper.java
  6. 5 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/ResourceUserfileConvertMapper.xml
  7. 58 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/userfileconvert/ResourceUserfileConvertAddParam.java
  8. 63 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/userfileconvert/ResourceUserfileConvertEditParam.java
  9. 35 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/userfileconvert/ResourceUserfileConvertIdParam.java
  10. 49 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/userfileconvert/ResourceUserfileConvertPageParam.java
  11. 81 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/ResourceUserfileConvertService.java
  12. 99 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/ResourceUserfileConvertServiceImpl.java
  13. 41 11
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/TranscodingServiceImpl.java
  14. 19 0
      snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/user/entity/SysUser.java
  15. 17 0
      snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/user/param/SysUserAddParam.java
  16. 20 0
      snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/user/param/SysUserEditParam.java

+ 131 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/ResourceUserfileConvertController.java

@@ -0,0 +1,131 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.github.xiaoymin.knife4j.annotations.ApiSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+import vip.xiaonuo.common.annotation.CommonLog;
+import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.common.pojo.CommonValidList;
+import vip.xiaonuo.disk.domain.ResourceUserfileConvert;
+import vip.xiaonuo.disk.param.userfileconvert.ResourceUserfileConvertAddParam;
+import vip.xiaonuo.disk.param.userfileconvert.ResourceUserfileConvertEditParam;
+import vip.xiaonuo.disk.param.userfileconvert.ResourceUserfileConvertIdParam;
+import vip.xiaonuo.disk.param.userfileconvert.ResourceUserfileConvertPageParam;
+import vip.xiaonuo.disk.service.ResourceUserfileConvertService;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+
+/**
+ * RESOURCE_USERFILE_CONVERT控制器
+ *
+ * @author pans
+ * @date  2025/07/25 09:14
+ */
+@Api(tags = "RESOURCE_USERFILE_CONVERT控制器")
+@ApiSupport(author = "SNOWY_TEAM", order = 1)
+@RestController
+@Validated
+public class ResourceUserfileConvertController {
+
+    @Resource
+    private ResourceUserfileConvertService resourceUserfileConvertService;
+
+    /**
+     * 获取RESOURCE_USERFILE_CONVERT分页
+     *
+     * @author pans
+     * @date  2025/07/25 09:14
+     */
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("获取RESOURCE_USERFILE_CONVERT分页")
+    @GetMapping("/disk/userfileconvert/page")
+    public CommonResult<Page<ResourceUserfileConvert>> page(ResourceUserfileConvertPageParam resourceUserfileConvertPageParam) {
+        return CommonResult.data(resourceUserfileConvertService.page(resourceUserfileConvertPageParam));
+    }
+
+    /**
+     * 添加RESOURCE_USERFILE_CONVERT
+     *
+     * @author pans
+     * @date  2025/07/25 09:14
+     */
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("添加RESOURCE_USERFILE_CONVERT")
+    @CommonLog("添加RESOURCE_USERFILE_CONVERT")
+    @SaCheckPermission("/disk/userfileconvert/add")
+    @PostMapping("/disk/userfileconvert/add")
+    public CommonResult<String> add(@RequestBody @Valid ResourceUserfileConvertAddParam resourceUserfileConvertAddParam) {
+        resourceUserfileConvertService.add(resourceUserfileConvertAddParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 编辑RESOURCE_USERFILE_CONVERT
+     *
+     * @author pans
+     * @date  2025/07/25 09:14
+     */
+    @ApiOperationSupport(order = 3)
+    @ApiOperation("编辑RESOURCE_USERFILE_CONVERT")
+    @CommonLog("编辑RESOURCE_USERFILE_CONVERT")
+    @SaCheckPermission("/disk/userfileconvert/edit")
+    @PostMapping("/disk/userfileconvert/edit")
+    public CommonResult<String> edit(@RequestBody @Valid ResourceUserfileConvertEditParam resourceUserfileConvertEditParam) {
+        resourceUserfileConvertService.edit(resourceUserfileConvertEditParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 删除RESOURCE_USERFILE_CONVERT
+     *
+     * @author pans
+     * @date  2025/07/25 09:14
+     */
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("删除RESOURCE_USERFILE_CONVERT")
+    @CommonLog("删除RESOURCE_USERFILE_CONVERT")
+    @SaCheckPermission("/disk/userfileconvert/delete")
+    @PostMapping("/disk/userfileconvert/delete")
+    public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
+                                                   CommonValidList<ResourceUserfileConvertIdParam> resourceUserfileConvertIdParamList) {
+        resourceUserfileConvertService.delete(resourceUserfileConvertIdParamList);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 获取RESOURCE_USERFILE_CONVERT详情
+     *
+     * @author pans
+     * @date  2025/07/25 09:14
+     */
+    @ApiOperationSupport(order = 5)
+    @ApiOperation("获取RESOURCE_USERFILE_CONVERT详情")
+    @SaCheckPermission("/disk/userfileconvert/detail")
+    @GetMapping("/disk/userfileconvert/detail")
+    public CommonResult<ResourceUserfileConvert> detail(@Valid ResourceUserfileConvertIdParam resourceUserfileConvertIdParam) {
+        return CommonResult.data(resourceUserfileConvertService.detail(resourceUserfileConvertIdParam));
+    }
+
+}

+ 0 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/UserController.java

@@ -55,7 +55,6 @@ public class UserController {
         UserBean userBean = new UserBean();
         BeanUtil.copyProperties(registerDTO, userBean);
         restResult = userService.registerUser(userBean);
-
         return restResult;
     }
 

+ 94 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/ResourceUserfileConvert.java

@@ -0,0 +1,94 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * RESOURCE_USERFILE_CONVERT实体
+ *
+ * @author pans
+ * @date  2025/07/25 09:14
+ **/
+@Getter
+@Setter
+@TableName("RESOURCE_USERFILE_CONVERT")
+public class ResourceUserfileConvert {
+
+    /** ID */
+    @TableId
+    @ApiModelProperty(value = "ID", position = 1)
+    private String id;
+
+    /** USER_FILE_ID */
+    @ApiModelProperty(value = "USER_FILE_ID", position = 2)
+    private String userFileId;
+
+    /** EXTEND_NAME */
+    @ApiModelProperty(value = "EXTEND_NAME", position = 3)
+    private String extendName;
+
+    /** FILE_ID */
+    @ApiModelProperty(value = "FILE_ID", position = 4)
+    private String fileId;
+
+    /** FILE_NAME */
+    @ApiModelProperty(value = "FILE_NAME", position = 5)
+    private String fileName;
+
+    /** FILE_PATH */
+    @ApiModelProperty(value = "FILE_PATH", position = 6)
+    private String filePath;
+
+    /** STATUS */
+    @ApiModelProperty(value = "STATUS", position = 7)
+    private String status;
+
+    @TableField("user_id")
+    private String userId;
+
+    /** DELETE_FLAG */
+    @ApiModelProperty(value = "DELETE_FLAG", position = 8)
+    @TableLogic
+    @TableField(fill = FieldFill.INSERT)
+    private String deleteFlag;
+
+    /** CREATE_TIME */
+    @ApiModelProperty(value = "CREATE_TIME", position = 9)
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    /** CREATE_USER */
+    @ApiModelProperty(value = "CREATE_USER", position = 10)
+    @TableField(fill = FieldFill.INSERT)
+    private String createUser;
+
+    /** UPDATE_TIME */
+    @ApiModelProperty(value = "UPDATE_TIME", position = 11)
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateTime;
+
+    /** UPDATE_USER */
+    @ApiModelProperty(value = "UPDATE_USER", position = 12)
+    @TableField(fill = FieldFill.UPDATE)
+    private String updateUser;
+
+    /** 失败原因 */
+    private String reason;
+
+}

+ 38 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/enums/ResourceUserfileConvertEnum.java

@@ -0,0 +1,38 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.enums;
+
+import lombok.Getter;
+
+/**
+ * RESOURCE_USERFILE_CONVERT枚举
+ *
+ * @author pans
+ * @date  2025/07/25 09:14
+ **/
+@Getter
+public enum ResourceUserfileConvertEnum {
+
+    /** 转换中 */
+    ING("0"),
+    /** 转成成功 */
+    SUCCESS("1"),
+    /** 转换失败 */
+    FAIL("2");
+
+    private final String value;
+
+    ResourceUserfileConvertEnum(String value) {
+        this.value = value;
+    }
+}

+ 26 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/ResourceUserfileConvertMapper.java

@@ -0,0 +1,26 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import vip.xiaonuo.disk.domain.ResourceUserfileConvert;
+
+
+/**
+ * RESOURCE_USERFILE_CONVERTMapper接口
+ *
+ * @author pans
+ * @date  2025/07/25 09:14
+ **/
+public interface ResourceUserfileConvertMapper extends BaseMapper<ResourceUserfileConvert> {
+}

+ 5 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/ResourceUserfileConvertMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="vip.xiaonuo.disk.mapper.ResourceUserfileConvertMapper">
+
+</mapper>

+ 58 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/userfileconvert/ResourceUserfileConvertAddParam.java

@@ -0,0 +1,58 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.param.userfileconvert;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * RESOURCE_USERFILE_CONVERT添加参数
+ *
+ * @author pans
+ * @date  2025/07/25 09:14
+ **/
+@Getter
+@Setter
+public class ResourceUserfileConvertAddParam {
+
+    /** USER_FILE_ID */
+    @ApiModelProperty(value = "USER_FILE_ID", position = 2)
+    private String userFileId;
+
+    /** EXTEND_NAME */
+    @ApiModelProperty(value = "EXTEND_NAME", position = 3)
+    private String extendName;
+
+    /** FILE_ID */
+    @ApiModelProperty(value = "FILE_ID", position = 4)
+    private String fileId;
+
+    /** FILE_NAME */
+    @ApiModelProperty(value = "FILE_NAME", position = 5)
+    private String fileName;
+
+    /** FILE_PATH */
+    @ApiModelProperty(value = "FILE_PATH", position = 6)
+    private String filePath;
+
+    /** STATUS */
+    @ApiModelProperty(value = "STATUS", position = 7)
+    private String status;
+
+}

+ 63 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/userfileconvert/ResourceUserfileConvertEditParam.java

@@ -0,0 +1,63 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.param.userfileconvert;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * RESOURCE_USERFILE_CONVERT编辑参数
+ *
+ * @author pans
+ * @date  2025/07/25 09:14
+ **/
+@Getter
+@Setter
+public class ResourceUserfileConvertEditParam {
+
+    /** ID */
+    @ApiModelProperty(value = "ID", required = true, position = 1)
+    @NotBlank(message = "id不能为空")
+    private String id;
+
+    /** USER_FILE_ID */
+    @ApiModelProperty(value = "USER_FILE_ID", position = 2)
+    private String userFileId;
+
+    /** EXTEND_NAME */
+    @ApiModelProperty(value = "EXTEND_NAME", position = 3)
+    private String extendName;
+
+    /** FILE_ID */
+    @ApiModelProperty(value = "FILE_ID", position = 4)
+    private String fileId;
+
+    /** FILE_NAME */
+    @ApiModelProperty(value = "FILE_NAME", position = 5)
+    private String fileName;
+
+    /** FILE_PATH */
+    @ApiModelProperty(value = "FILE_PATH", position = 6)
+    private String filePath;
+
+    /** STATUS */
+    @ApiModelProperty(value = "STATUS", position = 7)
+    private String status;
+
+}

+ 35 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/userfileconvert/ResourceUserfileConvertIdParam.java

@@ -0,0 +1,35 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.param.userfileconvert;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * RESOURCE_USERFILE_CONVERTId参数
+ *
+ * @author pans
+ * @date  2025/07/25 09:14
+ **/
+@Getter
+@Setter
+public class ResourceUserfileConvertIdParam {
+
+    /** ID */
+    @ApiModelProperty(value = "ID", required = true)
+    @NotBlank(message = "id不能为空")
+    private String id;
+}

+ 49 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/userfileconvert/ResourceUserfileConvertPageParam.java

@@ -0,0 +1,49 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.param.userfileconvert;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * RESOURCE_USERFILE_CONVERT查询参数
+ *
+ * @author pans
+ * @date  2025/07/25 09:14
+ **/
+@Getter
+@Setter
+public class ResourceUserfileConvertPageParam {
+
+    /** 当前页 */
+    @ApiModelProperty(value = "当前页码")
+    private Integer current;
+
+    /** 每页条数 */
+    @ApiModelProperty(value = "每页条数")
+    private Integer size;
+
+    /** 排序字段 */
+    @ApiModelProperty(value = "排序字段,字段驼峰名称,如:userName")
+    private String sortField;
+
+    /** 排序方式 */
+    @ApiModelProperty(value = "排序方式,升序:ASCEND;降序:DESCEND")
+    private String sortOrder;
+
+    /** 关键词 */
+    @ApiModelProperty(value = "关键词")
+    private String fileName;
+
+}

+ 81 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/ResourceUserfileConvertService.java

@@ -0,0 +1,81 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import vip.xiaonuo.disk.domain.ResourceUserfileConvert;
+import vip.xiaonuo.disk.param.userfileconvert.ResourceUserfileConvertAddParam;
+import vip.xiaonuo.disk.param.userfileconvert.ResourceUserfileConvertEditParam;
+import vip.xiaonuo.disk.param.userfileconvert.ResourceUserfileConvertIdParam;
+import vip.xiaonuo.disk.param.userfileconvert.ResourceUserfileConvertPageParam;
+
+import java.util.List;
+
+/**
+ * RESOURCE_USERFILE_CONVERTService接口
+ *
+ * @author pans
+ * @date  2025/07/25 09:14
+ **/
+public interface ResourceUserfileConvertService extends IService<ResourceUserfileConvert> {
+
+    /**
+     * 获取RESOURCE_USERFILE_CONVERT分页
+     *
+     * @author pans
+     * @date  2025/07/25 09:14
+     */
+    Page<ResourceUserfileConvert> page(ResourceUserfileConvertPageParam resourceUserfileConvertPageParam);
+
+    /**
+     * 添加RESOURCE_USERFILE_CONVERT
+     *
+     * @author pans
+     * @date  2025/07/25 09:14
+     */
+    void add(ResourceUserfileConvertAddParam resourceUserfileConvertAddParam);
+
+    /**
+     * 编辑RESOURCE_USERFILE_CONVERT
+     *
+     * @author pans
+     * @date  2025/07/25 09:14
+     */
+    void edit(ResourceUserfileConvertEditParam resourceUserfileConvertEditParam);
+
+    /**
+     * 删除RESOURCE_USERFILE_CONVERT
+     *
+     * @author pans
+     * @date  2025/07/25 09:14
+     */
+    void delete(List<ResourceUserfileConvertIdParam> resourceUserfileConvertIdParamList);
+
+    /**
+     * 获取RESOURCE_USERFILE_CONVERT详情
+     *
+     * @author pans
+     * @date  2025/07/25 09:14
+     */
+    ResourceUserfileConvert detail(ResourceUserfileConvertIdParam resourceUserfileConvertIdParam);
+
+    /**
+     * 获取RESOURCE_USERFILE_CONVERT详情
+     *
+     * @author pans
+     * @date  2025/07/25 09:14
+     **/
+    ResourceUserfileConvert queryEntity(String id);
+
+}

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

@@ -0,0 +1,99 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollStreamUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
+import vip.xiaonuo.common.enums.CommonSortOrderEnum;
+import vip.xiaonuo.common.exception.CommonException;
+import vip.xiaonuo.common.page.CommonPageRequest;
+import vip.xiaonuo.disk.domain.ResourceUserfileConvert;
+import vip.xiaonuo.disk.mapper.ResourceUserfileConvertMapper;
+import vip.xiaonuo.disk.param.userfileconvert.ResourceUserfileConvertAddParam;
+import vip.xiaonuo.disk.param.userfileconvert.ResourceUserfileConvertEditParam;
+import vip.xiaonuo.disk.param.userfileconvert.ResourceUserfileConvertIdParam;
+import vip.xiaonuo.disk.param.userfileconvert.ResourceUserfileConvertPageParam;
+import vip.xiaonuo.disk.service.ResourceUserfileConvertService;
+
+import java.util.List;
+
+/**
+ * RESOURCE_USERFILE_CONVERTService接口实现类
+ *
+ * @author pans
+ * @date  2025/07/25 09:14
+ **/
+@Service
+public class ResourceUserfileConvertServiceImpl extends ServiceImpl<ResourceUserfileConvertMapper, ResourceUserfileConvert> implements ResourceUserfileConvertService {
+
+
+    @Override
+    public Page<ResourceUserfileConvert> page(ResourceUserfileConvertPageParam resourceUserfileConvertPageParam) {
+        QueryWrapper<ResourceUserfileConvert> queryWrapper = new QueryWrapper<>();
+        if(ObjectUtil.isAllNotEmpty(resourceUserfileConvertPageParam.getSortField(), resourceUserfileConvertPageParam.getSortOrder())) {
+            CommonSortOrderEnum.validate(resourceUserfileConvertPageParam.getSortOrder());
+            queryWrapper.orderBy(true, resourceUserfileConvertPageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()),
+                    StrUtil.toUnderlineCase(resourceUserfileConvertPageParam.getSortField()));
+        } else {
+            queryWrapper.lambda().orderByAsc(ResourceUserfileConvert::getId);
+        }
+        queryWrapper.lambda().like(resourceUserfileConvertPageParam.getFileName() != null,ResourceUserfileConvert::getFileName, resourceUserfileConvertPageParam.getFileName());
+        queryWrapper.lambda().eq(ResourceUserfileConvert::getUserId, StpLoginUserUtil.getLoginUser().getId());
+        return this.page(CommonPageRequest.defaultPage(), queryWrapper);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(ResourceUserfileConvertAddParam resourceUserfileConvertAddParam) {
+        ResourceUserfileConvert resourceUserfileConvert = BeanUtil.toBean(resourceUserfileConvertAddParam, ResourceUserfileConvert.class);
+        this.save(resourceUserfileConvert);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void edit(ResourceUserfileConvertEditParam resourceUserfileConvertEditParam) {
+        ResourceUserfileConvert resourceUserfileConvert = this.queryEntity(resourceUserfileConvertEditParam.getId());
+        BeanUtil.copyProperties(resourceUserfileConvertEditParam, resourceUserfileConvert);
+        this.updateById(resourceUserfileConvert);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void delete(List<ResourceUserfileConvertIdParam> resourceUserfileConvertIdParamList) {
+        // 执行删除
+        this.removeByIds(CollStreamUtil.toList(resourceUserfileConvertIdParamList, ResourceUserfileConvertIdParam::getId));
+    }
+
+    @Override
+    public ResourceUserfileConvert detail(ResourceUserfileConvertIdParam resourceUserfileConvertIdParam) {
+        return this.queryEntity(resourceUserfileConvertIdParam.getId());
+    }
+
+    @Override
+    public ResourceUserfileConvert queryEntity(String id) {
+        ResourceUserfileConvert resourceUserfileConvert = this.getById(id);
+        if(ObjectUtil.isEmpty(resourceUserfileConvert)) {
+            throw new CommonException("RESOURCE_USERFILE_CONVERT不存在,id值为:{}", id);
+        }
+        return resourceUserfileConvert;
+    }
+
+}

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

@@ -10,16 +10,11 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
 import vip.xiaonuo.common.pojo.CommonResult;
-import vip.xiaonuo.disk.domain.FileBean;
-import vip.xiaonuo.disk.domain.ResourceFile;
-import vip.xiaonuo.disk.domain.ResourceUserFile;
-import vip.xiaonuo.disk.domain.UserFile;
+import vip.xiaonuo.disk.domain.*;
 import vip.xiaonuo.disk.dto.file.TranscodingReqDTO;
 import vip.xiaonuo.disk.dto.file.TranscodingResourceReqDTO;
-import vip.xiaonuo.disk.mapper.FileMapper;
-import vip.xiaonuo.disk.mapper.ResourceFileMapper;
-import vip.xiaonuo.disk.mapper.ResourceUserFileMapper;
-import vip.xiaonuo.disk.mapper.UserFileMapper;
+import vip.xiaonuo.disk.enums.ResourceUserfileConvertEnum;
+import vip.xiaonuo.disk.mapper.*;
 import vip.xiaonuo.disk.service.TranscodingService;
 import vip.xiaonuo.disk.util.OfficeConverter;
 import vip.xiaonuo.disk.util.PdfUtils;
@@ -62,6 +57,11 @@ public class TranscodingServiceImpl implements TranscodingService {
 
     @Resource
     private ResourceFileMapper resourceFileMapper;
+    @Resource
+    private ResourceUserfileConvertMapper resourceUserfileConvertMapper;
+
+
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public CommonResult<String> transcodingVideo(TranscodingReqDTO transcodingReqDTO) {
@@ -215,8 +215,15 @@ public class TranscodingServiceImpl implements TranscodingService {
                 QueryWrapper<ResourceUserFile> queryWrapper = new QueryWrapper<>();
                 queryWrapper.lambda().eq(ResourceUserFile::getUserFileId, transcodingResourceReqDTO.getUserFileId());
                 ResourceUserFile userFile = resourceUserFileMapper.selectOne(queryWrapper);
+
+                //插入转换日志表
+                insertResourceUserfileConvert(transcodingResourceReqDTO.getUserFileId(), userFile.getFileId(),userFile.getFileName(), userFile.getExtendName(), userFile.getFilePath(), ResourceUserfileConvertEnum.ING.getValue(), userId,null);
+
+
                 if (userFile == null || !userFile.getUserId().equals(userId)) {
                     System.out.println("文件不存在或不是本人的");
+                    insertResourceUserfileConvert(transcodingResourceReqDTO.getUserFileId(), userFile.getFileId(),userFile.getFileName(), userFile.getExtendName(), userFile.getFilePath(), ResourceUserfileConvertEnum.FAIL.getValue(), userId,"文件不存在或不是本人的");
+                    throw new RuntimeException("文件不存在或不是本人的");
                 }
 
                 List<String> videoList= Arrays.asList("wmv","avi","flv","mpeg","mpg","rmvb","mov","mkv");
@@ -227,6 +234,8 @@ public class TranscodingServiceImpl implements TranscodingService {
                 ResourceFile fileBean = resourceFileMapper.selectById(userFile.getFileId());
                 if (fileBean == null) {
                     System.out.println("文件不存在");
+                    insertResourceUserfileConvert(transcodingResourceReqDTO.getUserFileId(), userFile.getFileId(),userFile.getFileName(), userFile.getExtendName(), userFile.getFilePath(), ResourceUserfileConvertEnum.FAIL.getValue(), userId,"文件不存在");
+                    throw new RuntimeException("文件不存在");
                 }
                 if(videoList.contains(userFile.getExtendName())){
                     transcodingResourceReqDTO.setTranscodingType(0);
@@ -242,6 +251,8 @@ public class TranscodingServiceImpl implements TranscodingService {
                 // 构建转码格式列表
                 ArrayList<String> formatList = new ArrayList<>();
                 formatList.add(transcodingResourceReqDTO.getFormat());
+
+                ResourceFile newFile = new ResourceFile();
                 // 判断视频还是图片
                 if(transcodingResourceReqDTO.getTranscodingType()!= null)
                 {
@@ -252,7 +263,7 @@ public class TranscodingServiceImpl implements TranscodingService {
                             videoConverter.convertAndUpload(fileBean.getFileUrl(), fileBean.getFileId(), new String[]{transcodingResourceReqDTO.getFormat()});
                             //根据文件id修改预览地址
                             if(videoList.contains(userFile.getExtendName())||wordList.contains(userFile.getExtendName())){
-                                ResourceFile newFile = new ResourceFile();
+                                newFile = new ResourceFile();
                                 newFile.setFileId(fileBean.getFileId());
                                 newFile.setPreviewFileUrl("converted/" + fileBean.getFileId() + "." + transcodingResourceReqDTO.getFormat());
                                 resourceFileMapper.updateById(newFile);
@@ -260,6 +271,8 @@ public class TranscodingServiceImpl implements TranscodingService {
                         } catch (Exception ex) {
                             log.error(ex.getMessage());
                             System.out.println("格式转换失败");
+                            insertResourceUserfileConvert(transcodingResourceReqDTO.getUserFileId(), userFile.getFileId(),userFile.getFileName(), userFile.getExtendName(), newFile.getPreviewFileUrl(), ResourceUserfileConvertEnum.FAIL.getValue(), userId,ex.getMessage());
+
                         }
                     } else if (transcodingResourceReqDTO.getTranscodingType() == 1) {
                         // 转码文档
@@ -273,7 +286,7 @@ public class TranscodingServiceImpl implements TranscodingService {
                                 officeConverter.convertAndUpload(fileBean.getFileUrl(), fileBean.getFileId() + "." + transcodingResourceReqDTO.getFormat());
                             }
                             //根据文件id修改预览地址
-                            ResourceFile newFile = new ResourceFile();
+                            newFile = new ResourceFile();
                             newFile.setFileId(fileBean.getFileId());
                             if(videoList.contains(userFile.getExtendName())||wordList.contains(userFile.getExtendName())){
                                 newFile.setPreviewFileUrl("converted/" + fileBean.getFileId() + "." + transcodingResourceReqDTO.getFormat());
@@ -284,16 +297,19 @@ public class TranscodingServiceImpl implements TranscodingService {
                         } catch (Exception ex) {
                             log.error("格式转换:"+ex.getMessage());
                             System.out.println("格式转换失败");
+                            insertResourceUserfileConvert(transcodingResourceReqDTO.getUserFileId(), userFile.getFileId(),userFile.getFileName(), userFile.getExtendName(), newFile.getPreviewFileUrl(), ResourceUserfileConvertEnum.FAIL.getValue(), userId,ex.getMessage());
+
                         }
                     }
                 }
                 else
                 {
-                    ResourceFile newFile = new ResourceFile();
+                     newFile = new ResourceFile();
                     newFile.setFileId(fileBean.getFileId());
                     newFile.setPreviewFileUrl(fileBean.getFileUrl());
                     resourceFileMapper.updateById(newFile);
                 }
+                insertResourceUserfileConvert(transcodingResourceReqDTO.getUserFileId(), userFile.getFileId(),userFile.getFileName(), userFile.getExtendName(), newFile.getPreviewFileUrl(), ResourceUserfileConvertEnum.SUCCESS.getValue(), userId,null);
                 log.info("格式转换成功");
             }
         }
@@ -301,6 +317,20 @@ public class TranscodingServiceImpl implements TranscodingService {
 
     }
 
+    private void insertResourceUserfileConvert(String  userFileId, String fileId, String fileName, String extendName,String filePath,String status,String userId,String reason) {
+        ResourceUserfileConvert   resourceUserfileConvert=new ResourceUserfileConvert();
+        resourceUserfileConvert.setUserFileId(userFileId);
+        resourceUserfileConvert.setFileId(fileId);
+        resourceUserfileConvert.setFileName(fileName);
+        resourceUserfileConvert.setExtendName(extendName);
+        resourceUserfileConvert.setFilePath(filePath);
+        resourceUserfileConvert.setStatus(status);  //0转换中   1转换成功   2转换失败
+        resourceUserfileConvert.setUserId(userId);
+        resourceUserfileConvert.setReason(reason);
+        resourceUserfileConvert.setCreateUser(userId);
+        resourceUserfileConvert.setCreateTime(new Date());
+        resourceUserfileConvertMapper.insert(resourceUserfileConvert);
+    }
 
 
     /**

+ 19 - 0
snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/user/entity/SysUser.java

@@ -320,4 +320,23 @@ public class SysUser extends CommonEntity {
     @ApiModelProperty(value = "教育身份名称", position = 7)
     @TableField(exist = false,insertStrategy = FieldStrategy.IGNORED, updateStrategy = FieldStrategy.IGNORED)
     private String eduIdentityName;
+
+    /**
+     * 班级id
+     */
+    private String gradesId;
+    /**
+     * 专业id
+     */
+    private Integer majorId;
+    /**
+     * 学号
+     */
+    private String studentNum;
+    /**
+     * 学届
+     */
+    private String fallDue;
+
+
 }

+ 17 - 0
snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/user/param/SysUserAddParam.java

@@ -191,4 +191,21 @@ public class SysUserAddParam {
     /** 三级院系ID */
     @ApiModelProperty(value = "三级院系ID", position = 7)
     private String collegeThreeId;
+
+    /**
+     * 班级id
+     */
+    private String gradesId;
+    /**
+     * 专业id
+     */
+    private Integer majorId;
+    /**
+     * 学号
+     */
+    private String studentNum;
+    /**
+     * 学届
+     */
+    private String fallDue;
 }

+ 20 - 0
snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/user/param/SysUserEditParam.java

@@ -196,4 +196,24 @@ public class SysUserEditParam {
     /** 三级院系ID */
     @ApiModelProperty(value = "三级院系ID", position = 7)
     private String collegeThreeId;
+
+
+    /**
+     * 班级id
+     */
+    private String gradesId;
+    /**
+     * 专业id
+     */
+    private Integer majorId;
+    /**
+     * 学号
+     */
+    private String studentNum;
+    /**
+     * 学届
+     */
+    private String fallDue;
+
+
 }