diff --git a/src/main/java/com/zhgd/xmgl/config/OperLogAspect.java b/src/main/java/com/zhgd/xmgl/config/OperLogAspect.java index 1974ae9a5..3c6f16bb0 100644 --- a/src/main/java/com/zhgd/xmgl/config/OperLogAspect.java +++ b/src/main/java/com/zhgd/xmgl/config/OperLogAspect.java @@ -6,6 +6,7 @@ import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSON; @@ -133,7 +134,13 @@ public class OperLogAspect { operlog.setOperRequParam(params); Object[] args = joinPoint.getArgs(); if (ArrayUtils.isNotEmpty(args)) { - List logArgs = Arrays.stream(args).filter(arg -> (!(arg instanceof HttpServletRequest) && !(arg instanceof HttpServletResponse) && !(arg instanceof MultipartFile))).collect(Collectors.toList()); + List logArgs = Arrays.stream(args).filter(arg -> + !(arg instanceof HttpServletRequest) + && !(arg instanceof HttpServletResponse) + && !(arg instanceof MultipartFile) + && !(arg instanceof MultipartFile[]) + ) + .collect(Collectors.toList()); // 判断中文字符数量(一个中文字符占 1 个长度) String body = JSON.toJSONString(logArgs); body = getHideSensitiveParamBody(body, request.getRequestURI()); diff --git a/src/main/java/com/zhgd/xmgl/modules/policecamera/controller/PoliceCameraItemFileController.java b/src/main/java/com/zhgd/xmgl/modules/policecamera/controller/PoliceCameraItemFileController.java index 1fa373740..c1fa9e51e 100644 --- a/src/main/java/com/zhgd/xmgl/modules/policecamera/controller/PoliceCameraItemFileController.java +++ b/src/main/java/com/zhgd/xmgl/modules/policecamera/controller/PoliceCameraItemFileController.java @@ -3,11 +3,16 @@ package com.zhgd.xmgl.modules.policecamera.controller; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.zhgd.annotation.OperLog; import com.zhgd.jeecg.common.api.vo.Result; +import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.xmgl.call.api.PoliceCameraManufacturer; import com.zhgd.xmgl.call.factory.PoliceCameraManufacturerFactory; +import com.zhgd.xmgl.modules.basicdata.service.UploadFileService; import com.zhgd.xmgl.modules.policecamera.entity.PoliceCameraItemFile; import com.zhgd.xmgl.modules.policecamera.entity.dto.PoliceCameraItemFileDto; import com.zhgd.xmgl.modules.policecamera.entity.vo.PoliceCameraItemFileVo; @@ -26,7 +31,9 @@ import org.springframework.context.annotation.Lazy; import org.springframework.web.bind.annotation.*; import io.swagger.v3.oas.annotations.Parameter; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; @@ -52,6 +59,9 @@ public class PoliceCameraItemFileController { @Lazy @Autowired private PoliceCameraManufacturerFactory policeCameraManufacturerFactory; + @Lazy + @Resource + private UploadFileService uploadFileService; /** * 分页列表查询 @@ -194,11 +204,57 @@ public class PoliceCameraItemFileController { try { FileUtil.del(PathUtil.getBasePath() + "/" + vo.getFileUrl()); } catch (Exception e) { - log.warn("执法记录仪文件删除失败:",e); + log.warn("执法记录仪文件删除失败:", e); } } } } return Result.ok(); } + + @OperLog(operModul = "执法记录仪文件管理", operType = "", operDesc = "添加执法记录仪文件信息(此接口必须也上传文件)") + @ApiOperation(value = "添加执法记录仪文件信息(此接口必须也上传文件)", notes = "添加执法记录仪文件信息(此接口必须也上传文件)", httpMethod = "POST") + @PostMapping(value = "/addWithFile") + public Result addWithFile(@RequestPart("policeCameraItemFile") String fileInfoJson, + @RequestPart("files") MultipartFile[] files) { + if (StrUtil.isBlank(fileInfoJson)) { + throw new OpenAlertException("policeCameraItemFile不能为空"); + } + Map uploadImage = new HashMap<>(); + try { + uploadImage = uploadFileService.uploadImageSafety(files); + } catch (Exception e) { + log.error("",e); + throw new OpenAlertException("上传文件失败:" + e.getMessage()); + } + String fileUrl = null; + String fileName = null; + String originalFilename = null; + Integer fileLen = null; + if (uploadImage != null) { + List data = (List) uploadImage.get("data"); + if (CollUtil.isNotEmpty(data)) { + for (Object datum : data) { + Map fi = (Map) datum; + fileName = MapUtils.getString(fi, "imageUrl"); + fileLen = Integer.valueOf(((Map) MapUtils.getObject(fi, "fileInfo")).get("size").toString()); + originalFilename = ((Map) MapUtils.getObject(fi, "fileInfo")).get("originalFilename").toString(); + fileUrl = PathUtil.getBasePath() + "/" + fileName; + } + } + } + try { + PoliceCameraItemFileDto dto = JSONObject.parseObject(fileInfoJson, PoliceCameraItemFileDto.class); + dto.setFileName(originalFilename); + dto.setFileUrl(fileName); + dto.setFileLen(fileLen); + policeCameraItemFileService.add(dto); + } catch (Exception e) { + if (uploadImage != null) { + FileUtil.del(fileUrl); + } + throw new OpenAlertException(e.getMessage(),e); + } + return Result.ok(); + } }