Bläddra i källkod

素材库代码提交

pans 8 månader sedan
förälder
incheckning
270431e5d7
13 ändrade filer med 824 tillägg och 10 borttagningar
  1. 133 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/MaterrialLibraryController.java
  2. 10 10
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/StorageReController.java
  3. 91 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/MaterrialLibrary.java
  4. 34 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/enums/MaterrialLibraryEnum.java
  5. 33 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/MaterrialLibraryMapper.java
  6. 40 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/MaterrialLibraryMapper.xml
  7. 62 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/MaterrialLibraryAddParam.java
  8. 67 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/MaterrialLibraryEditParam.java
  9. 35 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/MaterrialLibraryIdParam.java
  10. 52 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/MaterrialLibraryPageParam.java
  11. 82 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/MaterrialLibraryService.java
  12. 92 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/MaterrialLibraryServiceImpl.java
  13. 93 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/vo/materrial/MaterrialLibraryVo.java

+ 133 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/MaterrialLibraryController.java

@@ -0,0 +1,133 @@
+/*
+ * 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.MaterrialLibrary;
+import vip.xiaonuo.disk.param.MaterrialLibraryAddParam;
+import vip.xiaonuo.disk.param.MaterrialLibraryEditParam;
+import vip.xiaonuo.disk.param.MaterrialLibraryIdParam;
+import vip.xiaonuo.disk.param.MaterrialLibraryPageParam;
+import vip.xiaonuo.disk.service.MaterrialLibraryService;
+import vip.xiaonuo.disk.vo.materrial.MaterrialLibraryVo;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+
+/**
+ * 素材库控制器
+ *
+ * @author pans
+ * @date  2025/07/01 16:16
+ */
+@Api(tags = "素材库控制器")
+@ApiSupport(author = "SNOWY_TEAM", order = 1)
+@RestController
+@Validated
+public class MaterrialLibraryController {
+
+    @Resource
+    private MaterrialLibraryService materrialLibraryService;
+
+    /**
+     * 获取素材库分页
+     *
+     * @author pans
+     * @date  2025/07/01 16:16
+     */
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("获取素材库分页")
+    @SaCheckPermission("/disk/library/page")
+    @GetMapping("/disk/library/page")
+    public CommonResult<Page<MaterrialLibraryVo>> page(MaterrialLibraryPageParam materrialLibraryPageParam) {
+        return CommonResult.data(materrialLibraryService.page(materrialLibraryPageParam));
+    }
+
+    /**
+     * 添加素材库
+     *
+     * @author pans
+     * @date  2025/07/01 16:16
+     */
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("添加素材库")
+    @CommonLog("添加素材库")
+    @SaCheckPermission("/disk/library/add")
+    @PostMapping("/disk/library/add")
+    public CommonResult<String> add(@RequestBody @Valid MaterrialLibraryAddParam materrialLibraryAddParam) {
+        materrialLibraryService.add(materrialLibraryAddParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 编辑素材库
+     *
+     * @author pans
+     * @date  2025/07/01 16:16
+     */
+    @ApiOperationSupport(order = 3)
+    @ApiOperation("编辑素材库")
+    @CommonLog("编辑素材库")
+    @SaCheckPermission("/disk/library/edit")
+    @PostMapping("/disk/library/edit")
+    public CommonResult<String> edit(@RequestBody @Valid MaterrialLibraryEditParam materrialLibraryEditParam) {
+        materrialLibraryService.edit(materrialLibraryEditParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 删除素材库
+     *
+     * @author pans
+     * @date  2025/07/01 16:16
+     */
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("删除素材库")
+    @CommonLog("删除素材库")
+    @SaCheckPermission("/disk/library/delete")
+    @PostMapping("/disk/library/delete")
+    public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
+                                                   CommonValidList<MaterrialLibraryIdParam> materrialLibraryIdParamList) {
+        materrialLibraryService.delete(materrialLibraryIdParamList);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 获取素材库详情
+     *
+     * @author pans
+     * @date  2025/07/01 16:16
+     */
+    @ApiOperationSupport(order = 5)
+    @ApiOperation("获取素材库详情")
+    @SaCheckPermission("/disk/library/detail")
+    @GetMapping("/disk/library/detail")
+    public CommonResult<MaterrialLibrary> detail(@Valid MaterrialLibraryIdParam materrialLibraryIdParam) {
+        return CommonResult.data(materrialLibraryService.detail(materrialLibraryIdParam));
+    }
+
+}

+ 10 - 10
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/StorageReController.java

@@ -24,7 +24,7 @@ public class StorageReController {
      *
      * @return 默认创建空间大小
      */
-    @GetMapping("/storage/getDefaultStorage")
+    @GetMapping("/storagere/getDefaultStorage")
     public CommonResult<Long> getDefaultStorage() {
         return storageReService.getDefaultStorage();
     }
@@ -34,7 +34,7 @@ public class StorageReController {
      *
      * @return 修改结果
      */
-    @GetMapping("/storage/updateDefaultStorage")
+    @GetMapping("/storagere/updateDefaultStorage")
     public CommonResult<String> updateDefaultStorage(@RequestParam(value = "size") Long size) {
         return storageReService.updateDefaultStorage(size);
     }
@@ -46,7 +46,7 @@ public class StorageReController {
      * @param getUserStorageDTO 查询条件
      * @return 所有用户的存储空间大小
      */
-    @PostMapping("/storage/getUserStorageList")
+    @PostMapping("/storagere/getUserStorageList")
     public CommonResult<TableDataInfo<StorageReBeanVO>> getUserStorageList(@RequestBody GetUserStorageDTO getUserStorageDTO) {
         return storageReService.getUserStorageList(getUserStorageDTO);
     }
@@ -57,7 +57,7 @@ public class StorageReController {
      * @param getUserStorageDTO 更改条件
      * @return 更改结果
      */
-    @PostMapping("/storage/updateUserStorage")
+    @PostMapping("/storagere/updateUserStorage")
     public CommonResult<String> updateUserStorage(@RequestBody GetUserStorageDTO getUserStorageDTO) {
         return storageReService.updateUserStorage(getUserStorageDTO);
     }
@@ -68,7 +68,7 @@ public class StorageReController {
      *
      * @return 用户存储空间大小
      */
-    @GetMapping("/storage/getUserStorage")
+    @GetMapping("/storagere/getUserStorage")
     public CommonResult<Long> getUserStorage() {
         return storageReService.getUserStorage();
     }
@@ -80,7 +80,7 @@ public class StorageReController {
      * @param capacityAuditInfo 申请信息
      * @return 提交结果
      */
-    @PostMapping("/storage/applyChangeStorage")
+    @PostMapping("/storagere/applyChangeStorage")
     public CommonResult<String> applyChangeStorage(@RequestBody CapacityReAuditInfo capacityReAuditInfo) {
         return storageReService.applyChangeStorage(capacityReAuditInfo);
     }
@@ -94,7 +94,7 @@ public class StorageReController {
      * @param usernameOrNickname 用户名或昵称
      * @return 存储空间大小变更申请列表
      */
-    @GetMapping("/storage/getCapacityAuditList")
+    @GetMapping("/storagere/getCapacityAuditList")
     public CommonResult<TableDataInfo<CapacityReAuditInfoVo>> getCapacityAuditList(@RequestParam(value = "pageNum") Integer pageNum,
                                                                                    @RequestParam(value = "pageSize") Integer pageSize,
                                                                                    @RequestParam(value = "auditState", required = false) Integer auditState,
@@ -108,7 +108,7 @@ public class StorageReController {
      * @param id 申请ID
      * @return 申请详情
      */
-    @GetMapping("/storage/getCapacityAuditDetail")
+    @GetMapping("/storagere/getCapacityAuditDetail")
     public CommonResult<CapacityReAuditInfoVo> getCapacityAuditDetail(@RequestParam(value = "id") String id) {
         return storageReService.getCapacityAuditDetail(id);
     }
@@ -122,7 +122,7 @@ public class StorageReController {
      * @param rejectReason 拒绝原因
      * @return 审核结果
      */
-    @GetMapping("/storage/auditCapacityAudit")
+    @GetMapping("/storagere/auditCapacityAudit")
     public CommonResult<String> auditCapacityAudit(@RequestParam(value = "id") String id,
                                                    @RequestParam(value = "auditState") Integer auditState,
                                                    @RequestParam(value = "rejectReason", required = false) String rejectReason) {
@@ -138,7 +138,7 @@ public class StorageReController {
      * @param auditState 申请状态 0待审核 1审核通过 2拒绝
      * @return 申请记录列表
      */
-    @GetMapping("/storage/getUserCapacityAuditList")
+    @GetMapping("/storagere/getUserCapacityAuditList")
     public CommonResult<TableDataInfo<CapacityReAuditInfoVo>> getUserCapacityAuditList(@RequestParam(value = "pageNum") Integer pageNum,
                                                                                      @RequestParam(value = "pageSize") Integer pageSize,
                                                                                      @RequestParam(value = "auditState", required = false) Integer auditState) {

+ 91 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/MaterrialLibrary.java

@@ -0,0 +1,91 @@
+/*
+ * 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;
+
+/**
+ * 素材库实体
+ *
+ * @author pans
+ * @date  2025/07/01 16:16
+ **/
+@Getter
+@Setter
+@TableName("materrial_library")
+public class MaterrialLibrary {
+
+    /** 主键id */
+    @TableId
+    @ApiModelProperty(value = "主键id", position = 1)
+    private String id;
+
+    /** 课程id */
+    @ApiModelProperty(value = "课程id", position = 2)
+    private String courseId;
+
+    /** 删除标志 */
+    @ApiModelProperty(value = "删除标志", position = 3)
+    @TableLogic
+    @TableField(fill = FieldFill.INSERT)
+    private String deleteFlag;
+
+    /** 文件id */
+    @ApiModelProperty(value = "文件id", position = 4)
+    private String userfileId;
+
+    /** 院系id */
+    @ApiModelProperty(value = "院系id", position = 5)
+    private String collegeId;
+
+    /** 专业id */
+    @ApiModelProperty(value = "专业id", position = 6)
+    private String majorId;
+
+    /** 二级院系id */
+    @ApiModelProperty(value = "二级院系id", position = 7)
+    private String collegeTwoId;
+
+    /** 三级院系id */
+    @ApiModelProperty(value = "三级院系id", position = 8)
+    private String collegeThreeId;
+
+    /** 备注 */
+    @ApiModelProperty(value = "备注", position = 9)
+    private String resourceDesc;
+
+    /** CREATE_TIME */
+    @ApiModelProperty(value = "CREATE_TIME", position = 10)
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    /** CREATE_USER */
+    @ApiModelProperty(value = "CREATE_USER", position = 11)
+    @TableField(fill = FieldFill.INSERT)
+    private String createUser;
+
+    /** UPDATE_TIME */
+    @ApiModelProperty(value = "UPDATE_TIME", position = 12)
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateTime;
+
+    /** UPDATE_USER */
+    @ApiModelProperty(value = "UPDATE_USER", position = 13)
+    @TableField(fill = FieldFill.UPDATE)
+    private String updateUser;
+}

+ 34 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/enums/MaterrialLibraryEnum.java

@@ -0,0 +1,34 @@
+/*
+ * 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;
+
+/**
+ * 素材库枚举
+ *
+ * @author pans
+ * @date  2025/07/01 16:16
+ **/
+@Getter
+public enum MaterrialLibraryEnum {
+
+    /** 测试 */
+    TEST("TEST");
+
+    private final String value;
+
+    MaterrialLibraryEnum(String value) {
+        this.value = value;
+    }
+}

+ 33 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/MaterrialLibraryMapper.java

@@ -0,0 +1,33 @@
+/*
+ * 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 com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
+import vip.xiaonuo.disk.domain.MaterrialLibrary;
+import vip.xiaonuo.disk.param.MaterrialLibraryPageParam;
+import vip.xiaonuo.disk.vo.materrial.MaterrialLibraryVo;
+
+
+/**
+ * 素材库Mapper接口
+ *
+ * @author pans
+ * @date  2025/07/01 16:16
+ **/
+public interface MaterrialLibraryMapper extends BaseMapper<MaterrialLibrary> {
+
+
+    Page<MaterrialLibraryVo> page(@Param("page") Page<Object> objectPage, @Param("materrialLibraryPageParam") MaterrialLibraryPageParam materrialLibraryPageParam);
+}

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

@@ -0,0 +1,40 @@
+<?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.MaterrialLibraryMapper">
+
+
+    <select id="page" resultType="vip.xiaonuo.disk.vo.materrial.MaterrialLibraryVo">
+         SELECT a.ID,
+               a.COURSE_ID courseId,
+               a.DELETE_FLAG deleteFlag,
+               a.USERFILE_ID userfileId,
+               f.FILE_ID fileId,
+               f.FILE_NAME fileName,
+               a.COLLEGE_ID collegeId,
+               b.name collegeName,
+               a.MAJOR_ID,
+               e.major_name majorName,
+               a.COLLEGE_TWO_ID,
+               c.name collegeTwoName,
+               a.COLLEGE_THREE_ID,
+               d.name collegeThreeName,
+               a.RESOURCE_DESC resourceDesc,
+               a.CREATE_TIME createTime,
+               a.CREATE_USER createUser,
+               a.UPDATE_TIME updateTime,
+               a.UPDATE_USER updateUser
+        FROM SYSDBA."materrial_library" a
+         LEFT JOIN college b ON   a.COLLEGE_ID = b.id
+         LEFT JOIN college c ON   a.COLLEGE_ID = c.id
+         LEFT JOIN college d ON   a.COLLEGE_ID = d.id
+         LEFT JOIN major e   ON   a.MAJOR_ID = d.id
+         LEFT JOIN RESOURCE_USERFILE f ON a.USERFILE_ID=f.USER_FILE_ID
+        <where>
+            <if test="materrialLibraryPageParam.fileName!=null">
+                f.FILE_NAME like concat('%',#{materrialLibraryPageParam.fileName},'%')
+            </if>
+        </where>
+        order by a.UPDATE_TIME desc
+    </select>
+
+</mapper>

+ 62 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/MaterrialLibraryAddParam.java

@@ -0,0 +1,62 @@
+/*
+ * 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;
+
+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;
+
+/**
+ * 素材库添加参数
+ *
+ * @author pans
+ * @date  2025/07/01 16:16
+ **/
+@Getter
+@Setter
+public class MaterrialLibraryAddParam {
+
+    /** 课程id */
+    @ApiModelProperty(value = "课程id", position = 2)
+    private String courseId;
+
+    /** 文件id */
+    @ApiModelProperty(value = "文件id", position = 4)
+    private String userfileId;
+
+    /** 院系id */
+    @ApiModelProperty(value = "院系id", position = 5)
+    private String collegeId;
+
+    /** 专业id */
+    @ApiModelProperty(value = "专业id", position = 6)
+    private String majorId;
+
+    /** 二级院系id */
+    @ApiModelProperty(value = "二级院系id", position = 7)
+    private String collegeTwoId;
+
+    /** 三级院系id */
+    @ApiModelProperty(value = "三级院系id", position = 8)
+    private String collegeThreeId;
+
+    /** 备注 */
+    @ApiModelProperty(value = "备注", position = 9)
+    private String resourceDesc;
+
+}

+ 67 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/MaterrialLibraryEditParam.java

@@ -0,0 +1,67 @@
+/*
+ * 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;
+
+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;
+
+/**
+ * 素材库编辑参数
+ *
+ * @author pans
+ * @date  2025/07/01 16:16
+ **/
+@Getter
+@Setter
+public class MaterrialLibraryEditParam {
+
+    /** 主键id */
+    @ApiModelProperty(value = "主键id", required = true, position = 1)
+    @NotBlank(message = "id不能为空")
+    private String id;
+
+    /** 课程id */
+    @ApiModelProperty(value = "课程id", position = 2)
+    private String courseId;
+
+    /** 文件id */
+    @ApiModelProperty(value = "文件id", position = 4)
+    private String userfileId;
+
+    /** 院系id */
+    @ApiModelProperty(value = "院系id", position = 5)
+    private String collegeId;
+
+    /** 专业id */
+    @ApiModelProperty(value = "专业id", position = 6)
+    private String majorId;
+
+    /** 二级院系id */
+    @ApiModelProperty(value = "二级院系id", position = 7)
+    private String collegeTwoId;
+
+    /** 三级院系id */
+    @ApiModelProperty(value = "三级院系id", position = 8)
+    private String collegeThreeId;
+
+    /** 备注 */
+    @ApiModelProperty(value = "备注", position = 9)
+    private String resourceDesc;
+
+}

+ 35 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/MaterrialLibraryIdParam.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;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 素材库Id参数
+ *
+ * @author pans
+ * @date  2025/07/01 16:16
+ **/
+@Getter
+@Setter
+public class MaterrialLibraryIdParam {
+
+    /** 主键id */
+    @ApiModelProperty(value = "主键id", required = true)
+    @NotBlank(message = "id不能为空")
+    private String id;
+}

+ 52 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/MaterrialLibraryPageParam.java

@@ -0,0 +1,52 @@
+/*
+ * 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;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 素材库查询参数
+ *
+ * @author pans
+ * @date  2025/07/01 16:16
+ **/
+@Getter
+@Setter
+public class MaterrialLibraryPageParam {
+
+    /** 当前页 */
+    @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 searchKey;
+
+    /** 素材库名称 */
+    @ApiModelProperty(value = "素材库名称")
+    private String fileName;
+}

+ 82 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/MaterrialLibraryService.java

@@ -0,0 +1,82 @@
+/*
+ * 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.MaterrialLibrary;
+import vip.xiaonuo.disk.param.MaterrialLibraryAddParam;
+import vip.xiaonuo.disk.param.MaterrialLibraryEditParam;
+import vip.xiaonuo.disk.param.MaterrialLibraryIdParam;
+import vip.xiaonuo.disk.param.MaterrialLibraryPageParam;
+import vip.xiaonuo.disk.vo.materrial.MaterrialLibraryVo;
+
+import java.util.List;
+
+/**
+ * 素材库Service接口
+ *
+ * @author pans
+ * @date  2025/07/01 16:16
+ **/
+public interface MaterrialLibraryService extends IService<MaterrialLibrary> {
+
+    /**
+     * 获取素材库分页
+     *
+     * @author pans
+     * @date  2025/07/01 16:16
+     */
+    Page<MaterrialLibraryVo> page(MaterrialLibraryPageParam materrialLibraryPageParam);
+
+    /**
+     * 添加素材库
+     *
+     * @author pans
+     * @date  2025/07/01 16:16
+     */
+    void add(MaterrialLibraryAddParam materrialLibraryAddParam);
+
+    /**
+     * 编辑素材库
+     *
+     * @author pans
+     * @date  2025/07/01 16:16
+     */
+    void edit(MaterrialLibraryEditParam materrialLibraryEditParam);
+
+    /**
+     * 删除素材库
+     *
+     * @author pans
+     * @date  2025/07/01 16:16
+     */
+    void delete(List<MaterrialLibraryIdParam> materrialLibraryIdParamList);
+
+    /**
+     * 获取素材库详情
+     *
+     * @author pans
+     * @date  2025/07/01 16:16
+     */
+    MaterrialLibrary detail(MaterrialLibraryIdParam materrialLibraryIdParam);
+
+    /**
+     * 获取素材库详情
+     *
+     * @author pans
+     * @date  2025/07/01 16:16
+     **/
+    MaterrialLibrary queryEntity(String id);
+
+}

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

@@ -0,0 +1,92 @@
+/*
+ * 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.IdUtil;
+import cn.hutool.core.util.ObjectUtil;
+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.common.exception.CommonException;
+import vip.xiaonuo.common.page.CommonPageRequest;
+import vip.xiaonuo.disk.domain.MaterrialLibrary;
+import vip.xiaonuo.disk.mapper.MaterrialLibraryMapper;
+import vip.xiaonuo.disk.param.MaterrialLibraryAddParam;
+import vip.xiaonuo.disk.param.MaterrialLibraryEditParam;
+import vip.xiaonuo.disk.param.MaterrialLibraryIdParam;
+import vip.xiaonuo.disk.param.MaterrialLibraryPageParam;
+import vip.xiaonuo.disk.service.MaterrialLibraryService;
+import vip.xiaonuo.disk.vo.materrial.MaterrialLibraryVo;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 素材库Service接口实现类
+ *
+ * @author pans
+ * @date  2025/07/01 16:16
+ **/
+@Service
+public class MaterrialLibraryServiceImpl extends ServiceImpl<MaterrialLibraryMapper, MaterrialLibrary> implements MaterrialLibraryService {
+
+    @Resource
+    private  MaterrialLibraryMapper materrialLibraryMapper;
+
+    @Override
+    public Page<MaterrialLibraryVo> page(MaterrialLibraryPageParam materrialLibraryPageParam) {
+        Page<MaterrialLibraryVo> page=materrialLibraryMapper.page(CommonPageRequest.defaultPage(),materrialLibraryPageParam);
+        return page;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(MaterrialLibraryAddParam materrialLibraryAddParam) {
+        MaterrialLibrary materrialLibrary = BeanUtil.toBean(materrialLibraryAddParam, MaterrialLibrary.class);
+        materrialLibrary.setId(IdUtil.simpleUUID());
+        this.save(materrialLibrary);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void edit(MaterrialLibraryEditParam materrialLibraryEditParam) {
+        MaterrialLibrary materrialLibrary = this.queryEntity(materrialLibraryEditParam.getId());
+        BeanUtil.copyProperties(materrialLibraryEditParam, materrialLibrary);
+        this.updateById(materrialLibrary);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void delete(List<MaterrialLibraryIdParam> materrialLibraryIdParamList) {
+        // 执行删除
+        this.removeByIds(CollStreamUtil.toList(materrialLibraryIdParamList, MaterrialLibraryIdParam::getId));
+    }
+
+    @Override
+    public MaterrialLibrary detail(MaterrialLibraryIdParam materrialLibraryIdParam) {
+        return this.queryEntity(materrialLibraryIdParam.getId());
+    }
+
+    @Override
+    public MaterrialLibrary queryEntity(String id) {
+        MaterrialLibrary materrialLibrary = this.getById(id);
+        if(ObjectUtil.isEmpty(materrialLibrary)) {
+            throw new CommonException("素材库不存在,id值为:{}", id);
+        }
+        return materrialLibrary;
+    }
+
+}

+ 93 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/vo/materrial/MaterrialLibraryVo.java

@@ -0,0 +1,93 @@
+package vip.xiaonuo.disk.vo.materrial;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+@Getter
+@Setter
+public class MaterrialLibraryVo {
+
+    /** 主键id */
+    @TableId
+    @ApiModelProperty(value = "主键id", position = 1)
+    private String id;
+
+    /** 课程id */
+    @ApiModelProperty(value = "课程id", position = 2)
+    private String courseId;
+
+    @ApiModelProperty(value = "课程名称", position = 2)
+    private String courseName;
+
+    /** 删除标志 */
+    @ApiModelProperty(value = "删除标志", position = 3)
+    @TableLogic
+    @TableField(fill = FieldFill.INSERT)
+    private String deleteFlag;
+
+    /** 文件id */
+    @ApiModelProperty(value = "文件id", position = 4)
+    private String userfileId;
+
+    @ApiModelProperty(value = "文件名称", position = 4)
+    private String fileId;
+
+    @ApiModelProperty(value = "文件名称", position = 4)
+    private String fileName;
+
+    /** 院系id */
+    @ApiModelProperty(value = "院系id", position = 5)
+    private String collegeId;
+    /** 院系id */
+    @ApiModelProperty(value = "院系名称", position = 5)
+    private String collegeName;
+    /** 专业id */
+    @ApiModelProperty(value = "专业id", position = 6)
+    private String majorId;
+
+    @ApiModelProperty(value = "专业名称", position = 6)
+    private String majorName;
+    /** 二级院系id */
+    @ApiModelProperty(value = "二级院系id", position = 7)
+    private String collegeTwoId;
+    @ApiModelProperty(value = "二级院系id", position = 7)
+    private String collegeTwoName;
+    /** 三级院系id */
+    @ApiModelProperty(value = "三级院系id", position = 8)
+    private String collegeThreeId;
+
+    @ApiModelProperty(value = "三级院系名称", position = 8)
+    private String collegeThreeName;
+    /** 备注 */
+    @ApiModelProperty(value = "备注", position = 9)
+    private String resourceDesc;
+
+    /** CREATE_TIME */
+    @ApiModelProperty(value = "CREATE_TIME", position = 10)
+    @TableField(fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    /** CREATE_USER */
+    @ApiModelProperty(value = "CREATE_USER", position = 11)
+    @TableField(fill = FieldFill.INSERT)
+    private String createUser;
+
+    /** UPDATE_TIME */
+    @ApiModelProperty(value = "UPDATE_TIME", position = 12)
+    @TableField(fill = FieldFill.UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    /** UPDATE_USER */
+    @ApiModelProperty(value = "UPDATE_USER", position = 13)
+    @TableField(fill = FieldFill.UPDATE)
+    private String updateUser;
+}