From 6e70ee2d0b73f70fe1140cc7d51c4e847d50aa51 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期四, 17 四月 2025 10:54:26 +0800 Subject: [PATCH] 2.0迭代师傅订单列表 --- ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OssController.java | 149 ++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 116 insertions(+), 33 deletions(-) diff --git a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OssController.java b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OssController.java index b3592ba..2329c8d 100644 --- a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OssController.java +++ b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OssController.java @@ -10,9 +10,9 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; -import lombok.Synchronized; import lombok.extern.slf4j.Slf4j; -import org.springframework.http.MediaType; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -20,16 +20,10 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import javax.imageio.ImageIO; -import javax.imageio.stream.ImageOutputStream; -import java.awt.*; -import java.awt.image.BufferedImage; -import java.io.*; -import java.text.SimpleDateFormat; -import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.Date; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.atomic.AtomicReference; /** @@ -71,42 +65,131 @@ return R.ok(tencentCosUtil.upLoadFile(file)); } +// @PostMapping(value = "/pic", produces = "application/json;charset=UTF-8") +// @ApiOperation(value = "文件上传加水印", tags = "师傅端-文件上传") +// @ApiImplicitParams({ +// @ApiImplicitParam(value = "文件", name = "file", dataType = "MultipartFile", required = true) +// }) +// public R<String> pic(@RequestParam("file") MultipartFile file,String longitude, +// String latitude) { +//// Result<String> address = GaoDeMapUtil.getAddress(longitude, latitude); +////// return R.fail(); +//// +//// // 获取当前时间 +//// +//// LocalDateTime date = LocalDateTime.now(); +//// +//// // 设置日期格式 +//// +//// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); +//// +//// // 通过format调用转换的方法 +//// +//// String dateWatermark = formatter.format(date); +////// System.err.println("==========="+LocalDateTime.now()); +//// log.error("==========="+LocalDateTime.now()); +//// +//// MultipartFile watermarkFile = FileImageWatermarkUtils.markWithContent(file,dateWatermark,address.getDatas()); +////// System.err.println("==========="+LocalDateTime.now()); +//// log.error("==========="+LocalDateTime.now()); +//// +//// +//// String url = tencentCosUtil.upLoadFile(watermarkFile); +////// String url = tencentCosUtil.upLoadFile(file); +//// log.error("==========="+LocalDateTime.now()); +//// return R.ok(url); +// +// +// // 参数校验 +// if (file == null || file.isEmpty()) { +// return R.fail("文件不能为空"); +// } +// if (longitude == null || longitude.isEmpty() || latitude == null || latitude.isEmpty()) { +// return R.fail("经纬度参数不能为空"); +// } +// +// try { +// // 获取地址信息 +// Result<String> addressResult = GaoDeMapUtil.getAddress(longitude, latitude); +// if (addressResult == null || addressResult.getDatas() == null) { +// return R.fail("无法获取地址信息"); +// } +// +// // 获取当前时间 +// LocalDateTime date = LocalDateTime.now(); +// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); +// String dateWatermark = formatter.format(date); +// log.info("===========" + dateWatermark); +// +// // 给图片加水印 +// MultipartFile watermarkFile = FileImageWatermarkUtils.markWithContent(file, dateWatermark, addressResult.getDatas()); +// log.info("水印添加成功"); +// +// // 上传到腾讯云COS +// String url = tencentCosUtil.upLoadFile(watermarkFile); +// log.info("文件上传成功,URL: " + url); +// +// return R.ok(url); +// } catch (Exception e) { +// log.error("文件上传加水印失败: ", e); +// return R.fail("文件上传加水印失败: " + e.getMessage()); +// } +// } + + @Autowired + private ThreadPoolTaskExecutor taskExecutor; @PostMapping(value = "/pic", produces = "application/json;charset=UTF-8") @ApiOperation(value = "文件上传加水印", tags = "师傅端-文件上传") @ApiImplicitParams({ @ApiImplicitParam(value = "文件", name = "file", dataType = "MultipartFile", required = true) }) - @Synchronized - public R<String> pic(@RequestParam("file") MultipartFile file,String longitude,String address, - String latitude) { -// Result<String> address = GaoDeMapUtil.getAddress(longitude, latitude); -// return R.fail(); + public CompletableFuture<R<String>> pic(@RequestParam("file") MultipartFile file, String longitude, String latitude) { + System.out.println("文件上传加水印=====>"+longitude+"====>"+latitude); + // 参数校验 + if (file == null || file.isEmpty()) { + return CompletableFuture.completedFuture(R.fail("文件不能为空")); + } - // 获取当前时间 + Result<String> datas = new Result<>(); - LocalDateTime date = LocalDateTime.now(); + if (longitude == null || longitude.isEmpty() || latitude == null || latitude.isEmpty()) { + datas.setDatas("地址获取失败"); + } - // 设置日期格式 + return CompletableFuture.supplyAsync(() -> { + try { + // 获取地址信息 + Result<String> addressResult = GaoDeMapUtil.getAddress(longitude, latitude); + if (addressResult == null || addressResult.getDatas() == null) { + datas.setDatas("地址获取失败"); + }else { + datas.setDatas(addressResult.getDatas()); + } - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + // 获取当前时间 + LocalDateTime date = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + String dateWatermark = formatter.format(date); + log.info("===========" + dateWatermark); - // 通过format调用转换的方法 + // 给图片加水印 + MultipartFile watermarkFile = FileImageWatermarkUtils.markWithContent(file, dateWatermark, datas.getDatas()); + log.info("水印添加成功"); - String dateWatermark = formatter.format(date); -// System.err.println("==========="+LocalDateTime.now()); - log.error("==========="+LocalDateTime.now()); + // 上传到腾讯云COS + String url = tencentCosUtil.upLoadFile(watermarkFile); + log.info("文件上传成功,URL: " + url); - MultipartFile watermarkFile = FileImageWatermarkUtils.markWithContent(file,dateWatermark,address); -// System.err.println("==========="+LocalDateTime.now()); - log.error("==========="+LocalDateTime.now()); - - - String url = tencentCosUtil.upLoadFile(watermarkFile); -// String url = tencentCosUtil.upLoadFile(file); - log.error("==========="+LocalDateTime.now()); - return R.ok(url); - + return R.ok(url); + } catch (Exception e) { + log.error("文件上传加水印失败: ", e); + return R.fail("文件上传加水印失败: " + e.getMessage()); + } + }, taskExecutor); } + + + } -- Gitblit v1.7.1