From a819d1e9ad3d4dda173e8c0ee1b6a255da6203a3 Mon Sep 17 00:00:00 2001 From: gaoxiong Date: Mon, 12 May 2025 00:19:07 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E6=9C=BA=E7=BB=84=E5=92=8C=E9=83=A8?= =?UTF-8?q?=E4=BB=B6=E5=8A=9F=E8=83=BD=E5=AE=8C=E6=88=90100%=202=E3=80=81?= =?UTF-8?q?=E9=85=8D=E5=90=88app=E7=AB=AF=E4=BF=AE=E6=94=B9=E5=9B=BE?= =?UTF-8?q?=E5=83=8F=E5=92=8C=E7=BC=BA=E9=99=B7=E7=9B=B8=E5=85=B3=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/dite/znpt/constant/Message.java | 1 + .../java/com/dite/znpt/converts/Converts.java | 2 + .../domain/entity/ImageCollectEntity.java | 4 - .../dite/znpt/domain/entity/ImageEntity.java | 4 + .../dite/znpt/domain/vo/ImageSimpleReq.java | 29 +++++++ .../dite/znpt/domain/vo/OutWorkDefectReq.java | 27 +++++++ .../com/dite/znpt/enums/DefectSourceEnum.java | 3 +- .../com/dite/znpt/enums/ImageSourceEnum.java | 55 +++++++++++++ .../com/dite/znpt/service/DefectService.java | 10 +++ .../znpt/service/ImageCollectService.java | 2 +- .../com/dite/znpt/service/ImageService.java | 12 +-- .../znpt/service/impl/DefectServiceImpl.java | 37 ++++++++- .../service/impl/ImageCollectServiceImpl.java | 14 +++- .../znpt/service/impl/ImageServiceImpl.java | 78 ++++++++++++++++--- .../src/main/resources/mapper/ImageMapper.xml | 4 +- .../znpt/web/controller/CommonController.java | 23 +++++- .../znpt/web/controller/ImageController.java | 20 +++-- web/src/main/resources/application-dev.yml | 4 +- 18 files changed, 286 insertions(+), 43 deletions(-) create mode 100644 core/src/main/java/com/dite/znpt/domain/vo/ImageSimpleReq.java create mode 100644 core/src/main/java/com/dite/znpt/domain/vo/OutWorkDefectReq.java create mode 100644 core/src/main/java/com/dite/znpt/enums/ImageSourceEnum.java diff --git a/core/src/main/java/com/dite/znpt/constant/Message.java b/core/src/main/java/com/dite/znpt/constant/Message.java index f1ed7a3..da8d4db 100644 --- a/core/src/main/java/com/dite/znpt/constant/Message.java +++ b/core/src/main/java/com/dite/znpt/constant/Message.java @@ -19,4 +19,5 @@ public class Message implements Serializable { public static final String PROJECT_ID_IS_NOT_EXIST = "项目id不存在"; public static final String TURBINE_ID_IS_NOT_EXIST = "机组id不存在"; public static final String PART_ID_IS_NOT_EXIST = "部件id不存在"; + public static final String IMAGE_SOURCE_I_NOT_EXIST_OR_ILLEGAL = "部件id不存在"; } diff --git a/core/src/main/java/com/dite/znpt/converts/Converts.java b/core/src/main/java/com/dite/znpt/converts/Converts.java index 3998a5d..699c4ab 100644 --- a/core/src/main/java/com/dite/znpt/converts/Converts.java +++ b/core/src/main/java/com/dite/znpt/converts/Converts.java @@ -19,6 +19,8 @@ public interface Converts { List toImageEntity(List list); + List toImageSimpleReq(List list); + ImageCollectEntity toImageCollectEntity(ImageCollectReq req); DefectEntity toDefectEntity(DefectReq req); diff --git a/core/src/main/java/com/dite/znpt/domain/entity/ImageCollectEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/ImageCollectEntity.java index b87a04c..dbd7331 100644 --- a/core/src/main/java/com/dite/znpt/domain/entity/ImageCollectEntity.java +++ b/core/src/main/java/com/dite/znpt/domain/entity/ImageCollectEntity.java @@ -32,10 +32,6 @@ public class ImageCollectEntity extends AuditableEntity implements Serializable @TableId(value = "collect_id", type = IdType.ASSIGN_UUID) private String collectId; - @ApiModelProperty("部件id") - @TableField("part_id") - private String partId; - @ApiModelProperty("拍摄时间-起") @TableField("shooting_time_begin") private LocalDateTime shootingTimeBegin; diff --git a/core/src/main/java/com/dite/znpt/domain/entity/ImageEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/ImageEntity.java index 8a87c8c..2955ab4 100644 --- a/core/src/main/java/com/dite/znpt/domain/entity/ImageEntity.java +++ b/core/src/main/java/com/dite/znpt/domain/entity/ImageEntity.java @@ -33,6 +33,10 @@ public class ImageEntity extends AuditableEntity implements Serializable { @TableId(value = "image_id", type = IdType.ASSIGN_UUID) private String imageId; + @ApiModelProperty("部件id") + @TableField("part_id") + private String partId; + @ApiModelProperty("图像采集id") @TableField("collect_id") private String collectId; diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ImageSimpleReq.java b/core/src/main/java/com/dite/znpt/domain/vo/ImageSimpleReq.java new file mode 100644 index 0000000..e0000d0 --- /dev/null +++ b/core/src/main/java/com/dite/znpt/domain/vo/ImageSimpleReq.java @@ -0,0 +1,29 @@ +package com.dite.znpt.domain.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * @Author: gaoxiong + * @Date: 2025/5/11 22:29 + * @Description: + */ +@Data +@ApiModel("图像简要信息请求实体") +public class ImageSimpleReq implements Serializable { + @Serial + private static final long serialVersionUID = 4813411833253078204L; + + @ApiModelProperty(name = "部件id", required = true) + private String partId; + + @ApiModelProperty(name = "图像来源,枚举:ImageSourceEnum", required = true) + private String imageSource; + + @ApiModelProperty(name = "图像路径", required = true) + private String imagePath; +} diff --git a/core/src/main/java/com/dite/znpt/domain/vo/OutWorkDefectReq.java b/core/src/main/java/com/dite/znpt/domain/vo/OutWorkDefectReq.java new file mode 100644 index 0000000..4b910e7 --- /dev/null +++ b/core/src/main/java/com/dite/znpt/domain/vo/OutWorkDefectReq.java @@ -0,0 +1,27 @@ +package com.dite.znpt.domain.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * @Author: gaoxiong + * @Date: 2025/5/11 21:20 + * @Description: + */ +@Data +@ApiModel("外部工作上报缺陷请求实体") +public class OutWorkDefectReq extends DefectReq implements Serializable { + + @Serial + private static final long serialVersionUID = -9109852601298547208L; + + @ApiModelProperty(name = "图像路径", required = true) + private String imagePath; + + @ApiModelProperty(name = "部件id", required = true) + private String partId; +} diff --git a/core/src/main/java/com/dite/znpt/enums/DefectSourceEnum.java b/core/src/main/java/com/dite/znpt/enums/DefectSourceEnum.java index e05bcdd..92d59b6 100644 --- a/core/src/main/java/com/dite/znpt/enums/DefectSourceEnum.java +++ b/core/src/main/java/com/dite/znpt/enums/DefectSourceEnum.java @@ -14,7 +14,8 @@ import java.util.List; @Getter public enum DefectSourceEnum { AI("AI", "智能识别"), - MANUAL("MANUAL", "人工标注"); + MANUAL("MANUAL", "人工标注"), + OUT_WORK("MANUAL", "外部工作"); private final String code; private final String desc; diff --git a/core/src/main/java/com/dite/znpt/enums/ImageSourceEnum.java b/core/src/main/java/com/dite/znpt/enums/ImageSourceEnum.java new file mode 100644 index 0000000..9532d99 --- /dev/null +++ b/core/src/main/java/com/dite/znpt/enums/ImageSourceEnum.java @@ -0,0 +1,55 @@ +package com.dite.znpt.enums; + +import cn.hutool.json.JSONObject; +import lombok.Getter; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Author: gaoxiong + * @Date: 2025/5/11 23:35 + * @Description: + */ +@Getter +public enum ImageSourceEnum { + COLLECT("collect", "图像采集", Boolean.TRUE), + OUT_WORK("out-work", "外部工作", Boolean.TRUE), + LIGHTNING_PROTECTING_WORK("lightning-protection-work", "防雷工作", Boolean.FALSE); + + private final String code; + private final String desc; + private final boolean isDefectImage; + + ImageSourceEnum(String code, String desc, boolean isDefectImage){ + this.code = code; + this.desc = desc; + this.isDefectImage = isDefectImage; + } + + public static ImageSourceEnum getByCode(String code){ + for (ImageSourceEnum e : ImageSourceEnum.values() ) { + if(e.code.equals(code)){ + return e; + } + } + return null; + } + + public static String getDescByCode(String code){ + ImageSourceEnum e = getByCode(code); + return null == e ? null : e.desc; + } + + public static List list(Boolean isDefectImage){ + List list = new ArrayList<>(ImageSourceEnum.values().length); + for (ImageSourceEnum e : ImageSourceEnum.values() ) { + if(isDefectImage.equals(e.isDefectImage)){ + JSONObject jsonObject = new JSONObject(); + jsonObject.set(e.code, e.desc); + list.add(jsonObject); + } + } + return list; + } +} diff --git a/core/src/main/java/com/dite/znpt/service/DefectService.java b/core/src/main/java/com/dite/znpt/service/DefectService.java index b29c40d..1a0fdb1 100644 --- a/core/src/main/java/com/dite/znpt/service/DefectService.java +++ b/core/src/main/java/com/dite/znpt/service/DefectService.java @@ -5,6 +5,7 @@ import com.dite.znpt.domain.entity.DefectEntity; import com.dite.znpt.domain.vo.DefectListReq; import com.dite.znpt.domain.vo.DefectReq; import com.dite.znpt.domain.vo.DefectResp; +import com.dite.znpt.domain.vo.OutWorkDefectReq; import java.util.List; @@ -47,6 +48,15 @@ public interface DefectService extends IService { **/ void save(String imageId, DefectReq req); + /** + * 功能描述:新增外部工作缺陷记录 + * + * @param list + * @author huise23 + * @date 2025/04/11 23:17 + **/ + List saveOutWorkDefect(List list); + /** * 功能描述:更新缺陷记录 * diff --git a/core/src/main/java/com/dite/znpt/service/ImageCollectService.java b/core/src/main/java/com/dite/znpt/service/ImageCollectService.java index 9c6819c..1c961bf 100644 --- a/core/src/main/java/com/dite/znpt/service/ImageCollectService.java +++ b/core/src/main/java/com/dite/znpt/service/ImageCollectService.java @@ -10,5 +10,5 @@ import com.dite.znpt.domain.vo.ImageCollectReq; * @Description: */ public interface ImageCollectService extends IService { - void save(String departId, ImageCollectReq req); + void save(String partId, ImageCollectReq req); } diff --git a/core/src/main/java/com/dite/znpt/service/ImageService.java b/core/src/main/java/com/dite/znpt/service/ImageService.java index cd24553..d4e1115 100644 --- a/core/src/main/java/com/dite/znpt/service/ImageService.java +++ b/core/src/main/java/com/dite/znpt/service/ImageService.java @@ -2,12 +2,10 @@ package com.dite.znpt.service; import com.baomidou.mybatisplus.extension.service.IService; import com.dite.znpt.domain.entity.ImageEntity; -import com.dite.znpt.domain.vo.ImageListReq; -import com.dite.znpt.domain.vo.ImageListResp; -import com.dite.znpt.domain.vo.ImageReq; -import com.dite.znpt.domain.vo.ImageResp; +import com.dite.znpt.domain.vo.*; import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -21,9 +19,13 @@ public interface ImageService extends IService { List page(ImageListReq req); + List batchSaveByImageSimpleReq(List list); + ImageResp detail(String imageId); - List batchUpload(String departId, MultipartFile[] files); + List batchUploadDefectImage(String partId, String imageSource, MultipartFile[] files); + + String uploadCommonImage(String imageSource, MultipartFile file) throws IOException; void delete(String imageId); } diff --git a/core/src/main/java/com/dite/znpt/service/impl/DefectServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/DefectServiceImpl.java index ac08810..b2cd108 100644 --- a/core/src/main/java/com/dite/znpt/service/impl/DefectServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/impl/DefectServiceImpl.java @@ -1,12 +1,12 @@ package com.dite.znpt.service.impl; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dite.znpt.constant.Message; import com.dite.znpt.converts.Converts; import com.dite.znpt.domain.entity.DefectEntity; -import com.dite.znpt.domain.vo.DefectListReq; -import com.dite.znpt.domain.vo.DefectReq; -import com.dite.znpt.domain.vo.DefectResp; +import com.dite.znpt.domain.entity.ImageEntity; +import com.dite.znpt.domain.vo.*; import com.dite.znpt.enums.DefectSourceEnum; import com.dite.znpt.enums.DefectTypeEnum; import com.dite.znpt.enums.RepairStatusEnum; @@ -15,13 +15,16 @@ import com.dite.znpt.service.DefectService; import com.dite.znpt.mapper.DefectMapper; import com.dite.znpt.service.ImageService; import org.springframework.stereotype.Service; -import cn.hutool.core.collection.CollUtil; import lombok.RequiredArgsConstructor; import com.dite.znpt.util.PageUtil; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; /** * @author huise23 @@ -87,9 +90,35 @@ public class DefectServiceImpl extends ServiceImpl i throw new ServiceException(Message.IMAGE_ID_IS_NOT_EXIST); } DefectEntity defectEntity = Converts.INSTANCE.toDefectEntity(req); + defectEntity.setImageId(imageId); this.save(defectEntity); } + /** + * 功能描述:新增外部工作缺陷记录 + * + * @param list + * @author huise23 + * @date 2025/04/11 23:17 + **/ + @Override + public List saveOutWorkDefect(List list) { + List imageSimpleReqList = Converts.INSTANCE.toImageSimpleReq(list); + List imageEntityList = imageService.batchSaveByImageSimpleReq(imageSimpleReqList); + Map imageMap = imageEntityList.stream().collect(Collectors.toMap(k->k.getPartId().concat(StrUtil.COLON).concat(k.getImagePath()), Function.identity())); + List defectEntityList = new ArrayList<>(); + list.stream().forEach(req -> { + String key = req.getPartId().concat(StrUtil.COLON).concat(req.getImagePath()); + if(imageMap.containsKey(key)){ + DefectEntity defectEntity = Converts.INSTANCE.toDefectEntity(req); + defectEntity.setImageId(imageMap.get(key).getImageId()); + defectEntityList.add(defectEntity); + } + }); + this.saveBatch(defectEntityList); + return defectEntityList; + } + /** * 功能描述:更新缺陷记录 * diff --git a/core/src/main/java/com/dite/znpt/service/impl/ImageCollectServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/ImageCollectServiceImpl.java index 8fbe3d3..9f8f85c 100644 --- a/core/src/main/java/com/dite/znpt/service/impl/ImageCollectServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/impl/ImageCollectServiceImpl.java @@ -9,10 +9,12 @@ import com.dite.znpt.converts.Converts; import com.dite.znpt.domain.entity.ImageCollectEntity; import com.dite.znpt.domain.entity.ImageEntity; import com.dite.znpt.domain.vo.ImageCollectReq; +import com.dite.znpt.enums.ImageSourceEnum; import com.dite.znpt.exception.ServiceException; import com.dite.znpt.mapper.ImageCollectMapper; import com.dite.znpt.service.ImageCollectService; import com.dite.znpt.service.ImageService; +import com.dite.znpt.service.PartService; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -35,26 +37,32 @@ public class ImageCollectServiceImpl extends ServiceImpl imageList = Converts.INSTANCE.toImageEntity(req.getImageList()); - String path_prefix = permPath.concat(StrUtil.BACKSLASH).concat(partId).concat(StrUtil.BACKSLASH); + String path_prefix = permPath.concat(StrUtil.BACKSLASH).concat(ImageSourceEnum.COLLECT.getCode()).concat(StrUtil.BACKSLASH).concat(partId).concat(StrUtil.BACKSLASH); imageList.stream().forEach(image -> { + image.setPartId(partId); image.setCollectId(imageCollect.getCollectId()); String path = path_prefix + image.getImageName(); File file = new File(image.getImagePath()); if (file.exists()) { byte[] bytes = FileUtil.readBytes(file); FileUtil.writeBytes(bytes, path); - FileUtil.del(file); image.setImagePath(path); + FileUtil.del(file); }else { imageList.remove(image); } diff --git a/core/src/main/java/com/dite/znpt/service/impl/ImageServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/ImageServiceImpl.java index 3f6b053..de2a2e2 100644 --- a/core/src/main/java/com/dite/znpt/service/impl/ImageServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/impl/ImageServiceImpl.java @@ -8,19 +8,17 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dite.znpt.constant.Message; import com.dite.znpt.domain.entity.ImageEntity; -import com.dite.znpt.domain.vo.ImageListReq; -import com.dite.znpt.domain.vo.ImageListResp; -import com.dite.znpt.domain.vo.ImageReq; -import com.dite.znpt.domain.vo.ImageResp; -import com.dite.znpt.enums.ImageTypeEnum; -import com.dite.znpt.enums.ShootingMethodEnum; -import com.dite.znpt.enums.WeatherEnum; +import com.dite.znpt.domain.entity.PartEntity; +import com.dite.znpt.domain.vo.*; +import com.dite.znpt.enums.*; import com.dite.znpt.exception.ServiceException; import com.dite.znpt.mapper.ImageMapper; import com.dite.znpt.service.ImageCollectService; import com.dite.znpt.service.ImageService; +import com.dite.znpt.service.PartService; import com.dite.znpt.util.EXIFUtil; import com.dite.znpt.util.PageUtil; +import lombok.Getter; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -28,14 +26,19 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.File; +import java.io.IOException; import java.math.BigDecimal; import java.math.RoundingMode; +import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.function.Function; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.stream.Collectors; /** * @author Bear.G @@ -48,9 +51,14 @@ public class ImageServiceImpl extends ServiceImpl impl @Resource private ImageCollectService imageCollectService; + @Resource + private PartService partService; + @Value("${upload.temp-path}") private String tempPath; + @Value("${upload.perm-path}") + private String permPath; @Override public List list(ImageListReq req) { List partList= this.baseMapper.queryImageList(req); @@ -68,22 +76,54 @@ public class ImageServiceImpl extends ServiceImpl impl return this.list(req); } + @Override + public List batchSaveByImageSimpleReq(List list){ + List imageList = new ArrayList<>(); + List partIds = list.stream().map(ImageSimpleReq::getPartId).collect(Collectors.toList()); + Map partIdMap= partService.listByIds(partIds).stream().collect(Collectors.toMap(PartEntity::getPartId, Function.identity())); + list.stream().forEach(req -> { + if(partIdMap.containsKey(req.getPartId())){ + String path_prefix = permPath.concat(StrUtil.BACKSLASH).concat(req.getImageSource()).concat(StrUtil.BACKSLASH).concat(req.getPartId()).concat(StrUtil.BACKSLASH); + String temp_path_prefix = tempPath.concat(StrUtil.BACKSLASH).concat(req.getImageSource()).concat(StrUtil.BACKSLASH).concat(req.getPartId()).concat(StrUtil.BACKSLASH); + File file = new File(req.getImagePath()); + if(file.exists() && req.getImagePath().contains(temp_path_prefix)){ + ImageEntity entity = new ImageEntity(); + entity.setPartId(req.getPartId()); + String path = path_prefix + StrUtil.removePrefix(req.getImagePath(), temp_path_prefix); + byte[] bytes = FileUtil.readBytes(file); + FileUtil.writeBytes(bytes, path); + FileUtil.del(file); + entity.setImagePath(path); + imageList.add(entity); + } + } + }); + this.saveBatch(imageList); + return imageList; + } + @Override public ImageResp detail(String imageId) { ImageResp imageResp = this.baseMapper.detail(imageId); - imageResp.getImageCollectInfo().setWeatherLabel(WeatherEnum.getDescByCode(imageResp.getImageCollectInfo().getWeather())); - imageResp.getImageCollectInfo().setShootingMethodLabel(ShootingMethodEnum.getDescByCode(imageResp.getImageCollectInfo().getShootingMethodLabel())); + if(null != imageResp && null != imageResp.getImageCollectInfo()){ + imageResp.getImageCollectInfo().setWeatherLabel(WeatherEnum.getDescByCode(imageResp.getImageCollectInfo().getWeather())); + imageResp.getImageCollectInfo().setShootingMethodLabel(ShootingMethodEnum.getDescByCode(imageResp.getImageCollectInfo().getShootingMethodLabel())); + } + return imageResp; } @Transactional(rollbackFor = Exception.class) @Override - public List batchUpload(String departId, MultipartFile[] files) { + public List batchUploadDefectImage(String partId, String imageSource, MultipartFile[] files) { + if(null == partService.getById(partId)){ + throw new ServiceException(Message.PART_ID_IS_NOT_EXIST); + } if(null == files || files.length == 0){ throw new ServiceException(Message.IMAGE_IS_EMPTY); } List list = new ArrayList<>(files.length); - String path_prefix = tempPath.concat(StrUtil.BACKSLASH).concat(departId).concat(StrUtil.BACKSLASH); + String path_prefix = tempPath.concat(StrUtil.BACKSLASH).concat(imageSource).concat(StrUtil.BACKSLASH).concat(partId).concat(StrUtil.BACKSLASH); for (MultipartFile file : files) { if (!file.isEmpty()) { try { @@ -98,6 +138,22 @@ public class ImageServiceImpl extends ServiceImpl impl return list; } + @Override + public String uploadCommonImage(String imageSource, MultipartFile file) throws IOException { + if(null == file){ + throw new ServiceException(Message.IMAGE_IS_EMPTY); + } + ImageSourceEnum imageSourceEnum = ImageSourceEnum.getByCode(imageSource); + if(null == imageSourceEnum || imageSourceEnum.isDefectImage()){ + throw new ServiceException(Message.IMAGE_SOURCE_I_NOT_EXIST_OR_ILLEGAL); + } + String dateStr = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); + String path_prefix = permPath.concat(StrUtil.BACKSLASH).concat(imageSource).concat(StrUtil.BACKSLASH).concat(dateStr).concat(StrUtil.BACKSLASH); + String path = path_prefix + file.getOriginalFilename(); + FileUtil.writeBytes(file.getBytes(),path); + return path; + } + @Transactional(rollbackFor = Exception.class) @Override public void delete(String imageId) { diff --git a/core/src/main/resources/mapper/ImageMapper.xml b/core/src/main/resources/mapper/ImageMapper.xml index 231499c..9800029 100644 --- a/core/src/main/resources/mapper/ImageMapper.xml +++ b/core/src/main/resources/mapper/ImageMapper.xml @@ -3,12 +3,12 @@