feat(system): 添加文件管理模块及权限控制功能

- 新增文件主信息实体类SysFile,包含文件名、路径、大小等属性
- 创建文件可见用户关联实体SysFileVisibleUser,实现文件权限控制
- 添加文件服务接口ISysFileService和实现类SysFileServiceImpl
- 实现文件可见用户服务接口ISysFileVisibleUserService及其实现
- 创建文件控制器SysFileController,提供文件CRUD操作接口
- 添加文件可见用户控制器SysFileVisibleUserController
- 配置文件和关联表的MyBatis映射及XML配置文件
- 定义文件和关联信息的业务对象BO、视图对象VO类
- 实现文件列表分页查询、详情查看、新增修改删除功能
- 支持文件权限分配给指定用户的多对多关联功能
This commit is contained in:
2026-06-30 10:01:18 +08:00
parent dbcc28fb80
commit d4b5bc7041
16 changed files with 953 additions and 0 deletions

View File

@@ -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));
}
}

View File

@@ -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));
}
}

View 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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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> {
}

View File

@@ -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> {
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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>

View File

@@ -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>