孙永军 2 жил өмнө
parent
commit
d77c7da0d8

+ 6 - 0
src/main/java/com/sxtvs/open/api/clue/entity/WxMessage.java

@@ -54,4 +54,10 @@ public class WxMessage {
      */
     @XmlElement(name = "Content")
     private String content;
+
+    @XmlElement(name = "PicUrl")
+    private String picUrl;
+
+    @XmlElement(name = "MediaId")
+    private String mediaId;
 }

+ 13 - 1
src/main/java/com/sxtvs/open/api/clue/service/impl/ClueServiceImpl.java

@@ -17,6 +17,7 @@ import com.sxtvs.open.api.clue.dto.WxReply;
 import com.sxtvs.open.api.clue.entity.*;
 import com.sxtvs.open.api.clue.mapper.ClueMapper;
 import com.sxtvs.open.api.clue.service.IClueService;
+import com.sxtvs.open.api.h5template.service.impl.OSSService;
 import com.sxtvs.open.core.advice.BizException;
 import com.sxtvs.open.core.sls.AliyunLogger;
 import jakarta.annotation.Resource;
@@ -58,6 +59,9 @@ public class ClueServiceImpl extends ServiceImpl<ClueMapper, Clue> implements IC
     @Resource
     private AliyunLogger logger;
 
+    @Resource
+    private OSSService ossService;
+
     public IPage<Clue> cluePage(ClueDTO clueDTO){
 
         LambdaQueryWrapper<Clue> wrapper = Wrappers.lambdaQuery();
@@ -188,8 +192,16 @@ public class ClueServiceImpl extends ServiceImpl<ClueMapper, Clue> implements IC
             info1.setAddUser(wxMessage.getFromUserName());
             info1.setAddTime(addTime);
             info1.setRelaId(last.getId());
-            info1.setMaterialUrl(wxMessage.getContent());
             info1.setType(getMediaType(wxMessage.getMsgType()));
+            if(wxMessage.getMsgType().equals("text")){
+                info1.setMaterialUrl(wxMessage.getContent());
+            }else {
+                String url = ossService.urlPut(wxMessage.getPicUrl(), "jpg");
+                info1.setMaterialUrl(wxMessage.getPicUrl());
+                info1.setLocalUrl(url);
+                info1.setWechatMaterialId(wxMessage.getMediaId());
+            }
+
             clueInfoService.save(info1);
 
         }else if(wxMessage.getMsgType().equals("text")){

+ 18 - 0
src/main/java/com/sxtvs/open/api/h5template/service/impl/OSSService.java

@@ -4,6 +4,7 @@ package com.sxtvs.open.api.h5template.service.impl;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.io.IoUtil;
 import cn.hutool.core.io.file.FileNameUtil;
+import cn.hutool.http.HttpUtil;
 import com.aliyun.oss.OSS;
 import com.aliyun.oss.OSSClientBuilder;
 import lombok.SneakyThrows;
@@ -12,6 +13,10 @@ import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.URI;
+import java.net.URL;
 import java.util.UUID;
 
 
@@ -39,6 +44,19 @@ public class OSSService {
         return "https://cxzx.smcic.net/" + fileUrl;
     }
 
+    @SneakyThrows
+    public String urlPut(String url, String extName) {
+        HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
+        InputStream inputStream = connection.getInputStream();
+        String dir = "operate/clue/img";
+        String date = new DateTime().toString("yyyyMMddHHmmss");
+        String fileUrl = dir+"/" + UUID.randomUUID().toString().replace("-", "") + date + "." + extName;
+        ossClient.putObject(bucket, fileUrl , inputStream);
+        inputStream.reset();
+
+        return "https://cxzx.smcic.net/" + fileUrl;
+    }
+
 
 }