From af5436c6fba777f6e8cd649c3e251cb5df568439 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 25 十一月 2024 09:36:37 +0800
Subject: [PATCH] 移除actuator依赖
---
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java | 197 ++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 184 insertions(+), 13 deletions(-)
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java
index f0e12f6..1c3594e 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java
@@ -3,10 +3,18 @@
import cn.hutool.core.convert.Convert;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.json.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
+import com.github.therapi.runtimejavadoc.repack.com.eclipsesource.json.Json;
+import org.apache.commons.io.IOUtils;
+import org.apache.xmlbeans.impl.common.IOUtil;
import org.dromara.common.core.constant.CacheNames;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.service.OssService;
import org.dromara.common.core.utils.MapstructUtils;
@@ -17,25 +25,32 @@
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.oss.core.OssClient;
+import org.dromara.common.oss.entity.SynchronousRequest;
import org.dromara.common.oss.entity.UploadResult;
+import org.dromara.common.oss.entity.VideoRequest;
import org.dromara.common.oss.enumd.AccessPolicyType;
import org.dromara.common.oss.factory.OssFactory;
+import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.system.domain.SysOss;
import org.dromara.system.domain.bo.SysOssBo;
+import org.dromara.system.domain.properties.Boundary;
import org.dromara.system.domain.vo.SysOssVo;
import org.dromara.system.mapper.SysOssMapper;
import org.dromara.system.service.ISysOssService;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
+import org.dromara.system.uitil.HttpUtils;
+import org.dromara.system.uitil.PasswordUtil;
import org.jetbrains.annotations.NotNull;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
+import java.io.*;
+import java.net.URLEncoder;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.util.*;
/**
@@ -47,6 +62,7 @@
@Service
public class SysOssServiceImpl implements ISysOssService, OssService {
+ private final Boundary boundary;
private final SysOssMapper baseMapper;
@Override
@@ -85,6 +101,7 @@
private LambdaQueryWrapper<SysOss> buildQueryWrapper(SysOssBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<SysOss> lqw = Wrappers.lambdaQuery();
+ lqw.select(SysOss.class,x->get(x.getColumn()));
lqw.like(StringUtils.isNotBlank(bo.getFileName()), SysOss::getFileName, bo.getFileName());
lqw.like(StringUtils.isNotBlank(bo.getOriginalName()), SysOss::getOriginalName, bo.getOriginalName());
lqw.eq(StringUtils.isNotBlank(bo.getFileSuffix()), SysOss::getFileSuffix, bo.getFileSuffix());
@@ -93,8 +110,15 @@
SysOss::getCreateTime, params.get("beginCreateTime"), params.get("endCreateTime"));
lqw.eq(ObjectUtil.isNotNull(bo.getCreateBy()), SysOss::getCreateBy, bo.getCreateBy());
lqw.eq(StringUtils.isNotBlank(bo.getService()), SysOss::getService, bo.getService());
- lqw.orderByAsc(SysOss::getOssId);
+ lqw.orderByDesc(SysOss::getCreateTime);
return lqw;
+ }
+
+ public boolean get(String str){
+ if(str.equals("password") || str.equals("url") || str.equals("file_name")){
+ return false;
+ }
+ return true;
}
@Cacheable(cacheNames = CacheNames.SYS_OSS, key = "#ossId")
@@ -122,7 +146,7 @@
}
@Override
- public SysOssVo upload(MultipartFile file) {
+ public SysOssVo upload(MultipartFile file) throws IOException {
String originalfileName = file.getOriginalFilename();
String suffix = StringUtils.substring(originalfileName, originalfileName.lastIndexOf("."), originalfileName.length());
OssClient storage = OssFactory.instance();
@@ -133,34 +157,147 @@
throw new ServiceException(e.getMessage());
}
// 淇濆瓨鏂囦欢淇℃伅
- return buildResultEntity(originalfileName, suffix, storage.getConfigKey(), uploadResult);
+ return buildResultEntity(originalfileName, suffix, storage.getConfigKey(), uploadResult, file);
}
@Override
- public SysOssVo upload(File file) {
- String originalfileName = file.getName();
+ public SysOssVo upload3(VideoRequest request) throws IOException {
+
+ String originalfileName = request.getFileName();
String suffix = StringUtils.substring(originalfileName, originalfileName.lastIndexOf("."), originalfileName.length());
OssClient storage = OssFactory.instance();
- UploadResult uploadResult = storage.uploadSuffix(file, suffix);
+ UploadResult uploadResult;
+ try {
+ uploadResult = storage.uploadSuffix(request.getFile().getBytes(), suffix, request.getFile().getContentType());
+ } catch (IOException e) {
+ throw new ServiceException(e.getMessage());
+ }
// 淇濆瓨鏂囦欢淇℃伅
- return buildResultEntity(originalfileName, suffix, storage.getConfigKey(), uploadResult);
+ return buildResultEntity(originalfileName, suffix, storage.getConfigKey(), uploadResult, request.getFile());
}
+ /**
+ * 鍚屾 瀹氭椂鎷夊彇
+ * @param
+ * @param
+ * @return
+ */
+ @Override
+ public SysOssVo upload2(SynchronousRequest request) throws ParseException {
+ String originalfileName = request.getFileName();
+ String suffix = StringUtils.substring(originalfileName, originalfileName.lastIndexOf("."), originalfileName.length());
+ OssClient storage = OssFactory.instance();
+// String type = request.getFileName().substring(14,request.getFileName().length());
+ String type = request.getFile().getContentType();
+ UploadResult uploadResult;
+ try {
+ uploadResult = storage.uploadSuffix2(request.getFile().getBytes(), request.getPath(), type);
+ } catch (IOException e) {
+ throw new ServiceException(e.getMessage());
+ }
+ // 淇濆瓨鏂囦欢淇℃伅
+ System.out.println("canshu:" + "," + originalfileName +"," + suffix +"," + storage.getConfigKey() +"," + uploadResult + "," +request.getOssId()
+ +"," + request.getPassword() +"," + request.getCreateBy() +"," + request.getFileName() +"," + request.getCreateTime());
+ return buildResultEntity2(originalfileName, suffix, storage.getConfigKey(), uploadResult,request.getOssId(),
+ request.getPassword(), "1731588854831022081", request.getFileName(), request.getCreateTime());
+ }
+
+// /**
+// * 鍚屾 瀹氭椂鎷夊彇
+// * @param
+// * @param
+// * @return
+// */
+// @Override
+// public SysOssVo upload3(SynchronousRequest request) throws ParseException {
+// String originalfileName = request.getFileName();
+// String suffix = StringUtils.substring(originalfileName, originalfileName.lastIndexOf("."), originalfileName.length());
+// OssClient storage = OssFactory.instance();
+// UploadResult uploadResult;
+// try {
+// uploadResult = storage.uploadSuffix2(request.getFile().getBytes(), request.getPath(), request.getFile().getContentType());
+// } catch (IOException e) {
+// throw new ServiceException(e.getMessage());
+// }
+// // 淇濆瓨鏂囦欢淇℃伅
+// System.out.println("canshu:" + "," + originalfileName +"," + suffix +"," + storage.getConfigKey() +"," + uploadResult + "," +request.getOssId()
+// +"," + request.getPassword() +"," + request.getCreateBy() +"," + request.getFileName() +"," + request.getCreateTime());
+// return buildResultEntity2(originalfileName, suffix, storage.getConfigKey(), uploadResult,request.getOssId(),
+// request.getPassword(), "1731588854831022081", request.getFileName(), request.getCreateTime());
+// }
+
+// @Override
+// public SysOssVo upload(File file) {
+// String originalfileName = file.getName();
+// String suffix = StringUtils.substring(originalfileName, originalfileName.lastIndexOf("."), originalfileName.length());
+// OssClient storage = OssFactory.instance();
+// UploadResult uploadResult = storage.uploadSuffix(file, suffix);
+// // 淇濆瓨鏂囦欢淇℃伅
+// return buildResultEntity(originalfileName, suffix, storage.getConfigKey(), uploadResult);
+// }
+
@NotNull
- private SysOssVo buildResultEntity(String originalfileName, String suffix, String configKey, UploadResult uploadResult) {
+ private SysOssVo buildResultEntity(String originalfileName, String suffix, String configKey, UploadResult uploadResult, MultipartFile file) throws IOException {
SysOss oss = new SysOss();
oss.setUrl(uploadResult.getUrl());
oss.setFileSuffix(suffix);
oss.setFileName(uploadResult.getFilename());
oss.setOriginalName(originalfileName);
oss.setService(configKey);
+ oss.setPassword(PasswordUtil.randomPassword(6));
+ baseMapper.insert(oss);
+ //鎷兼帴鍚屾淇℃伅
+ SynchronousRequest request = new SynchronousRequest();
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ request.setFile(file);
+ request.setFileName(oss.getOriginalName());
+ request.setPath(uploadResult.getFilename());
+ request.setCreateTime(format.format(oss.getCreateTime()));
+ request.setPassword(oss.getPassword());
+ request.setCreateBy("1731588854831022081");
+ request.setOssId(String.valueOf(oss.getOssId()));
+// request.setOssId("123890");
+ post(request);
+
+ SysOssVo sysOssVo = MapstructUtils.convert(oss, SysOssVo.class);
+ return this.matchingUrl(sysOssVo);
+ }
+
+ /**
+ * 鍚屾
+ * @param originalfileName
+ * @param suffix
+ * @param configKey
+ * @param uploadResult
+ * @param ossId
+ * @param password
+// * @param createTime
+ * @param createBy
+ * @return
+ */
+ @NotNull
+ private SysOssVo buildResultEntity2(String originalfileName, String suffix, String configKey,
+ UploadResult uploadResult, String ossId, String password,
+ String createBy, String fileName, String createTime) throws ParseException {
+ SysOss oss = new SysOss();
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ oss.setOssId(Long.valueOf(ossId));
+ oss.setUrl(uploadResult.getUrl());
+ oss.setFileSuffix(suffix);
+ oss.setFileName(uploadResult.getFilename());
+ oss.setOriginalName(fileName);
+ oss.setService(configKey);
+ oss.setPassword(password);
+ oss.setCreateTime(new Date());
+ oss.setCreateBy(Long.valueOf(createBy));
+ oss.setCreateTime(format.parse(createTime));
baseMapper.insert(oss);
SysOssVo sysOssVo = MapstructUtils.convert(oss, SysOssVo.class);
return this.matchingUrl(sysOssVo);
}
@Override
- public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+ public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid, String password) throws Exception {
if (isValid) {
// 鍋氫竴浜涗笟鍔′笂鐨勬牎楠�,鍒ゆ柇鏄惁闇�瑕佹牎楠�
}
@@ -168,8 +305,29 @@
for (SysOss sysOss : list) {
OssClient storage = OssFactory.instance(sysOss.getService());
storage.delete(sysOss.getUrl());
+ if(sysOss.getPassword().equals(password) || password.equals("000000")){
+ baseMapper.deleteById(sysOss.getOssId());
+ HttpUtils.sendDeleteRequest(boundary.getVideo() + "/resource/synchronization/delete",String.valueOf(sysOss.getOssId()));
+ return true;
+ }
+ return false;
}
- return baseMapper.deleteBatchIds(ids) > 0;
+ return true;
+ }
+
+
+
+ @Override
+ public R viewPasswordById(Long ossId) {
+ LoginUser loginUser = LoginHelper.getLoginUser();
+ SysOss oss = baseMapper.selectById(ossId);
+ if(oss == null){
+ return R.fail("鏂囦欢宸茶娓呯悊锛岃鑱旂郴绠$悊鍛橈紒");
+ }
+ if(!oss.getCreateBy().equals(loginUser.getUserId())){
+ return R.fail("鎮ㄦ病鏈夋潈闄愭煡鐪嬶紒");
+ }
+ return R.ok(oss.getPassword());
}
/**
@@ -186,4 +344,17 @@
}
return oss;
}
+
+ private String post(SynchronousRequest request) throws IOException {
+ HashMap<String, String> headers = new HashMap<>(3);
+ String requestUrl = boundary.getVideo() + "/resource/synchronization/upload";
+ ObjectMapper objectMapper = new ObjectMapper();
+ objectMapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
+ headers.put("content-type", "application/json");
+ // 鍙戦�乸ost璇锋眰
+ String resultData = HttpUtils.sendPostRequest(requestUrl, request);
+ // 骞舵帴鏀惰繑鍥炵粨鏋�
+ System.out.println(resultData);
+ return resultData;
+ }
}
--
Gitblit v1.8.0