feat(system): 添加文件管理模块及权限控制功能
- 新增文件主信息实体类SysFile,包含文件名、路径、大小等属性 - 创建文件可见用户关联实体SysFileVisibleUser,实现文件权限控制 - 添加文件服务接口ISysFileService和实现类SysFileServiceImpl - 实现文件可见用户服务接口ISysFileVisibleUserService及其实现 - 创建文件控制器SysFileController,提供文件CRUD操作接口 - 添加文件可见用户控制器SysFileVisibleUserController - 配置文件和关联表的MyBatis映射及XML配置文件 - 定义文件和关联信息的业务对象BO、视图对象VO类 - 实现文件列表分页查询、详情查看、新增修改删除功能 - 支持文件权限分配给指定用户的多对多关联功能
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
package com.klp.web.controller.system;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.klp.common.annotation.RepeatSubmit;
|
||||
import com.klp.common.annotation.Log;
|
||||
import com.klp.common.core.controller.BaseController;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.klp.common.core.domain.R;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import com.klp.common.enums.BusinessType;
|
||||
import com.klp.common.utils.poi.ExcelUtil;
|
||||
import com.klp.system.domain.vo.SysFileVo;
|
||||
import com.klp.system.domain.bo.SysFileBo;
|
||||
import com.klp.system.service.ISysFileService;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 文件主信息
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-30
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/system/file")
|
||||
public class SysFileController extends BaseController {
|
||||
|
||||
private final ISysFileService iSysFileService;
|
||||
|
||||
/**
|
||||
* 查询文件主信息列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<SysFileVo> list(SysFileBo bo, PageQuery pageQuery) {
|
||||
return iSysFileService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出文件主信息列表
|
||||
*/
|
||||
@Log(title = "文件主信息", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(SysFileBo bo, HttpServletResponse response) {
|
||||
List<SysFileVo> list = iSysFileService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "文件主信息", SysFileVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取文件主信息详细信息
|
||||
*
|
||||
* @param fileId 主键
|
||||
*/
|
||||
@GetMapping("/{fileId}")
|
||||
public R<SysFileVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long fileId) {
|
||||
return R.ok(iSysFileService.queryById(fileId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增文件主信息
|
||||
*/
|
||||
@Log(title = "文件主信息", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysFileBo bo) {
|
||||
return toAjax(iSysFileService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改文件主信息
|
||||
*/
|
||||
@Log(title = "文件主信息", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysFileBo bo) {
|
||||
return toAjax(iSysFileService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除文件主信息
|
||||
*
|
||||
* @param fileIds 主键串
|
||||
*/
|
||||
@Log(title = "文件主信息", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{fileIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] fileIds) {
|
||||
return toAjax(iSysFileService.deleteWithValidByIds(Arrays.asList(fileIds), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
package com.klp.web.controller.system;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.klp.common.annotation.RepeatSubmit;
|
||||
import com.klp.common.annotation.Log;
|
||||
import com.klp.common.core.controller.BaseController;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.klp.common.core.domain.R;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import com.klp.common.enums.BusinessType;
|
||||
import com.klp.common.utils.poi.ExcelUtil;
|
||||
import com.klp.system.domain.vo.SysFileVisibleUserVo;
|
||||
import com.klp.system.domain.bo.SysFileVisibleUserBo;
|
||||
import com.klp.system.service.ISysFileVisibleUserService;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 私有文件可见用户多对多关联
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-30
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/system/fileVisibleUser")
|
||||
public class SysFileVisibleUserController extends BaseController {
|
||||
|
||||
private final ISysFileVisibleUserService iSysFileVisibleUserService;
|
||||
|
||||
/**
|
||||
* 查询私有文件可见用户多对多关联列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<SysFileVisibleUserVo> list(SysFileVisibleUserBo bo, PageQuery pageQuery) {
|
||||
return iSysFileVisibleUserService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出私有文件可见用户多对多关联列表
|
||||
*/
|
||||
@Log(title = "私有文件可见用户多对多关联", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(SysFileVisibleUserBo bo, HttpServletResponse response) {
|
||||
List<SysFileVisibleUserVo> list = iSysFileVisibleUserService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "私有文件可见用户多对多关联", SysFileVisibleUserVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取私有文件可见用户多对多关联详细信息
|
||||
*
|
||||
* @param visibleId 主键
|
||||
*/
|
||||
@GetMapping("/{visibleId}")
|
||||
public R<SysFileVisibleUserVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long visibleId) {
|
||||
return R.ok(iSysFileVisibleUserService.queryById(visibleId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增私有文件可见用户多对多关联
|
||||
*/
|
||||
@Log(title = "私有文件可见用户多对多关联", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysFileVisibleUserBo bo) {
|
||||
return toAjax(iSysFileVisibleUserService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改私有文件可见用户多对多关联
|
||||
*/
|
||||
@Log(title = "私有文件可见用户多对多关联", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysFileVisibleUserBo bo) {
|
||||
return toAjax(iSysFileVisibleUserService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除私有文件可见用户多对多关联
|
||||
*
|
||||
* @param visibleIds 主键串
|
||||
*/
|
||||
@Log(title = "私有文件可见用户多对多关联", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{visibleIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] visibleIds) {
|
||||
return toAjax(iSysFileVisibleUserService.deleteWithValidByIds(Arrays.asList(visibleIds), true));
|
||||
}
|
||||
}
|
||||
69
klp-system/src/main/java/com/klp/system/domain/SysFile.java
Normal file
69
klp-system/src/main/java/com/klp/system/domain/SysFile.java
Normal file
@@ -0,0 +1,69 @@
|
||||
package com.klp.system.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
||||
/**
|
||||
* 文件主信息对象 sys_file
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-30
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("sys_file")
|
||||
public class SysFile extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "file_id")
|
||||
private Long fileId;
|
||||
/**
|
||||
* 文件原始名称
|
||||
*/
|
||||
private String fileName;
|
||||
/**
|
||||
* 文件存储路径/对象存储地址
|
||||
*/
|
||||
private String filePath;
|
||||
/**
|
||||
* 文件大小(字节)
|
||||
*/
|
||||
private Long fileSize;
|
||||
/**
|
||||
* 文件后缀 pdf/xlsx/docx
|
||||
*/
|
||||
private String suffix;
|
||||
/**
|
||||
* 绑定订单编号
|
||||
*/
|
||||
private String orderNo;
|
||||
/**
|
||||
* 所属部门
|
||||
*/
|
||||
private String dept;
|
||||
/**
|
||||
* 文件类型字典值(制度文件/财务文件等,字典维护)
|
||||
*/
|
||||
private String fileType;
|
||||
/**
|
||||
* 可见范围类型 1公开 2私有
|
||||
*/
|
||||
private Long scopeType;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 删除标识 0正常 2删除
|
||||
*/
|
||||
@TableLogic
|
||||
private Long delFlag;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package com.klp.system.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
||||
/**
|
||||
* 私有文件可见用户多对多关联对象 sys_file_visible_user
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-30
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("sys_file_visible_user")
|
||||
public class SysFileVisibleUser extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "visible_id")
|
||||
private Long visibleId;
|
||||
/**
|
||||
* 文件ID 关联sys_file.file_id
|
||||
*/
|
||||
private Long fileId;
|
||||
/**
|
||||
* 用户ID 关联sys_user.user_id
|
||||
*/
|
||||
private Long userId;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 删除标识 0正常 2删除
|
||||
*/
|
||||
@TableLogic
|
||||
private Long delFlag;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package com.klp.system.domain.bo;
|
||||
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
|
||||
/**
|
||||
* 文件主信息业务对象 sys_file
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-30
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class SysFileBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
private Long fileId;
|
||||
|
||||
/**
|
||||
* 文件原始名称
|
||||
*/
|
||||
private String fileName;
|
||||
|
||||
/**
|
||||
* 文件存储路径/对象存储地址
|
||||
*/
|
||||
private String filePath;
|
||||
|
||||
/**
|
||||
* 文件大小(字节)
|
||||
*/
|
||||
private Long fileSize;
|
||||
|
||||
/**
|
||||
* 文件后缀 pdf/xlsx/docx
|
||||
*/
|
||||
private String suffix;
|
||||
|
||||
/**
|
||||
* 绑定订单编号
|
||||
*/
|
||||
private String orderNo;
|
||||
|
||||
/**
|
||||
* 所属部门
|
||||
*/
|
||||
private String dept;
|
||||
|
||||
/**
|
||||
* 文件类型字典值(制度文件/财务文件等,字典维护)
|
||||
*/
|
||||
private String fileType;
|
||||
|
||||
/**
|
||||
* 可见范围类型 1公开 2私有
|
||||
*/
|
||||
private Long scopeType;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.klp.system.domain.bo;
|
||||
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
|
||||
/**
|
||||
* 私有文件可见用户多对多关联业务对象 sys_file_visible_user
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-30
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class SysFileVisibleUserBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
private Long visibleId;
|
||||
|
||||
/**
|
||||
* 文件ID 关联sys_file.file_id
|
||||
*/
|
||||
private Long fileId;
|
||||
|
||||
/**
|
||||
* 用户ID 关联sys_user.user_id
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.klp.system.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 私有文件可见用户多对多关联视图对象 sys_file_visible_user
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-30
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class SysFileVisibleUserVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long visibleId;
|
||||
|
||||
/**
|
||||
* 文件ID 关联sys_file.file_id
|
||||
*/
|
||||
@ExcelProperty(value = "文件ID 关联sys_file.file_id")
|
||||
private Long fileId;
|
||||
|
||||
/**
|
||||
* 用户ID 关联sys_user.user_id
|
||||
*/
|
||||
@ExcelProperty(value = "用户ID 关联sys_user.user_id")
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
package com.klp.system.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 文件主信息视图对象 sys_file
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-30
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class SysFileVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long fileId;
|
||||
|
||||
/**
|
||||
* 文件原始名称
|
||||
*/
|
||||
@ExcelProperty(value = "文件原始名称")
|
||||
private String fileName;
|
||||
|
||||
/**
|
||||
* 文件存储路径/对象存储地址
|
||||
*/
|
||||
@ExcelProperty(value = "文件存储路径/对象存储地址")
|
||||
private String filePath;
|
||||
|
||||
/**
|
||||
* 文件大小(字节)
|
||||
*/
|
||||
@ExcelProperty(value = "文件大小(字节)")
|
||||
private Long fileSize;
|
||||
|
||||
/**
|
||||
* 文件后缀 pdf/xlsx/docx
|
||||
*/
|
||||
@ExcelProperty(value = "文件后缀 pdf/xlsx/docx")
|
||||
private String suffix;
|
||||
|
||||
/**
|
||||
* 绑定订单编号
|
||||
*/
|
||||
@ExcelProperty(value = "绑定订单编号")
|
||||
private String orderNo;
|
||||
|
||||
/**
|
||||
* 所属部门
|
||||
*/
|
||||
@ExcelProperty(value = "所属部门")
|
||||
private String dept;
|
||||
|
||||
/**
|
||||
* 文件类型字典值(制度文件/财务文件等,字典维护)
|
||||
*/
|
||||
@ExcelProperty(value = "文件类型字典值(制度文件/财务文件等,字典维护)")
|
||||
private String fileType;
|
||||
|
||||
/**
|
||||
* 可见范围类型 1公开 2私有
|
||||
*/
|
||||
@ExcelProperty(value = "可见范围类型 1公开 2私有")
|
||||
private Long scopeType;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.klp.system.mapper;
|
||||
|
||||
import com.klp.system.domain.SysFile;
|
||||
import com.klp.system.domain.vo.SysFileVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 文件主信息Mapper接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-30
|
||||
*/
|
||||
public interface SysFileMapper extends BaseMapperPlus<SysFileMapper, SysFile, SysFileVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.klp.system.mapper;
|
||||
|
||||
import com.klp.system.domain.SysFileVisibleUser;
|
||||
import com.klp.system.domain.vo.SysFileVisibleUserVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 私有文件可见用户多对多关联Mapper接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-30
|
||||
*/
|
||||
public interface SysFileVisibleUserMapper extends BaseMapperPlus<SysFileVisibleUserMapper, SysFileVisibleUser, SysFileVisibleUserVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.klp.system.service;
|
||||
|
||||
import com.klp.system.domain.SysFile;
|
||||
import com.klp.system.domain.vo.SysFileVo;
|
||||
import com.klp.system.domain.bo.SysFileBo;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 文件主信息Service接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-30
|
||||
*/
|
||||
public interface ISysFileService {
|
||||
|
||||
/**
|
||||
* 查询文件主信息
|
||||
*/
|
||||
SysFileVo queryById(Long fileId);
|
||||
|
||||
/**
|
||||
* 查询文件主信息列表
|
||||
*/
|
||||
TableDataInfo<SysFileVo> queryPageList(SysFileBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询文件主信息列表
|
||||
*/
|
||||
List<SysFileVo> queryList(SysFileBo bo);
|
||||
|
||||
/**
|
||||
* 新增文件主信息
|
||||
*/
|
||||
Boolean insertByBo(SysFileBo bo);
|
||||
|
||||
/**
|
||||
* 修改文件主信息
|
||||
*/
|
||||
Boolean updateByBo(SysFileBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除文件主信息信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.klp.system.service;
|
||||
|
||||
import com.klp.system.domain.SysFileVisibleUser;
|
||||
import com.klp.system.domain.vo.SysFileVisibleUserVo;
|
||||
import com.klp.system.domain.bo.SysFileVisibleUserBo;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 私有文件可见用户多对多关联Service接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-30
|
||||
*/
|
||||
public interface ISysFileVisibleUserService {
|
||||
|
||||
/**
|
||||
* 查询私有文件可见用户多对多关联
|
||||
*/
|
||||
SysFileVisibleUserVo queryById(Long visibleId);
|
||||
|
||||
/**
|
||||
* 查询私有文件可见用户多对多关联列表
|
||||
*/
|
||||
TableDataInfo<SysFileVisibleUserVo> queryPageList(SysFileVisibleUserBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询私有文件可见用户多对多关联列表
|
||||
*/
|
||||
List<SysFileVisibleUserVo> queryList(SysFileVisibleUserBo bo);
|
||||
|
||||
/**
|
||||
* 新增私有文件可见用户多对多关联
|
||||
*/
|
||||
Boolean insertByBo(SysFileVisibleUserBo bo);
|
||||
|
||||
/**
|
||||
* 修改私有文件可见用户多对多关联
|
||||
*/
|
||||
Boolean updateByBo(SysFileVisibleUserBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除私有文件可见用户多对多关联信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@@ -0,0 +1,116 @@
|
||||
package com.klp.system.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.klp.common.utils.StringUtils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.klp.system.domain.bo.SysFileBo;
|
||||
import com.klp.system.domain.vo.SysFileVo;
|
||||
import com.klp.system.domain.SysFile;
|
||||
import com.klp.system.mapper.SysFileMapper;
|
||||
import com.klp.system.service.ISysFileService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 文件主信息Service业务层处理
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-30
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class SysFileServiceImpl implements ISysFileService {
|
||||
|
||||
private final SysFileMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询文件主信息
|
||||
*/
|
||||
@Override
|
||||
public SysFileVo queryById(Long fileId){
|
||||
return baseMapper.selectVoById(fileId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询文件主信息列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<SysFileVo> queryPageList(SysFileBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<SysFile> lqw = buildQueryWrapper(bo);
|
||||
Page<SysFileVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询文件主信息列表
|
||||
*/
|
||||
@Override
|
||||
public List<SysFileVo> queryList(SysFileBo bo) {
|
||||
LambdaQueryWrapper<SysFile> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<SysFile> buildQueryWrapper(SysFileBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<SysFile> lqw = Wrappers.lambdaQuery();
|
||||
lqw.like(StringUtils.isNotBlank(bo.getFileName()), SysFile::getFileName, bo.getFileName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFilePath()), SysFile::getFilePath, bo.getFilePath());
|
||||
lqw.eq(bo.getFileSize() != null, SysFile::getFileSize, bo.getFileSize());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSuffix()), SysFile::getSuffix, bo.getSuffix());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getOrderNo()), SysFile::getOrderNo, bo.getOrderNo());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDept()), SysFile::getDept, bo.getDept());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFileType()), SysFile::getFileType, bo.getFileType());
|
||||
lqw.eq(bo.getScopeType() != null, SysFile::getScopeType, bo.getScopeType());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增文件主信息
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(SysFileBo bo) {
|
||||
SysFile add = BeanUtil.toBean(bo, SysFile.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setFileId(add.getFileId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改文件主信息
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(SysFileBo bo) {
|
||||
SysFile update = BeanUtil.toBean(bo, SysFile.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(SysFile entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除文件主信息
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
package com.klp.system.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.klp.system.domain.bo.SysFileVisibleUserBo;
|
||||
import com.klp.system.domain.vo.SysFileVisibleUserVo;
|
||||
import com.klp.system.domain.SysFileVisibleUser;
|
||||
import com.klp.system.mapper.SysFileVisibleUserMapper;
|
||||
import com.klp.system.service.ISysFileVisibleUserService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 私有文件可见用户多对多关联Service业务层处理
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-30
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class SysFileVisibleUserServiceImpl implements ISysFileVisibleUserService {
|
||||
|
||||
private final SysFileVisibleUserMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询私有文件可见用户多对多关联
|
||||
*/
|
||||
@Override
|
||||
public SysFileVisibleUserVo queryById(Long visibleId){
|
||||
return baseMapper.selectVoById(visibleId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询私有文件可见用户多对多关联列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<SysFileVisibleUserVo> queryPageList(SysFileVisibleUserBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<SysFileVisibleUser> lqw = buildQueryWrapper(bo);
|
||||
Page<SysFileVisibleUserVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询私有文件可见用户多对多关联列表
|
||||
*/
|
||||
@Override
|
||||
public List<SysFileVisibleUserVo> queryList(SysFileVisibleUserBo bo) {
|
||||
LambdaQueryWrapper<SysFileVisibleUser> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<SysFileVisibleUser> buildQueryWrapper(SysFileVisibleUserBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<SysFileVisibleUser> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getFileId() != null, SysFileVisibleUser::getFileId, bo.getFileId());
|
||||
lqw.eq(bo.getUserId() != null, SysFileVisibleUser::getUserId, bo.getUserId());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增私有文件可见用户多对多关联
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(SysFileVisibleUserBo bo) {
|
||||
SysFileVisibleUser add = BeanUtil.toBean(bo, SysFileVisibleUser.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setVisibleId(add.getVisibleId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改私有文件可见用户多对多关联
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(SysFileVisibleUserBo bo) {
|
||||
SysFileVisibleUser update = BeanUtil.toBean(bo, SysFileVisibleUser.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(SysFileVisibleUser entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除私有文件可见用户多对多关联
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
<?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="com.klp.system.mapper.SysFileMapper">
|
||||
|
||||
<resultMap type="com.klp.system.domain.SysFile" id="SysFileResult">
|
||||
<result property="fileId" column="file_id"/>
|
||||
<result property="fileName" column="file_name"/>
|
||||
<result property="filePath" column="file_path"/>
|
||||
<result property="fileSize" column="file_size"/>
|
||||
<result property="suffix" column="suffix"/>
|
||||
<result property="orderNo" column="order_no"/>
|
||||
<result property="dept" column="dept"/>
|
||||
<result property="fileType" column="file_type"/>
|
||||
<result property="scopeType" column="scope_type"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
</resultMap>
|
||||
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,20 @@
|
||||
<?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="com.klp.system.mapper.SysFileVisibleUserMapper">
|
||||
|
||||
<resultMap type="com.klp.system.domain.SysFileVisibleUser" id="SysFileVisibleUserResult">
|
||||
<result property="visibleId" column="visible_id"/>
|
||||
<result property="fileId" column="file_id"/>
|
||||
<result property="userId" column="user_id"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
</resultMap>
|
||||
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user