|
@@ -4,17 +4,24 @@ import cn.com.ctop.common.module.entity.MaterialImageInfo;
|
|
|
import cn.com.ctop.common.module.mapper.MaterialImageInfoMapper;
|
|
|
import cn.com.ctop.common.module.service.IMaterialImageInfoService;
|
|
|
import cn.com.ctop.common.module.utils.Check;
|
|
|
+import cn.com.ctop.common.module.utils.LoadFileUtil;
|
|
|
import cn.com.ctop.common.module.utils.ResultMapUtils;
|
|
|
import cn.com.ctop.common.module.utils.StatusCode;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import it.sauronsoftware.jave.Encoder;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.io.File;
|
|
|
+import java.io.FileInputStream;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
+import java.nio.channels.FileChannel;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -32,6 +39,11 @@ public class MaterialImageInfoServiceImpl extends ServiceImpl<MaterialImageInfoM
|
|
|
|
|
|
@Value("${oss.replace.download}")
|
|
|
private String downloadUrl;
|
|
|
+ @Value("${oss.replace.replace-value}")
|
|
|
+ private String replaceValue;
|
|
|
+ @Value("${oss.replace.replace-old-value}")
|
|
|
+ private String replaceOldValue;
|
|
|
+
|
|
|
|
|
|
@Autowired
|
|
|
private MaterialImageInfoMapper materialImageInfoMapper;
|
|
@@ -39,34 +51,50 @@ public class MaterialImageInfoServiceImpl extends ServiceImpl<MaterialImageInfoM
|
|
|
|
|
|
@Override
|
|
|
public void insertImage(JSONObject imageJson) {
|
|
|
- String videoId = imageJson.getString("videoId");
|
|
|
- if (Check.isNull(videoId)) {
|
|
|
- log.error("视频id不能为空");
|
|
|
+ try {
|
|
|
|
|
|
- }
|
|
|
- String userId = imageJson.getString("userId");
|
|
|
- JSONArray imageArr = imageJson.getJSONArray("imageArr");
|
|
|
- for (int i = 0; i < imageArr.size(); i++) {
|
|
|
- JSONObject json = imageArr.getJSONObject(i);
|
|
|
- if (!Check.isNull(json)) {
|
|
|
- MaterialImageInfo materialImageInfo = new MaterialImageInfo();
|
|
|
- materialImageInfo.setVideoId(videoId);
|
|
|
- materialImageInfo.setCode(json.getString("code"));
|
|
|
- materialImageInfo.setMaterialDescribe(json.getString("materialDescribe"));
|
|
|
- materialImageInfo.setType("IMAGE");
|
|
|
- materialImageInfo.setHeight(json.getString("height"));
|
|
|
- materialImageInfo.setWidth(json.getString("width"));
|
|
|
-
|
|
|
-
|
|
|
- materialImageInfo.setSize(String.valueOf(json.getLong("size") / 1024));
|
|
|
- materialImageInfo.setUrl("https:" + json.getString("url"));
|
|
|
- materialImageInfo.setMaterialName(json.getString("materialName"));
|
|
|
- materialImageInfo.setStatus(0);
|
|
|
- materialImageInfo.setUserId(userId);
|
|
|
- materialImageInfoMapper.insertSelective(materialImageInfo);
|
|
|
+ String videoId = imageJson.getString("videoId");
|
|
|
+ if (Check.isNull(videoId)) {
|
|
|
+ log.error("视频id不能为空");
|
|
|
|
|
|
}
|
|
|
+ String userId = imageJson.getString("userId");
|
|
|
+ JSONArray imageArr = imageJson.getJSONArray("imageArr");
|
|
|
+ for (int i = 0; i < imageArr.size(); i++) {
|
|
|
+ JSONObject json = imageArr.getJSONObject(i);
|
|
|
+ if (!Check.isNull(json)) {
|
|
|
+ MaterialImageInfo materialImageInfo = new MaterialImageInfo();
|
|
|
+ materialImageInfo.setVideoId(videoId);
|
|
|
+ materialImageInfo.setCode(json.getString("code"));
|
|
|
+ materialImageInfo.setMaterialDescribe(json.getString("materialDescribe"));
|
|
|
+ materialImageInfo.setType("IMAGE");
|
|
|
+ String url = "https:" + json.getString("url");
|
|
|
+ materialImageInfo.setUrl(url);
|
|
|
+ materialImageInfo.setMaterialName(json.getString("materialName"));
|
|
|
+ materialImageInfo.setStatus(0);
|
|
|
+ materialImageInfo.setUserId(userId);
|
|
|
+ String replaceUrl = url.replace(replaceOldValue, replaceValue);
|
|
|
+ log.info("图片replaceUrl:{}", url);
|
|
|
+ String localUrl = LoadFileUtil.downLoadFromUrl(replaceUrl, downloadUrl);
|
|
|
+ File file = new File(localUrl);
|
|
|
+ it.sauronsoftware.jave.Encoder encoder = new Encoder();
|
|
|
+ it.sauronsoftware.jave.MultimediaInfo m = encoder.getInfo(file);
|
|
|
+ String width = String.valueOf((m.getVideo().getSize().getWidth()));
|
|
|
+ String height = String.valueOf(m.getVideo().getSize().getHeight());
|
|
|
+ FileInputStream fis = new FileInputStream(file);
|
|
|
+ FileChannel fc = fis.getChannel();
|
|
|
+ BigDecimal fileSize = new BigDecimal(fc.size());
|
|
|
+ String size = String.valueOf(fileSize.divide(new BigDecimal(1024), 2, RoundingMode.HALF_UP));
|
|
|
+ materialImageInfo.setSize(size);
|
|
|
+ materialImageInfo.setWidth(width);
|
|
|
+ materialImageInfo.setHeight(height);
|
|
|
+ materialImageInfoMapper.insertSelective(materialImageInfo);
|
|
|
+ LoadFileUtil.delFile(localUrl);
|
|
|
+ }
|
|
|
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -94,6 +122,46 @@ public class MaterialImageInfoServiceImpl extends ServiceImpl<MaterialImageInfoM
|
|
|
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void getImageFile(String url, Long id) {
|
|
|
+
|
|
|
+ try {
|
|
|
+ if (!Check.isNull(url)) {
|
|
|
+ long l = System.currentTimeMillis();
|
|
|
+ String replaceUrl = url.replace(replaceOldValue, replaceValue);
|
|
|
+ log.info("图片replaceUrl:{}", url);
|
|
|
+ String localUrl = LoadFileUtil.downLoadFromUrl(replaceUrl, downloadUrl);
|
|
|
+ File file = new File(localUrl);
|
|
|
+ it.sauronsoftware.jave.Encoder encoder = new Encoder();
|
|
|
+ try {
|
|
|
+ it.sauronsoftware.jave.MultimediaInfo m = encoder.getInfo(file);
|
|
|
+ MaterialImageInfo imageInfo = new MaterialImageInfo();
|
|
|
+ imageInfo.setId(id);
|
|
|
+ String width = String.valueOf((m.getVideo().getSize().getWidth()));
|
|
|
+ String height = String.valueOf(m.getVideo().getSize().getHeight());
|
|
|
+ FileInputStream fis = new FileInputStream(file);
|
|
|
+ FileChannel fc = fis.getChannel();
|
|
|
+ BigDecimal fileSize = new BigDecimal(fc.size());
|
|
|
+ String size = String.valueOf(fileSize.divide(new BigDecimal(1024), 2, RoundingMode.HALF_UP));
|
|
|
+ imageInfo.setSize(size);
|
|
|
+ imageInfo.setWidth(width);
|
|
|
+ imageInfo.setHeight(height);
|
|
|
+ this.updateById(imageInfo);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ } finally {
|
|
|
+ file.delete();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (
|
|
|
+ Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
public List<String> getCodeList() {
|
|
|
return materialImageInfoMapper.getCodeList();
|