Kaynağa Gözat

Merge remote-tracking branch 'remotes/origin/developer' into developerB

# Conflicts:
#	src/main/java/com/caimei/controller/FileApi.java
#	src/main/java/com/caimei/mapper/FileMapper.java
#	src/main/java/com/caimei/service/FileService.java
#	src/main/java/com/caimei/service/impl/FileServiceImpl.java
#	src/main/resources/mapper/FileMapper.xml
Aslee 3 yıl önce
ebeveyn
işleme
1eb4b57524

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

@@ -92,6 +92,13 @@ public class FileApi {
         return fileService.auditFile(fileId, auditStatus, invalidReason, auditBy);
     }
 
+    @ApiOperation("授权牌照图片下载")
+    @PostMapping("/auth/image/download")
+    public ResponseJson download(){
+        fileService.download();
+        return ResponseJson.success();
+    }
+
 
     @ApiOperation("添加/编辑教程文件")
     @ApiImplicitParam(name = "params", required = false, value = "fileId:文件id;fileTitle:文件标题;fileName:文件名称;ossName:oss名称;fileType:文件类型:1视频,2文档;fileModule:文件模块:1品牌授权-授权列表,2机构管理-机构列表")

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

@@ -1,6 +1,7 @@
 package com.caimei.mapper;
 
 import com.caimei.model.po.CourseFilePo;
+import com.caimei.model.po.AuthImageDataPo;
 import com.caimei.model.po.FilePo;
 import com.caimei.model.vo.CourseFileListVo;
 import com.caimei.model.vo.FileListVo;
@@ -36,6 +37,8 @@ public interface FileMapper {
 
     List<WxFileListVo> getWxFileList(@Param("authUserId") Integer authUserId, @Param("fileTitle") String fileTitle);
 
+    List<AuthImageDataPo> getAuthImageData();
+
     void updateCourseFile(CourseFilePo courseFile);
 
     void insertCourseFile(CourseFilePo courseFile);

+ 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

@@ -75,6 +75,8 @@ public interface FileService {
      */
     ResponseJson<PageInfo<WxFileListVo>> getWxFileList(Integer authUserId, String fileTitle, Integer pageNum, Integer pageSize);
 
+    void download();
+
     /**
      * 保存教程文件
      * @param fileId        文件id

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

@@ -3,6 +3,7 @@ package com.caimei.service.impl;
 import com.caimei.mapper.FileMapper;
 import com.caimei.model.ResponseJson;
 import com.caimei.model.po.CourseFilePo;
+import com.caimei.model.po.AuthImageDataPo;
 import com.caimei.model.po.FilePo;
 import com.caimei.model.vo.CourseFileListVo;
 import com.caimei.model.vo.FileListVo;
@@ -17,8 +18,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
@@ -167,6 +177,60 @@ public class FileServiceImpl implements FileService {
         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();
+    }
+
     @Override
     public ResponseJson saveCourseFile(Integer fileId, String fileTitle, String fileName, String ossName, Integer fileType, String fileModule) {
         if (StringUtils.isEmpty(fileTitle)) {

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

@@ -118,4 +118,10 @@
         </if>
         order by 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>