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