Преглед на файлове

1.提交群组管理功能基础代码
2.文件分享功能被改良成与公共资源、资源共享共用,修改一些实体字段,以及添加一些逻辑注释,方便后人更快了解

honorfire преди 8 месеца
родител
ревизия
74edbb5d0e
променени са 13 файла, в които са добавени 610 реда и са изтрити 1 реда
  1. 6 1
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/ShareController.java
  2. 130 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/ShareGroupController.java
  3. 13 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/ShareFile.java
  4. 45 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/dto/ShareGroupuser/ShareGroupAddParam.java
  5. 48 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/dto/ShareGroupuser/ShareGroupEditParam.java
  6. 47 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/dto/ShareGroupuser/ShareGroupUser.java
  7. 34 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/dto/ShareGroupuser/ShareGroupUserEnum.java
  8. 35 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/dto/ShareGroupuser/ShareGroupUserIdParam.java
  9. 49 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/dto/ShareGroupuser/ShareGroupUserPageParam.java
  10. 25 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/ShareGroupUserMapper.java
  11. 5 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/ShareGroupUserMapper.xml
  12. 77 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/ShareGroupUserService.java
  13. 96 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/ShareGroupUserServiceImpl.java

+ 6 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/ShareController.java

@@ -55,6 +55,7 @@ public class ShareController {
     @MyLog(operation = "分享文件", module = CURRENT_MODULE)
     @ResponseBody
     public RestResult<ShareFileVO> shareFile( @RequestBody ShareFileDTO shareFileDTO) {
+        //预留用于返回前端的批次号和提取码
         ShareFileVO shareSecretVO = new ShareFileVO();
 //        JwtUser sessionUserBean = SessionUtil.getSession();
         String userId = StpLoginUserUtil.getLoginUser().getId();
@@ -75,14 +76,17 @@ public class ShareController {
         share.setShareBatchNum(uuid);
         shareService.save(share);
 
+        //此处逻辑,支持多个文件传输,也包括文件夹
         List<ShareFile> saveFileList = new ArrayList<>();
         String userFileIds = shareFileDTO.getUserFileIds();
         String[] userFileIdList = userFileIds.split(",");
+        //遍历用户选择的文件
         for (String userFileId : userFileIdList) {
             UserFile userFile = userFileService.getById(userFileId);
             if (userFile.getUserId().compareTo(userId) != 0) {
                 return RestResult.fail().message("您只能分享自己的文件");
             }
+            //此处逻辑,如果是目录需要先把目录下的所有文件都添加到userfileList集合中,最后再把目录这条"文件"也加入到列表
             if (userFile.getIsDir() == 1) {
                 QiwenFile qiwenFile = new QiwenFile(userFile.getFilePath(), userFile.getFileName(), true);
                 List<UserFile> userfileList = userFileService.selectUserFileByLikeRightFilePath(qiwenFile.getPath(), userId);
@@ -136,6 +140,7 @@ public class ShareController {
 
             String savefileName = fileDealComp.getRepeatFileName(userFile, savefilePath);
 
+            //如果是目录,则把所有目录及子目录下的文件都保存
             if (userFile.getIsDir() == 1) {
                 ShareFile shareFile = shareFileService.getOne(new QueryWrapper<ShareFile>().lambda().eq(ShareFile::getUserFileId, userFileId).eq(ShareFile::getShareBatchNum, saveShareFileDTO.getShareBatchNum()));
                 List<ShareFile> shareFileList = shareFileService.list(new QueryWrapper<ShareFile>().lambda().eq(ShareFile::getShareBatchNum, saveShareFileDTO.getShareBatchNum()).likeRight(ShareFile::getShareFilePath, QiwenFile.formatPath(shareFile.getShareFilePath() +"/"+ fileName)));
@@ -178,7 +183,7 @@ public class ShareController {
     }
 
 
-    @Operation(summary = "分享文件列表", description = "分享列表", tags = {"share"})
+    @Operation(summary = "查看被分享文件列表", description = "分享列表", tags = {"share"})
     @GetMapping(value = "/sharefileList")
     @ResponseBody
     public RestResult<ShareFileListVO> shareFileList(ShareFileListDTO shareFileListBySecretDTO) {

+ 130 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/ShareGroupController.java

@@ -0,0 +1,130 @@
+/*
+ * 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.dto.ShareGroupuser.*;
+import vip.xiaonuo.disk.service.ShareGroupUserService;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+
+/**
+ * 资源共享-群组控制器
+ *
+ * @author honorfire
+ * @date  2025/06/18 14:16
+ */
+@Api(tags = "资源共享-群组控制器")
+@ApiSupport(author = "SNOWY_TEAM", order = 1)
+@RestController
+@Validated
+public class ShareGroupController {
+
+    @Resource
+    private ShareGroupUserService shareGroupUserService;
+
+    /**
+     * 获取资源共享-群组人员关联表分页
+     *
+     * @author honorfire
+     * @date  2025/06/18 14:16
+     */
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("获取资源共享-群组人员关联表分页")
+    @SaCheckPermission("/disk/sharegroupuser/page")
+    @GetMapping("/disk/sharegroupuser/page")
+    public CommonResult<Page<ShareGroupUser>> page(ShareGroupUserPageParam shareGroupUserPageParam) {
+        return CommonResult.data(shareGroupUserService.page(shareGroupUserPageParam));
+    }
+
+    /**
+     * 资源共享-群组-新增
+     *
+     * @author honorfire
+     * @date  2025/06/18 14:16
+     */
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("资源共享-群组-新增")
+    @CommonLog("资源共享-群组-新增")
+    @SaCheckPermission("/disk/sharegroup/add")
+    @PostMapping("/disk/sharegroup/add")
+    public CommonResult<String> add(@RequestBody @Valid ShareGroupAddParam shareGroupAddParam) {
+        //先创建一个角色为群组的用户
+
+        shareGroupUserService.add(shareGroupAddParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 编辑资源共享-群组人员关联表
+     *
+     * @author honorfire
+     * @date  2025/06/18 14:16
+     */
+    @ApiOperationSupport(order = 3)
+    @ApiOperation("编辑资源共享-群组人员关联表")
+    @CommonLog("编辑资源共享-群组人员关联表")
+    @SaCheckPermission("/disk/sharegroupuser/edit")
+    @PostMapping("/disk/sharegroupuser/edit")
+    public CommonResult<String> edit(@RequestBody @Valid ShareGroupEditParam shareGroupEditParam) {
+        shareGroupUserService.edit(shareGroupEditParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 删除资源共享-群组人员关联表
+     *
+     * @author honorfire
+     * @date  2025/06/18 14:16
+     */
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("删除资源共享-群组人员关联表")
+    @CommonLog("删除资源共享-群组人员关联表")
+    @SaCheckPermission("/disk/sharegroupuser/delete")
+    @PostMapping("/disk/sharegroupuser/delete")
+    public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
+                                                   CommonValidList<ShareGroupUserIdParam> shareGroupUserIdParamList) {
+        shareGroupUserService.delete(shareGroupUserIdParamList);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 获取资源共享-群组人员关联表详情
+     *
+     * @author honorfire
+     * @date  2025/06/18 14:16
+     */
+    @ApiOperationSupport(order = 5)
+    @ApiOperation("获取资源共享-群组人员关联表详情")
+    @SaCheckPermission("/disk/sharegroupuser/detail")
+    @GetMapping("/disk/sharegroupuser/detail")
+    public CommonResult<ShareGroupUser> detail(@Valid ShareGroupUserIdParam shareGroupUserIdParam) {
+        return CommonResult.data(shareGroupUserService.detail(shareGroupUserIdParam));
+    }
+
+}

+ 13 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/ShareFile.java

@@ -24,4 +24,17 @@ public class ShareFile {
     @Column(columnDefinition="varchar(100) comment '分享文件路径'")
     private String shareFilePath;
 
+    @Column(columnDefinition="varchar(20) comment '被分享的人id(包括群组id和公共资源id)'")
+    private String userId;
+    @Column(columnDefinition="char(2) comment '是否可以添加,0否1是'")
+    private String canAdd;
+    @Column(columnDefinition="varchar(100) comment '是否可以删除,0否1是'")
+    private String canDelete;
+    @Column(columnDefinition="varchar(50) comment '是否可以重命名,0否1是'")
+    private String canRaname;
+    @Column(columnDefinition="varchar(20) comment '是否可以复制,0否1是'")
+    private String canCopy;
+    @Column(columnDefinition="varchar(100) comment '是否可以下载,0否1是'")
+    private String canDownload;
+
 }

+ 45 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/dto/ShareGroupuser/ShareGroupAddParam.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.dto.ShareGroupuser;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 资源共享-群组人员关联表添加参数
+ *
+ * @author honorfire
+ * @date  2025/06/18 14:16
+ **/
+@Getter
+@Setter
+@JsonIgnoreProperties(ignoreUnknown = true) // 忽略未知字段
+public class ShareGroupAddParam {
+
+    /** 群组id */
+    @ApiModelProperty(value = "群组id", position = 2)
+    private String groupId;
+
+    /** 用户id(多个逗号拼接) */
+    @ApiModelProperty(value = "用户id(多个逗号拼接)", position = 3)
+    private String userIds;
+
+    /** 是否是群组创造者,0否1是 */
+    @ApiModelProperty(value = "是否是群组创造者,0否1是", position = 4)
+    private String isCreater;
+
+
+
+}

+ 48 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/dto/ShareGroupuser/ShareGroupEditParam.java

@@ -0,0 +1,48 @@
+/*
+ * 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.dto.ShareGroupuser;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 资源共享-群组人员关联表编辑参数
+ *
+ * @author honorfire
+ * @date  2025/06/18 14:16
+ **/
+@Getter
+@Setter
+public class ShareGroupEditParam {
+
+    /** 主键id */
+    @ApiModelProperty(value = "主键id", required = true, position = 1)
+    @NotBlank(message = "id不能为空")
+    private String id;
+
+    /** 用户id(多个逗号拼接) */
+    @ApiModelProperty(value = "用户id(多个逗号拼接)", position = 3)
+    private String userIds;
+
+    /** 用户id */
+    @ApiModelProperty(value = "用户id", position = 3)
+    private String userId;
+
+    /** 是否是群组创造者,0否1是 */
+    @ApiModelProperty(value = "是否是群组创造者,0否1是", position = 4)
+    private String isCreater;
+
+}

+ 47 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/dto/ShareGroupuser/ShareGroupUser.java

@@ -0,0 +1,47 @@
+/*
+ * 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.dto.ShareGroupuser;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 资源共享-群组人员关联表实体
+ *
+ * @author honorfire
+ * @date  2025/06/18 14:16
+ **/
+@Getter
+@Setter
+@TableName("SHARE_GROUP_USER")
+public class ShareGroupUser {
+
+    /** 主键id */
+    @TableId
+    @ApiModelProperty(value = "主键id", position = 1)
+    private String id;
+
+    /** 群组id */
+    @ApiModelProperty(value = "群组id", position = 2)
+    private String groupId;
+
+    /** 用户id */
+    @ApiModelProperty(value = "用户id", position = 3)
+    private String userId;
+
+    /** 是否是群组创造者,0否1是 */
+    @ApiModelProperty(value = "是否是群组创造者,0否1是", position = 4)
+    private String isCreater;
+}

+ 34 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/dto/ShareGroupuser/ShareGroupUserEnum.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.dto.ShareGroupuser;
+
+import lombok.Getter;
+
+/**
+ * 资源共享-群组人员关联表枚举
+ *
+ * @author honorfire
+ * @date  2025/06/18 14:16
+ **/
+@Getter
+public enum ShareGroupUserEnum {
+
+    /** 测试 */
+    TEST("TEST");
+
+    private final String value;
+
+    ShareGroupUserEnum(String value) {
+        this.value = value;
+    }
+}

+ 35 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/dto/ShareGroupuser/ShareGroupUserIdParam.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.dto.ShareGroupuser;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 资源共享-群组人员关联表Id参数
+ *
+ * @author honorfire
+ * @date  2025/06/18 14:16
+ **/
+@Getter
+@Setter
+public class ShareGroupUserIdParam {
+
+    /** 主键id */
+    @ApiModelProperty(value = "主键id", required = true)
+    @NotBlank(message = "id不能为空")
+    private String id;
+}

+ 49 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/dto/ShareGroupuser/ShareGroupUserPageParam.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.dto.ShareGroupuser;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 资源共享-群组人员关联表查询参数
+ *
+ * @author honorfire
+ * @date  2025/06/18 14:16
+ **/
+@Getter
+@Setter
+public class ShareGroupUserPageParam {
+
+    /** 当前页 */
+    @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;
+
+}

+ 25 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/ShareGroupUserMapper.java

@@ -0,0 +1,25 @@
+/*
+ * 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.dto.ShareGroupuser.ShareGroupUser;
+
+/**
+ * 资源共享-群组人员关联表Mapper接口
+ *
+ * @author honorfire
+ * @date  2025/06/18 14:16
+ **/
+public interface ShareGroupUserMapper extends BaseMapper<ShareGroupUser> {
+}

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

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

+ 77 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/ShareGroupUserService.java

@@ -0,0 +1,77 @@
+/*
+ * 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.dto.ShareGroupuser.*;
+
+import java.util.List;
+
+/**
+ * 资源共享-群组人员关联表Service接口
+ *
+ * @author honorfire
+ * @date  2025/06/18 14:16
+ **/
+public interface ShareGroupUserService extends IService<ShareGroupUser> {
+
+    /**
+     * 获取资源共享-群组人员关联表分页
+     *
+     * @author honorfire
+     * @date  2025/06/18 14:16
+     */
+    Page<ShareGroupUser> page(ShareGroupUserPageParam shareGroupUserPageParam);
+
+    /**
+     * 添加资源共享-群组人员关联表
+     *
+     * @author honorfire
+     * @date  2025/06/18 14:16
+     */
+    void add(ShareGroupAddParam shareGroupAddParam);
+
+    /**
+     * 编辑资源共享-群组人员关联表
+     *
+     * @author honorfire
+     * @date  2025/06/18 14:16
+     */
+    void edit(ShareGroupEditParam shareGroupEditParam);
+
+    /**
+     * 删除资源共享-群组人员关联表
+     *
+     * @author honorfire
+     * @date  2025/06/18 14:16
+     */
+    void delete(List<ShareGroupUserIdParam> shareGroupUserIdParamList);
+
+    /**
+     * 获取资源共享-群组人员关联表详情
+     *
+     * @author honorfire
+     * @date  2025/06/18 14:16
+     */
+    ShareGroupUser detail(ShareGroupUserIdParam shareGroupUserIdParam);
+
+    /**
+     * 获取资源共享-群组人员关联表详情
+     *
+     * @author honorfire
+     * @date  2025/06/18 14:16
+     **/
+    ShareGroupUser queryEntity(String id);
+
+}

+ 96 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/ShareGroupUserServiceImpl.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.dto.ShareGroupuser.ShareGroupUser;
+import vip.xiaonuo.disk.mapper.ShareGroupUserMapper;
+import vip.xiaonuo.disk.dto.ShareGroupuser.ShareGroupAddParam;
+import vip.xiaonuo.disk.dto.ShareGroupuser.ShareGroupEditParam;
+import vip.xiaonuo.disk.dto.ShareGroupuser.ShareGroupUserIdParam;
+import vip.xiaonuo.disk.dto.ShareGroupuser.ShareGroupUserPageParam;
+import vip.xiaonuo.disk.service.ShareGroupUserService;
+
+import java.util.List;
+
+/**
+ * 资源共享-群组人员关联表Service接口实现类
+ *
+ * @author honorfire
+ * @date  2025/06/18 14:16
+ **/
+@Service
+public class ShareGroupUserServiceImpl extends ServiceImpl<ShareGroupUserMapper, ShareGroupUser> implements ShareGroupUserService {
+
+
+    @Override
+    public Page<ShareGroupUser> page(ShareGroupUserPageParam shareGroupUserPageParam) {
+        QueryWrapper<ShareGroupUser> queryWrapper = new QueryWrapper<>();
+        if(ObjectUtil.isAllNotEmpty(shareGroupUserPageParam.getSortField(), shareGroupUserPageParam.getSortOrder())) {
+            CommonSortOrderEnum.validate(shareGroupUserPageParam.getSortOrder());
+            queryWrapper.orderBy(true, shareGroupUserPageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()),
+                    StrUtil.toUnderlineCase(shareGroupUserPageParam.getSortField()));
+        } else {
+            queryWrapper.lambda().orderByAsc(ShareGroupUser::getId);
+        }
+        return this.page(CommonPageRequest.defaultPage(), queryWrapper);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(ShareGroupAddParam shareGroupAddParam) {
+        ShareGroupUser shareGroupUser = BeanUtil.toBean(shareGroupAddParam, ShareGroupUser.class);
+        this.save(shareGroupUser);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void edit(ShareGroupEditParam shareGroupEditParam) {
+        ShareGroupUser shareGroupUser = this.queryEntity(shareGroupEditParam.getId());
+        BeanUtil.copyProperties(shareGroupEditParam, shareGroupUser);
+        this.updateById(shareGroupUser);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void delete(List<ShareGroupUserIdParam> shareGroupUserIdParamList) {
+        // 执行删除
+        this.removeByIds(CollStreamUtil.toList(shareGroupUserIdParamList, ShareGroupUserIdParam::getId));
+    }
+
+    @Override
+    public ShareGroupUser detail(ShareGroupUserIdParam shareGroupUserIdParam) {
+        return this.queryEntity(shareGroupUserIdParam.getId());
+    }
+
+    @Override
+    public ShareGroupUser queryEntity(String id) {
+        ShareGroupUser shareGroupUser = this.getById(id);
+        if(ObjectUtil.isEmpty(shareGroupUser)) {
+            throw new CommonException("资源共享-群组人员关联表不存在,id值为:{}", id);
+        }
+        return shareGroupUser;
+    }
+
+}