Commit 88df6001 authored by shiyu's avatar shiyu

上传视频

parent 7294a156
...@@ -50,8 +50,10 @@ public class WebMvcConfiguration implements WebMvcConfigurer { ...@@ -50,8 +50,10 @@ public class WebMvcConfiguration implements WebMvcConfigurer {
"/wx/selfPage/countIntroduceAmount", "/wx/selfPage/countIntroduceAmount",
"/wx/exchange/findExchangeItem", "/wx/specialPerformance/findInfos", "/wx/specialPerformance/findItemList", "/wx/exchange/findExchangeItem", "/wx/specialPerformance/findInfos", "/wx/specialPerformance/findItemList",
"/wx/groupPurchase/findList", "/wx/groupPurchase/findItemDetail", "/wx/exchangeApplyOrder/handleApplyOrder", "/wx/supplierItem/findDiscountList", "/wx/groupPurchase/findList", "/wx/groupPurchase/findItemDetail", "/wx/exchangeApplyOrder/handleApplyOrder", "/wx/supplierItem/findDiscountList",
"/wx/storage/uploadVideo",
"/wx/appletPageConfig/**", "/wx/blindBox/**" "/wx/appletPageConfig/**", "/wx/blindBox/**"
//下列路径上线注释 //下列路径上线注释
,"/wx/sellActivity/**"
// ,"/wx/itemTagOperate/**", "/wx/openShop/**", "/wx/earnestRecord/**", "/wx/auctionEarnest/**", "/wx/userAccount/**" // ,"/wx/itemTagOperate/**", "/wx/openShop/**", "/wx/earnestRecord/**", "/wx/auctionEarnest/**", "/wx/userAccount/**"
/* ,"/wx/specialPerformance/**" /* ,"/wx/specialPerformance/**"
, "/wx/supplierItem/**", "/wx/shareRecord/**", "/wx/distributionOrder/**", "/wx/selfPage/**", "/wx/auctionRecord/**", , "/wx/supplierItem/**", "/wx/shareRecord/**", "/wx/distributionOrder/**", "/wx/selfPage/**", "/wx/auctionRecord/**",
......
package com.wwdz.ch.wx.web; package com.wwdz.ch.wx.web;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.wwdz.ch.core.consts.CommConsts;
import com.wwdz.ch.core.consts.MediaTypeEnum;
import com.wwdz.ch.core.storage.QiniuStorage;
import com.wwdz.ch.core.storage.StorageService; import com.wwdz.ch.core.storage.StorageService;
import com.wwdz.ch.core.util.CharUtil; import com.wwdz.ch.core.util.CharUtil;
import com.wwdz.ch.core.util.ImgUtil; import com.wwdz.ch.core.util.ImgUtil;
...@@ -9,8 +12,10 @@ import com.wwdz.ch.core.util.ResponseUtil; ...@@ -9,8 +12,10 @@ import com.wwdz.ch.core.util.ResponseUtil;
import com.wwdz.ch.db.dao.dts.DtsStorageDao; import com.wwdz.ch.db.dao.dts.DtsStorageDao;
import com.wwdz.ch.db.domain.Storage; import com.wwdz.ch.db.domain.Storage;
import com.wwdz.ch.db.domain.System; import com.wwdz.ch.db.domain.System;
import com.xxdxxs.utils.CommonUtils;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -18,7 +23,6 @@ import org.springframework.core.io.Resource; ...@@ -18,7 +23,6 @@ import org.springframework.core.io.Resource;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.util.StringUtils;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
...@@ -27,11 +31,14 @@ import javax.imageio.ImageIO; ...@@ -27,11 +31,14 @@ import javax.imageio.ImageIO;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.net.URL;
import java.util.*; import java.util.*;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import static com.wwdz.ch.core.util.MediaUtil.bufferedImageToInputStream;
/** /**
* 对象存储服务(暂未用) * 对象存储服务(暂未用)
*/ */
...@@ -50,6 +57,9 @@ public class WxStorageController { ...@@ -50,6 +57,9 @@ public class WxStorageController {
private ExecutorService threadPool = Executors.newFixedThreadPool(20); private ExecutorService threadPool = Executors.newFixedThreadPool(20);
@Autowired
QiniuStorage qiniuStorage;
@SuppressWarnings("unused") @SuppressWarnings("unused")
private String generateKey(String originalFilename) { private String generateKey(String originalFilename) {
int index = originalFilename.lastIndexOf('.'); int index = originalFilename.lastIndexOf('.');
...@@ -103,6 +113,46 @@ public class WxStorageController { ...@@ -103,6 +113,46 @@ public class WxStorageController {
return ResponseUtil.ok(data); return ResponseUtil.ok(data);
} }
@PostMapping("/uploadVideo")
@ApiOperation("上传视频,并解析第一帧图片")
public Object uploadVideo(@RequestParam("file") MultipartFile file) throws IOException {
logger.info("【请求开始】上传视频文件,请求参数,file:{}", file.getOriginalFilename());
InputStream fileInputStream = file.getInputStream();
String lastKey = ".mp4";
if (StringUtils.isNotBlank(file.getOriginalFilename())) {
lastKey = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
}
String videoName = CommConsts.UPLOAD_PRE_VIDEO_DIRECTORY + CommonUtils.getUUID() + lastKey;
qiniuStorage.store(fileInputStream, file.getSize(), file.getContentType(), videoName);
String videosUrl = qiniuStorage.generateUrl(videoName);
return videosUrl;
/*String video = "";
String[] images = videosUrl.split(";");
StringBuffer stringBuffer = new StringBuffer();
Arrays.stream(images).forEach(image -> {
if (stringBuffer.length() != 0) {
stringBuffer.append(";");
}
try {
String cutImage = MediaUtil.getImageByCutVedio(image);
logger.info(">>>>>> 截取视频第一帧图片url = {} <<<<<<<", cutImage);
URL url = new URL(cutImage);
InputStream inputStream = url.openStream();
BufferedImage bufferedImage = ImageIO.read(inputStream);
String keyName = CommConsts.UPLOAD_PRE_DIRECTORY + CommonUtils.getUUID() + "_" + bufferedImage.getWidth() + "x" + bufferedImage.getHeight() + "." + MediaTypeEnum.IMAGE_JPG.getExt();
InputStream imageStream = bufferedImageToInputStream(bufferedImage, MediaTypeEnum.IMAGE_JPG.getExt());
qiniuStorage.store(imageStream, 1, MediaTypeEnum.IMAGE_JPG.getMime(), keyName);
String urlOfSize = qiniuStorage.generateUrl(keyName);
stringBuffer.append(image).append(",").append(urlOfSize);
} catch (Exception e) {
stringBuffer.append(image);
logger.error("视频图片上传失败", e);
}
});
video = stringBuffer.toString();
return video;*/
}
/** /**
* 批量上传文件 * 批量上传文件
* *
......
...@@ -149,10 +149,12 @@ public class DistributionOrderController { ...@@ -149,10 +149,12 @@ public class DistributionOrderController {
} }
} }
} }
String[] codeArr = dto.getRemark().split(","); if (StringUtils.hasLength(distributionOrder.getRemark())) {
for (String code : codeArr) { String[] codeArr = distributionOrder.getRemark().split(",");
if (codeList.contains(code)) { for (String code : codeArr) {
return Result.failed(code + "号已售出"); if (codeList.contains(code)) {
return Result.failed(code + "号已售出");
}
} }
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment