Ver código fonte

新手教程/机构数据导入导出part3

Aslee 3 anos atrás
pai
commit
ff0675cccd

+ 7 - 0
src/main/java/com/caimei/controller/FileApi.java

@@ -90,4 +90,11 @@ public class FileApi {
         Integer auditBy = paramsMap.getInteger("auditBy");
         return fileService.auditFile(fileId, auditStatus, invalidReason, auditBy);
     }
+
+    @ApiOperation("授权牌照图片下载")
+    @PostMapping("/auth/image/download")
+    public ResponseJson download(){
+        fileService.download();
+        return ResponseJson.success();
+    }
 }

+ 3 - 0
src/main/java/com/caimei/mapper/FileMapper.java

@@ -1,5 +1,6 @@
 package com.caimei.mapper;
 
+import com.caimei.model.po.AuthImageDataPo;
 import com.caimei.model.po.FilePo;
 import com.caimei.model.vo.FileListVo;
 import com.caimei.model.vo.WxFileListVo;
@@ -33,4 +34,6 @@ public interface FileMapper {
     void updateFileSelective(FilePo file);
 
     List<WxFileListVo> getWxFileList(@Param("authUserId") Integer authUserId, @Param("fileTitle") String fileTitle);
+
+    List<AuthImageDataPo> getAuthImageData();
 }

+ 18 - 0
src/main/java/com/caimei/model/po/AuthImageDataPo.java

@@ -0,0 +1,18 @@
+package com.caimei.model.po;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * cm_brand_file
+ * @author  Aslee
+ */
+@Data
+public class AuthImageDataPo {
+    private String authImage;
+
+    private String authParty;
+
+    private String snCode;
+}

+ 2 - 0
src/main/java/com/caimei/service/FileService.java

@@ -73,4 +73,6 @@ public interface FileService {
      * @return
      */
     ResponseJson<PageInfo<WxFileListVo>> getWxFileList(Integer authUserId, String fileTitle, Integer pageNum, Integer pageSize);
+
+    void download();
 }

+ 64 - 0
src/main/java/com/caimei/service/impl/FileServiceImpl.java

@@ -2,6 +2,7 @@ package com.caimei.service.impl;
 
 import com.caimei.mapper.FileMapper;
 import com.caimei.model.ResponseJson;
+import com.caimei.model.po.AuthImageDataPo;
 import com.caimei.model.po.FilePo;
 import com.caimei.model.vo.FileListVo;
 import com.caimei.model.vo.WxFileListVo;
@@ -14,8 +15,17 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
 import java.util.Date;
 import java.util.List;
+import java.util.UUID;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
+
+import static com.caimei.service.impl.UploadServiceImpl.inputStreamToFile;
 
 /**
  * Description
@@ -163,4 +173,58 @@ public class FileServiceImpl implements FileService {
         PageInfo<WxFileListVo> pageData = new PageInfo<>(fileList);
         return ResponseJson.success(pageData);
     }
+
+    @Override
+    public void download() {
+        String filePath = "/mnt/newdatadrive/data/runtime/jar-instance/zplma/atuhImage/";
+        List<AuthImageDataPo> authImageList = fileMapper.getAuthImageData();
+        authImageList.forEach(authImage->{
+            try {
+                String imageUrl = authImage.getAuthImage();
+                HttpURLConnection httpUrl = (HttpURLConnection) new URL(imageUrl).openConnection();
+                httpUrl.connect();
+                //通过输入流获取图片数据
+                InputStream inStream = httpUrl.getInputStream();
+                //得到图片的二进制数据,以二进制封装得到数据,具有通用性
+                byte[] data = readInputStream(inStream);
+                //new一个文件对象用来保存图片,默认保存当前工程根目录
+                File imageFile = new File(filePath + authImage.getAuthParty() + "-" + authImage.getSnCode() + ".jpg");
+                //创建输出流
+                FileOutputStream outStream = new FileOutputStream(imageFile);
+                //写入数据
+                outStream.write(data);
+                //关闭输出流
+                outStream.close();
+            } catch (FileNotFoundException e) {
+                e.printStackTrace();
+            } catch (MalformedURLException e) {
+                e.printStackTrace();
+            } catch (IOException e) {
+                e.printStackTrace();
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+
+
+        });
+
+
+    }
+
+    private byte[] readInputStream(InputStream inStream) throws Exception{
+        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
+        //创建一个Buffer字符串
+        byte[] buffer = new byte[1024];
+        //每次读取的字符串长度,如果为-1,代表全部读取完毕
+        int len = 0;
+        //使用一个输入流从buffer里把数据读取出来
+        while( (len=inStream.read(buffer)) != -1 ){
+            //用输出流往buffer里写入数据,中间参数代表从哪个位置开始读,len代表读取的长度
+            outStream.write(buffer, 0, len);
+        }
+        //关闭输入流
+        inStream.close();
+        //把outStream里的数据写入内存
+        return outStream.toByteArray();
+    }
 }

+ 6 - 0
src/main/resources/mapper/FileMapper.xml

@@ -89,4 +89,10 @@
         </if>
         order by a.createTime desc
     </select>
+    <select id="getAuthImageData" resultType="com.caimei.model.po.AuthImageDataPo">
+        SELECT certificateImage as authImage,a.authParty,p.snCode
+        FROM cm_brand_auth_product p
+                 left join cm_brand_auth a on p.authId = a.id
+                 left join cm_brand_auth_user u on a.authUserId = u.authUserId where u.authUserId = 4;
+    </select>
 </mapper>