pans пре 8 месеци
родитељ
комит
aa8703cde6
35 измењених фајлова са 1782 додато и 8 уклоњено
  1. 24 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/ResourceCollectController.java
  2. 161 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/ResourceTypeController.java
  3. 132 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/RoomController.java
  4. 2 2
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/Chapter.java
  5. 99 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/ResourceType.java
  6. 79 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/Room.java
  7. 71 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/UserCommentGive.java
  8. 34 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/enums/ResourceTypeEnum.java
  9. 34 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/enums/RoomEnum.java
  10. 5 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/ResourceCollectMapper.java
  11. 26 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/ResourceTypeMapper.java
  12. 26 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/RoomMapper.java
  13. 27 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/UserCommentGiveMapper.java
  14. 32 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/ResourceCollectMapper.xml
  15. 5 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/ResourceTypeMapper.xml
  16. 5 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/RoomMapper.xml
  17. 10 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/UserCommentGiveMapper.xml
  18. 1 1
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/UserCommentMapper.xml
  19. 14 5
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ResourceCollectPageParam.java
  20. 66 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ResourceTypeAddParam.java
  21. 71 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ResourceTypeEditParam.java
  22. 35 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ResourceTypeIdParam.java
  23. 53 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ResourceTypePageParam.java
  24. 45 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/RoomAddParam.java
  25. 52 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/RoomEditParam.java
  26. 35 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/RoomIdParam.java
  27. 49 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/RoomPageParam.java
  28. 5 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/ResourceCollectService.java
  29. 109 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/ResourceTypeService.java
  30. 81 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/RoomService.java
  31. 11 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/ResourceCollectServiceImpl.java
  32. 204 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/ResourceTypeServiceImpl.java
  33. 96 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/RoomServiceImpl.java
  34. 21 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/UserCommentServiceImpl.java
  35. 62 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/vo/collect/ResourceCollectVo.java

+ 24 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/ResourceCollectController.java

@@ -12,6 +12,7 @@
  */
 package vip.xiaonuo.disk.controller;
 
+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;
@@ -24,7 +25,9 @@ import org.springframework.web.bind.annotation.RestController;
 import vip.xiaonuo.common.annotation.CommonLog;
 import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.disk.param.ResourceCollectAddParam;
+import vip.xiaonuo.disk.param.ResourceCollectPageParam;
 import vip.xiaonuo.disk.service.ResourceCollectService;
+import vip.xiaonuo.disk.vo.collect.ResourceCollectVo;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
@@ -44,6 +47,20 @@ public class ResourceCollectController {
     @Resource
     private ResourceCollectService resourceCollectService;
 
+
+
+    /**
+     * 获取我的收藏
+     *
+     * @author pans
+     * @date  2025/07/04 14:39
+     */
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("获取resource_type分页")
+    @GetMapping("/disk/collect/selectPageList")
+    public CommonResult<Page<ResourceCollectVo>> selectPageList(ResourceCollectPageParam resourceCollectPageParam) {
+        return CommonResult.data(resourceCollectService.selectPageList(resourceCollectPageParam));
+    }
     /**
      * 根据用户id,查询是否收藏资源
      *
@@ -57,6 +74,10 @@ public class ResourceCollectController {
         return CommonResult.data(resourceCollectService.queryList(resourceId));
     }
 
+
+
+
+
     /**
      * 收藏资源
      *
@@ -90,4 +111,7 @@ public class ResourceCollectController {
 
 
 
+
+
+
 }

+ 161 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/ResourceTypeController.java

@@ -0,0 +1,161 @@
+/*
+ * 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 cn.hutool.core.lang.tree.Tree;
+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.ResourceType;
+import vip.xiaonuo.disk.param.ResourceTypeAddParam;
+import vip.xiaonuo.disk.param.ResourceTypeEditParam;
+import vip.xiaonuo.disk.param.ResourceTypeIdParam;
+import vip.xiaonuo.disk.param.ResourceTypePageParam;
+import vip.xiaonuo.disk.service.ResourceTypeService;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+/**
+ * resource_type控制器
+ *
+ * @author pans
+ * @date  2025/07/04 14:39
+ */
+@Api(tags = "resource_type控制器")
+@ApiSupport(author = "SNOWY_TEAM", order = 1)
+@RestController
+@Validated
+public class ResourceTypeController {
+
+    @Resource
+    private ResourceTypeService resourceTypeService;
+
+    /**
+     * 获取resource_type分页
+     *
+     * @author pans
+     * @date  2025/07/04 14:39
+     */
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("获取resource_type分页")
+    @SaCheckPermission("/disk/type/page")
+    @GetMapping("/disk/type/page")
+    public CommonResult<Page<ResourceType>> page(ResourceTypePageParam resourceTypePageParam) {
+        return CommonResult.data(resourceTypeService.page(resourceTypePageParam));
+    }
+
+    /**
+     * 获取组织树
+     *
+     * @author xuyuxiang
+     * @date 2022/4/24 20:00
+     */
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("获取组织树")
+    @GetMapping("/disk/type/tree")
+    public CommonResult<List<Tree<String>>> tree() {
+        return CommonResult.data(resourceTypeService.tree());
+    }
+    /**
+     * 添加resource_type
+     *
+     * @author pans
+     * @date  2025/07/04 14:39
+     */
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("添加resource_type")
+    @CommonLog("添加resource_type")
+    @SaCheckPermission("/disk/type/add")
+    @PostMapping("/disk/type/add")
+    public CommonResult<String> add(@RequestBody @Valid ResourceTypeAddParam resourceTypeAddParam) {
+        resourceTypeService.add(resourceTypeAddParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 编辑resource_type
+     *
+     * @author pans
+     * @date  2025/07/04 14:39
+     */
+    @ApiOperationSupport(order = 3)
+    @ApiOperation("编辑resource_type")
+    @CommonLog("编辑resource_type")
+    @SaCheckPermission("/disk/type/edit")
+    @PostMapping("/disk/type/edit")
+    public CommonResult<String> edit(@RequestBody @Valid ResourceTypeEditParam resourceTypeEditParam) {
+        resourceTypeService.edit(resourceTypeEditParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 删除resource_type
+     *
+     * @author pans
+     * @date  2025/07/04 14:39
+     */
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("删除resource_type")
+    @CommonLog("删除resource_type")
+    @SaCheckPermission("/disk/type/delete")
+    @PostMapping("/disk/type/delete")
+    public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
+                                                   CommonValidList<ResourceTypeIdParam> resourceTypeIdParamList) {
+        resourceTypeService.delete(resourceTypeIdParamList);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 获取resource_type详情
+     *
+     * @author pans
+     * @date  2025/07/04 14:39
+     */
+    @ApiOperationSupport(order = 5)
+    @ApiOperation("获取resource_type详情")
+    @SaCheckPermission("/disk/type/detail")
+    @GetMapping("/disk/type/detail")
+    public CommonResult<ResourceType> detail(@Valid ResourceTypeIdParam resourceTypeIdParam) {
+        return CommonResult.data(resourceTypeService.detail(resourceTypeIdParam));
+    }
+
+
+
+    /**
+     * 获取组织树选择器
+     *
+     * @author xuyuxiang
+     * @date 2022/4/24 20:00
+     */
+    @ApiOperationSupport(order = 7)
+    @ApiOperation("获取组织树选择器")
+    @GetMapping("/disk/type/orgTreeSelector")
+    public CommonResult<List<Tree<String>>> orgTreeSelector() {
+        return CommonResult.data(resourceTypeService.orgTreeSelector());
+    }
+
+}

+ 132 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/RoomController.java

@@ -0,0 +1,132 @@
+/*
+ * 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.Room;
+import vip.xiaonuo.disk.param.RoomAddParam;
+import vip.xiaonuo.disk.param.RoomEditParam;
+import vip.xiaonuo.disk.param.RoomIdParam;
+import vip.xiaonuo.disk.param.RoomPageParam;
+import vip.xiaonuo.disk.service.RoomService;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+
+/**
+ * 教室表控制器
+ *
+ * @author pans
+ * @date  2025/07/04 09:07
+ */
+@Api(tags = "教室表控制器")
+@ApiSupport(author = "SNOWY_TEAM", order = 1)
+@RestController
+@Validated
+public class RoomController {
+
+    @Resource
+    private RoomService roomService;
+
+    /**
+     * 获取教室表分页
+     *
+     * @author pans
+     * @date  2025/07/04 09:07
+     */
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("获取教室表分页")
+    @SaCheckPermission("/disk/room/page")
+    @GetMapping("/disk/room/page")
+    public CommonResult<Page<Room>> page(RoomPageParam roomPageParam) {
+        return CommonResult.data(roomService.page(roomPageParam));
+    }
+
+    /**
+     * 添加教室表
+     *
+     * @author pans
+     * @date  2025/07/04 09:07
+     */
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("添加教室表")
+    @CommonLog("添加教室表")
+    @SaCheckPermission("/disk/room/add")
+    @PostMapping("/disk/room/add")
+    public CommonResult<String> add(@RequestBody @Valid RoomAddParam roomAddParam) {
+        roomService.add(roomAddParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 编辑教室表
+     *
+     * @author pans
+     * @date  2025/07/04 09:07
+     */
+    @ApiOperationSupport(order = 3)
+    @ApiOperation("编辑教室表")
+    @CommonLog("编辑教室表")
+    @SaCheckPermission("/disk/room/edit")
+    @PostMapping("/disk/room/edit")
+    public CommonResult<String> edit(@RequestBody @Valid RoomEditParam roomEditParam) {
+        roomService.edit(roomEditParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 删除教室表
+     *
+     * @author pans
+     * @date  2025/07/04 09:07
+     */
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("删除教室表")
+    @CommonLog("删除教室表")
+    @SaCheckPermission("/disk/room/delete")
+    @PostMapping("/disk/room/delete")
+    public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
+                                                   CommonValidList<RoomIdParam> roomIdParamList) {
+        roomService.delete(roomIdParamList);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 获取教室表详情
+     *
+     * @author pans
+     * @date  2025/07/04 09:07
+     */
+    @ApiOperationSupport(order = 5)
+    @ApiOperation("获取教室表详情")
+    @SaCheckPermission("/disk/room/detail")
+    @GetMapping("/disk/room/detail")
+    public CommonResult<Room> detail(@Valid RoomIdParam roomIdParam) {
+        return CommonResult.data(roomService.detail(roomIdParam));
+    }
+
+}

+ 2 - 2
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/Chapter.java

@@ -16,7 +16,7 @@ import com.baomidou.mybatisplus.annotation.*;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
-import java.math.BigDecimal;
+
 import java.util.Date;
 
 /**
@@ -31,7 +31,7 @@ import java.util.Date;
 public class Chapter {
 
     /** 主键 */
-    @TableId
+    @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "主键", position = 1)
     private Integer id;
 

+ 99 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/ResourceType.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.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * resource_type实体
+ *
+ * @author pans
+ * @date  2025/07/04 14:39
+ **/
+@Getter
+@Setter
+@TableName("resource_type")
+public class ResourceType {
+
+    /** ID */
+    @TableId
+    @ApiModelProperty(value = "ID", position = 1)
+    private String id;
+
+    /** TENANT_ID */
+    @ApiModelProperty(value = "TENANT_ID", position = 2)
+    private String tenantId;
+
+    /** PARENT_ID */
+    @ApiModelProperty(value = "PARENT_ID", position = 3)
+    private String parentId;
+
+    /** DIRECTOR_ID */
+    @ApiModelProperty(value = "DIRECTOR_ID", position = 4)
+    private String directorId;
+
+    /** NAME */
+    @ApiModelProperty(value = "NAME", position = 5)
+    private String name;
+
+    /** CODE */
+    @ApiModelProperty(value = "CODE", position = 6)
+    private String code;
+
+    /** CATEGORY */
+    @ApiModelProperty(value = "CATEGORY", position = 7)
+    private String category;
+
+    /** SORT_CODE */
+    @ApiModelProperty(value = "SORT_CODE", position = 8)
+    private Integer sortCode;
+
+    /** EXT_JSON */
+    @ApiModelProperty(value = "EXT_JSON", position = 9)
+    private String extJson;
+
+    /** DELETE_FLAG */
+    @ApiModelProperty(value = "DELETE_FLAG", position = 10)
+    @TableLogic
+    @TableField(fill = FieldFill.INSERT)
+    private String deleteFlag;
+
+    /** CREATE_TIME */
+    @ApiModelProperty(value = "CREATE_TIME", position = 11)
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    /** CREATE_USER */
+    @ApiModelProperty(value = "CREATE_USER", position = 12)
+    @TableField(fill = FieldFill.INSERT)
+    private String createUser;
+
+    /** UPDATE_TIME */
+    @ApiModelProperty(value = "UPDATE_TIME", position = 13)
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateTime;
+
+    /** UPDATE_USER */
+    @ApiModelProperty(value = "UPDATE_USER", position = 14)
+    @TableField(fill = FieldFill.UPDATE)
+    private String updateUser;
+
+    /** IS_RESOURCEACCOUNT */
+    @ApiModelProperty(value = "IS_RESOURCEACCOUNT", position = 15)
+    private String isResourceaccount;
+}

+ 79 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/Room.java

@@ -0,0 +1,79 @@
+/*
+ * 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/04 09:07
+ **/
+@Getter
+@Setter
+@TableName("room")
+public class Room {
+
+    /** 主键 */
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "主键", position = 1)
+    private Integer id;
+
+    /** 教室编码 */
+    @ApiModelProperty(value = "教室编码", position = 2)
+    private String roomCode;
+
+    /** 教室名称 */
+    @ApiModelProperty(value = "教室名称", position = 3)
+    private String roomName;
+
+    /** 教室位置 */
+    @ApiModelProperty(value = "教室位置", position = 4)
+    private String location;
+
+    /** 教室容量(最多能容纳多少人数) */
+    @ApiModelProperty(value = "教室容量(最多能容纳多少人数)", position = 5)
+    private String capacity;
+
+    /** DELETE_FLAG */
+    @ApiModelProperty(value = "DELETE_FLAG", position = 6)
+    @TableLogic
+    @TableField(fill = FieldFill.INSERT)
+    private String deleteFlag;
+
+    /** UPDATE_TIME */
+    @ApiModelProperty(value = "UPDATE_TIME", position = 7)
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateTime;
+
+    /** CREATE_TIME */
+    @ApiModelProperty(value = "CREATE_TIME", position = 8)
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    /** CREATE_USER */
+    @ApiModelProperty(value = "CREATE_USER", position = 9)
+    @TableField(fill = FieldFill.INSERT)
+    private String createUser;
+
+    /** UPDATE_USER */
+    @ApiModelProperty(value = "UPDATE_USER", position = 10)
+    @TableField(fill = FieldFill.UPDATE)
+    private String updateUser;
+}

+ 71 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/UserCommentGive.java

@@ -0,0 +1,71 @@
+/*
+ * 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;
+
+/**
+ * user_comment_give实体
+ *
+ * @author pans
+ * @date  2025/07/04 16:54
+ **/
+@Getter
+@Setter
+@TableName("user_comment_give")
+public class UserCommentGive {
+
+    /** ID */
+    @TableId
+    @ApiModelProperty(value = "ID", position = 1)
+    private Long id;
+
+    /** COMMENT_ID */
+    @ApiModelProperty(value = "COMMENT_ID", position = 2)
+    private Integer commentId;
+
+    /** USER_ID */
+    @ApiModelProperty(value = "USER_ID", position = 3)
+    private String userId;
+
+    /** DELETE_FLAG */
+    @ApiModelProperty(value = "DELETE_FLAG", position = 4)
+    @TableLogic
+    @TableField(fill = FieldFill.INSERT)
+    private String deleteFlag;
+
+    /** CREATE_TIME */
+    @ApiModelProperty(value = "CREATE_TIME", position = 5)
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    /** CREATE_USER */
+    @ApiModelProperty(value = "CREATE_USER", position = 6)
+    @TableField(fill = FieldFill.INSERT)
+    private String createUser;
+
+    /** UPDATE_TIME */
+    @ApiModelProperty(value = "UPDATE_TIME", position = 7)
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateTime;
+
+    /** UPDATE_USER */
+    @ApiModelProperty(value = "UPDATE_USER", position = 8)
+    @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/ResourceTypeEnum.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;
+
+/**
+ * resource_type枚举
+ *
+ * @author pans
+ * @date  2025/07/04 14:39
+ **/
+@Getter
+public enum ResourceTypeEnum {
+
+    /** 测试 */
+    TEST("TEST");
+
+    private final String value;
+
+    ResourceTypeEnum(String value) {
+        this.value = value;
+    }
+}

+ 34 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/enums/RoomEnum.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/04 09:07
+ **/
+@Getter
+public enum RoomEnum {
+
+    /** 测试 */
+    TEST("TEST");
+
+    private final String value;
+
+    RoomEnum(String value) {
+        this.value = value;
+    }
+}

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

@@ -13,8 +13,11 @@
 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.ResourceCollect;
+import vip.xiaonuo.disk.param.ResourceCollectPageParam;
+import vip.xiaonuo.disk.vo.collect.ResourceCollectVo;
 
 
 /**
@@ -27,4 +30,6 @@ public interface ResourceCollectMapper extends BaseMapper<ResourceCollect> {
     Integer queryList(@Param("id") String id, @Param("resourceId") String resourceId);
 
     void cancel(ResourceCollect resourceCollect);
+
+    Page<ResourceCollectVo> selectPageList(@Param("page") Page<Object> objectPage, @Param("resourceCollectPageParam") ResourceCollectPageParam resourceCollectPageParam);
 }

+ 26 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/ResourceTypeMapper.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.ResourceType;
+
+
+/**
+ * resource_typeMapper接口
+ *
+ * @author pans
+ * @date  2025/07/04 14:39
+ **/
+public interface ResourceTypeMapper extends BaseMapper<ResourceType> {
+}

+ 26 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/RoomMapper.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.Room;
+
+
+/**
+ * 教室表Mapper接口
+ *
+ * @author pans
+ * @date  2025/07/04 09:07
+ **/
+public interface RoomMapper extends BaseMapper<Room> {
+}

+ 27 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/UserCommentGiveMapper.java

@@ -0,0 +1,27 @@
+/*
+ * 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.UserCommentGive;
+
+
+/**
+ * user_comment_giveMapper接口
+ *
+ * @author pans
+ * @date  2025/07/04 16:54
+ **/
+public interface UserCommentGiveMapper extends BaseMapper<UserCommentGive> {
+    void updateByUserCommentGive(UserCommentGive userCommentGive);
+}

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

@@ -8,4 +8,36 @@
     <update id="cancel">
         update resource_collect set delete_flag='DELETED' where resource_id=#{resourceId} and user_id=#{userId}
     </update>
+
+
+   <select id="selectPageList" resultType="vip.xiaonuo.disk.vo.collect.ResourceCollectVo">
+       SELECT
+           a."id",
+           a."resource_id" resourceId,
+           a."user_id" userId,
+           a.DELETE_FLAG,
+           a.UPDATE_TIME,
+           a.CREATE_TIME,
+           a.CREATE_USER,
+           a.UPDATE_USER,
+           b.VIEW_COUNT viewCount,
+           b.RESOURCE_TYPE resourceType,
+           c.file_name fileName,
+           b.keyword_value,
+           d.name resourceTypeName,
+           e.name userName
+       FROM
+           SYSDBA."resource_collect" a
+       LEFT JOIN COURSE_AUDIT_RECORD b ON  	a."resource_id" = b.id
+       LEFT JOIN RESOURCE_USERFILE c ON c.USER_FILE_ID = b.USERFILE_ID
+       LEFT JOIN resource_type d ON b.RESOURCE_TYPE=d.id
+       LEFT JOIN sys_user e ON e.id = a."user_id"
+       <where>
+           a."user_id"=#{resourceCollectPageParam.userId}
+           <if test="resourceCollectPageParam.fileName != null and resourceCollectPageParam.fileName != ''">
+               AND c.file_name like concat('%',#{resourceCollectPageParam.fileName},'%')
+           </if>
+       </where>
+       order by a.CREATE_TIME desc
+   </select>
 </mapper>

+ 5 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/ResourceTypeMapper.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.modular.type.mapper.ResourceTypeMapper">
+
+</mapper>

+ 5 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/RoomMapper.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.modular.room.mapper.RoomMapper">
+
+</mapper>

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

@@ -0,0 +1,10 @@
+<?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.UserCommentGiveMapper">
+   <update id="updateByUserCommentGive">
+       UPDATE user_comment_give
+       SET DELETE_FLAG=#{deleteFlag}
+       WHERE
+           comment_id = #{commentId}  AND  user_id = #{userId}
+   </update>
+</mapper>

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

@@ -8,7 +8,7 @@
             a.comment_name commentName,
             a.user_id userId,
             a.comment_time,
-            a.give_num giveNum,
+            ifnull(a.give_num,0) giveNum,
             b.name  userName
         FROM
             user_comment a LEFT JOIN  sys_user b ON a. user_id=b.id

+ 14 - 5
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ResourceCollectPageParam.java

@@ -15,8 +15,6 @@ package vip.xiaonuo.disk.param;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
-import java.math.BigDecimal;
-import java.util.Date;
 
 /**
  * resource_collect查询参数
@@ -39,8 +37,19 @@ public class ResourceCollectPageParam {
     @ApiModelProperty(value = "排序方式,升序:ASCEND;降序:DESCEND")
     private String sortOrder;
 
-    /** 关键词 */
-    @ApiModelProperty(value = "关键词")
-    private String searchKey;
+    /** 文件名称 */
+    @ApiModelProperty(value = "文件名称")
+    private String fileName;
+    /** 用户id */
+    @ApiModelProperty(value = "用户id")
+    private String userId;
 
+
+    /** 当前页 */
+    @ApiModelProperty(value = "当前页码")
+    private Integer current;
+
+    /** 每页条数 */
+    @ApiModelProperty(value = "每页条数")
+    private Integer size;
 }

+ 66 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ResourceTypeAddParam.java

@@ -0,0 +1,66 @@
+/*
+ * 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;
+
+/**
+ * resource_type添加参数
+ *
+ * @author pans
+ * @date  2025/07/04 14:39
+ **/
+@Getter
+@Setter
+public class ResourceTypeAddParam {
+
+    /** PARENT_ID */
+    @ApiModelProperty(value = "PARENT_ID", position = 3)
+    private String parentId;
+
+    /** DIRECTOR_ID */
+    @ApiModelProperty(value = "DIRECTOR_ID", position = 4)
+    private String directorId;
+
+    /** NAME */
+    @ApiModelProperty(value = "NAME", position = 5)
+    private String name;
+
+    /** CODE */
+    @ApiModelProperty(value = "CODE", position = 6)
+    private String code;
+
+    /** CATEGORY */
+    @ApiModelProperty(value = "CATEGORY", position = 7)
+    private String category;
+
+    /** SORT_CODE */
+    @ApiModelProperty(value = "SORT_CODE", position = 8)
+    private Integer sortCode;
+
+    /** EXT_JSON */
+    @ApiModelProperty(value = "EXT_JSON", position = 9)
+    private String extJson;
+
+    /** IS_RESOURCEACCOUNT */
+    @ApiModelProperty(value = "IS_RESOURCEACCOUNT", position = 15)
+    private String isResourceaccount;
+
+}

+ 71 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ResourceTypeEditParam.java

@@ -0,0 +1,71 @@
+/*
+ * 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;
+
+/**
+ * resource_type编辑参数
+ *
+ * @author pans
+ * @date  2025/07/04 14:39
+ **/
+@Getter
+@Setter
+public class ResourceTypeEditParam {
+
+    /** ID */
+    @ApiModelProperty(value = "ID", required = true, position = 1)
+    @NotBlank(message = "id不能为空")
+    private String id;
+
+    /** PARENT_ID */
+    @ApiModelProperty(value = "PARENT_ID", position = 3)
+    private String parentId;
+
+    /** DIRECTOR_ID */
+    @ApiModelProperty(value = "DIRECTOR_ID", position = 4)
+    private String directorId;
+
+    /** NAME */
+    @ApiModelProperty(value = "NAME", position = 5)
+    private String name;
+
+    /** CODE */
+    @ApiModelProperty(value = "CODE", position = 6)
+    private String code;
+
+    /** CATEGORY */
+    @ApiModelProperty(value = "CATEGORY", position = 7)
+    private String category;
+
+    /** SORT_CODE */
+    @ApiModelProperty(value = "SORT_CODE", position = 8)
+    private Integer sortCode;
+
+    /** EXT_JSON */
+    @ApiModelProperty(value = "EXT_JSON", position = 9)
+    private String extJson;
+
+    /** IS_RESOURCEACCOUNT */
+    @ApiModelProperty(value = "IS_RESOURCEACCOUNT", position = 15)
+    private String isResourceaccount;
+
+}

+ 35 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ResourceTypeIdParam.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.NotNull;
+
+/**
+ * resource_typeId参数
+ *
+ * @author pans
+ * @date  2025/07/04 14:39
+ **/
+@Getter
+@Setter
+public class ResourceTypeIdParam {
+
+    /** ID */
+    @ApiModelProperty(value = "ID", required = true)
+    @NotNull(message = "id不能为空")
+    private String id;
+}

+ 53 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ResourceTypePageParam.java

@@ -0,0 +1,53 @@
+/*
+ * 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;
+
+/**
+ * resource_type查询参数
+ *
+ * @author pans
+ * @date  2025/07/04 14:39
+ **/
+@Getter
+@Setter
+public class ResourceTypePageParam {
+
+    /** 当前页 */
+    @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;
+
+    /** 父id */
+    @ApiModelProperty(value = "父id")
+    private String parentId;
+
+}

+ 45 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/RoomAddParam.java

@@ -0,0 +1,45 @@
+/*
+ * 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/04 09:07
+ **/
+@Getter
+@Setter
+public class RoomAddParam {
+
+    /** 教室编码 */
+    @ApiModelProperty(value = "教室编码", position = 2)
+    private String roomCode;
+
+    /** 教室名称 */
+    @ApiModelProperty(value = "教室名称", position = 3)
+    private String roomName;
+
+    /** 教室位置 */
+    @ApiModelProperty(value = "教室位置", position = 4)
+    private String location;
+
+    /** 教室容量(最多能容纳多少人数) */
+    @ApiModelProperty(value = "教室容量(最多能容纳多少人数)", position = 5)
+    private String capacity;
+
+}

+ 52 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/RoomEditParam.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;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 教室表编辑参数
+ *
+ * @author pans
+ * @date  2025/07/04 09:07
+ **/
+@Getter
+@Setter
+public class RoomEditParam {
+
+    /** 主键 */
+    @ApiModelProperty(value = "主键", required = true, position = 1)
+    @NotNull(message = "id不能为空")
+    private Integer id;
+
+    /** 教室编码 */
+    @ApiModelProperty(value = "教室编码", position = 2)
+    private String roomCode;
+
+    /** 教室名称 */
+    @ApiModelProperty(value = "教室名称", position = 3)
+    private String roomName;
+
+    /** 教室位置 */
+    @ApiModelProperty(value = "教室位置", position = 4)
+    private String location;
+
+    /** 教室容量(最多能容纳多少人数) */
+    @ApiModelProperty(value = "教室容量(最多能容纳多少人数)", position = 5)
+    private String capacity;
+
+}

+ 35 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/RoomIdParam.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.NotNull;
+
+/**
+ * 教室表Id参数
+ *
+ * @author pans
+ * @date  2025/07/04 09:07
+ **/
+@Getter
+@Setter
+public class RoomIdParam {
+
+    /** 主键 */
+    @ApiModelProperty(value = "主键", required = true)
+    @NotNull(message = "id不能为空")
+    private Integer id;
+}

+ 49 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/RoomPageParam.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;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 教室表查询参数
+ *
+ * @author pans
+ * @date  2025/07/04 09:07
+ **/
+@Getter
+@Setter
+public class RoomPageParam {
+
+    /** 当前页 */
+    @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;
+
+}

+ 5 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/ResourceCollectService.java

@@ -12,9 +12,12 @@
  */
 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.ResourceCollect;
 import vip.xiaonuo.disk.param.ResourceCollectAddParam;
+import vip.xiaonuo.disk.param.ResourceCollectPageParam;
+import vip.xiaonuo.disk.vo.collect.ResourceCollectVo;
 
 import javax.validation.Valid;
 
@@ -32,4 +35,6 @@ public interface ResourceCollectService extends IService<ResourceCollect> {
     void add(@Valid ResourceCollectAddParam resourceCollectAddParam);
 
     void cancel(@Valid ResourceCollectAddParam resourceCollectAddParam);
+
+    Page<ResourceCollectVo> selectPageList(ResourceCollectPageParam resourceCollectPageParam);
 }

+ 109 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/ResourceTypeService.java

@@ -0,0 +1,109 @@
+/*
+ * 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 cn.hutool.core.lang.tree.Tree;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import vip.xiaonuo.disk.domain.ResourceType;
+import vip.xiaonuo.disk.param.ResourceTypeAddParam;
+import vip.xiaonuo.disk.param.ResourceTypeEditParam;
+import vip.xiaonuo.disk.param.ResourceTypeIdParam;
+import vip.xiaonuo.disk.param.ResourceTypePageParam;
+
+import java.util.List;
+
+/**
+ * resource_typeService接口
+ *
+ * @author pans
+ * @date  2025/07/04 14:39
+ **/
+public interface ResourceTypeService extends IService<ResourceType> {
+
+    /**
+     * 获取resource_type分页
+     *
+     * @author pans
+     * @date  2025/07/04 14:39
+     */
+    Page<ResourceType> page(ResourceTypePageParam resourceTypePageParam);
+
+    /**
+     * 添加resource_type
+     *
+     * @author pans
+     * @date  2025/07/04 14:39
+     */
+    void add(ResourceTypeAddParam resourceTypeAddParam);
+
+    /**
+     * 编辑resource_type
+     *
+     * @author pans
+     * @date  2025/07/04 14:39
+     */
+    void edit(ResourceTypeEditParam resourceTypeEditParam);
+
+    /**
+     * 删除resource_type
+     *
+     * @author pans
+     * @date  2025/07/04 14:39
+     */
+    void delete(List<ResourceTypeIdParam> resourceTypeIdParamList);
+
+    /**
+     * 获取resource_type详情
+     *
+     * @author pans
+     * @date  2025/07/04 14:39
+     */
+    ResourceType detail(ResourceTypeIdParam resourceTypeIdParam);
+
+    /**
+     * 获取resource_type详情
+     *
+     * @author pans
+     * @date  2025/07/04 14:39
+     **/
+    ResourceType queryEntity(String id);
+
+    /**
+     * 获取所有组织
+     *
+     * @author xuyuxiang
+     * @date 2022/7/25 19:42
+     **/
+    List<ResourceType> getAllOrgList();
+    /**
+     * 获取组织树
+     *
+     * @author xuyuxiang
+     * @date 2022/4/24 20:08
+     */
+    List<Tree<String>> tree();
+
+    List<Tree<String>> orgTreeSelector();
+
+    ResourceType getById(List<ResourceType> originDataList, String id);
+
+
+    /**
+     * 根据id获取所有的子数据列表
+     *
+     * @author xuyuxiang
+     * @date 2022/8/15 14:55
+     **/
+    List<ResourceType> getChildListById(List<ResourceType> originDataList, String id, boolean includeSelf);
+}

+ 81 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/RoomService.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.Room;
+import vip.xiaonuo.disk.param.RoomAddParam;
+import vip.xiaonuo.disk.param.RoomEditParam;
+import vip.xiaonuo.disk.param.RoomIdParam;
+import vip.xiaonuo.disk.param.RoomPageParam;
+
+import java.util.List;
+
+/**
+ * 教室表Service接口
+ *
+ * @author pans
+ * @date  2025/07/04 09:07
+ **/
+public interface RoomService extends IService<Room> {
+
+    /**
+     * 获取教室表分页
+     *
+     * @author pans
+     * @date  2025/07/04 09:07
+     */
+    Page<Room> page(RoomPageParam roomPageParam);
+
+    /**
+     * 添加教室表
+     *
+     * @author pans
+     * @date  2025/07/04 09:07
+     */
+    void add(RoomAddParam roomAddParam);
+
+    /**
+     * 编辑教室表
+     *
+     * @author pans
+     * @date  2025/07/04 09:07
+     */
+    void edit(RoomEditParam roomEditParam);
+
+    /**
+     * 删除教室表
+     *
+     * @author pans
+     * @date  2025/07/04 09:07
+     */
+    void delete(List<RoomIdParam> roomIdParamList);
+
+    /**
+     * 获取教室表详情
+     *
+     * @author pans
+     * @date  2025/07/04 09:07
+     */
+    Room detail(RoomIdParam roomIdParam);
+
+    /**
+     * 获取教室表详情
+     *
+     * @author pans
+     * @date  2025/07/04 09:07
+     **/
+    Room queryEntity(Integer id);
+
+}

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

@@ -13,14 +13,18 @@
 package vip.xiaonuo.disk.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
+import vip.xiaonuo.common.page.CommonPageRequest;
 import vip.xiaonuo.disk.domain.ResourceCollect;
 import vip.xiaonuo.disk.mapper.ResourceCollectMapper;
 import vip.xiaonuo.disk.param.ResourceCollectAddParam;
+import vip.xiaonuo.disk.param.ResourceCollectPageParam;
 import vip.xiaonuo.disk.service.ResourceCollectService;
+import vip.xiaonuo.disk.vo.collect.ResourceCollectVo;
 
 /**
  * resource_collectService接口实现类
@@ -61,4 +65,11 @@ public class ResourceCollectServiceImpl extends ServiceImpl<ResourceCollectMappe
 
         resourceCollectMapper.cancel(resourceCollect);
     }
+
+    @Override
+    public Page<ResourceCollectVo> selectPageList(ResourceCollectPageParam resourceCollectPageParam) {
+        resourceCollectPageParam.setUserId(StpLoginUserUtil.getLoginUser().getId());
+        Page<ResourceCollectVo> page= resourceCollectMapper.selectPageList(CommonPageRequest.defaultPage(),resourceCollectPageParam);
+        return page;
+    }
 }

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

@@ -0,0 +1,204 @@
+/*
+ * 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.collection.CollectionUtil;
+import cn.hutool.core.lang.tree.Tree;
+import cn.hutool.core.lang.tree.TreeNode;
+import cn.hutool.core.lang.tree.TreeUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.RandomUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.common.enums.CommonSortOrderEnum;
+import vip.xiaonuo.common.exception.CommonException;
+import vip.xiaonuo.common.page.CommonPageRequest;
+import vip.xiaonuo.disk.domain.ResourceType;
+import vip.xiaonuo.disk.mapper.ResourceTypeMapper;
+import vip.xiaonuo.disk.param.ResourceTypeAddParam;
+import vip.xiaonuo.disk.param.ResourceTypeEditParam;
+import vip.xiaonuo.disk.param.ResourceTypeIdParam;
+import vip.xiaonuo.disk.param.ResourceTypePageParam;
+import vip.xiaonuo.disk.service.ResourceTypeService;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * resource_typeService接口实现类
+ *
+ * @author pans
+ * @date  2025/07/04 14:39
+ **/
+@Service
+public class ResourceTypeServiceImpl extends ServiceImpl<ResourceTypeMapper, ResourceType> implements ResourceTypeService {
+
+
+    @Override
+    public Page<ResourceType> page(ResourceTypePageParam resourceTypePageParam) {
+        QueryWrapper<ResourceType> queryWrapper = new QueryWrapper<>();
+        // 查询部分字段
+        queryWrapper.lambda().select(ResourceType::getId, ResourceType::getParentId, ResourceType::getName,
+                ResourceType::getCategory, ResourceType::getSortCode, ResourceType::getIsResourceaccount);
+        if(ObjectUtil.isNotEmpty(resourceTypePageParam.getParentId())) {
+            queryWrapper.lambda().eq(ResourceType::getParentId, resourceTypePageParam.getParentId());
+        }
+        if(ObjectUtil.isNotEmpty(resourceTypePageParam.getSearchKey())) {
+            queryWrapper.lambda().like(ResourceType::getName, resourceTypePageParam.getSearchKey());
+        }
+        if(ObjectUtil.isAllNotEmpty(resourceTypePageParam.getSortField(), resourceTypePageParam.getSortOrder())) {
+            CommonSortOrderEnum.validate(resourceTypePageParam.getSortOrder());
+            queryWrapper.orderBy(true, resourceTypePageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()),
+                    StrUtil.toUnderlineCase(resourceTypePageParam.getSortField()));
+        } else {
+            queryWrapper.lambda().orderByAsc(ResourceType::getSortCode);
+        }
+        return this.page(CommonPageRequest.defaultPage(), queryWrapper);
+    }
+
+
+    @Override
+    public List<Tree<String>> tree() {
+        List<ResourceType> collegeList = this.getAllOrgList();
+        List<TreeNode<String>> treeNodeList = collegeList.stream().map(college ->
+                        new TreeNode<>(college.getId(), college.getParentId(),
+                                college.getName(), college.getSortCode()).setExtra(JSONUtil.parseObj(college)))
+                .collect(Collectors.toList());
+        return TreeUtil.build(treeNodeList, "0");
+    }
+
+
+
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(ResourceTypeAddParam resourceTypeAddParam) {
+
+        ResourceType resourceType = BeanUtil.toBean(resourceTypeAddParam, ResourceType.class);
+        // 重复名称
+        boolean repeatName = this.count(new LambdaQueryWrapper<ResourceType>().eq(ResourceType::getParentId, resourceType.getParentId())
+                .eq(ResourceType::getName, resourceType.getName())) > 0;
+        if(repeatName) {
+            throw new CommonException("存在重复的同级组织,名称为:{}", resourceType.getName());
+        }
+        resourceType.setCode(RandomUtil.randomString(10));
+        this.save(resourceType);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void edit(ResourceTypeEditParam resourceTypeEditParam) {
+        ResourceType resourceType = this.queryEntity(resourceTypeEditParam.getId());
+        BeanUtil.copyProperties(resourceTypeEditParam, resourceType);
+        boolean repeatName = this.count(new LambdaQueryWrapper<ResourceType>().eq(ResourceType::getParentId, resourceType.getParentId())
+                .eq(ResourceType::getName, resourceType.getName()).ne(ResourceType::getId, resourceType.getId())) > 0;
+        if(repeatName) {
+            throw new CommonException("存在重复的同级组织,名称为:{}", resourceType.getName());
+        }
+        List<ResourceType> originDataList = this.getAllOrgList();
+        boolean errorLevel = this.getChildListById(originDataList, resourceType.getId(), true).stream()
+                .map(ResourceType::getId).collect(Collectors.toList()).contains(resourceType.getParentId());
+        if(errorLevel) {
+            throw new CommonException("不可选择上级组织:{}", this.getById(originDataList, resourceType.getParentId()).getName());
+        }
+        this.updateById(resourceType);
+
+        // 发布更新事件
+       // CommonDataChangeEventCenter.doUpdateWithData(SysDataTypeEnum.ORG.getValue(), JSONUtil.createArray().put(resourceType));
+    }
+
+    @Override
+    public ResourceType getById(List<ResourceType> originDataList, String id) {
+        int index = CollStreamUtil.toList(originDataList, ResourceType::getId).indexOf(id);
+        return index == -1?null:originDataList.get(index);
+    }
+
+    @Override
+    public List<ResourceType> getAllOrgList() {
+        return this.list(new LambdaQueryWrapper<ResourceType>().orderByAsc(ResourceType::getSortCode));
+    }
+
+    @Override
+    public List<ResourceType> getChildListById(List<ResourceType> originDataList, String id, boolean includeSelf) {
+        List<ResourceType> resultList = CollectionUtil.newArrayList();
+        execRecursionFindChild(originDataList, id, resultList);
+        if(includeSelf) {
+            ResourceType self = this.getById(originDataList, id);
+            if(ObjectUtil.isNotEmpty(self)) {
+                resultList.add(self);
+            }
+        }
+        return resultList;
+    }
+
+
+    public void execRecursionFindChild(List<ResourceType> originDataList, String id, List<ResourceType> resultList) {
+        originDataList.forEach(item -> {
+            if(item.getParentId().equals(id)) {
+                resultList.add(item);
+                execRecursionFindChild(originDataList, item.getId(), resultList);
+            }
+        });
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void delete(List<ResourceTypeIdParam> resourceTypeIdParamList) {
+        List<String> orgIdList = CollStreamUtil.toList(resourceTypeIdParamList, ResourceTypeIdParam::getId);
+        if(ObjectUtil.isNotEmpty(orgIdList)) {
+            List<ResourceType> allOrgList = this.getAllOrgList();
+            // 获取所有子组织
+            List<String> toDeleteOrgIdList = CollectionUtil.newArrayList();
+            orgIdList.forEach(orgId -> toDeleteOrgIdList.addAll(this.getChildListById(allOrgList, orgId, true).stream()
+                    .map(ResourceType::getId).collect(Collectors.toList())));
+
+            // 执行删除
+            this.removeByIds(toDeleteOrgIdList);
+
+            // 发布删除事件
+            //CommonDataChangeEventCenter.doDeleteWithDataId(SysDataTypeEnum.ORG.getValue(), toDeleteOrgIdList);
+        }
+    }
+
+    @Override
+    public ResourceType detail(ResourceTypeIdParam resourceTypeIdParam) {
+        return this.queryEntity(resourceTypeIdParam.getId());
+    }
+
+    @Override
+    public ResourceType queryEntity(String id) {
+        ResourceType resourceType = this.getById(id);
+        if(ObjectUtil.isEmpty(resourceType)) {
+            throw new CommonException("resource_type不存在,id值为:{}", id);
+        }
+        return resourceType;
+    }
+
+    @Override
+    public List<Tree<String>> orgTreeSelector() {
+        List<ResourceType> collegeList = this.getAllOrgList();
+        List<TreeNode<String>> treeNodeList = collegeList.stream().map(college ->
+                        new TreeNode<>(college.getId(), college.getParentId(), college.getName(), college.getSortCode()))
+                .collect(Collectors.toList());
+        return TreeUtil.build(treeNodeList, "0");
+    }
+
+}

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

@@ -0,0 +1,96 @@
+/*
+ * 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.common.enums.CommonSortOrderEnum;
+import vip.xiaonuo.common.exception.CommonException;
+import vip.xiaonuo.common.page.CommonPageRequest;
+import vip.xiaonuo.disk.domain.Room;
+import vip.xiaonuo.disk.mapper.RoomMapper;
+import vip.xiaonuo.disk.param.RoomAddParam;
+import vip.xiaonuo.disk.param.RoomEditParam;
+import vip.xiaonuo.disk.param.RoomIdParam;
+import vip.xiaonuo.disk.param.RoomPageParam;
+import vip.xiaonuo.disk.service.RoomService;
+
+import java.util.List;
+
+/**
+ * 教室表Service接口实现类
+ *
+ * @author pans
+ * @date  2025/07/04 09:07
+ **/
+@Service
+public class RoomServiceImpl extends ServiceImpl<RoomMapper, Room> implements RoomService {
+
+
+    @Override
+    public Page<Room> page(RoomPageParam roomPageParam) {
+        QueryWrapper<Room> queryWrapper = new QueryWrapper<>();
+        if(ObjectUtil.isAllNotEmpty(roomPageParam.getSortField(), roomPageParam.getSortOrder())) {
+            CommonSortOrderEnum.validate(roomPageParam.getSortOrder());
+            queryWrapper.orderBy(true, roomPageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()),
+                    StrUtil.toUnderlineCase(roomPageParam.getSortField()));
+        } else {
+            queryWrapper.lambda().orderByAsc(Room::getId);
+        }
+        return this.page(CommonPageRequest.defaultPage(), queryWrapper);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(RoomAddParam roomAddParam) {
+        Room room = BeanUtil.toBean(roomAddParam, Room.class);
+        this.save(room);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void edit(RoomEditParam roomEditParam) {
+        Room room = this.queryEntity(roomEditParam.getId());
+        BeanUtil.copyProperties(roomEditParam, room);
+        this.updateById(room);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void delete(List<RoomIdParam> roomIdParamList) {
+        // 执行删除
+        this.removeByIds(CollStreamUtil.toList(roomIdParamList, RoomIdParam::getId));
+    }
+
+    @Override
+    public Room detail(RoomIdParam roomIdParam) {
+        return this.queryEntity(roomIdParam.getId());
+    }
+
+    @Override
+    public Room queryEntity(Integer id) {
+        Room room = this.getById(id);
+        if(ObjectUtil.isEmpty(room)) {
+            throw new CommonException("教室表不存在,id值为:{}", id);
+        }
+        return room;
+    }
+
+}

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

@@ -24,6 +24,8 @@ import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
 import vip.xiaonuo.common.exception.CommonException;
 import vip.xiaonuo.common.page.CommonPageRequest;
 import vip.xiaonuo.disk.domain.UserComment;
+import vip.xiaonuo.disk.domain.UserCommentGive;
+import vip.xiaonuo.disk.mapper.UserCommentGiveMapper;
 import vip.xiaonuo.disk.mapper.UserCommentMapper;
 import vip.xiaonuo.disk.param.UserCommentAddParam;
 import vip.xiaonuo.disk.param.UserCommentEditParam;
@@ -48,6 +50,11 @@ public class UserCommentServiceImpl extends ServiceImpl<UserCommentMapper, UserC
     @Autowired
     private  UserCommentMapper  userCommentMapper;
 
+
+    @Autowired
+    private UserCommentGiveMapper userCommentGiveMapper;
+
+
     @Override
     public Page<UserCommentVo> page(UserCommentPageParam userCommentPageParam) {
         Page<UserCommentVo> page=userCommentMapper.selectCommentPid(CommonPageRequest.defaultPage(),userCommentPageParam.getResourceId());
@@ -102,6 +109,14 @@ public class UserCommentServiceImpl extends ServiceImpl<UserCommentMapper, UserC
             userComment.setGiveNum(userComment.getGiveNum()+1);
         }
         this.updateById(userComment);
+        //添加点赞记录表
+        UserCommentGive userCommentGive=new UserCommentGive();
+        userCommentGive.setCommentId(id);
+        userCommentGive.setUserId(StpLoginUserUtil.getLoginUser().getId());
+        userCommentGive.setCreateUser(StpLoginUserUtil.getLoginUser().getId());
+        userCommentGive.setCreateTime(new Date());
+        userCommentGive.setDeleteFlag("NOT_DELETE");
+        userCommentGiveMapper.insert(userCommentGive);
     }
 
     @Override
@@ -110,6 +125,12 @@ public class UserCommentServiceImpl extends ServiceImpl<UserCommentMapper, UserC
         if(userComment.getGiveNum()>1){
             userComment.setGiveNum(userComment.getGiveNum()-1);
             this.updateById(userComment);
+            //删除点赞记录表
+            UserCommentGive userCommentGive=new UserCommentGive();
+            userCommentGive.setCommentId(id);
+            userCommentGive.setUserId(StpLoginUserUtil.getLoginUser().getId());
+            userCommentGive.setDeleteFlag("DELETED");
+            userCommentGiveMapper.updateByUserCommentGive(userCommentGive);
             return "取消点赞成功!";
         }else{
             return "点赞数量为0,无法取消点赞!";

+ 62 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/vo/collect/ResourceCollectVo.java

@@ -0,0 +1,62 @@
+package vip.xiaonuo.disk.vo.collect;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+@Getter
+@Setter
+public class ResourceCollectVo {
+    /** ID */
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "ID", position = 1)
+    private Long id;
+
+    /** 资源记录id */
+    @ApiModelProperty(value = "资源记录id", position = 2)
+    private String resourceId;
+
+    /** 用户id */
+    @ApiModelProperty(value = "用户id", position = 3)
+    private String userId;
+
+    /** 删除标志 */
+    @ApiModelProperty(value = "删除标志", position = 4)
+    @TableLogic
+    @TableField(fill = FieldFill.INSERT)
+    private String deleteFlag;
+
+    /** UPDATE_TIME */
+    @ApiModelProperty(value = "UPDATE_TIME", position = 5)
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateTime;
+
+    /** CREATE_TIME */
+    @ApiModelProperty(value = "CREATE_TIME", position = 6)
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    /** CREATE_USER */
+    @ApiModelProperty(value = "CREATE_USER", position = 7)
+    @TableField(fill = FieldFill.INSERT)
+    private String createUser;
+
+    /** UPDATE_USER */
+    @ApiModelProperty(value = "UPDATE_USER", position = 8)
+    @TableField(fill = FieldFill.UPDATE)
+    private String updateUser;
+    /** 资源名称 */
+    private String fileName;
+    /** 资源类型 */
+    private String resourceTypeName;
+    /** CREATE_TIME */
+    private String resourceType;
+    /** CREATE_TIME */
+    private String viewCount;
+    /** CREATE_TIME */
+    private String userName;
+
+}