Commit 0d502334 authored by 周昊's avatar 周昊

1、添加文件上传模块

parent cda06db8
package com.ruoyi.system.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.Date;
/**
* 文件对象 sys_file
*
* @author hzhou
* @date 2022-08-18
*/
public class SysUploadFile extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键id */
private Long fileId;
/** 文件名 */
@Excel(name = "文件名")
private String fileName;
/** 文件路径 */
@Excel(name = "文件路径")
private String filePath;
/** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date createDate;
public void setFileId(Long fileId)
{
this.fileId = fileId;
}
public Long getFileId()
{
return fileId;
}
public void setFileName(String fileName)
{
this.fileName = fileName;
}
public String getFileName()
{
return fileName;
}
public void setFilePath(String filePath)
{
this.filePath = filePath;
}
public String getFilePath()
{
return filePath;
}
public void setCreateDate(Date createDate)
{
this.createDate = createDate;
}
public Date getCreateDate()
{
return createDate;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("fileId", getFileId())
.append("fileName", getFileName())
.append("filePath", getFilePath())
.append("createBy", getCreateBy())
.append("createDate", getCreateDate())
.toString();
}
}
package com.ruoyi.system.mapper;
import com.ruoyi.system.domain.SysUploadFile;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 文件Mapper接口
*
* @author hzhou
* @date 2022-08-18
*/
public interface SysUploadFileMapper
{
/**
* 查询文件
*
* @param fileId 文件主键
* @return 文件
*/
public SysUploadFile selectSysFileByFileId(Long fileId);
/**
* 查询文件列表
*
* @param sysUploadFile 文件
* @return 文件集合
*/
public List<SysUploadFile> selectSysFileList(SysUploadFile sysUploadFile);
/**
* 新增文件
*
* @param sysUploadFile 文件
* @return 结果
*/
public int insertSysFile(SysUploadFile sysUploadFile);
/**
* 修改文件
*
* @param sysUploadFile 文件
* @return 结果
*/
public int updateSysFile(SysUploadFile sysUploadFile);
/**
* 删除文件
*
* @param fileId 文件主键
* @return 结果
*/
public int deleteSysFileByFileId(Long fileId);
/**
* 批量删除文件
*
* @param fileIds 需要删除的数据主键集合
* @return 结果
*/
public int deleteSysFileByFileIds(Long[] fileIds);
public List<SysUploadFile> selectSysFileByFileIds(@Param("fileIds") List<Long> fileIds);
}
package com.ruoyi.system.service;
import com.ruoyi.system.domain.SysUploadFile;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
* 文件Service接口
*
* @author hzhou
* @date 2022-08-18
*/
public interface ISysUploadFileService
{
/**
* 查询文件
*
* @param fileId 文件主键
* @return 文件
*/
public SysUploadFile selectSysFileByFileId(Long fileId);
/**
* 查询文件列表
*
* @param sysUploadFile 文件
* @return 文件集合
*/
public List<SysUploadFile> selectSysFileList(SysUploadFile sysUploadFile);
/**
* 新增文件
*
* @param sysUploadFile 文件
* @return 结果
*/
public int insertSysFile(SysUploadFile sysUploadFile);
/**
* 修改文件
*
* @param sysUploadFile 文件
* @return 结果
*/
public int updateSysFile(SysUploadFile sysUploadFile);
/**
* 批量删除文件
*
* @param fileIds 需要删除的文件主键集合
* @return 结果
*/
public int deleteSysFileByFileIds(Long[] fileIds);
/**
* 删除文件信息
*
* @param fileId 文件主键
* @return 结果
*/
public int deleteSysFileByFileId(Long fileId);
/**
* 上传通用服务
*
* @param file 文件
* @return 结果
*/
public Long upload(MultipartFile file,String filePath,String userName,String url);
public List<SysUploadFile> selectSysFileByFileIds(List<Long> fileIds);
}
package com.ruoyi.system.service.impl;
import com.ruoyi.common.utils.file.FileUploadUtils;
import com.ruoyi.system.domain.SysUploadFile;
import com.ruoyi.system.mapper.SysUploadFileMapper;
import com.ruoyi.system.service.ISysUploadFileService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* 文件Service业务层处理
*
* @author hzhou
* @date 2022-08-18
*/
@Service
public class SysUploadFileServiceImpl implements ISysUploadFileService
{
@Autowired
private SysUploadFileMapper sysUploadFileMapper;
/**
* 查询文件
*
* @param fileId 文件主键
* @return 文件
*/
@Override
public SysUploadFile selectSysFileByFileId(Long fileId)
{
return sysUploadFileMapper.selectSysFileByFileId(fileId);
}
/**
* 查询文件列表
*
* @param sysUploadFile 文件
* @return 文件
*/
@Override
public List<SysUploadFile> selectSysFileList(SysUploadFile sysUploadFile)
{
return sysUploadFileMapper.selectSysFileList(sysUploadFile);
}
/**
* 新增文件
*
* @param sysUploadFile 文件
* @return 结果
*/
@Override
public int insertSysFile(SysUploadFile sysUploadFile)
{
return sysUploadFileMapper.insertSysFile(sysUploadFile);
}
/**
* 修改文件
*
* @param sysUploadFile 文件
* @return 结果
*/
@Override
public int updateSysFile(SysUploadFile sysUploadFile)
{
return sysUploadFileMapper.updateSysFile(sysUploadFile);
}
/**
* 批量删除文件
*
* @param fileIds 需要删除的文件主键
* @return 结果
*/
@Override
public int deleteSysFileByFileIds(Long[] fileIds)
{
return sysUploadFileMapper.deleteSysFileByFileIds(fileIds);
}
/**
* 删除文件信息
*
* @param fileId 文件主键
* @return 结果
*/
@Override
public int deleteSysFileByFileId(Long fileId)
{
return sysUploadFileMapper.deleteSysFileByFileId(fileId);
}
@Override
public Long upload(MultipartFile file,String filePath,String userName,String url) {
int result;
SysUploadFile sysFile = new SysUploadFile();
try
{
// 上传并返回新文件名称
String fileName = file.getOriginalFilename();
String newFileName = FileUploadUtils.upload(filePath, file);
// 正式部署文件上传公网地址
url = url + newFileName;
sysFile.setFileName(fileName);
sysFile.setFilePath(url);
sysFile.setCreateBy(userName);
sysFile.setCreateDate(new Date());
result = insertSysFile(sysFile);
}
catch (Exception e)
{
e.printStackTrace();
throw new RuntimeException("上传文件失败..");
}
return sysFile.getFileId();
}
@Override
public List<SysUploadFile> selectSysFileByFileIds(List<Long> fileIds) {
if (fileIds.isEmpty()) return new ArrayList<>();
return sysUploadFileMapper.selectSysFileByFileIds(fileIds);
}
}
<?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.ruoyi.system.mapper.SysUploadFileMapper">
<resultMap type="com.ruoyi.system.domain.SysUploadFile" id="SysFileResult">
<result property="fileId" column="file_id" />
<result property="fileName" column="file_name" />
<result property="filePath" column="file_path" />
<result property="createBy" column="create_by" />
<result property="createDate" column="create_date" />
</resultMap>
<sql id="selectSysFileVo">
select file_id, file_name, file_path, create_by, create_date from sys_file
</sql>
<select id="selectSysFileList" parameterType="com.ruoyi.system.domain.SysUploadFile" resultMap="SysFileResult">
<include refid="selectSysFileVo"/>
<where>
<if test="fileName != null and fileName != ''"> and file_name like concat('%', #{fileName}, '%')</if>
<if test="filePath != null and filePath != ''"> and file_path = #{filePath}</if>
<if test="createDate != null "> and create_date = #{createDate}</if>
</where>
</select>
<select id="selectSysFileByFileId" parameterType="Long" resultMap="SysFileResult">
<include refid="selectSysFileVo"/>
where file_id = #{fileId}
</select>
<select id="selectSysFileByFileIds" resultMap="SysFileResult">
<include refid="selectSysFileVo"/>
where file_id in
<foreach item="fileId" collection="fileIds" open="(" separator="," close=")">
#{fileId}
</foreach>
</select>
<insert id="insertSysFile" parameterType="com.ruoyi.system.domain.SysUploadFile" useGeneratedKeys="true" keyProperty="fileId">
insert into sys_file
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="fileName != null">file_name,</if>
<if test="filePath != null">file_path,</if>
<if test="createBy != null">create_by,</if>
<if test="createDate != null">create_date,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="fileName != null">#{fileName},</if>
<if test="filePath != null">#{filePath},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createDate != null">#{createDate},</if>
</trim>
</insert>
<update id="updateSysFile" parameterType="com.ruoyi.system.domain.SysUploadFile">
update sys_file
<trim prefix="SET" suffixOverrides=",">
<if test="fileName != null">file_name = #{fileName},</if>
<if test="filePath != null">file_path = #{filePath},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createDate != null">create_date = #{createDate},</if>
</trim>
where file_id = #{fileId}
</update>
<delete id="deleteSysFileByFileId" parameterType="Long">
delete from sys_file where file_id = #{fileId}
</delete>
<delete id="deleteSysFileByFileIds" parameterType="String">
delete from sys_file where file_id in
<foreach item="fileId" collection="array" open="(" separator="," close=")">
#{fileId}
</foreach>
</delete>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment