|
@@ -17,100 +17,89 @@ import cn.com.qmth.examcloud.core.basic.service.ResourceService;
|
|
|
import cn.com.qmth.examcloud.core.basic.service.bean.ResourceInfo;
|
|
|
import cn.com.qmth.examcloud.support.filestorage.FileStorageUtil;
|
|
|
import cn.com.qmth.examcloud.web.filestorage.FileStoragePathEnvInfo;
|
|
|
+import cn.com.qmth.examcloud.web.filestorage.YunPathInfo;
|
|
|
|
|
|
@Service
|
|
|
public class ResourceServiceImpl implements ResourceService {
|
|
|
|
|
|
- private static final String FILE_ROOT_PATH = "/resource";
|
|
|
-
|
|
|
- private static final String FILE_PATH_SEPARATE = "/";
|
|
|
-
|
|
|
- @Autowired
|
|
|
- ResourceRepo resourceRepo;
|
|
|
-
|
|
|
-// @Autowired
|
|
|
-// UpyunCloudService upyunCloudService;
|
|
|
-
|
|
|
- @Override
|
|
|
- public void addDir(ResourceInfo info) {
|
|
|
-
|
|
|
- ResourceEntity e = new ResourceEntity();
|
|
|
- e.setName(info.getName());
|
|
|
- e.setRootOrgId(info.getRootOrgId());
|
|
|
- e.setIsFile(false);
|
|
|
- if (info.getParentId() == null) {
|
|
|
- e.setParentId(null);
|
|
|
- e.setFilePath(FILE_ROOT_PATH + FILE_PATH_SEPARATE + info.getRootOrgId()
|
|
|
- + FILE_PATH_SEPARATE + info.getName());
|
|
|
- } else {
|
|
|
- e.setParentId(info.getParentId());
|
|
|
- Optional<ResourceEntity> op = resourceRepo.findById(info.getParentId());
|
|
|
- if (op.isPresent()) {
|
|
|
- ResourceEntity pe = op.get();
|
|
|
- e.setFilePath(pe.getFilePath() + FILE_PATH_SEPARATE + info.getName());
|
|
|
- } else {
|
|
|
- throw new StatusException("100000", "上级目录不存在");
|
|
|
- }
|
|
|
- }
|
|
|
- resourceRepo.saveAndFlush(e);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void addFile(Long rootOrgId, Long parentId, MultipartFile dataFile) {
|
|
|
-
|
|
|
- ResourceEntity e = new ResourceEntity();
|
|
|
- String fileName = dataFile.getOriginalFilename();
|
|
|
- e.setName(fileName);
|
|
|
- e.setRootOrgId(rootOrgId);
|
|
|
- e.setIsFile(true);
|
|
|
- String suffix = fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length());
|
|
|
- e.setSuffix(suffix);
|
|
|
- if (parentId == null) {
|
|
|
- e.setParentId(null);
|
|
|
- e.setFilePath(FILE_ROOT_PATH + FILE_PATH_SEPARATE + rootOrgId + FILE_PATH_SEPARATE
|
|
|
- + fileName);
|
|
|
- } else {
|
|
|
- e.setParentId(parentId);
|
|
|
- Optional<ResourceEntity> op = resourceRepo.findById(parentId);
|
|
|
- if (op.isPresent()) {
|
|
|
- ResourceEntity pe = op.get();
|
|
|
- e.setFilePath(pe.getFilePath() + FILE_PATH_SEPARATE + fileName);
|
|
|
- } else {
|
|
|
- throw new StatusException("100020", "上级目录不存在");
|
|
|
- }
|
|
|
- }
|
|
|
- ResourceEntity olde = resourceRepo.findByRootOrgIdAndFilePath(rootOrgId, e.getFilePath());
|
|
|
- if (olde != null) {
|
|
|
- olde.setUpdateTime(new Date());
|
|
|
- resourceRepo.save(olde);
|
|
|
- } else {
|
|
|
- resourceRepo.save(e);
|
|
|
- }
|
|
|
- CommonsMultipartFile cf = (CommonsMultipartFile) dataFile;
|
|
|
- DiskFileItem fi = (DiskFileItem) cf.getFileItem();
|
|
|
-
|
|
|
- File f = fi.getStoreLocation();
|
|
|
-// PutFileReq req = new PutFileReq();
|
|
|
-// List<FormFilePart> formFilePartList = new ArrayList<FormFilePart>();
|
|
|
-
|
|
|
-// FormFilePart part = new FormFilePart("file", fileName, f);
|
|
|
-// formFilePartList.add(part);
|
|
|
-//
|
|
|
-// req.setFormFilePartList(formFilePartList);
|
|
|
-// req.setSiteId("resource");
|
|
|
-// req.setRootOrgId(rootOrgId);
|
|
|
-// String relativePath = e.getFilePath().replaceFirst(FILE_ROOT_PATH, "")
|
|
|
-// .replaceFirst(FILE_PATH_SEPARATE, "");
|
|
|
-// req.setRelativePath(relativePath);
|
|
|
-// upyunCloudService.putFile(req);
|
|
|
-
|
|
|
- //通用存储
|
|
|
- FileStoragePathEnvInfo env=new FileStoragePathEnvInfo();
|
|
|
- env.setRootOrgId(rootOrgId.toString());
|
|
|
- String relativePath = e.getFilePath().replaceFirst(FILE_ROOT_PATH, "")
|
|
|
- .replaceFirst(FILE_PATH_SEPARATE, "");
|
|
|
- env.setRelativePath(relativePath);
|
|
|
- FileStorageUtil.saveFile("resource", env, f,null);
|
|
|
-
|
|
|
- }
|
|
|
+ private static final String FILE_ROOT_PATH = "/resource";
|
|
|
+
|
|
|
+ private static final String FILE_PATH_SEPARATE = "/";
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ ResourceRepo resourceRepo;
|
|
|
+
|
|
|
+ // @Autowired
|
|
|
+ // UpyunCloudService upyunCloudService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void addDir(ResourceInfo info) {
|
|
|
+
|
|
|
+ ResourceEntity e = new ResourceEntity();
|
|
|
+ e.setName(info.getName());
|
|
|
+ e.setRootOrgId(info.getRootOrgId());
|
|
|
+ e.setIsFile(false);
|
|
|
+ if (info.getParentId() == null) {
|
|
|
+ e.setParentId(null);
|
|
|
+ e.setFilePath(
|
|
|
+ FILE_ROOT_PATH + FILE_PATH_SEPARATE + info.getRootOrgId() + FILE_PATH_SEPARATE + info.getName());
|
|
|
+ } else {
|
|
|
+ e.setParentId(info.getParentId());
|
|
|
+ Optional<ResourceEntity> op = resourceRepo.findById(info.getParentId());
|
|
|
+ if (op.isPresent()) {
|
|
|
+ ResourceEntity pe = op.get();
|
|
|
+ e.setFilePath(pe.getFilePath() + FILE_PATH_SEPARATE + info.getName());
|
|
|
+ } else {
|
|
|
+ throw new StatusException("100000", "上级目录不存在");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ resourceRepo.saveAndFlush(e);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void addFile(Long rootOrgId, Long parentId, MultipartFile dataFile) {
|
|
|
+
|
|
|
+ ResourceEntity e = new ResourceEntity();
|
|
|
+ String fileName = dataFile.getOriginalFilename();
|
|
|
+ e.setName(fileName);
|
|
|
+ e.setRootOrgId(rootOrgId);
|
|
|
+ e.setIsFile(true);
|
|
|
+ String suffix = fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length());
|
|
|
+ e.setSuffix(suffix);
|
|
|
+
|
|
|
+
|
|
|
+ if (parentId == null) {
|
|
|
+ e.setParentId(null);
|
|
|
+ e.setFilePath(FILE_ROOT_PATH + FILE_PATH_SEPARATE + rootOrgId + FILE_PATH_SEPARATE + fileName);
|
|
|
+ } else {
|
|
|
+ e.setParentId(parentId);
|
|
|
+ Optional<ResourceEntity> op = resourceRepo.findById(parentId);
|
|
|
+ if (op.isPresent()) {
|
|
|
+ ResourceEntity pe = op.get();
|
|
|
+ e.setFilePath(pe.getFilePath() + FILE_PATH_SEPARATE + fileName);
|
|
|
+ } else {
|
|
|
+ throw new StatusException("100020", "上级目录不存在");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ CommonsMultipartFile cf = (CommonsMultipartFile) dataFile;
|
|
|
+ DiskFileItem fi = (DiskFileItem) cf.getFileItem();
|
|
|
+
|
|
|
+ File f = fi.getStoreLocation();
|
|
|
+ // 通用存储
|
|
|
+ FileStoragePathEnvInfo env = new FileStoragePathEnvInfo();
|
|
|
+ env.setRootOrgId(rootOrgId.toString());
|
|
|
+ env.setRelativePath(e.getFilePath());
|
|
|
+ YunPathInfo pi=FileStorageUtil.saveFile("resource", env, f, null);
|
|
|
+ e.setFileTreatyPath(pi.getRelativePath());
|
|
|
+
|
|
|
+ ResourceEntity olde = resourceRepo.findByRootOrgIdAndFilePath(rootOrgId, e.getFilePath());
|
|
|
+ if (olde != null) {
|
|
|
+ olde.setUpdateTime(new Date());
|
|
|
+ resourceRepo.save(olde);
|
|
|
+ } else {
|
|
|
+ resourceRepo.save(e);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
}
|