增加自定义层级相关功能
This commit is contained in:
parent
2c6189cc6e
commit
ac415f13b4
|
|
@ -2,6 +2,7 @@ package com.electromagnetic.industry.software.manage.controller;
|
|||
|
||||
import com.electromagnetic.industry.software.common.annotations.RequiredPermission;
|
||||
import com.electromagnetic.industry.software.common.annotations.UserOperation;
|
||||
import com.electromagnetic.industry.software.common.enums.DataOwnEnum;
|
||||
import com.electromagnetic.industry.software.common.enums.FilePermission;
|
||||
import com.electromagnetic.industry.software.common.enums.UserOperationModuleEnum;
|
||||
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
|
||||
|
|
@ -29,27 +30,27 @@ public class EdFileInfoController {
|
|||
@UserOperation(value = "查看了工程树", modelName = UserOperationModuleEnum.DATABASE)
|
||||
@RequestMapping("tree")
|
||||
public ElectromagneticResult<?> tree() {
|
||||
return edFileInfoService.tree();
|
||||
return edFileInfoService.tree(DataOwnEnum.COMMON.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "创建了文件夹", modelName = UserOperationModuleEnum.DATABASE)
|
||||
@RequestMapping("createFolder")
|
||||
public ElectromagneticResult<?> createFolder(@RequestBody CreateFolderDTO createFolderDTO) {
|
||||
return edFileInfoService.createFolder(createFolderDTO);
|
||||
return edFileInfoService.createFolder(createFolderDTO, DataOwnEnum.COMMON.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "作废了文件夹", modelName = UserOperationModuleEnum.DATABASE)
|
||||
@RequiredPermission(value = FilePermission.DELETE)
|
||||
@RequestMapping("delete")
|
||||
public ElectromagneticResult<?> delete(@RequestParam String id) {
|
||||
return edFileInfoService.delete(id);
|
||||
return edFileInfoService.delete(id, DataOwnEnum.COMMON.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "查询了文件", modelName = UserOperationModuleEnum.DATABASE)
|
||||
@RequiredPermission(value = FilePermission.VIEW)
|
||||
@RequestMapping("info")
|
||||
public ElectromagneticResult<?> info(@RequestBody FileInfoQueryDTO fileInfoQueryDTO) {
|
||||
return edFileInfoService.queryEdFileInfo(fileInfoQueryDTO);
|
||||
return edFileInfoService.queryEdFileInfo(fileInfoQueryDTO, DataOwnEnum.COMMON.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "上传了文件", modelName = UserOperationModuleEnum.DATABASE)
|
||||
|
|
@ -58,21 +59,21 @@ public class EdFileInfoController {
|
|||
public ElectromagneticResult<?> upload(@RequestParam("parentId") String parentId,
|
||||
@RequestParam("file") MultipartFile file,
|
||||
@RequestParam("strategy") Integer strategy) {
|
||||
return edFileInfoService.upload(parentId, file, strategy);
|
||||
return edFileInfoService.upload(parentId, file, strategy, DataOwnEnum.COMMON.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "下载了文件", modelName = UserOperationModuleEnum.DATABASE)
|
||||
@RequiredPermission(value = FilePermission.DOWNLOAD)
|
||||
@RequestMapping("download")
|
||||
public ResponseEntity<InputStreamResource> download(@RequestParam String id, HttpServletResponse response) {
|
||||
return edFileInfoService.download(id, response);
|
||||
return edFileInfoService.download(id, response, DataOwnEnum.COMMON.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "更新了文件信息", modelName = UserOperationModuleEnum.DATABASE)
|
||||
@RequiredPermission(value = FilePermission.EDIT)
|
||||
@RequestMapping("updateFileInfo")
|
||||
public ElectromagneticResult<?> updateFileInfo(@RequestBody UpdateFileInfoDTO updateFileInfoDTO) {
|
||||
return edFileInfoService.updateFileInfo(updateFileInfoDTO);
|
||||
return edFileInfoService.updateFileInfo(updateFileInfoDTO, DataOwnEnum.COMMON.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "移动了文件", modelName = UserOperationModuleEnum.DATABASE)
|
||||
|
|
@ -81,7 +82,7 @@ public class EdFileInfoController {
|
|||
public ElectromagneticResult<?> moveFile(@RequestParam("id") String id,
|
||||
@RequestParam("targetFolderId") String targetFolderId,
|
||||
@RequestParam("strategy") Integer strategy) {
|
||||
return edFileInfoService.moveFile(id, targetFolderId, strategy);
|
||||
return edFileInfoService.moveFile(id, targetFolderId, strategy, DataOwnEnum.COMMON.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "复制了文件", modelName = UserOperationModuleEnum.DATABASE)
|
||||
|
|
@ -90,7 +91,7 @@ public class EdFileInfoController {
|
|||
public ElectromagneticResult<?> copyFile(@RequestParam("id") String id,
|
||||
@RequestParam("targetFolderId") String targetFolderId,
|
||||
@RequestParam("strategy") Integer strategy) {
|
||||
return edFileInfoService.copyFile(id, targetFolderId, strategy);
|
||||
return edFileInfoService.copyFile(id, targetFolderId, strategy, DataOwnEnum.COMMON.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "查看了文件历史版本信息", modelName = UserOperationModuleEnum.DATABASE)
|
||||
|
|
@ -110,24 +111,24 @@ public class EdFileInfoController {
|
|||
@UserOperation(value = "导出了数据库", modelName = UserOperationModuleEnum.DATABASE)
|
||||
@RequestMapping("batchExport")
|
||||
public ResponseEntity<InputStreamResource> batchExport(@RequestParam String fileIds, HttpServletResponse response) throws IOException {
|
||||
return edFileInfoService.batchExport(fileIds, response);
|
||||
return edFileInfoService.batchExport(fileIds, response, DataOwnEnum.COMMON.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "批量了数据库", modelName = UserOperationModuleEnum.DATABASE)
|
||||
@UserOperation(value = "批量上传了数据库", modelName = UserOperationModuleEnum.DATABASE)
|
||||
@RequestMapping(value = "/mergeChunks", method = RequestMethod.GET)
|
||||
public ElectromagneticResult<?> mergeChunks(@RequestParam String identifier,
|
||||
@RequestParam String fileName,
|
||||
@RequestParam Integer totalChunks) {
|
||||
return edFileInfoService.mergeChunks(identifier, fileName, totalChunks);
|
||||
return edFileInfoService.mergeChunks(identifier, fileName, totalChunks, DataOwnEnum.COMMON.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "批量了数据库", modelName = UserOperationModuleEnum.DATABASE)
|
||||
@UserOperation(value = "批量上传了数据库", modelName = UserOperationModuleEnum.DATABASE)
|
||||
@RequestMapping(value = "/batchImport", method = RequestMethod.POST)
|
||||
public ElectromagneticResult<?> batchImport(FileChunkDTO fileChunkDTO) {
|
||||
return edFileInfoService.batchImport(fileChunkDTO);
|
||||
}
|
||||
|
||||
@UserOperation(value = "批量了数据库")
|
||||
@UserOperation(value = "批量上传了数据库")
|
||||
@RequestMapping(value = "/batchImport", method = RequestMethod.GET)
|
||||
public ElectromagneticResult<?> checkChunkExist(FileChunkDTO fileChunkDTO) {
|
||||
return edFileInfoService.checkChunkExist(fileChunkDTO);
|
||||
|
|
@ -136,7 +137,7 @@ public class EdFileInfoController {
|
|||
@UserOperation(value = "查询了发布管理", modelName = UserOperationModuleEnum.DATABASE)
|
||||
@RequestMapping(value = "/uploadRecord", method = RequestMethod.GET)
|
||||
public ElectromagneticResult<?> uploadRecord(@RequestParam int pageNum, @RequestParam int pageSize) {
|
||||
return edFileInfoService.uploadRecord(pageNum, pageSize);
|
||||
return edFileInfoService.uploadRecord(pageNum, pageSize, DataOwnEnum.COMMON.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "查询了文件详细信息", modelName = UserOperationModuleEnum.DATABASE)
|
||||
|
|
@ -150,13 +151,13 @@ public class EdFileInfoController {
|
|||
@RequiredPermission(value = FilePermission.VIEW)
|
||||
@RequestMapping(value = "/queryChildFolder", method = RequestMethod.GET)
|
||||
public ElectromagneticResult<?> queryChildFolder(@RequestParam String parentId) {
|
||||
return edFileInfoService.queryChildFolder(parentId);
|
||||
return edFileInfoService.queryChildFolder(parentId, DataOwnEnum.COMMON.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "预览了文件", modelName = UserOperationModuleEnum.DATABASE)
|
||||
@RequiredPermission(value = FilePermission.DOWNLOAD)
|
||||
@RequestMapping(value = "preview", method = RequestMethod.GET)
|
||||
public ResponseEntity<InputStreamResource> preview(@RequestParam String id, HttpServletResponse response) {
|
||||
return edFileInfoService.preview(id, response);
|
||||
return edFileInfoService.preview(id, response, DataOwnEnum.COMMON.code);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.electromagnetic.industry.software.manage.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.electromagnetic.industry.software.common.enums.DataOwnEnum;
|
||||
import com.electromagnetic.industry.software.common.exception.BizException;
|
||||
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
|
||||
import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil;
|
||||
|
|
@ -86,6 +87,6 @@ public class EdFileRelationController {
|
|||
@RequestParam("file") MultipartFile file,
|
||||
@RequestParam("description") String description,
|
||||
@RequestParam("id") String id) {
|
||||
return ElectromagneticResultUtil.success(edFileRelationService.uploadFileAndRelation(parentId, id, file, description));
|
||||
return ElectromagneticResultUtil.success(edFileRelationService.uploadFileAndRelation(parentId, id, file, description, DataOwnEnum.COMMON.code));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
package com.electromagnetic.industry.software.manage.controller;
|
||||
|
||||
import com.electromagnetic.industry.software.common.annotations.UserOperation;
|
||||
import com.electromagnetic.industry.software.common.enums.DataOwnEnum;
|
||||
import com.electromagnetic.industry.software.common.enums.EleDataStatusEnum;
|
||||
import com.electromagnetic.industry.software.common.enums.UserOperationModuleEnum;
|
||||
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
|
||||
import com.electromagnetic.industry.software.manage.pojo.req.FolderResortDTO;
|
||||
|
|
@ -25,43 +27,43 @@ public class ProjectController {
|
|||
@UserOperation(value = "创建了工程", modelName = UserOperationModuleEnum.PRJ_SETTING)
|
||||
@RequestMapping("create")
|
||||
public ElectromagneticResult<?> create(@RequestParam String prjName) {
|
||||
return edPrjService.createNewPrj(prjName);
|
||||
return edPrjService.createNewPrj(prjName, DataOwnEnum.SYS_PRJ.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "复制了文件", modelName = UserOperationModuleEnum.PRJ_SETTING)
|
||||
@RequestMapping("废除了工程")
|
||||
@UserOperation(value = "删除工程", modelName = UserOperationModuleEnum.PRJ_SETTING)
|
||||
@RequestMapping("delete")
|
||||
public ElectromagneticResult<?> delete(@RequestParam String prjId) {
|
||||
return edPrjService.delete(prjId);
|
||||
return edPrjService.delete(prjId, DataOwnEnum.SYS_PRJ.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "修改了工程名", modelName = UserOperationModuleEnum.PRJ_SETTING)
|
||||
@RequestMapping("modify")
|
||||
public ElectromagneticResult<?> modifyPrjName(@RequestParam String newPrjName, @RequestParam String prjId) {
|
||||
return edPrjService.modifyPrjName(prjId, newPrjName);
|
||||
return edPrjService.modifyPrjName(prjId, newPrjName, DataOwnEnum.SYS_PRJ.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "查询了所有工程", modelName = UserOperationModuleEnum.PRJ_SETTING)
|
||||
@RequestMapping("queryAll")
|
||||
public ElectromagneticResult<?> queryAll() {
|
||||
return edPrjService.queryAllPrjInfo();
|
||||
return edPrjService.queryAllPrjInfo(DataOwnEnum.SYS_PRJ.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "添加了子集", modelName = UserOperationModuleEnum.PRJ_SETTING)
|
||||
@RequestMapping("addFolder")
|
||||
public ElectromagneticResult<?> addFolder(@RequestParam String folderName, @RequestParam String parentId) {
|
||||
return edPrjService.addFolder(parentId, folderName);
|
||||
return edPrjService.addFolder(parentId, folderName, DataOwnEnum.SYS_PRJ.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "修改了子集名称", modelName = UserOperationModuleEnum.PRJ_SETTING)
|
||||
@RequestMapping("modifyFolder")
|
||||
public ElectromagneticResult<?> modifyFolder(@RequestParam String newFolderName, @RequestParam String id) {
|
||||
return edPrjService.modifyFolder(id, newFolderName);
|
||||
return edPrjService.modifyFolder(id, newFolderName, DataOwnEnum.SYS_PRJ.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "废除了子集", modelName = UserOperationModuleEnum.PRJ_SETTING)
|
||||
@RequestMapping("deleteFolder")
|
||||
public ElectromagneticResult<?> deleteFolder(@RequestParam String id) {
|
||||
return edPrjService.deleteFolder(id);
|
||||
return edPrjService.deleteFolder(id, DataOwnEnum.SYS_PRJ.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "更改了层级顺序", modelName = UserOperationModuleEnum.PRJ_SETTING)
|
||||
|
|
@ -73,18 +75,18 @@ public class ProjectController {
|
|||
@UserOperation(value = "发布了工程", modelName = UserOperationModuleEnum.PRJ_SETTING)
|
||||
@RequestMapping("publish")
|
||||
public ElectromagneticResult<?> publish(@RequestParam String prjId) {
|
||||
return edPrjService.publish(prjId);
|
||||
return edPrjService.publish(prjId, DataOwnEnum.SYS_PRJ.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "引用了工程", modelName = UserOperationModuleEnum.PRJ_SETTING)
|
||||
@RequestMapping("follow")
|
||||
public ElectromagneticResult<?> follow(@RequestParam String sourceId, @RequestParam String targetId) {
|
||||
return edPrjService.follow(sourceId, targetId);
|
||||
return edPrjService.follow(sourceId, targetId, DataOwnEnum.SYS_PRJ.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "查询了工程发布状态", modelName = UserOperationModuleEnum.PRJ_SETTING)
|
||||
@RequestMapping("publishStatus")
|
||||
public ElectromagneticResult<?> publishStatus(@RequestBody QueryPublishStatus queryPublishStatus) {
|
||||
return edPrjService.publishStatus(queryPublishStatus);
|
||||
return edPrjService.publishStatus(queryPublishStatus, DataOwnEnum.SYS_PRJ.code);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,90 @@
|
|||
package com.electromagnetic.industry.software.manage.controller;
|
||||
|
||||
import com.electromagnetic.industry.software.common.annotations.UserOperation;
|
||||
import com.electromagnetic.industry.software.common.enums.DataOwnEnum;
|
||||
import com.electromagnetic.industry.software.common.enums.UserOperationModuleEnum;
|
||||
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
|
||||
import com.electromagnetic.industry.software.manage.pojo.req.FolderResortDTO;
|
||||
import com.electromagnetic.industry.software.manage.pojo.req.QueryPublishStatus;
|
||||
import com.electromagnetic.industry.software.manage.service.EdPrjService;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/data/ed/user/prj")
|
||||
public class UserPrjController {
|
||||
|
||||
@Resource
|
||||
private EdPrjService edPrjService;
|
||||
|
||||
@UserOperation(value = "创建了工程", modelName = UserOperationModuleEnum.PRJ_SETTING)
|
||||
@RequestMapping("create")
|
||||
public ElectromagneticResult<?> create(@RequestParam String prjName) {
|
||||
return edPrjService.createNewPrj(prjName, DataOwnEnum.USER_PRJ.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "删除工程", modelName = UserOperationModuleEnum.PRJ_SETTING)
|
||||
@RequestMapping("delete")
|
||||
public ElectromagneticResult<?> delete(@RequestParam String prjId) {
|
||||
return edPrjService.delete(prjId, DataOwnEnum.USER_PRJ.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "修改了工程名", modelName = UserOperationModuleEnum.PRJ_SETTING)
|
||||
@RequestMapping("modify")
|
||||
public ElectromagneticResult<?> modifyPrjName(@RequestParam String newPrjName, @RequestParam String prjId) {
|
||||
return edPrjService.modifyPrjName(prjId, newPrjName, DataOwnEnum.USER_PRJ.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "查询了所有工程", modelName = UserOperationModuleEnum.PRJ_SETTING)
|
||||
@RequestMapping("queryAll")
|
||||
public ElectromagneticResult<?> queryAll() {
|
||||
return edPrjService.queryAllPrjInfo(DataOwnEnum.USER_PRJ.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "添加了子集", modelName = UserOperationModuleEnum.PRJ_SETTING)
|
||||
@RequestMapping("addFolder")
|
||||
public ElectromagneticResult<?> addFolder(@RequestParam String folderName, @RequestParam String parentId) {
|
||||
return edPrjService.addFolder(parentId, folderName, DataOwnEnum.USER_PRJ.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "修改了子集名称", modelName = UserOperationModuleEnum.PRJ_SETTING)
|
||||
@RequestMapping("modifyFolder")
|
||||
public ElectromagneticResult<?> modifyFolder(@RequestParam String newFolderName, @RequestParam String id) {
|
||||
return edPrjService.modifyFolder(id, newFolderName, DataOwnEnum.USER_PRJ.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "废除了子集", modelName = UserOperationModuleEnum.PRJ_SETTING)
|
||||
@RequestMapping("deleteFolder")
|
||||
public ElectromagneticResult<?> deleteFolder(@RequestParam String id) {
|
||||
return edPrjService.deleteFolder(id, DataOwnEnum.USER_PRJ.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "更改了层级顺序", modelName = UserOperationModuleEnum.PRJ_SETTING)
|
||||
@RequestMapping("folderResort")
|
||||
public ElectromagneticResult<?> folderResort(@RequestBody List<FolderResortDTO> folderResortDTOList) {
|
||||
return edPrjService.folderResort(folderResortDTOList);
|
||||
}
|
||||
|
||||
@UserOperation(value = "发布了工程", modelName = UserOperationModuleEnum.PRJ_SETTING)
|
||||
@RequestMapping("publish")
|
||||
public ElectromagneticResult<?> publish(@RequestParam String prjId) {
|
||||
return edPrjService.publish(prjId, DataOwnEnum.USER_PRJ.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "引用了工程", modelName = UserOperationModuleEnum.PRJ_SETTING)
|
||||
@RequestMapping("follow")
|
||||
public ElectromagneticResult<?> follow(@RequestParam String sourceId, @RequestParam String targetId) {
|
||||
return edPrjService.follow(sourceId, targetId, DataOwnEnum.USER_PRJ.code);
|
||||
}
|
||||
|
||||
@UserOperation(value = "查询了工程发布状态", modelName = UserOperationModuleEnum.PRJ_SETTING)
|
||||
@RequestMapping("publishStatus")
|
||||
public ElectromagneticResult<?> publishStatus(@RequestBody QueryPublishStatus queryPublishStatus) {
|
||||
return edPrjService.publishStatus(queryPublishStatus, DataOwnEnum.USER_PRJ.code);
|
||||
}
|
||||
}
|
||||
|
|
@ -111,10 +111,10 @@ public class EdFileInfo extends BaseModel {
|
|||
@TableField(value = "file_code")
|
||||
private String fileCode;
|
||||
/**
|
||||
* 是否是管理员定义的系统层级目录
|
||||
* 数据的归属:0-》上传的文件或者新建的文件夹 1-》系统管理员创建的层级 2-》用户自定义的层级
|
||||
*/
|
||||
@TableField(value = "prj_dir")
|
||||
private Boolean prjDir;
|
||||
private Integer dataOwn;
|
||||
|
||||
/** 当一个文件作废时,其所有的历史文件也会跟着作废,此时该文件及其历史文件的all_deleted=true**/
|
||||
@TableField(value = "all_deleted")
|
||||
|
|
|
|||
|
|
@ -20,21 +20,21 @@ public interface EdFileInfoService {
|
|||
* @param fileInfoQueryDTO
|
||||
* @return
|
||||
*/
|
||||
ElectromagneticResult<?> queryEdFileInfo(FileInfoQueryDTO fileInfoQueryDTO);
|
||||
ElectromagneticResult<?> queryEdFileInfo(FileInfoQueryDTO fileInfoQueryDTO, int dataOwnCode);
|
||||
|
||||
/**
|
||||
* 新建文件夹
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
ElectromagneticResult<?> createFolder(CreateFolderDTO createFolderDTO);
|
||||
ElectromagneticResult<?> createFolder(CreateFolderDTO createFolderDTO, int dataOwnCode);
|
||||
|
||||
/**
|
||||
* 项目层级结构查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
ElectromagneticResult<?> tree();
|
||||
ElectromagneticResult<?> tree(int dataOwnCode);
|
||||
|
||||
/**
|
||||
* 删除目录
|
||||
|
|
@ -42,7 +42,7 @@ public interface EdFileInfoService {
|
|||
* @param id
|
||||
* @return
|
||||
*/
|
||||
ElectromagneticResult<?> delete(String id);
|
||||
ElectromagneticResult<?> delete(String id, int dataOwnCode);
|
||||
|
||||
/**
|
||||
* 下载文件
|
||||
|
|
@ -50,14 +50,14 @@ public interface EdFileInfoService {
|
|||
* @param id
|
||||
* @return
|
||||
*/
|
||||
ResponseEntity<InputStreamResource> download(String id, HttpServletResponse response);
|
||||
ResponseEntity<InputStreamResource> download(String id, HttpServletResponse response, int dataOwnCode);
|
||||
|
||||
/**
|
||||
* 更新文件信息
|
||||
*
|
||||
* @param updateFileInfoDTO
|
||||
*/
|
||||
ElectromagneticResult<?> updateFileInfo(UpdateFileInfoDTO updateFileInfoDTO);
|
||||
ElectromagneticResult<?> updateFileInfo(UpdateFileInfoDTO updateFileInfoDTO, int dataOwnCode);
|
||||
|
||||
/**
|
||||
* 版本回退
|
||||
|
|
@ -92,7 +92,7 @@ public interface EdFileInfoService {
|
|||
* @param totalChunks
|
||||
* @return
|
||||
*/
|
||||
ElectromagneticResult<?> mergeChunks(String identifier, String fileName, Integer totalChunks);
|
||||
ElectromagneticResult<?> mergeChunks(String identifier, String fileName, Integer totalChunks, int dataOwnCode);
|
||||
|
||||
/**
|
||||
* 导出
|
||||
|
|
@ -100,7 +100,7 @@ public interface EdFileInfoService {
|
|||
* @param dataIdArr
|
||||
* @return
|
||||
*/
|
||||
ResponseEntity<InputStreamResource> batchExport(String dataIdArr, HttpServletResponse response) throws IOException;
|
||||
ResponseEntity<InputStreamResource> batchExport(String dataIdArr, HttpServletResponse response, int dataOwnCode) throws IOException;
|
||||
|
||||
/**
|
||||
* 文件上传
|
||||
|
|
@ -110,7 +110,7 @@ public interface EdFileInfoService {
|
|||
* @param strategy
|
||||
* @return
|
||||
*/
|
||||
ElectromagneticResult<?> upload(String parentId, MultipartFile file, Integer strategy);
|
||||
ElectromagneticResult<?> upload(String parentId, MultipartFile file, Integer strategy, int dataOwnCode);
|
||||
|
||||
/**
|
||||
* 版本查看
|
||||
|
|
@ -127,7 +127,7 @@ public interface EdFileInfoService {
|
|||
* @param targetFolderId
|
||||
* @return
|
||||
*/
|
||||
ElectromagneticResult<?> moveFile(String id, String targetFolderId, Integer strategy);
|
||||
ElectromagneticResult<?> moveFile(String id, String targetFolderId, Integer strategy, int dataOwnCode);
|
||||
|
||||
/**
|
||||
* 复制文件
|
||||
|
|
@ -136,14 +136,14 @@ public interface EdFileInfoService {
|
|||
* @param targetFolderId
|
||||
* @return
|
||||
*/
|
||||
ElectromagneticResult<?> copyFile(String id, String targetFolderId, Integer strategy);
|
||||
ElectromagneticResult<?> copyFile(String id, String targetFolderId, Integer strategy, int dataOwnCode);
|
||||
|
||||
/**
|
||||
* 发布管理
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
ElectromagneticResult<?> uploadRecord(int pageNum, int pageSize);
|
||||
ElectromagneticResult<?> uploadRecord(int pageNum, int pageSize, int dataOwnCode);
|
||||
|
||||
/**
|
||||
* 查询文件详情
|
||||
|
|
@ -163,12 +163,12 @@ public interface EdFileInfoService {
|
|||
* @param parentId
|
||||
* @return
|
||||
*/
|
||||
ElectromagneticResult<?> queryChildFolder(String parentId);
|
||||
ElectromagneticResult<?> queryChildFolder(String parentId, int dataOwnCode);
|
||||
|
||||
/**
|
||||
* 文件预览
|
||||
* @param id
|
||||
* @param response
|
||||
*/
|
||||
ResponseEntity<InputStreamResource> preview(String id, HttpServletResponse response);
|
||||
ResponseEntity<InputStreamResource> preview(String id, HttpServletResponse response, int dataOwnCode);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,8 +46,8 @@ public interface EdFileRelationService {
|
|||
* @param parentId
|
||||
* @param id 主文件Id
|
||||
* @param file
|
||||
* @param descrption 关系描述
|
||||
* @param desc 关系描述
|
||||
* @return
|
||||
*/
|
||||
ElectromagneticResult<?> uploadFileAndRelation(String parentId, String id, MultipartFile file, String descrption);
|
||||
ElectromagneticResult<?> uploadFileAndRelation(String parentId, String id, MultipartFile file, String desc, int dataOwnCode);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.electromagnetic.industry.software.manage.service;
|
||||
|
||||
import com.electromagnetic.industry.software.common.enums.DataOwnEnum;
|
||||
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
|
||||
import com.electromagnetic.industry.software.manage.pojo.req.FolderResortDTO;
|
||||
import com.electromagnetic.industry.software.manage.pojo.req.QueryPublishStatus;
|
||||
|
|
@ -13,7 +14,7 @@ public interface EdPrjService {
|
|||
*
|
||||
* @param prjName 新的工程名
|
||||
*/
|
||||
ElectromagneticResult<?> createNewPrj(String prjName);
|
||||
ElectromagneticResult<?> createNewPrj(String prjName, int dataOwnCode);
|
||||
|
||||
/**
|
||||
* 修改项目名称
|
||||
|
|
@ -22,7 +23,7 @@ public interface EdPrjService {
|
|||
* @param newPrjName
|
||||
* @return
|
||||
*/
|
||||
ElectromagneticResult<?> modifyPrjName(String prjId, String newPrjName);
|
||||
ElectromagneticResult<?> modifyPrjName(String prjId, String newPrjName, int dataOwnCode);
|
||||
|
||||
/**
|
||||
* 删除一个项目,做逻辑删除
|
||||
|
|
@ -30,7 +31,7 @@ public interface EdPrjService {
|
|||
* @param prjId
|
||||
* @return
|
||||
*/
|
||||
ElectromagneticResult<?> delete(String prjId);
|
||||
ElectromagneticResult<?> delete(String prjId, int dataOwnCode);
|
||||
|
||||
/**
|
||||
* 添加子集
|
||||
|
|
@ -39,14 +40,14 @@ public interface EdPrjService {
|
|||
* @param folderName
|
||||
* @return
|
||||
*/
|
||||
ElectromagneticResult<?> addFolder(String parentId, String folderName);
|
||||
ElectromagneticResult<?> addFolder(String parentId, String folderName, int dataOwnCode);
|
||||
|
||||
/**
|
||||
* 查询所有项目
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
ElectromagneticResult<?> queryAllPrjInfo();
|
||||
ElectromagneticResult<?> queryAllPrjInfo(int dataOwnCode);
|
||||
|
||||
/**
|
||||
* 子集拖拽重排序
|
||||
|
|
@ -62,7 +63,7 @@ public interface EdPrjService {
|
|||
* @param prjId
|
||||
* @return
|
||||
*/
|
||||
ElectromagneticResult<?> publish(String prjId);
|
||||
ElectromagneticResult<?> publish(String prjId, int dataOwnCode);
|
||||
|
||||
/**
|
||||
* 删除子集
|
||||
|
|
@ -70,7 +71,7 @@ public interface EdPrjService {
|
|||
* @param id
|
||||
* @return
|
||||
*/
|
||||
ElectromagneticResult<?> deleteFolder(String id);
|
||||
ElectromagneticResult<?> deleteFolder(String id, int dataOwnCode);
|
||||
|
||||
/**
|
||||
* 层级沿用
|
||||
|
|
@ -79,7 +80,7 @@ public interface EdPrjService {
|
|||
* @param targetId
|
||||
* @return
|
||||
*/
|
||||
ElectromagneticResult<?> follow(String sourceId, String targetId);
|
||||
ElectromagneticResult<?> follow(String sourceId, String targetId, int dataOwnCode);
|
||||
|
||||
/**
|
||||
* 修改子集名称
|
||||
|
|
@ -88,7 +89,7 @@ public interface EdPrjService {
|
|||
* @param newFolderName
|
||||
* @return
|
||||
*/
|
||||
ElectromagneticResult<?> modifyFolder(String id, String newFolderName);
|
||||
ElectromagneticResult<?> modifyFolder(String id, String newFolderName, int dataOwnCode);
|
||||
|
||||
/**
|
||||
* 获取项目的发布状态
|
||||
|
|
@ -96,5 +97,5 @@ public interface EdPrjService {
|
|||
* @param queryPublishStatus
|
||||
* @return
|
||||
*/
|
||||
ElectromagneticResult<?> publishStatus(QueryPublishStatus queryPublishStatus);
|
||||
ElectromagneticResult<?> publishStatus(QueryPublishStatus queryPublishStatus, int dataOwnCode);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,14 +5,13 @@ import cn.hutool.core.lang.Assert;
|
|||
import cn.hutool.core.lang.tree.Tree;
|
||||
import cn.hutool.core.lang.tree.TreeNodeConfig;
|
||||
import cn.hutool.core.lang.tree.TreeUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
|
||||
import com.electromagnetic.industry.software.common.enums.EleDataSaveStatusEnum;
|
||||
import com.electromagnetic.industry.software.common.enums.EleDataStatusEnum;
|
||||
import com.electromagnetic.industry.software.common.enums.EleDataTypeEnum;
|
||||
import com.electromagnetic.industry.software.common.cons.ElectromagneticConstants;
|
||||
import com.electromagnetic.industry.software.common.enums.*;
|
||||
import com.electromagnetic.industry.software.common.exception.BizException;
|
||||
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
|
||||
import com.electromagnetic.industry.software.common.util.EleCommonUtil;
|
||||
|
|
@ -68,9 +67,11 @@ public class CommonService {
|
|||
private final EleLog log = new EleLog(CommonService.class);
|
||||
@Value("${prj.folder.max.length}")
|
||||
private int prjFolderMaxLength;
|
||||
@Getter
|
||||
|
||||
private String eleDataPath;
|
||||
|
||||
private String userDataPath;
|
||||
|
||||
@Resource
|
||||
private Environment environment;
|
||||
|
||||
|
|
@ -83,25 +84,35 @@ public class CommonService {
|
|||
@PostConstruct
|
||||
public void init() {
|
||||
eleDataPath = EleCommonUtil.isWinOs() ? environment.getProperty("data.windows.path") : environment.getProperty("data.linux.path");
|
||||
userDataPath = EleCommonUtil.isWinOs() ? environment.getProperty("data.windows.user.path") : environment.getProperty("data.linux.user.path");
|
||||
}
|
||||
|
||||
public String getEleDataPath(int dataOwnCode) {
|
||||
if (dataOwnCode == DataOwnEnum.USER_PRJ.code) {
|
||||
return userDataPath;
|
||||
}
|
||||
return eleDataPath;
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查同层级是否有同名的文件夹
|
||||
*/
|
||||
public boolean notExistSameFolder(String parentId, String newFolderName) {
|
||||
public boolean notExistSameFolder(String parentId, String newFolderName, int dataOwnCode) {
|
||||
Long count = edFileInfoMapper.selectCount(Wrappers.lambdaQuery(EdFileInfo.class)
|
||||
.eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code)
|
||||
.eq(EdFileInfo::getParentId, parentId)
|
||||
.eq(EdFileInfo::getDataOwn, dataOwnCode)
|
||||
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)
|
||||
.eq(EdFileInfo::getFileName, newFolderName));
|
||||
|
||||
return count == 0;
|
||||
}
|
||||
|
||||
public String getFileSysPath(String dbPath) {
|
||||
public String getFileSysPath(String dbPath, int dataOwnCode) {
|
||||
ArrayList<String> paths = CollUtil.newArrayList(dbPath.split(MYSQL_FILE_PATH_SPLIT));
|
||||
String path = getDbPath(paths);
|
||||
return eleDataPath + File.separator + path;
|
||||
String prePath = dataOwnCode == DataOwnEnum.USER_PRJ.code ? eleDataPath : userDataPath;
|
||||
return prePath + File.separator + path;
|
||||
}
|
||||
|
||||
public String getDbPath(String dbPath) {
|
||||
|
|
@ -138,7 +149,7 @@ public class CommonService {
|
|||
LambdaQueryWrapper<EdFileInfo> queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class)
|
||||
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)
|
||||
.eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code)
|
||||
.eq(EdFileInfo::getPrjDir, true)
|
||||
.eq(EdFileInfo::getDataOwn, DataOwnEnum.SYS_PRJ.code)
|
||||
.likeRight(EdFileInfo::getFilePath, id);
|
||||
if (!isAdminQuery) {
|
||||
queryWrapper.in(EdFileInfo::getId, accessableIds);
|
||||
|
|
@ -148,12 +159,12 @@ public class CommonService {
|
|||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ElectromagneticResult<?> addFolder(String parentId, String folderName, boolean maxLengthCheck, boolean isPrjDir, String folderId, String fileNote) {
|
||||
public ElectromagneticResult<?> addFolder(String parentId, String folderName, boolean maxLengthCheck, String folderId, String fileNote, int dataOwnCode) {
|
||||
|
||||
// 验证名称是否合法
|
||||
Assert.isTrue(EleCommonUtil.isFileNameValid(folderName), NAME_VALID_MSG);
|
||||
// 检查名称是否存在
|
||||
Assert.isTrue(notExistSameFolder(parentId, folderName), "该名称已存在");
|
||||
Assert.isTrue(notExistSameFolder(parentId, folderName, dataOwnCode), "该名称已存在");
|
||||
|
||||
LambdaQueryWrapper<EdFileInfo> queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class)
|
||||
.select(EdFileInfo::getId, EdFileInfo::getFilePath)
|
||||
|
|
@ -189,21 +200,21 @@ public class CommonService {
|
|||
.setFileType("文件夹")
|
||||
.setFileCode(createFileCode(parentId, EleDataTypeEnum.FOLDER.desc, FILE_START_VERSION, nowTimeStr))
|
||||
.setFileTime(nowTimeStr)
|
||||
.setPrjDir(isPrjDir)
|
||||
.setDataType(EleDataTypeEnum.FOLDER.code)
|
||||
.setDataStatus(isPrjDir ? EleDataStatusEnum.NOT_PUBLISHED.code : EleDataStatusEnum.PUBLISHED.code)
|
||||
.setDataStatus(dataOwnCode == 1 || dataOwnCode == 2 ? EleDataStatusEnum.NOT_PUBLISHED.code : EleDataStatusEnum.PUBLISHED.code)
|
||||
.setEffectFlag(EffectFlagEnum.EFFECT.code)
|
||||
.setSaveStatus(EleDataSaveStatusEnum.SUCCESS.code)
|
||||
.setFilePath(path)
|
||||
.setSort(names.size() + 1)
|
||||
.setFileNote(fileNote)
|
||||
.setDataOwn(dataOwnCode)
|
||||
.setCreatedTime(now)
|
||||
.setUpdatedTime(now)
|
||||
.setCreatedBy(currentUserId)
|
||||
.setUpdatedBy(currentUserId);
|
||||
edFileInfoMapper.insert(fileInfo);
|
||||
// 保存到文件系统
|
||||
String targetFilePath = getEleDataPath() + File.separator + getDbPath(paths) + File.separator + folderName;
|
||||
String targetFilePath = getEleDataPath(dataOwnCode) + File.separator + getDbPath(paths) + File.separator + folderName;
|
||||
fileSystemService.createDirectory(targetFilePath);
|
||||
return ElectromagneticResultUtil.success(true);
|
||||
} catch (Exception e) {
|
||||
|
|
@ -213,11 +224,12 @@ public class CommonService {
|
|||
}
|
||||
}
|
||||
|
||||
public List<String> queryAllPrjInfo(boolean isAdminQuery, List<String> prjIds) {
|
||||
public List<String> queryAllPrjInfo(boolean isAdminQuery, List<String> prjIds, int dataOwnCode) {
|
||||
|
||||
try {
|
||||
LambdaQueryWrapper<EdFileInfo> queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class)
|
||||
.select(EdFileInfo::getId)
|
||||
.eq(EdFileInfo::getDataOwn, dataOwnCode)
|
||||
.eq(EdFileInfo::getParentId, PRJ_PARENT_ID)
|
||||
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code);
|
||||
if (!isAdminQuery) {
|
||||
|
|
@ -276,17 +288,21 @@ public class CommonService {
|
|||
}
|
||||
}
|
||||
|
||||
public ElectromagneticResult<?> deleteFolder(String id) {
|
||||
public ElectromagneticResult<?> deleteFolder(String id, int dataOwnCode) {
|
||||
// 如果文件夹下存在文件(包括文件夹和已经逻辑删除的文件),则不允许删除。后面管理员选择会有物理删除文件夹和文件的功能,此时MySQL和文件系统则会进行物理删除该文件。
|
||||
Date now = new Date();
|
||||
String currentUserId = UserThreadLocal.getUserId();
|
||||
EdFileInfo srcFileInfo = edFileInfoMapper.selectById(id);
|
||||
String srcPrjName = srcFileInfo.getFileName();
|
||||
String srcFilePath = getFileSysPath(srcFileInfo.getFilePath(), dataOwnCode);
|
||||
try {
|
||||
// 这里要分两种情况,1是删除层级目录,2是删除用户创建的文件夹
|
||||
EdFileInfo fileInfo = edFileInfoMapper.selectOne(Wrappers.<EdFileInfo>lambdaQuery().eq(EdFileInfo::getId, id));
|
||||
String parentId = fileInfo.getParentId();
|
||||
if (fileInfo.getPrjDir()) { // 删除的是层级目录
|
||||
if (fileInfo.getDataOwn().equals(DataOwnEnum.SYS_PRJ.code)) { // 删除的是层级目录
|
||||
long count = edFileInfoMapper.selectCount(Wrappers.<EdFileInfo>lambdaQuery()
|
||||
.eq(EdFileInfo::getPrjDir, false)
|
||||
.eq(EdFileInfo::getDataOwn, DataOwnEnum.COMMON.code)
|
||||
.eq(EdFileInfo::getDataOwn, dataOwnCode)
|
||||
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)
|
||||
.like(EdFileInfo::getFilePath, MYSQL_FILE_PATH_SPLIT + id + MYSQL_FILE_PATH_SPLIT));
|
||||
if (count > 0) {
|
||||
|
|
@ -307,7 +323,6 @@ public class CommonService {
|
|||
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)
|
||||
.ne(EdFileInfo::getDataStatus, EleDataStatusEnum.DELETED.code)
|
||||
.eq(EdFileInfo::getParentId, parentId)
|
||||
|
||||
.orderByAsc(EdFileInfo::getSort));
|
||||
|
||||
for (int i = 0; i < edFileInfos1.size(); i++) {
|
||||
|
|
@ -329,14 +344,16 @@ public class CommonService {
|
|||
log.info(info);
|
||||
return ElectromagneticResultUtil.fail("-1", info);
|
||||
} else {
|
||||
// 逻辑文件夹重排序
|
||||
// 逻辑删除文件夹
|
||||
edFileInfoMapper.update(null, Wrappers.<EdFileInfo>lambdaUpdate()
|
||||
.eq(EdFileInfo::getId, id)
|
||||
.set(EdFileInfo::getUpdatedBy, currentUserId)
|
||||
.set(EdFileInfo::getUpdatedTime, now)
|
||||
.set(EdFileInfo::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code));
|
||||
fileSystemService.renameFile(srcFilePath, srcPrjName + "_" + IdUtil.fastSimpleUUID() + DELETE_FLAG);
|
||||
}
|
||||
}
|
||||
// fileSystemService.renameFile(srcFilePath, srcPrjName + "." + IdUtil.fastSimpleUUID() + DELETE_FLAG);
|
||||
return ElectromagneticResultUtil.success(true);
|
||||
} catch (Exception e) {
|
||||
String info = "删除子集异常";
|
||||
|
|
@ -362,8 +379,8 @@ public class CommonService {
|
|||
return edFileInfoMapper.selectById(prjId).getFileName();
|
||||
}
|
||||
|
||||
public Set<String> selectPrjLeafs() {
|
||||
List<String> prjInfo = queryAllPrjInfo(true, null);
|
||||
public Set<String> selectPrjLeafs(int dataOwnCode) {
|
||||
List<String> prjInfo = queryAllPrjInfo(true, null, dataOwnCode);
|
||||
Set<String> res = new HashSet<>();
|
||||
prjInfo.forEach(e -> {
|
||||
ProjectVO projectVO = JSONUtil.toList(e, ProjectVO.class).get(0);
|
||||
|
|
@ -392,4 +409,11 @@ public class CommonService {
|
|||
}
|
||||
}
|
||||
|
||||
public void deletePrjSysDir(List<String> paths) {
|
||||
for (String path : paths) {
|
||||
String preDirName = new File(path).getParentFile().getName();
|
||||
fileSystemService.renameFile(path, preDirName + "_" + IdUtil.fastSimpleUUID() + DELETE_FLAG);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
* @return
|
||||
*/
|
||||
@Override
|
||||
public ElectromagneticResult<?> queryEdFileInfo(FileInfoQueryDTO pars) {
|
||||
public ElectromagneticResult<?> queryEdFileInfo(FileInfoQueryDTO pars, int dataOwnCode) {
|
||||
|
||||
String parentId = pars.getParentId();
|
||||
List<String> accessibleTree = permissionService.getAccessibleTree();
|
||||
|
|
@ -165,10 +165,10 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
* @return
|
||||
*/
|
||||
@Override
|
||||
public ElectromagneticResult<?> createFolder(CreateFolderDTO createFolderDTO) {
|
||||
public ElectromagneticResult<?> createFolder(CreateFolderDTO createFolderDTO, int dataOwnCode) {
|
||||
Assert.isTrue(EleCommonUtil.isFileNameValid(createFolderDTO.getNewFolderName()), NAME_VALID_MSG);
|
||||
String folderId = IdWorker.getSnowFlakeIdString();
|
||||
return commonService.addFolder(createFolderDTO.getParentId(), createFolderDTO.getNewFolderName(), false, false, folderId, createFolderDTO.getFileNote());
|
||||
return commonService.addFolder(createFolderDTO.getParentId(), createFolderDTO.getNewFolderName(), false, folderId, createFolderDTO.getFileNote(), dataOwnCode);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -177,12 +177,12 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
* @return
|
||||
*/
|
||||
@Override
|
||||
public ElectromagneticResult<?> tree() {
|
||||
public ElectromagneticResult<?> tree(int dataOwnCode) {
|
||||
List<String> prjIds = permissionService.getAccessibleTree();
|
||||
if (CollUtil.isEmpty(prjIds)) {
|
||||
return ElectromagneticResultUtil.success(new ArrayList<>());
|
||||
}
|
||||
List<String> strings = commonService.queryAllPrjInfo(false, prjIds);
|
||||
List<String> strings = commonService.queryAllPrjInfo(false, prjIds, dataOwnCode);
|
||||
List<FileProjectVO> res = new ArrayList<>();
|
||||
strings.forEach(e -> {
|
||||
FileProjectVO fileProjectVO = JSONUtil.toList(e, FileProjectVO.class).get(0);
|
||||
|
|
@ -199,10 +199,10 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
* @return
|
||||
*/
|
||||
@Override
|
||||
public ElectromagneticResult<?> delete(String id) {
|
||||
public ElectromagneticResult<?> delete(String id, int dataOwnCode) {
|
||||
EdFileInfo fileInfo = this.baseMapper.selectById(id);
|
||||
if (fileInfo.getDataType() == EleDataTypeEnum.FOLDER.code) {
|
||||
return commonService.deleteFolder(id);
|
||||
return commonService.deleteFolder(id, dataOwnCode);
|
||||
}
|
||||
Date now = new Date();
|
||||
String currentUserId = UserThreadLocal.getUserId();
|
||||
|
|
@ -222,11 +222,11 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
* @return
|
||||
*/
|
||||
@Override
|
||||
public ResponseEntity<InputStreamResource> download(String id, HttpServletResponse response) {
|
||||
public ResponseEntity<InputStreamResource> download(String id, HttpServletResponse response, int dataOwnCode) {
|
||||
|
||||
try {
|
||||
EdFileInfo fileInfo = this.baseMapper.selectById(id);
|
||||
String fileSysPath = commonService.getFileSysPath(fileInfo.getFilePath());
|
||||
String fileSysPath = commonService.getFileSysPath(fileInfo.getFilePath(), dataOwnCode);
|
||||
Assert.isTrue(FileUtil.exist(fileSysPath), "下载文件不存在。");
|
||||
FileSystemResource fileSystemResource = new FileSystemResource(fileSysPath);
|
||||
String fileName = fileSystemResource.getFilename();
|
||||
|
|
@ -257,7 +257,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ElectromagneticResult<?> updateFileInfo(UpdateFileInfoDTO updateFileInfoDTO) {
|
||||
public ElectromagneticResult<?> updateFileInfo(UpdateFileInfoDTO updateFileInfoDTO, int dataOwnCode) {
|
||||
Assert.isTrue(EleCommonUtil.isFileNameValid(updateFileInfoDTO.getFileName()), NAME_VALID_MSG);
|
||||
try {
|
||||
// 首先检查新名称是否存在
|
||||
|
|
@ -292,7 +292,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
throw new BizException("文件名已经存在");
|
||||
}
|
||||
|
||||
String srcFilePath = commonService.getFileSysPath(fileInfo.getFilePath());
|
||||
String srcFilePath = commonService.getFileSysPath(fileInfo.getFilePath(), dataOwnCode);
|
||||
Date now = new Date();
|
||||
String currentUserId = UserThreadLocal.getUserId();
|
||||
this.baseMapper.update(null, Wrappers.lambdaUpdate(EdFileInfo.class)
|
||||
|
|
@ -405,7 +405,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ElectromagneticResult<?> mergeChunks(String identifier, String fileName, Integer totalChunks) {
|
||||
public ElectromagneticResult<?> mergeChunks(String identifier, String fileName, Integer totalChunks, int dataOwnCode) {
|
||||
String currentUserId = UserThreadLocal.getUserId();
|
||||
String destColibPath = doSysFileMerge(identifier, fileName, totalChunks);
|
||||
String mainName = FileUtil.mainName(destColibPath);
|
||||
|
|
@ -425,21 +425,21 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
String uuid = IdUtil.fastSimpleUUID();
|
||||
String tmpDir = uploadDataDir + currentUserId + File.separator + uuid + File.separator;
|
||||
ZipUtil.unzip(zipDirPath, tmpDir);
|
||||
update2Database(tmpDir);
|
||||
update2Database(tmpDir, dataOwnCode);
|
||||
fileSystemService.deleteFile(zipDirPath, destColibPath);
|
||||
return ElectromagneticResultUtil.success(true);
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
|
||||
public void update2Database(String prjDirPath) {
|
||||
public void update2Database(String prjDirPath, int dataOwnCode) {
|
||||
String info = FileUtil.readString(prjDirPath + File.separator + "mysql.info", Charset.defaultCharset());
|
||||
List<EdFileInfo> importAllFiles = JSONUtil.toList(info, EdFileInfo.class);
|
||||
// 找出层级文件夹
|
||||
List<EdFileInfo> prjFolders = importAllFiles.stream().filter(e -> ObjUtil.equals(e.getPrjDir(), true))
|
||||
List<EdFileInfo> prjFolders = importAllFiles.stream().filter(e -> ObjUtil.equals(e.getDataOwn(), dataOwnCode))
|
||||
.collect(Collectors.toList());
|
||||
// 找出用户创建的文件夹
|
||||
List<EdFileInfo> userFolders = importAllFiles.stream().filter(e -> ObjUtil.equals(e.getDataType(), EleDataTypeEnum.FOLDER.code))
|
||||
.filter(e -> ObjUtil.equals(e.getPrjDir(), false))
|
||||
.filter(e -> ObjUtil.equals(e.getDataOwn(), dataOwnCode))
|
||||
.collect(Collectors.toList());
|
||||
// 找出所有文件
|
||||
List<EdFileInfo> allFiles = importAllFiles.stream().filter(e -> ObjUtil.equals(e.getDataType(), EleDataTypeEnum.FILE.code)).collect(Collectors.toList());
|
||||
|
|
@ -557,7 +557,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
}
|
||||
}
|
||||
this.saveOrUpdateBatch(allObjs);
|
||||
update2FileSystem(allObjs, prjDirPath);
|
||||
update2FileSystem(allObjs, prjDirPath, dataOwnCode);
|
||||
}
|
||||
|
||||
private void resetFileInfoName(EdFileInfo fileInfo) {
|
||||
|
|
@ -579,7 +579,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
}
|
||||
}
|
||||
|
||||
private void update2FileSystem(List<EdFileInfo> needMove2FileSystemFiles, String prjDirPath) {
|
||||
private void update2FileSystem(List<EdFileInfo> needMove2FileSystemFiles, String prjDirPath, int dataOwnCode) {
|
||||
Map<String, EdFileInfo> maps = needMove2FileSystemFiles.stream().collect(Collectors.toMap(EdFileInfo::getId, e -> e));
|
||||
List<EdFileInfo> files = needMove2FileSystemFiles.stream().filter(e -> e.getDataType().equals(EleDataTypeEnum.FILE.code)).collect(Collectors.toList());
|
||||
for (EdFileInfo edFileInfo : files) {
|
||||
|
|
@ -593,7 +593,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
sysFilePath.append(fileInfo.getFileName()).append(".").append(fileInfo.getFileType()).append(".").append(fileInfo.getFileCode());
|
||||
}
|
||||
}
|
||||
String destPath = commonService.getEleDataPath() + File.separator + sysFilePath;
|
||||
String destPath = commonService.getEleDataPath(dataOwnCode) + File.separator + sysFilePath;
|
||||
String sourcePath = prjDirPath + File.separator + sysFilePath;
|
||||
fileSystemService.moveFile(sourcePath, destPath);
|
||||
}
|
||||
|
|
@ -624,7 +624,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
* @return
|
||||
*/
|
||||
@Override
|
||||
public ResponseEntity<InputStreamResource> batchExport(String dataIdArr, HttpServletResponse response) throws IOException {
|
||||
public ResponseEntity<InputStreamResource> batchExport(String dataIdArr, HttpServletResponse response, int dataOwnCode) throws IOException {
|
||||
String userDownloadDataDir = downloadDataDir + File.separator + UserThreadLocal.getUserId();
|
||||
String[] ids = dataIdArr.split(",");
|
||||
Map<String, Boolean> map = permissionService.filterExportIds(ids);
|
||||
|
|
@ -640,7 +640,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
String prjId = resFiles.get(0).getFilePath().split(MYSQL_FILE_PATH_SPLIT)[0];
|
||||
List<EdFileInfo> prjFolders = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class)
|
||||
.likeRight(EdFileInfo::getFilePath, prjId + MYSQL_FILE_PATH_SPLIT)
|
||||
.eq(EdFileInfo::getPrjDir, true)
|
||||
.eq(EdFileInfo::getDataOwn, dataOwnCode)
|
||||
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code));
|
||||
EdFileInfo prjFileInfo = this.baseMapper.selectById(prjId);
|
||||
Map<String, EdFileInfo> prjFoldersMap = prjFolders.stream().collect(Collectors.toMap(EdFileInfo::getId, e -> e));
|
||||
|
|
@ -657,7 +657,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
fileSystemService.createDirectory(destFolderPath);
|
||||
}
|
||||
for (EdFileInfo edFileInfo : files) {
|
||||
String filePath = commonService.getFileSysPath(edFileInfo.getFilePath()); // file
|
||||
String filePath = commonService.getFileSysPath(edFileInfo.getFilePath(), dataOwnCode); // file
|
||||
String destPath = userDownloadDataDir + File.separator + prjName + File.separator + commonService.getDbPath(edFileInfo.getFilePath());
|
||||
fileSystemService.copyFile(filePath, destPath);
|
||||
}
|
||||
|
|
@ -714,7 +714,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ElectromagneticResult<?> upload(String parentId, MultipartFile file, Integer strategy) {
|
||||
public ElectromagneticResult<?> upload(String parentId, MultipartFile file, Integer strategy, int dataOwnCode) {
|
||||
|
||||
Assert.isTrue(!file.isEmpty(), "禁止上传空文件");
|
||||
Assert.isTrue(EleCommonUtil.isFileNameValid(file.getOriginalFilename()), NAME_VALID_MSG);
|
||||
|
|
@ -722,7 +722,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
long dirCount = this.baseMapper.selectCount(Wrappers.lambdaQuery(EdFileInfo.class)
|
||||
.eq(EdFileInfo::getParentId, parentId)
|
||||
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)
|
||||
.eq(EdFileInfo::getPrjDir, true)
|
||||
.eq(EdFileInfo::getDataOwn, dataOwnCode)
|
||||
.eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code));
|
||||
Assert.isTrue(dirCount == 0, "层级目录不允许上传文件");
|
||||
String fileName = file.getOriginalFilename();
|
||||
|
|
@ -739,7 +739,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)
|
||||
.eq(EdFileInfo::getFileType, suffix));
|
||||
if (count > 0) {
|
||||
handUploadRepeatFile(parentId, file, strategy);
|
||||
handUploadRepeatFile(parentId, file, strategy, dataOwnCode);
|
||||
} else {
|
||||
EdFileInfo parentFolderInfo = this.baseMapper.selectOne(Wrappers.lambdaQuery(EdFileInfo.class)
|
||||
.eq(EdFileInfo::getId, parentId)
|
||||
|
|
@ -760,9 +760,9 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
.setEffectFlag(EffectFlagEnum.EFFECT.code)
|
||||
.setFileCode(fileCode)
|
||||
.setSaveStatus(EleDataSaveStatusEnum.SUCCESS.code)
|
||||
.setPrjDir(false);
|
||||
.setDataOwn(dataOwnCode);
|
||||
this.saveOrUpdate(newEdFileInfo);
|
||||
String fileDestPath = commonService.getFileSysPath(newEdFileInfo.getFilePath());
|
||||
String fileDestPath = commonService.getFileSysPath(newEdFileInfo.getFilePath(), dataOwnCode);
|
||||
FileUtil.writeFromStream(file.getInputStream(), fileDestPath);
|
||||
EleCommonUtil.encryptFile(fileDestPath, SecureUtil.aes(FILE_SEC_PASSWD.getBytes()));
|
||||
// fileSystemService.save(FileUtil.getInputStream(fileDestPath), fileDestPath); // 这里会导致文件大小为0,考虑到当前的系统为OS文件系统,暂不处理
|
||||
|
|
@ -776,7 +776,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
.setDataStatus(PublishEnum.PUBLISHED.getCode())
|
||||
.setEffectFlag(EffectFlagEnum.NOT_EFFECTIVE.code)
|
||||
.setSaveStatus(EleDataSaveStatusEnum.FAIL.code)
|
||||
.setPrjDir(false);
|
||||
.setDataOwn(dataOwnCode);
|
||||
this.saveOrUpdate(newEdFileInfo);
|
||||
String info = "上传文件失败";
|
||||
log.error(info, e);
|
||||
|
|
@ -809,11 +809,11 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ElectromagneticResult<?> moveFile(String id, String targetFolderId, Integer strategy) {
|
||||
public ElectromagneticResult<?> moveFile(String id, String targetFolderId, Integer strategy, int dataOwnCode) {
|
||||
|
||||
// 获取原文件mysql模型
|
||||
EdFileInfo srcFileInfo = this.baseMapper.selectById(id);
|
||||
String srcFilePath = commonService.getFileSysPath(srcFileInfo.getFilePath());
|
||||
String srcFilePath = commonService.getFileSysPath(srcFileInfo.getFilePath(), dataOwnCode);
|
||||
// 判断目标路径下是否有同名文件,如果所有的同名文件:1)如果所有文件都已经被作废,则该文件为新文件,版本号从100开始。2)如果有没有被作废的文件,则冲突处理方式按---1-跳过冲突文件 2-做版本更新 3-重命名,文件名加"_1"
|
||||
long count = this.baseMapper.selectCount(Wrappers.lambdaQuery(EdFileInfo.class)
|
||||
.eq(EdFileInfo::getParentId, targetFolderId)
|
||||
|
|
@ -831,19 +831,20 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
srcFileInfo.setParentId(targetFolderId)
|
||||
.setFileVersion(FILE_START_VERSION)
|
||||
.setFileTime(fileTime)
|
||||
.setDataOwn(dataOwnCode)
|
||||
.setFilePath(destFolderInfo.getFilePath() + MYSQL_FILE_PATH_SPLIT + srcFileInfo.getId())
|
||||
.setFileCode(newFileCode);
|
||||
this.baseMapper.updateById(srcFileInfo);
|
||||
// 文件系统移动文件
|
||||
String destFilePath = commonService.getFileSysPath(srcFileInfo.getFilePath());
|
||||
String destFilePath = commonService.getFileSysPath(srcFileInfo.getFilePath(), dataOwnCode);
|
||||
fileSystemService.moveFile(srcFilePath, destFilePath);
|
||||
} else {
|
||||
return handMoveConflict(targetFolderId, strategy, srcFileInfo, destFolderInfo);
|
||||
return handMoveConflict(targetFolderId, strategy, srcFileInfo, destFolderInfo, dataOwnCode);
|
||||
}
|
||||
return ElectromagneticResultUtil.success(true);
|
||||
}
|
||||
|
||||
private ElectromagneticResult<?> handMoveConflict(String targetFolderId, Integer strategy, EdFileInfo srcFileInfo, EdFileInfo destFolderInfo) {
|
||||
private ElectromagneticResult<?> handMoveConflict(String targetFolderId, Integer strategy, EdFileInfo srcFileInfo, EdFileInfo destFolderInfo, int dataOwnCode) {
|
||||
|
||||
// 禁止同目录下移动和复制
|
||||
if (srcFileInfo.getParentId().equals(destFolderInfo.getId())) {
|
||||
|
|
@ -869,11 +870,12 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
destSaveFileInfo.setFileVersion(maxFileVersion + 1)
|
||||
.setFilePath(destFolderInfo.getFilePath() + MYSQL_FILE_PATH_SPLIT + newFileDbId)
|
||||
.setPreVersion(maxFileVersion)
|
||||
.setDataOwn(dataOwnCode)
|
||||
.setEffectFlag(EffectFlagEnum.EFFECT.code)
|
||||
.setFileCode(fileCode);
|
||||
this.baseMapper.insert(destSaveFileInfo);
|
||||
String srcFilePath = commonService.getFileSysPath(srcFileInfo.getFilePath());
|
||||
String destFilePath = commonService.getFileSysPath(destSaveFileInfo.getFilePath());
|
||||
String srcFilePath = commonService.getFileSysPath(srcFileInfo.getFilePath(), dataOwnCode);
|
||||
String destFilePath = commonService.getFileSysPath(destSaveFileInfo.getFilePath(), dataOwnCode);
|
||||
fileSystemService.copyFile(srcFilePath, destFilePath);
|
||||
this.baseMapper.deleteById(srcFileInfo.getId());
|
||||
this.baseMapper.update(null, Wrappers.lambdaUpdate(EdFileInfo.class)
|
||||
|
|
@ -887,14 +889,15 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
String dbPathByDbPath = commonService.getCodePathByDbPath(destFolderInfo.getFilePath());
|
||||
newEdFileInfo.setParentId(targetFolderId)
|
||||
.setFileVersion(FILE_START_VERSION)
|
||||
.setDataOwn(dataOwnCode)
|
||||
.setFileName(srcFileInfo.getFileName() + "_1")
|
||||
.setFileCode(commonService.createFileCode(dbPathByDbPath, srcFileInfo.getFileType(), FILE_START_VERSION, newEdFileInfo.getFileTime()))
|
||||
.setFilePath(destFolderInfo.getFilePath() + MYSQL_FILE_PATH_SPLIT + newEdFileInfo.getId());
|
||||
resetFileInfoName(newEdFileInfo);
|
||||
this.baseMapper.insert(newEdFileInfo);
|
||||
// 移动文件
|
||||
String srcFileSysPath = commonService.getFileSysPath(srcFileInfo.getFilePath());
|
||||
String destFileSysPath = commonService.getFileSysPath(newEdFileInfo.getFilePath());
|
||||
String srcFileSysPath = commonService.getFileSysPath(srcFileInfo.getFilePath(), dataOwnCode);
|
||||
String destFileSysPath = commonService.getFileSysPath(newEdFileInfo.getFilePath(), dataOwnCode);
|
||||
fileSystemService.moveFile(srcFileSysPath, destFileSysPath);
|
||||
this.baseMapper.deleteById(srcFileInfo.getId());
|
||||
}
|
||||
|
|
@ -909,7 +912,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
* @return
|
||||
*/
|
||||
@Override
|
||||
public ElectromagneticResult<?> copyFile(String id, String targetFolderId, Integer strategy) {
|
||||
public ElectromagneticResult<?> copyFile(String id, String targetFolderId, Integer strategy, int dataOwnCode) {
|
||||
// 获取原文件mysql模型
|
||||
EdFileInfo srcFileInfo = this.baseMapper.selectById(id);
|
||||
String srcFileDbPath = srcFileInfo.getFilePath();
|
||||
|
|
@ -936,11 +939,11 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
.setFileCode(newFileCode);
|
||||
this.baseMapper.insert(destFileInfo);
|
||||
// 文件系统移动文件
|
||||
String srcFilePath = commonService.getFileSysPath(srcFileDbPath);
|
||||
String destFilePath = commonService.getFileSysPath(destFileInfo.getFilePath());
|
||||
String srcFilePath = commonService.getFileSysPath(srcFileDbPath, dataOwnCode);
|
||||
String destFilePath = commonService.getFileSysPath(destFileInfo.getFilePath(), dataOwnCode);
|
||||
fileSystemService.copyFile(srcFilePath, destFilePath);
|
||||
} else {
|
||||
return handCopyConflict(targetFolderId, strategy, srcFileInfo, destFolderInfo);
|
||||
return handCopyConflict(targetFolderId, strategy, srcFileInfo, destFolderInfo, dataOwnCode);
|
||||
}
|
||||
return ElectromagneticResultUtil.success(true);
|
||||
}
|
||||
|
|
@ -951,10 +954,10 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
* @return
|
||||
*/
|
||||
@Override
|
||||
public ElectromagneticResult<?> uploadRecord(int pageNum, int pageSize) {
|
||||
public ElectromagneticResult<?> uploadRecord(int pageNum, int pageSize, int dataOwnCode) {
|
||||
|
||||
List<String> accessibleIds = permissionService.getAccessibleTree();
|
||||
Set<String> allLeafIds = commonService.selectPrjLeafs();
|
||||
Set<String> allLeafIds = commonService.selectPrjLeafs(dataOwnCode);
|
||||
List<String> list = new ArrayList<>();
|
||||
for (String leafId : allLeafIds) {
|
||||
if (accessibleIds.contains(leafId)) {
|
||||
|
|
@ -966,6 +969,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
}
|
||||
LambdaQueryWrapper<EdFileInfo> lambdaQuery = Wrappers.lambdaQuery(EdFileInfo.class)
|
||||
.select(EdFileInfo::getId, EdFileInfo::getFileName, EdFileInfo::getSaveStatus, EdFileInfo::getCreatedTime, EdFileInfo::getFileType)
|
||||
.eq(EdFileInfo::getDataOwn, dataOwnCode)
|
||||
.eq(EdFileInfo::getDataType, EleDataTypeEnum.FILE.code)
|
||||
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code);
|
||||
lambdaQuery.or(qr -> {
|
||||
|
|
@ -994,7 +998,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
return ElectromagneticResultUtil.success(fileInfoVO);
|
||||
}
|
||||
|
||||
private ElectromagneticResult<?> handCopyConflict(String targetFolderId, Integer strategy, EdFileInfo srcFileInfo, EdFileInfo destFolderInfo) {
|
||||
private ElectromagneticResult<?> handCopyConflict(String targetFolderId, Integer strategy, EdFileInfo srcFileInfo, EdFileInfo destFolderInfo, int dataOwnCode) {
|
||||
// 禁止同目录下移动和复制
|
||||
if (srcFileInfo.getParentId().equals(destFolderInfo.getId())) {
|
||||
String info = "禁止相同文件夹下复制文件";
|
||||
|
|
@ -1026,8 +1030,8 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
.eq(EdFileInfo::getFileName, srcFileInfo.getFileName())
|
||||
.eq(EdFileInfo::getFileType, srcFileInfo.getFileType()).set(EdFileInfo::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code));
|
||||
this.baseMapper.insert(destSaveFileInfo);
|
||||
String srcFilePath = commonService.getFileSysPath(srcFileInfo.getFilePath());
|
||||
String destFilePath = commonService.getFileSysPath(destSaveFileInfo.getFilePath());
|
||||
String srcFilePath = commonService.getFileSysPath(srcFileInfo.getFilePath(), dataOwnCode);
|
||||
String destFilePath = commonService.getFileSysPath(destSaveFileInfo.getFilePath(), dataOwnCode);
|
||||
fileSystemService.copyFile(srcFilePath, destFilePath);
|
||||
} else if (strategy == 3) {
|
||||
// 文件名加“_1”,版本号从100开始
|
||||
|
|
@ -1043,15 +1047,15 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
resetFileInfoName(newEdFileInfo);
|
||||
this.baseMapper.insert(newEdFileInfo);
|
||||
// 移动文件
|
||||
String srcFileSysPath = commonService.getFileSysPath(srcFileInfo.getFilePath());
|
||||
String destFileSysPath = commonService.getFileSysPath(newEdFileInfo.getFilePath());
|
||||
String srcFileSysPath = commonService.getFileSysPath(srcFileInfo.getFilePath(), dataOwnCode);
|
||||
String destFileSysPath = commonService.getFileSysPath(newEdFileInfo.getFilePath(), dataOwnCode);
|
||||
fileSystemService.copyFile(srcFileSysPath, destFileSysPath);
|
||||
}
|
||||
return ElectromagneticResultUtil.success(true);
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void handUploadRepeatFile(String parentId, MultipartFile file, Integer strategy) throws IOException {
|
||||
public void handUploadRepeatFile(String parentId, MultipartFile file, Integer strategy, int dataOwnCode) throws IOException {
|
||||
Assert.isTrue(Arrays.asList(1, 2, 3).contains(strategy), "解决同名文件参数错误");
|
||||
String fileName = file.getOriginalFilename();
|
||||
String mainName = FileUtil.mainName(fileName);
|
||||
|
|
@ -1095,9 +1099,9 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
.setEffectFlag(EffectFlagEnum.EFFECT.code)
|
||||
.setFileCode(fileCode)
|
||||
.setSaveStatus(EleDataSaveStatusEnum.SUCCESS.code)
|
||||
.setPrjDir(false);
|
||||
.setDataOwn(dataOwnCode);
|
||||
this.baseMapper.insert(newEdFileInfo);
|
||||
String fileDestPath = commonService.getFileSysPath(newEdFileInfo.getFilePath());
|
||||
String fileDestPath = commonService.getFileSysPath(newEdFileInfo.getFilePath(), dataOwnCode);
|
||||
fileSystemService.save(file.getInputStream(), fileDestPath);
|
||||
} else if (strategy == 3) {
|
||||
// 文件名加”_1“,存为新文件
|
||||
|
|
@ -1122,10 +1126,10 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
.setEffectFlag(EffectFlagEnum.EFFECT.code)
|
||||
.setFileCode(fileCode)
|
||||
.setSaveStatus(EleDataSaveStatusEnum.SUCCESS.code)
|
||||
.setPrjDir(false);
|
||||
.setDataOwn(dataOwnCode);
|
||||
resetFileInfoName(newEdFileInfo);
|
||||
this.baseMapper.insert(newEdFileInfo);
|
||||
String fileDestPath = commonService.getFileSysPath(newEdFileInfo.getFilePath());
|
||||
String fileDestPath = commonService.getFileSysPath(newEdFileInfo.getFilePath(), dataOwnCode);
|
||||
fileSystemService.save(file.getInputStream(), fileDestPath);
|
||||
}
|
||||
|
||||
|
|
@ -1172,7 +1176,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
if(file.getId().length() < 6){
|
||||
throw new StringIndexOutOfBoundsException("此文件的FILE_CODE小于六位:"+id);
|
||||
}
|
||||
if(file.getPrjDir().equals(Boolean.TRUE)){
|
||||
if(file.getDataOwn().equals(DataOwnEnum.SYS_PRJ.code) || file.getDataOwn().equals(DataOwnEnum.USER_PRJ.code)){
|
||||
return id;
|
||||
}
|
||||
return file.getFileCode().substring(0, 6);
|
||||
|
|
@ -1185,11 +1189,11 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
* @return
|
||||
*/
|
||||
@Override
|
||||
public ElectromagneticResult<?> queryChildFolder(String parentId) {
|
||||
public ElectromagneticResult<?> queryChildFolder(String parentId, int dataOwnCode) {
|
||||
|
||||
List<EdFileInfo> edFileInfos = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class).select(EdFileInfo::getId, EdFileInfo::getFileName)
|
||||
.eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code)
|
||||
.eq(EdFileInfo::getPrjDir, Boolean.FALSE)
|
||||
.eq(EdFileInfo::getDataOwn, dataOwnCode)
|
||||
.eq(EdFileInfo::getParentId, parentId)
|
||||
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code));
|
||||
List<ChildFolderVO> res = BeanUtil.copyToList(edFileInfos, ChildFolderVO.class);
|
||||
|
|
@ -1203,11 +1207,11 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
* @param response
|
||||
*/
|
||||
@Override
|
||||
public ResponseEntity<InputStreamResource> preview(String id, HttpServletResponse response) {
|
||||
public ResponseEntity<InputStreamResource> preview(String id, HttpServletResponse response, int dataOwnCode) {
|
||||
try {
|
||||
EdFileInfo fileInfo = this.baseMapper.selectById(id);
|
||||
Assert.isTrue(Objects.nonNull(fileInfo), "文件不存在");
|
||||
String fileSysPath = commonService.getFileSysPath(fileInfo.getFilePath());
|
||||
String fileSysPath = commonService.getFileSysPath(fileInfo.getFilePath(), dataOwnCode);
|
||||
EleCommonUtil.decryptFile(fileSysPath, SecureUtil.aes(FILE_SEC_PASSWD.getBytes()));
|
||||
if (Arrays.asList("doc", "docx").contains(fileInfo.getFileType())) {
|
||||
String pdfTmpPath = tmpDir + File.separator + fileInfo.getFileName() + "_" + IdUtil.fastSimpleUUID() + ".pdf";
|
||||
|
|
|
|||
|
|
@ -174,19 +174,19 @@ public class EdFileRelationServiceImpl extends ServiceImpl<EdFileRelationMapper,
|
|||
* @param parentId
|
||||
* @param id 主文件Id
|
||||
* @param file
|
||||
* @param descrption 关系描述
|
||||
* @param desc 关系描述
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ElectromagneticResult<?> uploadFileAndRelation(String parentId, String id, MultipartFile file, String descrption) {
|
||||
public ElectromagneticResult<?> uploadFileAndRelation(String parentId, String id, MultipartFile file, String desc, int dataOwnCode) {
|
||||
|
||||
Assert.isTrue(EleCommonUtil.isFileNameValid(file.getOriginalFilename()), NAME_VALID_MSG);
|
||||
// 查找下一层,看是否存在顶级定义相关文件,如果存在,则该层属于管理员层级定义的,不允许上传文件
|
||||
long dirCount = edFileInfoService.count(Wrappers.lambdaQuery(EdFileInfo.class)
|
||||
.eq(EdFileInfo::getParentId, parentId)
|
||||
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)
|
||||
.eq(EdFileInfo::getPrjDir, true)
|
||||
.eq(EdFileInfo::getDataOwn, dataOwnCode)
|
||||
.eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code));
|
||||
Assert.isTrue(dirCount == 0, "层级目录不允许上传文件");
|
||||
|
||||
|
|
@ -197,7 +197,6 @@ public class EdFileRelationServiceImpl extends ServiceImpl<EdFileRelationMapper,
|
|||
newEdFileInfo.newInit();
|
||||
// 首先检查是否是同名文件
|
||||
try {
|
||||
|
||||
Assert.isTrue(EleCommonUtil.isFileNameValid(fileName), NAME_VALID_MSG);
|
||||
Long count = edFileInfoService.count(Wrappers.lambdaQuery(EdFileInfo.class)
|
||||
.eq(EdFileInfo::getParentId, parentId)
|
||||
|
|
@ -205,7 +204,7 @@ public class EdFileRelationServiceImpl extends ServiceImpl<EdFileRelationMapper,
|
|||
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)
|
||||
.eq(EdFileInfo::getFileType, suffix));
|
||||
if (count > 0) {
|
||||
edFileInfoService.handUploadRepeatFile(parentId, file, 3);
|
||||
edFileInfoService.handUploadRepeatFile(parentId, file, 3, dataOwnCode);
|
||||
} else {
|
||||
EdFileInfo parentFolderInfo = edFileInfoService.getOne(Wrappers.lambdaQuery(EdFileInfo.class)
|
||||
.eq(EdFileInfo::getId, parentId)
|
||||
|
|
@ -226,9 +225,9 @@ public class EdFileRelationServiceImpl extends ServiceImpl<EdFileRelationMapper,
|
|||
.setEffectFlag(EffectFlagEnum.EFFECT.code)
|
||||
.setFileCode(fileCode)
|
||||
.setSaveStatus(EleDataSaveStatusEnum.SUCCESS.code)
|
||||
.setPrjDir(false);
|
||||
.setDataOwn(dataOwnCode);
|
||||
edFileInfoService.saveOrUpdate(newEdFileInfo);
|
||||
String fileDestPath = commonService.getFileSysPath(newEdFileInfo.getFilePath());
|
||||
String fileDestPath = commonService.getFileSysPath(newEdFileInfo.getFilePath(), dataOwnCode);
|
||||
FileUtil.writeFromStream(file.getInputStream(), fileDestPath);
|
||||
EleCommonUtil.encryptFile(fileDestPath, SecureUtil.aes(FILE_SEC_PASSWD.getBytes()));
|
||||
// fileSystemService.save(FileUtil.getInputStream(fileDestPath), fileDestPath); // 这里会导致文件大小为0,考虑到当前的系统为OS文件系统,暂不处理
|
||||
|
|
@ -237,7 +236,7 @@ public class EdFileRelationServiceImpl extends ServiceImpl<EdFileRelationMapper,
|
|||
EdFileRelation relation = new EdFileRelation();
|
||||
relation.setId1(id);
|
||||
relation.setId2(newEdFileInfo.getId());
|
||||
relation.setRelationship(descrption);
|
||||
relation.setRelationship(desc);
|
||||
createRelation(relation);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
|
@ -249,7 +248,7 @@ public class EdFileRelationServiceImpl extends ServiceImpl<EdFileRelationMapper,
|
|||
.setDataStatus(PublishEnum.PUBLISHED.getCode())
|
||||
.setEffectFlag(EffectFlagEnum.NOT_EFFECTIVE.code)
|
||||
.setSaveStatus(EleDataSaveStatusEnum.FAIL.code)
|
||||
.setPrjDir(false);
|
||||
.setDataOwn(dataOwnCode);
|
||||
edFileInfoService.saveOrUpdate(newEdFileInfo);
|
||||
String info = "上传文件失败";
|
||||
log.error(info, e);
|
||||
|
|
|
|||
|
|
@ -2,16 +2,14 @@ package com.electromagnetic.industry.software.manage.service.serviceimpl;
|
|||
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.text.StrFormatter;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
|
||||
import com.electromagnetic.industry.software.common.enums.EleDataSaveStatusEnum;
|
||||
import com.electromagnetic.industry.software.common.enums.EleDataStatusEnum;
|
||||
import com.electromagnetic.industry.software.common.enums.EleDataTypeEnum;
|
||||
import com.electromagnetic.industry.software.common.enums.*;
|
||||
import com.electromagnetic.industry.software.common.exception.BizException;
|
||||
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
|
||||
import com.electromagnetic.industry.software.common.util.EleCommonUtil;
|
||||
|
|
@ -57,12 +55,13 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
|
|||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ElectromagneticResult<?> createNewPrj(String prjName) {
|
||||
public ElectromagneticResult<?> createNewPrj(String prjName, int dataOwnCode) {
|
||||
|
||||
Assert.isTrue(EleCommonUtil.isFileNameValid(prjName), NAME_VALID_MSG);
|
||||
// 首先检查工程是否存在
|
||||
Long count = this.baseMapper.selectCount(Wrappers.lambdaQuery(EdFileInfo.class)
|
||||
.eq(EdFileInfo::getParentId, PRJ_PARENT_ID)
|
||||
.eq(EdFileInfo::getDataOwn, dataOwnCode)
|
||||
.eq(EdFileInfo::getFileName, prjName));
|
||||
|
||||
if (count > 0) {
|
||||
|
|
@ -88,7 +87,6 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
|
|||
.setFileVersion(FILE_START_VERSION)
|
||||
.setParentId(PRJ_PARENT_ID)
|
||||
.setFileTime(nowTimeStr)
|
||||
.setPrjDir(true)
|
||||
.setDataType(EleDataTypeEnum.FOLDER.code)
|
||||
.setDataStatus(EleDataStatusEnum.NOT_PUBLISHED.code)
|
||||
.setEffectFlag(EffectFlagEnum.EFFECT.code)
|
||||
|
|
@ -96,13 +94,14 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
|
|||
.setFilePath(newPrjId)
|
||||
.setSort(++prjCount)
|
||||
.setFileCode(commonService.createFileCode(newPrjId, EleDataTypeEnum.FOLDER.desc, FILE_START_VERSION, nowTimeStr))
|
||||
.setDataOwn(dataOwnCode)
|
||||
.setCreatedTime(now)
|
||||
.setUpdatedTime(now)
|
||||
.setCreatedBy(currentUserId)
|
||||
.setUpdatedBy(currentUserId);
|
||||
this.save(fileInfo);
|
||||
// 保存到文件系统
|
||||
fileSystemService.createDirectory(commonService.getEleDataPath() + File.separator + prjName);
|
||||
fileSystemService.createDirectory(commonService.getEleDataPath(dataOwnCode) + File.separator + prjName);
|
||||
} catch (Exception e) {
|
||||
String info = StrFormatter.format("文件创建失败,具体为--->{}", e.getMessage());
|
||||
log.error(info, e);
|
||||
|
|
@ -120,11 +119,12 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
|
|||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ElectromagneticResult<?> modifyPrjName(String prjId, String newPrjName) {
|
||||
public ElectromagneticResult<?> modifyPrjName(String prjId, String newPrjName, int dataOwnCode) {
|
||||
Assert.isTrue(EleCommonUtil.isFileNameValid(newPrjName), NAME_VALID_MSG);
|
||||
try {
|
||||
Long count = this.baseMapper.selectCount(Wrappers.lambdaQuery(EdFileInfo.class)
|
||||
.eq(EdFileInfo::getParentId, PRJ_PARENT_ID)
|
||||
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)
|
||||
.eq(EdFileInfo::getFileName, newPrjName));
|
||||
|
||||
if (count > 0) {
|
||||
|
|
@ -137,18 +137,17 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
|
|||
.select(EdFileInfo::getFileName)
|
||||
.eq(EdFileInfo::getId, prjId));
|
||||
String oldPrjName = fileInfo.getFileName();
|
||||
String newPath = commonService.getEleDataPath() + File.separator + newPrjName;
|
||||
String newPath = commonService.getEleDataPath(dataOwnCode) + File.separator + newPrjName;
|
||||
if (fileSystemService.checkFolderExist(newPath)) {
|
||||
String info = StrFormatter.format("工程名{}已经存在", newPrjName);
|
||||
log.error(info);
|
||||
return ElectromagneticResultUtil.fail("-1", info);
|
||||
String tmpPath = newPrjName + "_" + IdUtil.fastSimpleUUID() + DELETE_FLAG;
|
||||
fileSystemService.renameFile(newPath, tmpPath);
|
||||
}
|
||||
this.baseMapper.update(null, Wrappers.lambdaUpdate(EdFileInfo.class)
|
||||
.eq(EdFileInfo::getId, prjId)
|
||||
.set(EdFileInfo::getFileName, newPrjName)
|
||||
.set(EdFileInfo::getUpdatedBy, UserThreadLocal.getUserId())
|
||||
.set(EdFileInfo::getUpdatedTime, new Date()));
|
||||
fileSystemService.renameFile(commonService.getEleDataPath(), oldPrjName, newPrjName);
|
||||
fileSystemService.renameFile(commonService.getEleDataPath(dataOwnCode), oldPrjName, newPrjName);
|
||||
} catch (Exception e) {
|
||||
String info = StrFormatter.format("修改工程名异常--->{},{}", newPrjName, e.getMessage());
|
||||
log.error(info, e);
|
||||
|
|
@ -165,11 +164,13 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
|
|||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ElectromagneticResult<?> delete(String prjId) {
|
||||
public ElectromagneticResult<?> delete(String prjId, int dataOwnCode) {
|
||||
try {
|
||||
// 首先查看该工程下是否还有文件
|
||||
Long count = this.baseMapper.selectCount(Wrappers.lambdaQuery(EdFileInfo.class)
|
||||
.eq(EdFileInfo::getDataType, EleDataTypeEnum.FILE.code)
|
||||
.likeRight(EdFileInfo::getFilePath, prjId));
|
||||
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)
|
||||
.likeRight(EdFileInfo::getFilePath, prjId + MYSQL_FILE_PATH_SPLIT));
|
||||
|
||||
if (count > 0) {
|
||||
String info = StrFormatter.format("禁止删除非空项目");
|
||||
|
|
@ -177,14 +178,16 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
|
|||
ElectromagneticResultUtil.fail("-1", info);
|
||||
}
|
||||
|
||||
List<String> ids = new ArrayList<>();
|
||||
ids.add(prjId);
|
||||
LambdaQueryWrapper<EdFileInfo> queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class)
|
||||
.select(EdFileInfo::getId)
|
||||
.likeRight(EdFileInfo::getFilePath, prjId + MYSQL_FILE_PATH_SPLIT);
|
||||
List<EdFileInfo> edFileInfos = this.baseMapper.selectList(queryWrapper);
|
||||
edFileInfos.forEach(e -> ids.add(e.getId()));
|
||||
List<String> ids = edFileInfos.stream().map(EdFileInfo::getId).collect(Collectors.toList());
|
||||
ids.add(prjId);
|
||||
this.baseMapper.update(null, Wrappers.lambdaUpdate(EdFileInfo.class).set(EdFileInfo::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code).in(EdFileInfo::getId, ids));
|
||||
// 对原文件进行处理
|
||||
EdFileInfo prjFile = this.getById(prjId);
|
||||
fileSystemService.renameFile(commonService.getFileSysPath(prjId, dataOwnCode), prjFile + "_" + IdUtil.fastSimpleUUID() + DELETE_FLAG);
|
||||
return ElectromagneticResultUtil.success(true);
|
||||
} catch (Exception e) {
|
||||
String info = "删除项目失败";
|
||||
|
|
@ -202,17 +205,18 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
|
|||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ElectromagneticResult<?> addFolder(String parentId, String folderName) {
|
||||
public ElectromagneticResult<?> addFolder(String parentId, String folderName, int dataOwnCode) {
|
||||
Assert.isTrue(EleCommonUtil.isFileNameValid(folderName), NAME_VALID_MSG);
|
||||
// 检查当前目录下有文件,如果有则不允许添加
|
||||
long count = this.baseMapper.selectCount(Wrappers.lambdaQuery(EdFileInfo.class)
|
||||
.eq(EdFileInfo::getFileType, EleDataTypeEnum.FILE.code)
|
||||
.eq(EdFileInfo::getDataOwn, dataOwnCode)
|
||||
.eq(EdFileInfo::getParentId, parentId)
|
||||
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code));
|
||||
Assert.isTrue(count == 0, "该层级目录下存在文件,不允许再定义层级目录");
|
||||
int id = Integer.parseInt(this.baseMapper.maxPrjId());
|
||||
String folderId = String.valueOf(id + 1);
|
||||
return commonService.addFolder(parentId, folderName, true, true, folderId, null);
|
||||
return commonService.addFolder(parentId, folderName, true, folderId, null, dataOwnCode);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -221,8 +225,8 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
|
|||
* @return
|
||||
*/
|
||||
@Override
|
||||
public ElectromagneticResult<?> queryAllPrjInfo() {
|
||||
List<String> res = commonService.queryAllPrjInfo(true, null);
|
||||
public ElectromagneticResult<?> queryAllPrjInfo(int dataOwnCode) {
|
||||
List<String> res = commonService.queryAllPrjInfo(true, null, dataOwnCode);
|
||||
List<ProjectVO> projectVOS = new ArrayList<>();
|
||||
res.forEach(e -> {
|
||||
ProjectVO projectVO = JSONUtil.toList(e, ProjectVO.class).get(0);
|
||||
|
|
@ -268,11 +272,23 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
|
|||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ElectromagneticResult<?> publish(String prjId) {
|
||||
public ElectromagneticResult<?> publish(String prjId, int dataOwnCode) {
|
||||
try {
|
||||
Date now = new Date();
|
||||
String currentUserId = UserThreadLocal.getUserId();
|
||||
// 将已经处于删除状态设置成逻辑删除
|
||||
|
||||
LambdaQueryWrapper<EdFileInfo> queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class)
|
||||
.select(EdFileInfo::getId, EdFileInfo::getFilePath)
|
||||
.eq(EdFileInfo::getDataStatus, EleDataStatusEnum.DELETED.code)
|
||||
.likeRight(EdFileInfo::getFilePath, prjId);
|
||||
List<String> paths = this.baseMapper.selectList(queryWrapper).stream().map(EdFileInfo::getFilePath).collect(Collectors.toList());
|
||||
List<String> fileSysPaths = new ArrayList<>();
|
||||
paths.forEach(path -> {
|
||||
String fileSysPath = commonService.getFileSysPath(path, dataOwnCode);
|
||||
fileSysPaths.add(fileSysPath);
|
||||
});
|
||||
|
||||
this.update(Wrappers.lambdaUpdate(EdFileInfo.class)
|
||||
.eq(EdFileInfo::getDataStatus, EleDataStatusEnum.DELETED.code)
|
||||
.set(EdFileInfo::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code)
|
||||
|
|
@ -287,6 +303,7 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
|
|||
.set(EdFileInfo::getUpdatedTime, now)
|
||||
.likeRight(EdFileInfo::getFilePath, prjId);
|
||||
this.update(updateWrapper);
|
||||
commonService.deletePrjSysDir(fileSysPaths);
|
||||
return ElectromagneticResultUtil.success(true);
|
||||
} catch (Exception e) {
|
||||
String info = "项目发布异常";
|
||||
|
|
@ -303,8 +320,8 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
|
|||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ElectromagneticResult<?> deleteFolder(String fileId) {
|
||||
return commonService.deleteFolder(fileId);
|
||||
public ElectromagneticResult<?> deleteFolder(String fileId, int dataOwnCode) {
|
||||
return commonService.deleteFolder(fileId, dataOwnCode);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -316,7 +333,7 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
|
|||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ElectromagneticResult<?> follow(String sourceId, String targetId) {
|
||||
public ElectromagneticResult<?> follow(String sourceId, String targetId, int dataOwnCode) {
|
||||
|
||||
try {
|
||||
String currentUserId = UserThreadLocal.getUserId();
|
||||
|
|
@ -358,7 +375,7 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
|
|||
.setFileId(newFolderId)
|
||||
.setFileName(sourceFile.getFileName())
|
||||
.setFileVersion(FILE_START_VERSION)
|
||||
.setPrjDir(true)
|
||||
.setDataOwn(dataOwnCode)
|
||||
.setParentId(targetParentFile.getId())
|
||||
.setFileTime(nowTimeStr)
|
||||
.setDataType(EleDataTypeEnum.FOLDER.code)
|
||||
|
|
@ -374,7 +391,7 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
|
|||
.setUpdatedBy(currentUserId);
|
||||
this.save(targetFile);
|
||||
targetEdFileInfos.add(targetFile);
|
||||
String targetSysFilePath = commonService.getFileSysPath(targetFile.getFilePath());
|
||||
String targetSysFilePath = commonService.getFileSysPath(targetFile.getFilePath(), dataOwnCode);
|
||||
needSavePaths.add(targetSysFilePath);
|
||||
} else {
|
||||
String info = "存在相同子集";
|
||||
|
|
@ -403,18 +420,18 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
|
|||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ElectromagneticResult<?> modifyFolder(String id, String newFolderName) {
|
||||
public ElectromagneticResult<?> modifyFolder(String id, String newFolderName, int dataOwnCode) {
|
||||
|
||||
Assert.isTrue(EleCommonUtil.isFileNameValid(newFolderName), NAME_VALID_MSG);
|
||||
try {
|
||||
String parentId = this.baseMapper.selectById(id).getParentId();
|
||||
// 首先检查同层是否有同名目录
|
||||
Assert.isTrue(commonService.notExistSameFolder(parentId, newFolderName), "子集名已经存在");
|
||||
Assert.isTrue(commonService.notExistSameFolder(parentId, newFolderName, dataOwnCode), "子集名已经存在");
|
||||
String currentUserId = UserThreadLocal.getUserId();
|
||||
Date now = new Date();
|
||||
EdFileInfo fileInfo = this.baseMapper.selectOne(Wrappers.lambdaQuery(EdFileInfo.class)
|
||||
.eq(EdFileInfo::getId, id));
|
||||
String sysFilePath = commonService.getFileSysPath(fileInfo.getFilePath());
|
||||
String sysFilePath = commonService.getFileSysPath(fileInfo.getFilePath(), dataOwnCode);
|
||||
this.baseMapper.update(null, Wrappers.lambdaUpdate(EdFileInfo.class)
|
||||
.set(EdFileInfo::getUpdatedTime, now)
|
||||
.set(EdFileInfo::getUpdatedBy, currentUserId)
|
||||
|
|
@ -436,12 +453,12 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
|
|||
* @return
|
||||
*/
|
||||
@Override
|
||||
public ElectromagneticResult<?> publishStatus(QueryPublishStatus queryPublishStatus) {
|
||||
public ElectromagneticResult<?> publishStatus(QueryPublishStatus queryPublishStatus, int dataOwnCode) {
|
||||
Map<String, Integer> res = new HashMap<>();
|
||||
List<String> prjIds = queryPublishStatus.getPrjIds();
|
||||
List<EdFileInfo> edFileInfos = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class).select(EdFileInfo::getFilePath)
|
||||
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)
|
||||
.eq(EdFileInfo::getPrjDir, true)
|
||||
.eq(EdFileInfo::getDataOwn, dataOwnCode)
|
||||
.and(qr -> qr
|
||||
.eq(EdFileInfo::getDataStatus, EleDataStatusEnum.NOT_PUBLISHED.code)
|
||||
.or()
|
||||
|
|
|
|||
|
|
@ -375,12 +375,12 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
|
|||
*
|
||||
* @return
|
||||
*/
|
||||
private List<EdFileInfo> getFiles() {
|
||||
private List<EdFileInfo> getFiles(int dataOwnCode) {
|
||||
return edFileInfoMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class)
|
||||
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)
|
||||
.eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code)
|
||||
.eq(EdFileInfo::getDataStatus, EleDataStatusEnum.PUBLISHED.code)
|
||||
.eq(EdFileInfo::getPrjDir, true));
|
||||
.eq(EdFileInfo::getDataOwn, dataOwnCode));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,13 +17,24 @@ server.port=12396
|
|||
data.windows.path=D:/tmp/szsd/data/eleData/dev/project/
|
||||
data.upload.windows.tmp.path=D:/tmp/szsd/data/eleData/dev/upload/
|
||||
data.download.windows.tmp.path=D:/tmp/szsd/data/eleData/dev/download/
|
||||
data.windows.tmp.path=D:/szsd/data/eleData/dev/tmp
|
||||
data.windows.tmp.path=D:/tmp/szsd/data/eleData/dev/tmp
|
||||
|
||||
data.windows.user.path=D:/tmp/szsd/data/eleData/dev/user_project/
|
||||
data.upload.windows.user.tmp.path=D:/tmp/szsd/data/eleData/dev/user_upload/
|
||||
data.download.windows.user.tmp.path=D:/tmp/szsd/data/eleData/dev/usr_download/
|
||||
data.windows.usere.tmp.path=D:/tmp/szsd/data/eleData/dev/user_tmp
|
||||
|
||||
data.linux.path=/szsd/data/eleData/dev/project/
|
||||
data.upload.linux.tmp.path=/szsd/data/eleData/dev/upload/
|
||||
data.download.linux.tmp.path=/szsd/data/eleData/dev/download/
|
||||
data.linux.tmp.path=/szsd/data/eleData/dev/tmp
|
||||
|
||||
# user path
|
||||
data.linux.user.path=/szsd/data/eleData/dev/user_project/
|
||||
data.upload.linux.user.tmp.path=/szsd/data/eleData/dev/user_upload/
|
||||
data.download.linux.user.tmp.path=/szsd/data/eleData/dev/usr_download/
|
||||
data.linux.user.tmp.path=/szsd/data/eleData/dev/user_tmp
|
||||
|
||||
prj.folder.max.length=6
|
||||
|
||||
spring.jackson.time-zone=GMT+8
|
||||
|
|
@ -17,4 +17,6 @@ public interface ElectromagneticConstants {
|
|||
String FILE_SEC_PASSWD = "adknfhkj87654knd";
|
||||
|
||||
int PRJ_ID_LENGTH = 6;
|
||||
|
||||
String DELETE_FLAG = "delete";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
package com.electromagnetic.industry.software.common.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
|
||||
@AllArgsConstructor
|
||||
public enum DataOwnEnum {
|
||||
|
||||
COMMON(0, "上传的文件或者新建的文件夹"),
|
||||
SYS_PRJ(1, "系统管理员创建的层级"),
|
||||
USER_PRJ(2, "用户自定义的层级"),
|
||||
REPO_FILE(3, "库文件");
|
||||
|
||||
public int code;
|
||||
public String desc;
|
||||
|
||||
}
|
||||
|
|
@ -9,6 +9,7 @@ public enum UserOperationModuleEnum {
|
|||
UNKNOWN("unknown", "未分组"),
|
||||
DATABASE("database", "数据库管理"),
|
||||
USER("user", "人员管理"),
|
||||
USER_PRJ("userPrj", "个人数据"),
|
||||
PERMISSION("permission", "权限管理");
|
||||
|
||||
public final String key;
|
||||
|
|
|
|||
Loading…
Reference in New Issue