管道基础大数据平台系统开发-【后端】-Server
13693261870
2022-11-21 bc43c3d892d45ded60e1ba28df9d6a37b7c4d787
数据检索:添加上传文件功能
已修改3个文件
94 ■■■■■ 文件已修改
src/main/java/com/lf/server/controller/data/DataQueryController.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/service/data/DataQueryService.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/sys/AttachMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/controller/data/DataQueryController.java
@@ -4,9 +4,11 @@
import com.lf.server.controller.all.BaseQueryController;
import com.lf.server.entity.all.ResponseMsg;
import com.lf.server.entity.sys.AttachEntity;
import com.lf.server.entity.sys.UserEntity;
import com.lf.server.helper.StringHelper;
import com.lf.server.service.data.DataQueryService;
import com.lf.server.service.sys.AttachService;
import com.lf.server.service.sys.TokenService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -26,6 +28,9 @@
@RestController
@RequestMapping("/dataQuery")
public class DataQueryController extends BaseQueryController {
    @Autowired
    TokenService tokenService;
    @Autowired
    AttachService attachService;
@@ -56,7 +61,6 @@
    @SysLog()
    @ApiOperation(value = "删除文件")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "tabName", value = "表名", dataType = "String", paramType = "query", example = "bd.b_pac_frozensoil"),
            @ApiImplicitParam(name = "ids", value = "ID数组", dataType = "Integer", paramType = "query", example = "1,2")
    })
    @GetMapping(value = "/deletes")
@@ -77,10 +81,22 @@
    @SysLog()
    @ApiOperation(value = "上传文件")
    @ResponseBody
    @ApiImplicitParams({
            @ApiImplicitParam(name = "tabName", value = "表名", dataType = "String", paramType = "query", example = "lf.sys_style"),
            @ApiImplicitParam(name = "eventid", value = "主键", dataType = "String", paramType = "query", example = "fa25979a5ef8b43ba82a0be35b3fb0d4")
    })
    @PostMapping(value = "/uploadFiles")
    public ResponseMsg<Integer> uploadFiles(@RequestParam("file") MultipartFile[] files, HttpServletRequest req) {
    public ResponseMsg<Integer> uploadFiles(String tabName, String eventid, @RequestParam("file") MultipartFile[] files, HttpServletRequest req) {
        try {
            Integer count = dataQueryService.uploadFiles(files, req);
            if (StringHelper.isEmpty(tabName) || StringHelper.isEmpty(eventid)) {
                return fail("参数不能为空", null);
            }
            if (null == files || files.length == 0) {
                return fail("文件上传为空", 0);
            }
            UserEntity ue = tokenService.getCurrentUser(req);
            Integer count = dataQueryService.uploadFiles(ue, tabName, eventid, files, req);
            return success(count);
        } catch (Exception ex) {
src/main/java/com/lf/server/service/data/DataQueryService.java
@@ -1,9 +1,20 @@
package com.lf.server.service.data;
import com.lf.server.entity.all.SettingData;
import com.lf.server.entity.sys.AttachEntity;
import com.lf.server.entity.sys.UserEntity;
import com.lf.server.helper.FileHelper;
import com.lf.server.helper.PathHelper;
import com.lf.server.service.sys.AttachService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
 * 数据检索服务
@@ -11,9 +22,64 @@
 */
@Service
public class DataQueryService {
    public Integer uploadFiles(MultipartFile[] files, HttpServletRequest req) {
    @Autowired
    PathHelper pathHelper;
    @Autowired
    AttachService attachService;
        return 0;
    /**
     * 上传文件
     */
    public Integer uploadFiles(UserEntity ue, String tabName, String eventid, MultipartFile[] files, HttpServletRequest req) throws IOException {
        List<AttachEntity> list = new ArrayList<AttachEntity>();
        for (MultipartFile file : files) {
            if (file.getSize() > SettingData.MAX_FILE_SIZE) {
                continue;
            }
            // 传输文件
            String fileName = file.getOriginalFilename();
            String filePath = pathHelper.getTempPath() + File.separator + fileName;
            File newFile = new File(filePath);
            file.transferTo(newFile);
            double sizes = FileHelper.sizeToMb(file.getSize());
            // 获取MD5
            String md5 = FileHelper.getFileMd5(filePath);
            AttachEntity entity = attachService.selectByGuid(md5);
            AttachEntity ae = getAttachEntity(ue, tabName, eventid, fileName, md5, sizes);
            if (entity != null) {
                ae.setPath(entity.getPath());
                newFile.delete();
            }else {
                String targetPath = pathHelper.getConfig().getUploadPath() + File.separator + ae.getPath();
                newFile.renameTo(new File(targetPath));
            }
            list.add(ae);
        }
        return attachService.inserts(list);
    }
    /**
     * 获取附件实体类
     */
    protected AttachEntity getAttachEntity(UserEntity ue, String tabName, String eventid, String fileName, String md5, double sizes) {
        AttachEntity entity = new AttachEntity();
        entity.setTab(tabName);
        entity.setTabGuid(eventid);
        entity.setName(fileName);
        entity.setGuid(md5);
        String subPath = PathHelper.getUploadPath() + File.separator + md5;
        entity.setPath(subPath);
        entity.setSizes(sizes);
        if (ue != null) {
            entity.setCreateUser(ue.getId());
        }
        return entity;
    }
}
src/main/resources/mapper/sys/AttachMapper.xml
@@ -34,7 +34,7 @@
    </select>
    <select id="selectByTab" resultType="com.lf.server.entity.sys.AttachEntity">
        select * from lf.sys_attach where tab = #{tab} and guid = #{guid}
        select * from lf.sys_attach where tab = #{tab} and tab_guid = #{guid}
    </select>
    <insert id="insert" parameterType="com.lf.server.entity.sys.AttachEntity">