From a326fe39aae269ffe254880fd7e52ca32853edad Mon Sep 17 00:00:00 2001 From: lyd <1419499670@qq.com> Date: Thu, 18 Aug 2022 17:21:04 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=9B=BE=E7=89=87=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E6=9B=B4=E6=96=B0=E4=B8=8E=E7=BC=96=E8=BE=91=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logicflow/rest/StageImageController.java | 16 +++++++ .../logicflow/service/StageImageService.java | 10 ++++ .../service/impl/StageImageServiceImpl.java | 33 ++++++++++++- .../nl/logicflow/utils/StageImageUtil.java | 36 ++++++++++++++ acs/qd/src/store/modules/api.js | 3 +- .../editor/components/DiagramToolbar.vue | 48 ++++++++++++++----- .../editor/components/PropertyPanel.vue | 3 +- .../editor/components/node/html/htmlNode.js | 1 + 8 files changed, 134 insertions(+), 16 deletions(-) create mode 100644 acs/hd/nladmin-system/src/main/java/org/nl/logicflow/utils/StageImageUtil.java diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/logicflow/rest/StageImageController.java b/acs/hd/nladmin-system/src/main/java/org/nl/logicflow/rest/StageImageController.java index 5d4e7a7..4ca934a 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/logicflow/rest/StageImageController.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/logicflow/rest/StageImageController.java @@ -5,13 +5,17 @@ import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.annotation.Log; +import org.nl.domain.LocalStorage; +import org.nl.exception.BadRequestException; import org.nl.logicflow.service.StageImageService; import org.nl.logicflow.service.dto.StageImageDto; +import org.nl.utils.FileUtil; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import java.util.Map; @@ -70,4 +74,16 @@ public class StageImageController { public ResponseEntity selectList() { return new ResponseEntity<>(stageImageService.selectList(), HttpStatus.OK); } + + @PostMapping({"/pictures"}) + @ApiOperation("上传图片") + public ResponseEntity upload(@RequestParam MultipartFile file) { + String suffix = FileUtil.getExtensionName(file.getOriginalFilename()); + if (!"图片".equals(FileUtil.getFileType(suffix))) { + throw new BadRequestException("只能上传图片"); + } else { + LocalStorage localStorage = stageImageService.upload((String)null, file); + return new ResponseEntity(localStorage, HttpStatus.OK); + } + } } diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/logicflow/service/StageImageService.java b/acs/hd/nladmin-system/src/main/java/org/nl/logicflow/service/StageImageService.java index 98d305d..d94da34 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/logicflow/service/StageImageService.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/logicflow/service/StageImageService.java @@ -1,8 +1,10 @@ package org.nl.logicflow.service; import com.alibaba.fastjson.JSONArray; +import org.nl.domain.LocalStorage; import org.nl.logicflow.service.dto.StageImageDto; import org.springframework.data.domain.Pageable; +import org.springframework.web.multipart.MultipartFile; import java.util.Map; @@ -56,4 +58,12 @@ public interface StageImageService { * @return */ JSONArray selectList(); + + /** + * 上传图片 + * @param name + * @param file + * @return + */ + LocalStorage upload(String name, MultipartFile file); } diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/logicflow/service/impl/StageImageServiceImpl.java b/acs/hd/nladmin-system/src/main/java/org/nl/logicflow/service/impl/StageImageServiceImpl.java index 7d2f100..07e3473 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/logicflow/service/impl/StageImageServiceImpl.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/logicflow/service/impl/StageImageServiceImpl.java @@ -2,13 +2,20 @@ package org.nl.logicflow.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.config.FileProperties; +import org.nl.domain.LocalStorage; import org.nl.exception.BadRequestException; import org.nl.logicflow.service.StageImageService; import org.nl.logicflow.service.dto.StageImageDto; +import org.nl.logicflow.utils.StageImageUtil; +import org.nl.repository.LocalStorageRepository; +import org.nl.utils.FileUtil; import org.nl.utils.SecurityUtils; import org.nl.wql.core.bean.ResultBean; import org.nl.wql.core.bean.WQLObject; @@ -16,7 +23,9 @@ import org.nl.wql.util.WqlUtil; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; +import java.io.File; import java.util.Map; /** @@ -28,6 +37,8 @@ import java.util.Map; @RequiredArgsConstructor @Slf4j public class StageImageServiceImpl implements StageImageService { + private final FileProperties properties; + private final LocalStorageRepository localStorageRepository; @Override public Map queryAll(Map whereJson, Pageable page) { String where = "1=1"; @@ -102,10 +113,30 @@ public class StageImageServiceImpl implements StageImageService { JSONObject json = new JSONObject(); json.put("image_uuid", obj.getString("image_uuid")); json.put("image_code", obj.getString("image_code")); - json.put("image_name", obj.getString("image_code").toString().split("-")[0]); + json.put("image_name", obj.getString("image_code").toString().split("\\.")[0]); result.add(json); } return result; } + + @Override + public LocalStorage upload(String name, MultipartFile multipartFile) { + FileUtil.checkSize(this.properties.getMaxSize(), multipartFile.getSize()); + String suffix = FileUtil.getExtensionName(multipartFile.getOriginalFilename()); + String type = FileUtil.getFileType(suffix); + File file = StageImageUtil.upload(multipartFile, this.properties.getPath().getPath() + type + File.separator); + if (ObjectUtil.isNull(file)) { + throw new BadRequestException("上传失败"); + } else { + try { + name = StrUtil.isEmpty(name) ? FileUtil.getFileNameNoEx(multipartFile.getOriginalFilename()) : name; + LocalStorage localStorage = new LocalStorage(file.getName(), name, suffix, file.getPath(), type, FileUtil.getSize(multipartFile.getSize())); + return (LocalStorage)this.localStorageRepository.save(localStorage); + } catch (Exception var7) { + FileUtil.del(file); + throw var7; + } + } + } } diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/logicflow/utils/StageImageUtil.java b/acs/hd/nladmin-system/src/main/java/org/nl/logicflow/utils/StageImageUtil.java new file mode 100644 index 0000000..0676a31 --- /dev/null +++ b/acs/hd/nladmin-system/src/main/java/org/nl/logicflow/utils/StageImageUtil.java @@ -0,0 +1,36 @@ +package org.nl.logicflow.utils; + +import lombok.extern.slf4j.Slf4j; +import org.nl.utils.FileUtil; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; + +/** + * @Author: lyd + * @Description: 图片上传的工具类 + * @Date: 2022-08-18 + */ +@Slf4j +public class StageImageUtil extends cn.hutool.core.io.FileUtil { + public static File upload(MultipartFile file, String filePath) { + FileUtil fileUtil = new FileUtil(); + String name = fileUtil.getFileNameNoEx(file.getOriginalFilename()); + String suffix = fileUtil.getExtensionName(file.getOriginalFilename()); + + try { + String fileName = name + "." + suffix; + String path = filePath + fileName; + File dest = (new File(path)).getCanonicalFile(); + if (!dest.getParentFile().exists() && !dest.getParentFile().mkdirs()) { + System.out.println("was not successful."); + } + + file.transferTo(dest); + return dest; + } catch (Exception var10) { + log.error(var10.getMessage(), var10); + return null; + } + } +} diff --git a/acs/qd/src/store/modules/api.js b/acs/qd/src/store/modules/api.js index f65785e..c4249ea 100644 --- a/acs/qd/src/store/modules/api.js +++ b/acs/qd/src/store/modules/api.js @@ -9,7 +9,8 @@ const api = { // 实时控制台 socketApi: baseUrl + '/websocket?token=kl', // 图片上传 - imagesUploadApi: baseUrl + '/api/localStorage/pictures', + // imagesUploadApi: baseUrl + '/api/localStorage/pictures', + imagesUploadApi: baseUrl + '/api/stageImage/pictures', // 修改头像 updateAvatarApi: baseUrl + '/api/users/updateAvatar', // 上传文件到七牛云 diff --git a/acs/qd/src/views/system/logicflow/editor/components/DiagramToolbar.vue b/acs/qd/src/views/system/logicflow/editor/components/DiagramToolbar.vue index fcede31..51c10c5 100644 --- a/acs/qd/src/views/system/logicflow/editor/components/DiagramToolbar.vue +++ b/acs/qd/src/views/system/logicflow/editor/components/DiagramToolbar.vue @@ -24,40 +24,64 @@
- + + +
- + + +
- + + +
- + + +
- + + +
- + + +
- + + +
- + + +
- + + +
- + + +
- + + +
- + + +
diff --git a/acs/qd/src/views/system/logicflow/editor/components/PropertyPanel.vue b/acs/qd/src/views/system/logicflow/editor/components/PropertyPanel.vue index ad0a1ea..4d40af3 100644 --- a/acs/qd/src/views/system/logicflow/editor/components/PropertyPanel.vue +++ b/acs/qd/src/views/system/logicflow/editor/components/PropertyPanel.vue @@ -135,7 +135,6 @@
设备绑定 -