|
|
@@ -10,11 +10,17 @@ import lombok.AllArgsConstructor;
|
|
|
import lombok.Data;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.core.io.ByteArrayResource;
|
|
|
import org.springframework.http.*;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
+import org.springframework.util.LinkedMultiValueMap;
|
|
|
+import org.springframework.util.MultiValueMap;
|
|
|
import org.springframework.web.client.RestTemplate;
|
|
|
|
|
|
-import java.io.*;
|
|
|
+import java.io.ByteArrayOutputStream;
|
|
|
+import java.io.File;
|
|
|
+import java.io.FileInputStream;
|
|
|
+import java.io.IOException;
|
|
|
import java.net.MalformedURLException;
|
|
|
import java.net.URL;
|
|
|
import java.util.*;
|
|
|
@@ -29,9 +35,9 @@ import java.util.*;
|
|
|
@Slf4j
|
|
|
public class HuiTaiUploadImageComponent {
|
|
|
private final RestTemplate restTemplate;
|
|
|
- private static final String INIT_PARAM = "/h5img/app/ImgManager/initParam.cmd?t=";
|
|
|
- private static final String FILE_UPLOAD = "/h5img/fileupload";
|
|
|
- private static final String SAVE_FILE_IDX = "/h5img/app/ImgManager/saveFileIdx.cmd";
|
|
|
+ private static final String INIT_PARAM = "/h5img/app/ImgManager/initParam.cdo?t=";
|
|
|
+ private static final String FILE_UPLOAD = "/h5img/app/ImgFileUpload/upload.do";
|
|
|
+ private static final String SAVE_FILE_IDX = "/h5img/app/ImgManager/saveFileIdx.cdo";
|
|
|
|
|
|
private final InsImagesUploadCacheComponent insImagesUploadCacheComponent;
|
|
|
|
|
|
@@ -58,9 +64,8 @@ public class HuiTaiUploadImageComponent {
|
|
|
token = pair[1];
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
HuaTaiImageInitParamResponse initParamResponse = initParam(domain, token);
|
|
|
- List<HuaTaiImageInitParamResponse.TypeSelectVosDTO.ChildrenDTO> childrenDTO = initParamResponse.getChildrenDTO();
|
|
|
+ List<HuaTaiImageInitParamResponse.TypeTreeNodeVoDTO.ChildrenDTO> childrenDTO = initParamResponse.getChildrenDTO();
|
|
|
// 使用map 存储上传类型和图片
|
|
|
Map<String, List<String>> map = new HashMap<>();
|
|
|
for (InsuranceImageVo insuranceImageVo : imageVoList) {
|
|
|
@@ -78,7 +83,7 @@ public class HuiTaiUploadImageComponent {
|
|
|
HuaTaiImageInitParamResponse.TypeSelectVosDTO.ChildrenDTO childrenDTO1 =
|
|
|
HuaTaiImageInitParamResponse.filteringTypeCode(childrenDTO, fileTypeEnum.getCode());
|
|
|
|
|
|
- FileuploadResult fileupload = fileupload(domain, token, initParamResponse, imageDTO.getImageBase64Str(), file);
|
|
|
+ FileUploadResult fileupload = fileupload(domain, token, initParamResponse, imageDTO.getImageByte(), file,childrenDTO1);
|
|
|
saveFileIdx(domain, token, initParamResponse, fileupload, fileName, childrenDTO1);
|
|
|
imageIds.add(imageDTO.getImageId());
|
|
|
} catch (Exception e) {
|
|
|
@@ -91,7 +96,6 @@ public class HuiTaiUploadImageComponent {
|
|
|
}
|
|
|
map.put(insuranceImageVo.getImageCode(), imageIds);
|
|
|
}
|
|
|
-
|
|
|
insImagesUploadCacheComponent.setUploadImageCache(companyId, map);
|
|
|
}
|
|
|
|
|
|
@@ -104,9 +108,9 @@ public class HuiTaiUploadImageComponent {
|
|
|
*/
|
|
|
private HuaTaiImageInitParamResponse initParam(String domain, String token) {
|
|
|
HttpHeaders httpHeaders = new HttpHeaders();
|
|
|
- // token
|
|
|
- httpHeaders.set("Cookie", "token=" + token);
|
|
|
- String initParamUrl = domain + INIT_PARAM + System.currentTimeMillis();
|
|
|
+ httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
|
|
+ httpHeaders.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
|
|
|
+ String initParamUrl = domain + INIT_PARAM + System.currentTimeMillis() + "&token=" + token;
|
|
|
HttpEntity<Object> httpEntity = new HttpEntity<>(null, httpHeaders);
|
|
|
ResponseEntity<HuaTaiImageInitParamResponse> response = restTemplate.exchange(initParamUrl, HttpMethod.GET, httpEntity,
|
|
|
HuaTaiImageInitParamResponse.class);
|
|
|
@@ -118,26 +122,32 @@ public class HuiTaiUploadImageComponent {
|
|
|
*
|
|
|
* @return 文件路径
|
|
|
*/
|
|
|
- private FileuploadResult fileupload(String domain, String token, HuaTaiImageInitParamResponse initParamResponse, String imageBase64Str,
|
|
|
- String fileName) {
|
|
|
- byte[] bytes = Base64.getDecoder().decode(imageBase64Str);
|
|
|
- double v = (double) bytes.length / 1024;
|
|
|
+ private FileUploadResult fileupload(String domain, String token, HuaTaiImageInitParamResponse initParamResponse, byte[] imageBase64Str,
|
|
|
+ String fileName, HuaTaiImageInitParamResponse.TypeSelectVosDTO.ChildrenDTO childrenDTO1) {
|
|
|
+ // 请求参数
|
|
|
+ MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
|
|
|
+ ByteArrayResource byteArrayResource = new ByteArrayResource(imageBase64Str) {
|
|
|
+ @Override
|
|
|
+ public String getFilename() {
|
|
|
+ return fileName;
|
|
|
+ }
|
|
|
+ };
|
|
|
+ HttpHeaders httpHeadersFile = new HttpHeaders();
|
|
|
+ httpHeadersFile.setContentType(MediaType.IMAGE_JPEG);
|
|
|
+ body.set("file", new HttpEntity<>(byteArrayResource, httpHeadersFile));
|
|
|
+ body.set("token", token);
|
|
|
+ body.set("bussModule", childrenDTO1.getBussType());
|
|
|
+ body.set("bussNo", childrenDTO1.getBussNo());
|
|
|
+ body.set("fileName", fileName);
|
|
|
+ body.set("saveFileName", null);
|
|
|
+ body.set("bucket", initParamResponse.getStorageType());
|
|
|
+ body.set("storageType", initParamResponse.getStorageType());
|
|
|
+ // 请求头
|
|
|
HttpHeaders httpHeaders = new HttpHeaders();
|
|
|
- httpHeaders.setAccept(Collections.singletonList(MediaType.MULTIPART_FORM_DATA));
|
|
|
- httpHeaders.set("Bucket", initParamResponse.getStorageType());
|
|
|
- httpHeaders.set("Bussmodule", initParamResponse.getBussType());
|
|
|
- httpHeaders.set("Bussno", initParamResponse.getBussNo());
|
|
|
-
|
|
|
- // token
|
|
|
- httpHeaders.set("Token", token);
|
|
|
- // 文件名称
|
|
|
- httpHeaders.set("Filename", fileName);
|
|
|
- httpHeaders.setContentType(MediaType.IMAGE_JPEG);
|
|
|
- HttpEntity<byte[]> httpEntity = new HttpEntity<>(bytes, httpHeaders);
|
|
|
-
|
|
|
- String fileuploadUrl = domain + FILE_UPLOAD;
|
|
|
- ResponseEntity<String> response = restTemplate.postForEntity(fileuploadUrl, httpEntity, String.class);
|
|
|
- return new FileuploadResult(response.getBody(), v);
|
|
|
+ httpHeaders.setContentType(MediaType.MULTIPART_FORM_DATA);
|
|
|
+ HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<>(body, httpHeaders);
|
|
|
+ ResponseEntity<String> response = restTemplate.postForEntity(domain + FILE_UPLOAD, httpEntity, String.class);
|
|
|
+ return new FileUploadResult(response.getBody().substring(1, response.getBody().length() - 1), (double) imageBase64Str.length / 1024);
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -149,7 +159,7 @@ public class HuiTaiUploadImageComponent {
|
|
|
* @param fileName 文件名称
|
|
|
* @param childrenDTO 上传的文件类型
|
|
|
*/
|
|
|
- private void saveFileIdx(String domain, String token, HuaTaiImageInitParamResponse response, FileuploadResult fileupload,
|
|
|
+ private void saveFileIdx(String domain, String token, HuaTaiImageInitParamResponse response, FileUploadResult fileupload,
|
|
|
String fileName,
|
|
|
HuaTaiImageInitParamResponse.TypeSelectVosDTO.ChildrenDTO childrenDTO) {
|
|
|
HuaTaiSaveFileIdxRequest huaTaiSaveFileIdxRequest = new HuaTaiSaveFileIdxRequest(token, response, fileupload, fileName,
|
|
|
@@ -157,7 +167,6 @@ public class HuiTaiUploadImageComponent {
|
|
|
huaTaiSaveFileIdxRequest.getFileIdxVo().setImgId(System.currentTimeMillis());
|
|
|
HttpHeaders httpHeaders = new HttpHeaders();
|
|
|
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
|
|
- httpHeaders.set("Cookie", "token=" + token);
|
|
|
HttpEntity<HuaTaiSaveFileIdxRequest> httpEntity = new HttpEntity<>(huaTaiSaveFileIdxRequest, httpHeaders);
|
|
|
String saveFileIdxUrl = domain + SAVE_FILE_IDX;
|
|
|
restTemplate.postForEntity(saveFileIdxUrl, httpEntity, String.class);
|
|
|
@@ -166,7 +175,7 @@ public class HuiTaiUploadImageComponent {
|
|
|
|
|
|
@AllArgsConstructor
|
|
|
@Data
|
|
|
- public static class FileuploadResult {
|
|
|
+ public static class FileUploadResult {
|
|
|
|
|
|
private String filePath;
|
|
|
|