yz_08
2021-02-09 165e00495c05e4f89ac6c3902620e235944965ab
新增文件管理功能
12个文件已添加
3个文件已修改
630 ■■■■■ 已修改文件
febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/constant/ModuleCode.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/pom.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/FilesUploadController.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/FolderController.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/FilesUpload.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/Folder.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/FilesUploadMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/FilesUploadMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/FolderMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/FolderMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IFilesUploadService.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IFolderService.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/FilesUploadServiceImpl.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/FolderServiceImpl.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/resources/bootstrap.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/constant/ModuleCode.java
@@ -56,5 +56,9 @@
     * 人力资源-培训开发
     */
    public final static int HR_TRAIN=17;
    /**
     * 人力资源-文件管理
     */
    public final static int HR_FIlE=18;
}
febs-server/febs-server-hr/pom.xml
@@ -58,6 +58,11 @@
            <version>2.2-RELEASE</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.5.8</version>
        </dependency>
    </dependencies>
    <build>
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/FilesUploadController.java
New file
@@ -0,0 +1,81 @@
package cc.mrbird.febs.server.hr.controller;
import cc.mrbird.febs.server.hr.entity.FilesUpload;
import cc.mrbird.febs.server.hr.service.IFilesUploadService;
import cc.mrbird.febs.common.core.entity.FebsResponse;
import cc.mrbird.febs.common.core.entity.QueryRequest;
import cc.mrbird.febs.common.core.exception.FebsException;
import cc.mrbird.febs.common.core.utils.FebsUtil;
import lombok.extern.slf4j.Slf4j;
import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.Map;
/**
 * 文件上传 Controller
 *
 * @author yz
 * @date 2021-02-05 22:51:00
 */
@Slf4j
@Validated
@RestController
@RequestMapping("filesUpload")
@RequiredArgsConstructor
public class FilesUploadController {
    private final IFilesUploadService filesUploadService;
    @GetMapping
    @PreAuthorize("hasAuthority('filesUpload:list')")
    public FebsResponse getAllFilesUploads(FilesUpload filesUpload) {
        return new FebsResponse().data(filesUploadService.findFilesUploads(filesUpload));
    }
    @GetMapping("list")
    @PreAuthorize("hasAuthority('filesUpload:list')")
    public FebsResponse filesUploadList(QueryRequest request, FilesUpload filesUpload) {
        Map<String, Object> dataTable = FebsUtil.getDataTable(this.filesUploadService.findFilesUploads(request, filesUpload));
        return new FebsResponse().data(dataTable);
    }
    @PostMapping
    @PreAuthorize("hasAuthority('filesUpload:add')")
    public void addFilesUpload(@Valid FilesUpload filesUpload) throws FebsException {
        try {
            this.filesUploadService.createFilesUpload(filesUpload);
        } catch (Exception e) {
            String message = "新增FilesUpload失败";
            log.error(message, e);
            throw new FebsException(message);
        }
    }
    @DeleteMapping
    @PreAuthorize("hasAuthority('filesUpload:delete')")
    public void deleteFilesUpload(FilesUpload filesUpload) throws FebsException {
        try {
            this.filesUploadService.deleteFilesUpload(filesUpload);
        } catch (Exception e) {
            String message = "删除FilesUpload失败";
            log.error(message, e);
            throw new FebsException(message);
        }
    }
    @PutMapping
    @PreAuthorize("hasAuthority('filesUpload:update')")
    public void updateFilesUpload(FilesUpload filesUpload) throws FebsException {
        try {
            this.filesUploadService.updateFilesUpload(filesUpload);
        } catch (Exception e) {
            String message = "修改FilesUpload失败";
            log.error(message, e);
            throw new FebsException(message);
        }
    }
}
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/FolderController.java
New file
@@ -0,0 +1,81 @@
package cc.mrbird.febs.server.hr.controller;
import cc.mrbird.febs.server.hr.entity.Folder;
import cc.mrbird.febs.server.hr.service.IFolderService;
import cc.mrbird.febs.common.core.entity.FebsResponse;
import cc.mrbird.febs.common.core.entity.QueryRequest;
import cc.mrbird.febs.common.core.exception.FebsException;
import cc.mrbird.febs.common.core.utils.FebsUtil;
import lombok.extern.slf4j.Slf4j;
import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.Map;
/**
 * 文件夹 Controller
 *
 * @author yz
 * @date 2021-02-05 22:51:02
 */
@Slf4j
@Validated
@RestController
@RequestMapping("folder")
@RequiredArgsConstructor
public class FolderController {
    private final IFolderService folderService;
    @GetMapping
    @PreAuthorize("hasAuthority('folder:list')")
    public FebsResponse getAllFolders(Folder folder) {
        return new FebsResponse().data(folderService.findFolders(folder));
    }
    @GetMapping("list")
    @PreAuthorize("hasAuthority('folder:list')")
    public FebsResponse folderList(QueryRequest request, Folder folder) {
        Map<String, Object> dataTable = FebsUtil.getDataTable(this.folderService.findFolders(request, folder));
        return new FebsResponse().data(dataTable);
    }
    @PostMapping
    @PreAuthorize("hasAuthority('folder:add')")
    public void addFolder(@Valid Folder folder) throws FebsException {
        try {
            this.folderService.createFolder(folder);
        } catch (Exception e) {
            String message = "新增Folder失败";
            log.error(message, e);
            throw new FebsException(message);
        }
    }
    @DeleteMapping
    @PreAuthorize("hasAuthority('folder:delete')")
    public void deleteFolder(Folder folder) throws FebsException {
        try {
            this.folderService.deleteFolder(folder);
        } catch (Exception e) {
            String message = "删除Folder失败";
            log.error(message, e);
            throw new FebsException(message);
        }
    }
    @PutMapping
    @PreAuthorize("hasAuthority('folder:update')")
    public void updateFolder(Folder folder) throws FebsException {
        try {
            this.folderService.updateFolder(folder);
        } catch (Exception e) {
            String message = "修改Folder失败";
            log.error(message, e);
            throw new FebsException(message);
        }
    }
}
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/FilesUpload.java
New file
@@ -0,0 +1,83 @@
package cc.mrbird.febs.server.hr.entity;
import java.util.Date;
import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
/**
* 文件上传 Entity
*
* @author yz
* @date 2021-02-05 22:51:00
*/
@Data
@TableName("t_files_upload")
public class FilesUpload {
    /**
     * 记录创建时间
     */
    @TableField("createTime")
    private Date createtime;
    /**
     * 记录创建人
     */
    @TableField("creator")
    private String creator;
    /**
     * 记录状态 0-正常 1-删除 2-暂存
     */
    @TableField("delFlag")
    private Integer delFlag = 0;
    /**
     * 文件存储地址
     */
    @TableField("filesAddress")
    private String filesaddress;
    /**
     * 文件格式
     */
    @TableField("filesFormat")
    private String filesformat;
    /**
     * id
     */
    @TableField("filesId")
    private Long filesid;
    /**
     * 文件名称
     */
    @TableField("filesName")
    private String filesname;
    /**
     * 文件夹ID
     */
    @TableField("folderId")
    private Long folderid;
    /**
     * 记录最后更新人
     */
    @TableField("modifier")
    private String modifier;
    /**
     * 记录最后更新时间
     */
    @TableField("modifyTime")
    private Date modifytime;
    /**
     * 记录版本号,用来进行乐观锁控制
     */
    @TableField("version")
    private Integer version;
}
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/Folder.java
New file
@@ -0,0 +1,76 @@
package cc.mrbird.febs.server.hr.entity;
import java.util.Date;
import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* 文件夹 Entity
*
* @author yz
* @date 2021-02-05 22:51:02
*/
@Data
@TableName("t_folder")
public class Folder {
    /**
     * 记录创建时间
     */
    @TableField("createTime")
    private Date createtime;
    /**
     * 记录创建人
     */
    @TableField("creator")
    private String creator;
    /**
     * 记录状态 0-正常 1-删除 2-暂存
     */
    @TableField("delFlag")
    private Integer delFlag = 0;
    /**
     * id
     */
    @TableField("folderId")
    private Long folderid;
    /**
     * 文件夹名称
     */
    @TableField("folderName")
    @NotBlank(message = "{required}")
    private String foldername;
    /**
     * 记录最后更新人
     */
    @TableField("modifier")
    private String modifier;
    /**
     * 记录最后更新时间
     */
    @TableField("modifyTime")
    private Date modifytime;
    /**
     * 记录版本号,用来进行乐观锁控制
     */
    @TableField("version")
    private Integer version=0;
    /**
     * 文件夹显示顺序
     */
    @TableField("sort")
    @NotNull(message = "{required}")
    @Range(message = "排序范围为 {min} 到 {max} 之间", min = 0, max = 100)
    private Integer sort=0;
}
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/FilesUploadMapper.java
New file
@@ -0,0 +1,14 @@
package cc.mrbird.febs.server.hr.mapper;
import cc.mrbird.febs.server.hr.entity.FilesUpload;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * 文件上传 Mapper
 *
 * @author yz
 * @date 2021-02-05 22:51:00
 */
public interface FilesUploadMapper extends BaseMapper<FilesUpload> {
}
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/FilesUploadMapper.xml
New file
@@ -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="cc.mrbird.febs.server.hr.mapper.FilesUploadMapper">
</mapper>
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/FolderMapper.java
New file
@@ -0,0 +1,14 @@
package cc.mrbird.febs.server.hr.mapper;
import cc.mrbird.febs.server.hr.entity.Folder;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * 文件夹 Mapper
 *
 * @author yz
 * @date 2021-02-05 22:51:02
 */
public interface FolderMapper extends BaseMapper<Folder> {
}
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/FolderMapper.xml
New file
@@ -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="cc.mrbird.febs.server.hr.mapper.FolderMapper">
</mapper>
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IFilesUploadService.java
New file
@@ -0,0 +1,55 @@
package cc.mrbird.febs.server.hr.service;
import cc.mrbird.febs.server.hr.entity.FilesUpload;
import cc.mrbird.febs.common.core.entity.QueryRequest;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
 * 文件上传 Service接口
 *
 * @author yz
 * @date 2021-02-05 22:51:00
 */
public interface IFilesUploadService extends IService<FilesUpload> {
    /**
     * 查询(分页)
     *
     * @param request QueryRequest
     * @param filesUpload filesUpload
     * @return IPage<FilesUpload>
     */
    IPage<FilesUpload> findFilesUploads(QueryRequest request, FilesUpload filesUpload);
    /**
     * 查询(所有)
     *
     * @param filesUpload filesUpload
     * @return List<FilesUpload>
     */
    List<FilesUpload> findFilesUploads(FilesUpload filesUpload);
    /**
     * 新增
     *
     * @param filesUpload filesUpload
     */
    void createFilesUpload(FilesUpload filesUpload);
    /**
     * 修改
     *
     * @param filesUpload filesUpload
     */
    void updateFilesUpload(FilesUpload filesUpload);
    /**
     * 删除
     *
     * @param filesUpload filesUpload
     */
    void deleteFilesUpload(FilesUpload filesUpload);
}
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IFolderService.java
New file
@@ -0,0 +1,55 @@
package cc.mrbird.febs.server.hr.service;
import cc.mrbird.febs.server.hr.entity.Folder;
import cc.mrbird.febs.common.core.entity.QueryRequest;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
 * 文件夹 Service接口
 *
 * @author yz
 * @date 2021-02-05 22:51:02
 */
public interface IFolderService extends IService<Folder> {
    /**
     * 查询(分页)
     *
     * @param request QueryRequest
     * @param folder folder
     * @return IPage<Folder>
     */
    IPage<Folder> findFolders(QueryRequest request, Folder folder);
    /**
     * 查询(所有)
     *
     * @param folder folder
     * @return List<Folder>
     */
    List<Folder> findFolders(Folder folder);
    /**
     * 新增
     *
     * @param folder folder
     */
    void createFolder(Folder folder);
    /**
     * 修改
     *
     * @param folder folder
     */
    void updateFolder(Folder folder);
    /**
     * 删除
     *
     * @param folder folder
     */
    void deleteFolder(Folder folder);
}
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/FilesUploadServiceImpl.java
New file
@@ -0,0 +1,71 @@
package cc.mrbird.febs.server.hr.service.impl;
import cc.mrbird.febs.server.hr.entity.FilesUpload;
import cc.mrbird.febs.server.hr.mapper.FilesUploadMapper;
import cc.mrbird.febs.server.hr.service.IFilesUploadService;
import cn.hutool.core.util.StrUtil;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.annotation.Propagation;
import lombok.RequiredArgsConstructor;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import cc.mrbird.febs.common.core.entity.QueryRequest;
import java.util.List;
/**
 * 文件上传 Service实现
 *
 * @author yz
 * @date 2021-02-05 22:51:00
 */
@Service
@RequiredArgsConstructor
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
public class FilesUploadServiceImpl extends ServiceImpl<FilesUploadMapper, FilesUpload> implements IFilesUploadService {
    private final FilesUploadMapper filesUploadMapper;
    @Override
    public IPage<FilesUpload> findFilesUploads(QueryRequest request, FilesUpload filesUpload) {
        LambdaQueryWrapper<FilesUpload> queryWrapper = new LambdaQueryWrapper<>();
        Page<FilesUpload> page = new Page<>(request.getPageNum(), request.getPageSize());
        return this.page(page, queryWrapper);
    }
    @Override
    public List<FilesUpload> findFilesUploads(FilesUpload filesUpload) {
        LambdaQueryWrapper<FilesUpload> queryWrapper = new LambdaQueryWrapper<>();
        if (null != filesUpload.getFolderid()){
            queryWrapper.eq(FilesUpload::getFolderid,filesUpload.getFolderid());
        }
        if (StrUtil.isNotBlank(filesUpload.getFilesname())){
            queryWrapper.like(FilesUpload::getFilesname,filesUpload.getFilesname()) ;
        }
        queryWrapper.orderByDesc(FilesUpload::getModifytime);
        return this.baseMapper.selectList(queryWrapper);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void createFilesUpload(FilesUpload filesUpload) {
        this.save(filesUpload);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void updateFilesUpload(FilesUpload filesUpload) {
        this.saveOrUpdate(filesUpload);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void deleteFilesUpload(FilesUpload filesUpload) {
        LambdaQueryWrapper<FilesUpload> wapper = new LambdaQueryWrapper<>();
        // TODO 设置删除条件
        this.remove(wapper);
    }
}
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/FolderServiceImpl.java
New file
@@ -0,0 +1,79 @@
package cc.mrbird.febs.server.hr.service.impl;
import cc.mrbird.febs.common.core.constant.ModuleCode;
import cc.mrbird.febs.common.core.utils.FebsUtil;
import cc.mrbird.febs.common.core.utils.SequenceUtil;
import cc.mrbird.febs.server.hr.entity.FilesUpload;
import cc.mrbird.febs.server.hr.entity.Folder;
import cc.mrbird.febs.server.hr.mapper.FolderMapper;
import cc.mrbird.febs.server.hr.service.IFolderService;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.annotation.Propagation;
import lombok.RequiredArgsConstructor;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import cc.mrbird.febs.common.core.entity.QueryRequest;
import java.util.Date;
import java.util.List;
import java.util.Optional;
/**
 * 文件夹 Service实现
 *
 * @author yz
 * @date 2021-02-05 22:51:02
 */
@Service
@RequiredArgsConstructor
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
public class FolderServiceImpl extends ServiceImpl<FolderMapper, Folder> implements IFolderService {
    private final String operatorId = Optional.ofNullable(FebsUtil.getCurrentUser())
            .map(u -> u.getUserId().toString())
            .orElse("1");
    @Override
    public IPage<Folder> findFolders(QueryRequest request, Folder folder) {
        LambdaQueryWrapper<Folder> queryWrapper = new LambdaQueryWrapper<>();
        // TODO 设置查询条件
        Page<Folder> page = new Page<>(request.getPageNum(), request.getPageSize());
        return this.page(page, queryWrapper);
    }
    @Override
    public List<Folder> findFolders(Folder folder) {
        LambdaQueryWrapper<Folder> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(Folder::getDelFlag,0).orderByAsc(Folder::getSort);
        return this.baseMapper.selectList(queryWrapper);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void createFolder(Folder folder) {
        folder.setFolderid(SequenceUtil.generateId(0L, ModuleCode.HR_FIlE));
        folder.setCreator(operatorId);
        folder.setModifier(operatorId);
        folder.setCreatetime(new Date());
        folder.setModifytime(new Date());
        this.save(folder);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void updateFolder(Folder folder) {
        this.saveOrUpdate(folder);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void deleteFolder(Folder folder) {
        LambdaUpdateWrapper<Folder> wapper = new LambdaUpdateWrapper<>();
        wapper.eq(Folder::getFolderid,folder.getFolderid()).setSql("delFlag = 1");
        // TODO 设置删除条件
        this.update(wapper);
    }
}
febs-server/febs-server-hr/src/main/resources/bootstrap.yml
@@ -6,7 +6,7 @@
      config:
        server-addr: ${nacos.url:120.24.23.155}:8848
        group: DEFAULT_GROUP
        prefix: febs-server-Hr
        prefix: febs-server-hr
        file-extension: yaml
      discovery:
        server-addr: ${nacos.url:120.24.23.155}:8848