| | |
| | | /* |
| | | * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * Neither the name of the dreamlu.net developer nor the names of its |
| | | * contributors may be used to endorse or promote products derived from |
| | | * this software without specific prior written permission. |
| | | * Author: Chill 庄骞 (smallchill@163.com) |
| | | */ |
| | | package cn.gistack.resource.feign; |
| | | |
| | | import cn.gistack.resource.builder.oss.OssBuilder; |
| | | import cn.gistack.resource.builder.sms.SmsBuilder; |
| | | import cn.gistack.resource.entity.FormateTuEntity; |
| | | import cn.gistack.resource.entity.QieTuEntity; |
| | | import cn.gistack.resource.panoramaUtils.QietuResult; |
| | | import com.alibaba.fastjson.JSON; |
| | | import lombok.AllArgsConstructor; |
| | | import org.apache.commons.io.FileUtils; |
| | | import org.springblade.core.oss.model.BladeFile; |
| | | import org.springblade.core.sms.model.SmsCode; |
| | | import org.springblade.core.sms.model.SmsData; |
| | | import org.springblade.core.sms.model.SmsResponse; |
| | | import org.springblade.core.tenant.annotation.NonDS; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springblade.core.tool.jackson.JsonUtil; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.core.io.InputStreamResource; |
| | | import org.springframework.http.MediaType; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import java.io.ByteArrayInputStream; |
| | | import java.io.InputStream; |
| | | import java.util.Map; |
| | | |
| | | import static cn.gistack.resource.utils.SmsUtil.*; |
| | | import java.io.File; |
| | | import java.io.FileInputStream; |
| | | import java.io.FileNotFoundException; |
| | | import java.io.IOException; |
| | | import java.nio.file.Path; |
| | | import java.nio.file.Paths; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Set; |
| | | |
| | | /** |
| | | * 短信远程调用服务 |
| | | * |
| | | * @author Chill |
| | | * @author kelu |
| | | */ |
| | | @NonDS |
| | | @RestController |
| | | public class OssClient implements IOssClient { |
| | | @AllArgsConstructor |
| | | public class OssClient implements IOssClient{ |
| | | |
| | | @Autowired |
| | | private OssBuilder ossBuilder; |
| | | /** |
| | | * 对象存储构建类 |
| | | */ |
| | | private final OssBuilder ossBuilder; |
| | | @Override |
| | | @PostMapping(UPLOAD_QIETU) |
| | | public R uploadQietu(QieTuEntity qieTuEntity) throws IOException { |
| | | HashMap<String,String> qietuHashMap = qieTuEntity.getQietuHashMap(); |
| | | System.err.println("切图的路径:"+qietuHashMap); |
| | | |
| | | String resGuid = qieTuEntity.getResGuid(); |
| | | |
| | | List<String> qieTuUrlList = new ArrayList<String>(); |
| | | String urlHead = null; |
| | | Set<String> mapKey = qietuHashMap.keySet(); |
| | | if(qietuHashMap != null && qietuHashMap.size()>0) { |
| | | for (String picQName : mapKey) { |
| | | String url = qietuHashMap.get(picQName); |
| | | Path qietuPath = Paths.get(url); |
| | | File qietufile = qietuPath.toFile(); |
| | | FileInputStream fileInputStream = new FileInputStream(qietufile); |
| | | BladeFile bladeFile = ossBuilder.templateByPrefixPathPanorama("panorama", resGuid).putFile(picQName, fileInputStream); |
| | | fileInputStream.close(); // 关闭文件流 |
| | | |
| | | String link = bladeFile.getLink(); |
| | | qieTuUrlList.add(link);// 上传后的图片路径 |
| | | urlHead = link.replace(picQName,""); |
| | | |
| | | // 切图上传完成后删除 |
| | | if (qietufile.exists()) { |
| | | // 删除指定文件,不存在报异常 |
| | | FileUtils.forceDelete(qietufile); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | String jsonString = JSON.toJSONString(qieTuUrlList); |
| | | |
| | | |
| | | HashMap<String, String> stringStringHashMap = new HashMap<>(); |
| | | stringStringHashMap.put("qturlList",jsonString); |
| | | stringStringHashMap.put("urlHead", urlHead); |
| | | |
| | | QieTuEntity result = new QieTuEntity(); |
| | | result.setQietuHashMap(stringStringHashMap); |
| | | |
| | | return R.data(result); |
| | | } |
| | | |
| | | @Override |
| | | @PostMapping(UPLOAD_FORMATETU) |
| | | public R uploadFormate(QieTuEntity qieTuEntity) throws IOException { |
| | | |
| | | ArrayList<FormateTuEntity> list = qieTuEntity.getList(); |
| | | |
| | | |
| | | // Set<String> mapKey = qietuHashMap.keySet(); |
| | | if(list != null && list.size()>0) { |
| | | for (FormateTuEntity item : list) { |
| | | |
| | | String picName = item.getPicName(); |
| | | String url = item.getLinshiUrl(); |
| | | Path qietuPath = Paths.get(url); |
| | | File qietufile = qietuPath.toFile(); |
| | | FileInputStream fileInputStream = new FileInputStream(qietufile); |
| | | BladeFile bladeFile = ossBuilder.template().putFile(picName, fileInputStream); |
| | | fileInputStream.close(); // 关闭文件流 |
| | | |
| | | String link = bladeFile.getLink(); |
| | | |
| | | // 格式化后的临时图片上传完成后删除临时文件 |
| | | if (qietufile.exists()) { |
| | | // 删除指定文件,不存在报异常 |
| | | FileUtils.forceDelete(qietufile); |
| | | } |
| | | |
| | | |
| | | item.setLinshiUrl(link); |
| | | |
| | | } |
| | | } |
| | | QieTuEntity result = new QieTuEntity(); |
| | | result.setList(list); |
| | | |
| | | return R.data(result); |
| | | } |
| | | |
| | | @PostMapping(value = UPLOAD_FILE) |
| | | public String uploadFile(String fileName, MultipartFile file) throws Exception{ |