From 05db93c48c69b1fc5db8bb2fce4c37014e92e450 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期二, 19 八月 2025 10:01:30 +0800
Subject: [PATCH] 代码初始化
---
server/src/main/java/com/doumee/api/common/PublicCloudController.java | 169 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 160 insertions(+), 9 deletions(-)
diff --git a/server/src/main/java/com/doumee/api/common/PublicCloudController.java b/server/src/main/java/com/doumee/api/common/PublicCloudController.java
index f288004..2f51442 100644
--- a/server/src/main/java/com/doumee/api/common/PublicCloudController.java
+++ b/server/src/main/java/com/doumee/api/common/PublicCloudController.java
@@ -10,9 +10,13 @@
import com.doumee.core.constants.Constants;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.ApiResponse;
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.FtpUtil;
import com.doumee.core.utils.azure.AzureBlobUtil;
+import com.doumee.core.utils.qiyeweixin.QywxUtil;
+import com.doumee.core.utils.qiyeweixin.model.response.QywxUploadMediaResponse;
+import com.doumee.dao.business.dto.WebQwUploadDto;
import com.doumee.dao.system.model.SystemDictData;
import com.doumee.service.common.EmailService;
import io.swagger.annotations.Api;
@@ -24,6 +28,7 @@
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.multipart.MultipartRequest;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import javax.servlet.http.HttpServletRequest;
@@ -48,13 +53,79 @@
private SystemDictDataBiz systemDictDataBiz;
@Autowired
private EmailService emailService;
- @Value("${upload.type")
+ @Value("${upload.type}")
private String uploadType;
public static FtpUtil ftp = null;
public static AzureBlobUtil azureBlobUtil = null;
+ @GetMapping("/image/{folder}/{date}/{name}")
+ public void getImage(@PathVariable String folder,@PathVariable String date,@PathVariable String name, HttpServletResponse response) throws IOException {
+ try {
+ initUploadTool();
+ response.setContentType("image/jpeg"); // 鏍规嵁浣犵殑鍥剧墖绫诲瀷璁剧疆姝g‘鐨凪IME绫诲瀷
+ log.info("===================鍥剧墖blob鍚嶇О"+folder+"/"+date+"/"+name);
+ azureBlobUtil.downloadBlobToStream(folder+"/"+date+"/"+name,response.getOutputStream());
+ }catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ @ApiOperation(value = "娴嬭瘯浼佷笟绱犳潗涓婁紶涓嬭浇")
+ @RequestMapping(method= RequestMethod.POST,value="/testQwImg")
+ @ResponseBody
+ public ApiResponse<Map<String, Object>> testQwImg( @RequestParam(required = false) String imgurl ) throws Exception {
+ QywxUploadMediaResponse r = QywxUtil.uploadMedia(systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_TOKEN).getCode(),"image",imgurl);
+ if(r!=null && r.getMedia_id()!=null){
+ String folder = systemDictDataBiz.queryByCode(Constants.FTP,Constants.WORKORDER_FILE_PATH).getCode();
+ String prefixPath = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode();
+ Map<String, Object> context = new HashMap<>();
+ try {
+ initUploadTool();
+ context.put("success", true);
+ context.put("code", 200);
+ context.put("errno",0);
+ JSONArray jsonArray = new JSONArray();
+ Integer index = Constants.ONE;
+ //鑾峰緱姣忎竴涓枃浠�
+ String endType = ".jpg";
+ String originname = UUID.randomUUID().toString()+endType;
+ InputStream is = QywxUtil.getMediaInputstream(systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_TOKEN).getCode(),r.getMedia_id());
+ if(is == null){
+ context.put("code", 0);
+ context.put("message", "涓婁紶澶辫触");
+ context.put("errno",0);
+ }else{
+ String date = DateUtil.getNowShortDate();
+ String fName = date + "/" + originname;
+ String fileName = folder + fName;
+ boolean r1 =false;
+ if(StringUtils.equals(Constants.uploadType.blob,uploadType)){
+ r1 = azureBlobUtil.uploadFileWithResponseAndSize( fileName,is,null);//涓婁紶
+ }else{
+ r1 = ftp.uploadInputstreamBatch(is, fileName, true,index);
+ }
+ if (r1) {
+ JSONObject fileJSON = new JSONObject();
+ fileJSON.put("url", prefixPath + fileName);
+ fileJSON.put("imgaddr", fName);
+ fileJSON.put("imgname", fileName);
+ fileJSON.put("originname", originname);
+ jsonArray.add(fileJSON);
+ }
+ }
+ context.put("data",jsonArray);
+ } catch (Exception e) {
+ log.error("銆愪笂浼燜TP澶辫触銆�======================"+e.getMessage());
+ context.put("code", 0);
+ context.put("message", "涓婁紶澶辫触");
+ context.put("errno",0);
+ }
+ return ApiResponse.success(context);
+ }
+ return ApiResponse.failed("涓婁紶澶辫触"+r!=null?JSONObject.toJSONString(r):"");
+
+ }
@ApiOperation(value = "娴嬭瘯閭欢鍙戦��")
@RequestMapping(method= RequestMethod.POST,value="/testEmail")
@ResponseBody
@@ -73,9 +144,18 @@
@ApiOperation(value = "鎵归噺涓婁紶鏂囦欢鍒癋TP")
@RequestMapping(method= RequestMethod.POST,value="/uploadBatch")
@ResponseBody
- public void uploadBatch(@RequestParam("files") MultipartFile[] fileList,HttpServletRequest request, HttpServletResponse response, String folder) throws Exception {
+ public void uploadBatch(MultipartRequest request, HttpServletResponse response, String folder) throws Exception {
if(Objects.isNull(folder)){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ Set<String> setList = request.getMultiFileMap().keySet();
+ if(Objects.isNull(setList)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ List<MultipartFile> fileList = new ArrayList<>();
+ for(String str:setList){
+ List<MultipartFile> fl = request.getMultiFileMap().get(str);
+ fileList.addAll(fl);
}
if(Objects.isNull(fileList)){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
@@ -94,13 +174,14 @@
context.put("success", true);
context.put("code", 200);
context.put("errno",0);
- JSONArray jsonArray = new JSONArray();
- if (fileList.length > 0) {
+ JSONArray jsonArray = new JSONArray();
+ if (fileList.size() > 0) {
//閬嶅巻鏂囦欢鍒楄〃
Integer index = Constants.ONE;
for (MultipartFile file :fileList) {
//鑾峰緱姣忎竴涓枃浠�
String originname = file.getOriginalFilename();
+ log.error("銆愪笂浼燜TP鎴愬姛銆�=============寮�濮�========="+index+"===="+originname);
InputStream is = file.getInputStream();
String endType = originname.substring(originname.lastIndexOf("."), originname.length());
String date = DateUtil.getNowShortDate();
@@ -108,9 +189,9 @@
String fileName = folder + fName;
boolean r =false;
if(StringUtils.equals(Constants.uploadType.blob,uploadType)){
- r = azureBlobUtil.uploadFileWithResponse( fileName,is);//涓婁紶
+ r = azureBlobUtil.uploadFileWithResponseAndSize( fileName,is,null);//涓婁紶
}else{
- r = ftp.uploadInputstreamBatch(is, fileName, Constants.equalsInteger(index ,fileList.length),index);
+ r = ftp.uploadInputstreamBatch(is, fileName, Constants.equalsInteger(index ,fileList.size()),index);
}
if (r) {
JSONObject fileJSON = new JSONObject();
@@ -120,6 +201,7 @@
fileJSON.put("originname", originname);
jsonArray.add(fileJSON);
}
+ log.error("銆愪笂浼燜TP鎴愬姛銆�=============缁撴潫========="+index+"====="+r+"===="+fName);
index = index + 1;
}
context.put("data",jsonArray);
@@ -136,6 +218,72 @@
writerJson(response, context);
return;
}
+ @ApiOperation(value = "鎵归噺浠庝紒涓氫复鏃剁礌鏉愬簱涓婁紶鏂囦欢鍒版枃浠舵湇鍔″櫒")
+ @PostMapping(value="/uploadBatchFromWx")
+ @ResponseBody
+ public void uploadBatchFromWx(@RequestBody WebQwUploadDto param, HttpServletResponse response) throws Exception {
+ if(Objects.isNull(param.getFolder()) || param.getMediaIds()==null || param.getMediaIds().size()==0){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ SystemDictData folderData = systemDictDataBiz.queryByCode(Constants.FTP,param.getFolder());
+ if(Objects.isNull(folderData)||StringUtils.isBlank(folderData.getCode())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐩爣鏂囦欢澶归敊璇�");
+ }
+ String folder = systemDictDataBiz.queryByCode(Constants.FTP,param.getFolder()).getCode();
+ String prefixPath = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode();
+ response.setCharacterEncoding("UTF-8");
+ response.setContentType("text/html;charset=UTF-8");
+ Map<String, Object> context = new HashMap<>();
+ try {
+ initUploadTool();
+ context.put("success", true);
+ context.put("code", 200);
+ context.put("errno",0);
+ JSONArray jsonArray = new JSONArray();
+ Integer index = Constants.ONE;
+ for (String media : param.getMediaIds()) {
+ //鑾峰緱姣忎竴涓枃浠�
+ String endType = ".jpg";
+ String originname = UUID.randomUUID().toString()+endType;
+ Map<String,Object> map = QywxUtil.getMediaInputstreamMap(systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_TOKEN).getCode(),media);
+ if(map == null || map.get("data") == null){
+ log.error("浼佷笟寰俊绱犳潗涓嬭浇澶辫触锛�========="+media);
+ continue;
+ }
+ log.error("浼佷笟寰俊绱犳潗涓嬭浇鎴愬姛锛�========="+media);
+ String date = DateUtil.getNowShortDate();
+ String fName = date + "/" + originname;
+ String fileName = folder + fName;
+ boolean r =false;
+ if(StringUtils.equals(Constants.uploadType.blob,uploadType)){
+ r = azureBlobUtil.uploadFileWithResponseAndSize( fileName, (InputStream) map.get("data"),(Integer)map.get("size"));//涓婁紶
+ }else{
+ r = ftp.uploadInputstreamBatch( (InputStream) map.get("data"), fileName, Constants.equalsInteger(index ,param.getMediaIds().size()),index);
+ }
+ if (r) {
+ JSONObject fileJSON = new JSONObject();
+ fileJSON.put("url", prefixPath + fileName);
+ fileJSON.put("imgaddr", fName);
+ fileJSON.put("imgname", fileName);
+ fileJSON.put("originname", originname);
+ jsonArray.add(fileJSON);
+ }
+ index = index + 1;
+ }
+ context.put("data",jsonArray);
+ } catch (Exception e) {
+ log.error("銆愪笂浼燜TP澶辫触銆�======================"+e.getMessage());
+ context.put("code", 0);
+ context.put("message", "涓婁紶澶辫触");
+ context.put("errno",0);
+ writerJson(response, context);
+ return;
+
+ }
+ writerJson(response, context);
+ return;
+ }
+
@ApiOperation(value = "鎵归噺涓婁紶鏂囦欢鍒癋TP")
@RequestMapping(method= RequestMethod.POST,value="/uploadBatchOld")
@ResponseBody
@@ -178,7 +326,7 @@
String fileName = folder + fName;
boolean r =false;
if(StringUtils.equals(Constants.uploadType.blob,uploadType)){
- r = azureBlobUtil.uploadFileWithResponse( fileName,is);//涓婁紶
+ r = azureBlobUtil.uploadFileWithResponseAndSize( fileName,is,null);//涓婁紶
}else{
r = ftp.uploadInputstreamBatch(is, fileName, Constants.equalsInteger(index ,fileList.size()),index);
}
@@ -211,10 +359,13 @@
private void initUploadTool() throws Exception{
if(StringUtils.equals(Constants.uploadType.blob,uploadType)){
if(azureBlobUtil == null){
- azureBlobUtil = new AzureBlobUtil(systemDictDataBiz.queryByCode(Constants.AZURE_BLOB,Constants.AZURE_BLOB_ACCESSNAME).getCode(),
+ azureBlobUtil = new AzureBlobUtil(
+ systemDictDataBiz.queryByCode(Constants.AZURE_BLOB,Constants.AZURE_BLOB_ACCESSNAME).getCode(),
systemDictDataBiz.queryByCode(Constants.AZURE_BLOB,Constants.AZURE_BLOB_ACCESSKEY).getCode(),
systemDictDataBiz.queryByCode(Constants.AZURE_BLOB,Constants.AZURE_BLOB_ENDPOINT).getCode(),
systemDictDataBiz.queryByCode(Constants.AZURE_BLOB,Constants.AZURE_BLOB_CONTAINER).getCode());
+ }else{
+ azureBlobUtil.initClient();
}
}else{
if(ftp == null){
@@ -266,7 +417,7 @@
String fileName = folder+"/"+fName;
boolean r =false;
if(StringUtils.equals(Constants.uploadType.blob,uploadType)){
- r = azureBlobUtil.uploadFileWithResponse( fileName,is);//涓婁紶
+ r = azureBlobUtil.uploadFileWithResponseAndSize( fileName,is,null);//涓婁紶
}else{
r = ftp.uploadInputstream(is,fileName);
}
--
Gitblit v1.9.3