diff --git a/electrmangnetic/pom.xml b/electrmangnetic/pom.xml
index f255d8a..0eae279 100644
--- a/electrmangnetic/pom.xml
+++ b/electrmangnetic/pom.xml
@@ -23,26 +23,6 @@
org.springframework.boot
spring-boot-starter-web
-
-
- org.springframework.boot
- spring-boot-starter
-
-
- ch.qos.logback
- logback-classic
-
-
- org.slf4j
- slf4j-log4j12
-
-
- org.apache.logging.log4j
- log4j-to-slf4j
-
-
-
-
cn.hutool
hutool-all
@@ -93,35 +73,6 @@
druid
1.1.10
-
-
- org.apache.logging.log4j
- log4j-api
- 2.11.2
-
-
- org.apache.logging.log4j
- log4j-core
- 2.11.2
-
-
- org.apache.logging.log4j
- log4j-jcl
- 2.11.2
-
-
-
- com.lmax
- disruptor
- 3.4.2
-
-
-
-
- org.apache.logging.log4j
- log4j-slf4j-impl
- 2.11.2
-
org.springframework.boot
spring-boot-starter-test
diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/common/GlobalExceptionHandler.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/common/GlobalExceptionHandler.java
new file mode 100644
index 0000000..35aa853
--- /dev/null
+++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/common/GlobalExceptionHandler.java
@@ -0,0 +1,32 @@
+package com.electromagnetic.industry.software.manage.common;
+
+import com.electromagnetic.industry.software.common.exception.BizException;
+import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
+import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.ControllerAdvice;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+@Slf4j
+@ControllerAdvice
+public class GlobalExceptionHandler {
+
+ @ExceptionHandler(RuntimeException.class)
+ @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
+ @ResponseBody
+ public ElectromagneticResult> runTimeError(Throwable e) {
+ log.error(e.getMessage(), e);
+ return ElectromagneticResultUtil.fail("-1", e.getMessage());
+ }
+
+ @ExceptionHandler(BizException.class)
+ @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
+ @ResponseBody
+ public ElectromagneticResult> bizError(BizException e) {
+ log.error(e.getMessage(), e);
+ return ElectromagneticResultUtil.fail("-1", e.getMsg());
+ }
+}
\ No newline at end of file
diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EDDataController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EDDataController.java
index c147180..96c1a9a 100644
--- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EDDataController.java
+++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EDDataController.java
@@ -15,7 +15,7 @@ import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;
-@RequestMapping("/data/ed/file")
+@RequestMapping("/data1/ed/file")
@RestController
public class EDDataController {
diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/ProjectController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/ProjectController.java
index d2234f3..9dcab0e 100644
--- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/ProjectController.java
+++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/ProjectController.java
@@ -1,9 +1,72 @@
package com.electromagnetic.industry.software.manage.controller;
+import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
+import com.electromagnetic.industry.software.manage.pojo.req.FolderResortDTO;
+import com.electromagnetic.industry.software.manage.service.EdFileInfoService;
+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/prj")
public class ProjectController {
+
+ @Resource
+ private EdFileInfoService edFileInfoService;
+
+ @RequestMapping("create")
+ public ElectromagneticResult> create(@RequestParam String prjName) {
+ return edFileInfoService.createNewPrj(prjName);
+ }
+
+ @RequestMapping("delete")
+ public ElectromagneticResult> delete(@RequestParam String prjId) {
+ return edFileInfoService.delete(prjId);
+ }
+
+ @RequestMapping("modify")
+ public ElectromagneticResult> modifyPrjName(@RequestParam String newPrjName, @RequestParam String prjId) {
+ return edFileInfoService.modifyPrjName(prjId, newPrjName);
+ }
+
+
+ @RequestMapping("queryAll")
+ public ElectromagneticResult> queryAll() {
+ return edFileInfoService.queryAllPrjInfo();
+ }
+
+ @RequestMapping("addFolder")
+ public ElectromagneticResult> addFolder(@RequestParam String folderName, @RequestParam String parentId) {
+ return edFileInfoService.addFolder(parentId, folderName);
+ }
+
+ @RequestMapping("modifyFolder")
+ public ElectromagneticResult> modifyFolder(@RequestParam String newFolderName, @RequestParam String id) {
+ return edFileInfoService.modifyFolder(id, newFolderName);
+ }
+
+ @RequestMapping("deleteFolder")
+ public ElectromagneticResult> deleteFolder(@RequestParam String fileId) {
+ return edFileInfoService.deleteFolder(fileId);
+ }
+
+ @RequestMapping("folderResort")
+ public ElectromagneticResult> folderResort(@RequestBody List folderResortDTOList) {
+ return edFileInfoService.folderResort(folderResortDTOList);
+ }
+
+ @RequestMapping("publish")
+ public ElectromagneticResult> publish(@RequestParam String prjId) {
+ return edFileInfoService.publish(prjId);
+ }
+
+ @RequestMapping("follow")
+ public ElectromagneticResult> follow(@RequestParam String sourceId, @RequestParam String targetId) {
+ return edFileInfoService.follow(sourceId, targetId);
+ }
}
diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/EdFileInfoMapper.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/EdFileInfoMapper.java
index 96477f3..68d5fec 100644
--- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/EdFileInfoMapper.java
+++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/EdFileInfoMapper.java
@@ -4,6 +4,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.electromagnetic.industry.software.manage.pojo.models.EdFileInfo;
import org.apache.ibatis.annotations.Mapper;
+import java.util.List;
+
@Mapper
public interface EdFileInfoMapper extends BaseMapper {
+
+ String maxPrjId();
+
+ List selectAllAdminFolder(String prjId);
+
}
diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/RolePermissionMapper.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/RolePermissionMapper.java
index 9f3ae50..e98ab0c 100644
--- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/RolePermissionMapper.java
+++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/RolePermissionMapper.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.electromagnetic.industry.software.manage.pojo.models.RolePermission;
import org.apache.ibatis.annotations.Mapper;
+
@Mapper
public interface RolePermissionMapper extends BaseMapper {
}
diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/BaseModel.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/BaseModel.java
new file mode 100644
index 0000000..8ec428b
--- /dev/null
+++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/BaseModel.java
@@ -0,0 +1,35 @@
+package com.electromagnetic.industry.software.manage.pojo.models;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+@Accessors(chain = true)
+@Data
+public class BaseModel {
+ /**
+ * 创建时间
+ */
+ @TableField(value = "created_time")
+ private Date createdTime;
+
+ /**
+ * 创建人
+ */
+ @TableField(value = "created_by")
+ private String createdBy;
+
+ /**
+ * 最后更新时间
+ */
+ @TableField(value = "update_time")
+ private Date updateTime;
+
+ /**
+ * 最后更新人
+ */
+ @TableField(value = "updated_by")
+ private String updatedBy;
+}
diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdFileInfo.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdFileInfo.java
index 1b683d9..017ad7b 100644
--- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdFileInfo.java
+++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdFileInfo.java
@@ -2,13 +2,16 @@ package com.electromagnetic.industry.software.manage.pojo.models;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
+import lombok.*;
+import lombok.experimental.Accessors;
+import lombok.experimental.FieldNameConstants;
-import java.util.Date;
-
-@Data
+@EqualsAndHashCode(callSuper = true)
@TableName("ed_file_info")
-public class EdFileInfo {
+@Accessors(chain = true)
+@Data
+@FieldNameConstants
+public class EdFileInfo extends BaseModel {
/**
* 主键ID
*/
@@ -100,30 +103,6 @@ public class EdFileInfo {
@TableField(value = "save_status")
private Integer saveStatus;
- /**
- * 文件创建时间
- */
- @TableField(value = "created_time")
- private Date createdTime;
-
- /**
- * 文件创建人
- */
- @TableField(value = "created_by")
- private String createdBy;
-
- /**
- * 文件最后更新时间
- */
- @TableField(value = "update_time")
- private Date updateTime;
-
- /**
- * 文件最后更新人
- */
- @TableField(value = "updated_by")
- private String updatedBy;
-
/**
* 文件夹发布状态,0-未发布,1-已发布
*/
diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/FolderResortDTO.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/FolderResortDTO.java
new file mode 100644
index 0000000..ce6aa1a
--- /dev/null
+++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/FolderResortDTO.java
@@ -0,0 +1,9 @@
+package com.electromagnetic.industry.software.manage.pojo.req;
+
+import lombok.Data;
+
+@Data
+public class FolderResortDTO {
+ private String id;
+ private int sort;
+}
diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/ProjectVO.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/ProjectVO.java
new file mode 100644
index 0000000..45c3b26
--- /dev/null
+++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/ProjectVO.java
@@ -0,0 +1,17 @@
+package com.electromagnetic.industry.software.manage.pojo.resp;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ProjectVO {
+
+ private String id;
+ private String fileName;
+ private String parentId;
+ private int sort;
+
+ private List children;
+
+}
diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileInfoService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileInfoService.java
index caad7d0..8d7034c 100644
--- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileInfoService.java
+++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileInfoService.java
@@ -1,4 +1,81 @@
package com.electromagnetic.industry.software.manage.service;
+import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
+import com.electromagnetic.industry.software.manage.pojo.req.FolderResortDTO;
+
+import java.util.List;
+
public interface EdFileInfoService {
+
+ /**
+ * 创建一个新的工程
+ * @param prjName 新的工程名
+ */
+ ElectromagneticResult> createNewPrj(String prjName);
+
+ /**
+ * 修改项目名称
+ * @param prjId
+ * @param newPrjName
+ * @return
+ */
+ ElectromagneticResult> modifyPrjName(String prjId, String newPrjName);
+
+ /**
+ * 删除一个项目,做逻辑删除
+ * @param prjId
+ * @return
+ */
+ ElectromagneticResult> delete(String prjId);
+
+ /**
+ * 添加子集
+ * @param parentId
+ * @param folderName
+ * @return
+ */
+ ElectromagneticResult> addFolder(String parentId, String folderName);
+
+ /**
+ * 查询所有项目
+ * @return
+ */
+ ElectromagneticResult> queryAllPrjInfo();
+
+ /**
+ * 子集拖拽重排序
+ * @param folderResortDTOList
+ * @return
+ */
+ ElectromagneticResult> folderResort(List folderResortDTOList);
+
+ /**
+ * 项目发布
+ * @param prjId
+ * @return
+ */
+ ElectromagneticResult> publish(String prjId);
+
+ /**
+ * 删除子集
+ * @param fileId
+ * @return
+ */
+ ElectromagneticResult> deleteFolder(String fileId);
+
+ /**
+ * 层级沿用
+ * @param sourceId
+ * @param targetId
+ * @return
+ */
+ ElectromagneticResult> follow(String sourceId, String targetId);
+
+ /**
+ * 修改子集名称
+ * @param id
+ * @param newFolderName
+ * @return
+ */
+ ElectromagneticResult> modifyFolder(String id, String newFolderName);
}
diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/FileSystemService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/FileSystemService.java
new file mode 100644
index 0000000..41cd016
--- /dev/null
+++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/FileSystemService.java
@@ -0,0 +1,20 @@
+package com.electromagnetic.industry.software.manage.service;
+
+import java.io.InputStream;
+
+public interface FileSystemService {
+
+ void createDirectory(String path);
+
+ void copyFile(String source, String destination);
+
+ void moveFile(String source, String destination);
+
+ void save(InputStream inputStream, String destination);
+
+ void renameFile(String sourcePath, String newName);
+
+ void renameFile(String sourcePath, String sourceName, String newName);
+
+ boolean checkFolderExist(String newPath);
+}
diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EDDataServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EDDataServiceImpl.java
index c07c831..f472147 100644
--- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EDDataServiceImpl.java
+++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EDDataServiceImpl.java
@@ -63,25 +63,25 @@ public class EDDataServiceImpl implements EDDataService {
private EDDataMapper edDataMapper;
@Resource
private CategoryMapper categoryMapper;
- @Value("${data.windows.path}")
+// @Value("${data.windows.path}")
private String uploadFilePath;
- @Value("${data.file.storage.dir}")
+// @Value("${data.file.storage.dir}")
private String fileStorageDir;
- @Value("${data.import.cache.dir}")
+// @Value("${data.import.cache.dir}")
private String importCacheDir;
- @Value("${file.encode.passwd}")
+// @Value("${file.encode.passwd}")
private String encodePasswd;
- @Value("${data.type.folder}")
+// @Value("${data.type.folder}")
private String dataTypeFolder;
- @Value("${data.windows.path}")
+// @Value("${data.windows.path}")
private String windowsDir;
- @Value("${data.file.cache.dir}")
+// @Value("${data.file.cache.dir}")
private String fileCacheDir;
- @Value("${data.upload.cache.dir}")
+// @Value("${data.upload.cache.dir}")
private String uploadCacheDir;
- @Value("${data.export.cache.dir}")
+// @Value("${data.export.cache.dir}")
private String exportCacheDir;
- @Value("${data.type.file}")
+// @Value("${data.type.file}")
private String dataTypeFile;
@Override
diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java
index dec837c..a65f93f 100644
--- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java
+++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java
@@ -1,8 +1,520 @@
package com.electromagnetic.industry.software.manage.service.serviceimpl;
+import cn.hutool.core.collection.CollUtil;
+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.text.StrFormatter;
+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.exception.BizException;
+import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
+import com.electromagnetic.industry.software.common.util.*;
+import com.electromagnetic.industry.software.manage.mapper.EdFileInfoMapper;
+import com.electromagnetic.industry.software.manage.pojo.models.EdFileInfo;
+import com.electromagnetic.industry.software.manage.pojo.req.FolderResortDTO;
+import com.electromagnetic.industry.software.manage.pojo.resp.ProjectVO;
import com.electromagnetic.industry.software.manage.service.EdFileInfoService;
+import com.electromagnetic.industry.software.manage.service.FileSystemService;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.env.Environment;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import static com.electromagnetic.industry.software.common.cons.ElectromagneticConstants.*;
@Service
-public class EdFileInfoServiceImpl implements EdFileInfoService {
+public class EdFileInfoServiceImpl extends ServiceImpl implements EdFileInfoService {
+
+ private EleLog log = new EleLog(EdFileInfoServiceImpl.class);
+
+ @Resource
+ private Environment environment;
+
+ @Resource
+ private FileSystemService fileSystemService;
+
+ @Value("${prj.folder.max.length}")
+ private int prjFolderMaxLength;
+
+ private String eleDataPath;
+
+ @PostConstruct
+ public void init() {
+ String osName = System.getProperty("os.name").toLowerCase();
+ eleDataPath = osName.startsWith("win") ? environment.getProperty("data.windows.path") : environment.getProperty("data.linux.path");
+ }
+
+
+ /**
+ * 创建一个新的工程
+ * @param prjName 新的工程名
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public ElectromagneticResult> createNewPrj(String prjName) {
+
+ Assert.isTrue(EleCommonUtil.isFileNameValid(prjName), "文件名不符合规范,只能包含中文字符、下划线、连字符、加号、数字和英文字符且长度小于32。");
+ if (!EleCommonUtil.isFileNameValid(prjName)) {
+ String info = StrFormatter.format("工程名称{}不符合要求", prjName);
+ log.error(info);
+ return ElectromagneticResultUtil.fail("-1", info);
+ }
+
+ // 首先检查工程是否存在
+ // TODO 一个项目如果被废除了,然后又新建了一个同名工程,这种情况怎么处理,需要产品确认。当前这里先按照同名如果存在则抛出异常处理。
+ LambdaQueryWrapper existPrjWrapper = Wrappers.lambdaQuery(EdFileInfo.class)
+ .eq(EdFileInfo::getParentId, "")
+ .isNull(EdFileInfo::getParentId);
+
+ List existEdFileInfos = this.baseMapper.selectList(existPrjWrapper);
+ if (CollUtil.isNotEmpty(existEdFileInfos)) {
+ String info = StrFormatter.format("{} 已经存在", prjName);
+ log.info(info);
+ ElectromagneticResultUtil.fail("-1", "该项目名称已经存在。");
+ }
+
+ try {
+ // 保存信息到MySQL
+ int id = Integer.parseInt(this.baseMapper.maxPrjId());
+ Date now = new Date();
+ String currentUserId = UserThreadLocal.getUserId();
+ String newPrjId = String.valueOf(id + 1);
+
+ EdFileInfo fileInfo = new EdFileInfo();
+ fileInfo.setId(newPrjId)
+ .setFileId(newPrjId)
+ .setFileName(prjName)
+ .setFileVersion(100)
+ .setFileTime(EleCommonUtil.getNowTimeStr())
+ .setDataType(EleDataTypeEnum.FOLDER.code)
+ .setDataStatus(EleDataStatusEnum.NOT_PUBLISHED.code)
+ .setEffectFlag(EffectFlagEnum.EFFECT.code)
+ .setSaveStatus(EleDataSaveStatusEnum.SUCCESS.code)
+ .setFilePath(newPrjId)
+ .setSort(1)
+ .setCreatedTime(now)
+ .setUpdateTime(now)
+ .setCreatedBy(currentUserId)
+ .setUpdatedBy(currentUserId);
+ this.save(fileInfo);
+ // 保存到文件系统
+ fileSystemService.createDirectory(eleDataPath);
+ } catch (Exception e) {
+ String info = StrFormatter.format("文件创建失败,具体为--->{}", e.getMessage());
+ log.error(info, e);
+ throw new BizException(-1, info);
+ }
+ return ElectromagneticResultUtil.success(true);
+ }
+
+ /**
+ * 修改项目名称
+ * @param prjId
+ * @param newPrjName
+ * @return
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public ElectromagneticResult> modifyPrjName(String prjId, String newPrjName) {
+ try {
+ LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class).eq(EdFileInfo::getId, prjId);
+ EdFileInfo fileInfo = this.baseMapper.selectOne(queryWrapper);
+ String oldPrjName = fileInfo.getFileName();
+ String newPath = eleDataPath + File.separator + newPrjName;
+ if (fileSystemService.checkFolderExist(newPath)) {
+ String info = StrFormatter.format("工程名{}已经存在", newPrjName);
+ log.error(info);
+ return ElectromagneticResultUtil.fail("-1", info);
+ }
+ fileInfo.setFileName(newPrjName);
+ this.baseMapper.updateById(fileInfo);
+ fileSystemService.renameFile(eleDataPath, oldPrjName, newPrjName);
+ } catch (Exception e) {
+ String info = StrFormatter.format("修改工程名异常--->{},{}", newPrjName, e.getMessage());
+ log.error(info, e);
+ throw new BizException(-1, info);
+ }
+ return ElectromagneticResultUtil.success(true);
+ }
+
+ /**
+ * 删除一个项目,做逻辑删除
+ *
+ * @param prjId
+ * @return
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public ElectromagneticResult> delete(String prjId) {
+ try {
+ List ids = new ArrayList<>();
+ ids.add(prjId);
+ LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class)
+ .select(EdFileInfo::getId)
+ .likeRight(EdFileInfo::getFilePath, prjId + MYSQL_FILE_PATH_SPLIT);
+ List edFileInfos = this.baseMapper.selectList(queryWrapper);
+ edFileInfos.forEach(e -> ids.add(e.getId()));
+ Wrappers.lambdaUpdate(EdFileInfo.class).set(EdFileInfo::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code).in(EdFileInfo::getId, ids);
+ return ElectromagneticResultUtil.success(true);
+ } catch (Exception e) {
+ String info = "删除项目失败";
+ log.error(info, e);
+ throw new BizException(-1, info);
+ }
+ }
+
+ /**
+ * 添加子集
+ *
+ * @param parentId
+ * @param folderName
+ * @return
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public ElectromagneticResult> addFolder(String parentId, String folderName) {
+
+ // 验证名称是否合法
+ Assert.isTrue(EleCommonUtil.isFileNameValid(folderName), "文件名不符合规范,只能包含中文字符、下划线、连字符、加号、数字和英文字符且长度小于32。");
+
+ if (!EleCommonUtil.isFileNameValid(folderName)) {
+ String info = StrFormatter.format("子集名称{}不符合要求", folderName);
+ log.error(info);
+ return ElectromagneticResultUtil.fail("-1", info);
+ }
+ // 首先判断判断当前深度是否已经达到6层
+ LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class)
+ .select(EdFileInfo::getId, EdFileInfo::getFilePath)
+ .eq(EdFileInfo::getId, parentId);
+ EdFileInfo edFileInfo = this.baseMapper.selectOne(queryWrapper);
+ String currentPath = edFileInfo.getFilePath();
+ List paths = CollUtil.newArrayList(edFileInfo.getFilePath().split(MYSQL_FILE_PATH_SPLIT));
+ if (paths.size() >= prjFolderMaxLength) {
+ String info = "当前子集已达到最大层级,禁止创建子集。";
+ log.error(info);
+ return ElectromagneticResultUtil.fail("-1", info);
+ }
+
+ // 判断文件夹名称是否存在
+ List edFileInfos = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class)
+ .select(EdFileInfo::getId, EdFileInfo::getFileName)
+ .eq(EdFileInfo::getParentId, parentId));
+ List names = edFileInfos.stream().map(EdFileInfo::getFileName).collect(Collectors.toList());
+ if (names.contains(folderName)) {
+ String info = "该子集名称已存在";
+ log.error(info);
+ return ElectromagneticResultUtil.fail("-1", info);
+ }
+
+ try {
+ int id = Integer.parseInt(this.baseMapper.maxPrjId());
+ Date now = new Date();
+ String currentUserId = UserThreadLocal.getUserId();
+ String newFolderId = String.valueOf(id + 1);
+ String path = currentPath + MYSQL_FILE_PATH_SPLIT + newFolderId;
+ EdFileInfo fileInfo = new EdFileInfo();
+ fileInfo.setId(newFolderId)
+ .setFileId(newFolderId)
+ .setFileName(folderName)
+ .setFileVersion(100)
+ .setParentId(parentId)
+ .setFileTime(EleCommonUtil.getNowTimeStr())
+ .setDataType(EleDataTypeEnum.FOLDER.code)
+ .setDataStatus(EleDataStatusEnum.NOT_PUBLISHED.code)
+ .setEffectFlag(EffectFlagEnum.EFFECT.code)
+ .setSaveStatus(EleDataSaveStatusEnum.SUCCESS.code)
+ .setFilePath(path)
+ .setSort(names.size() + 1)
+ .setCreatedTime(now)
+ .setUpdateTime(now)
+ .setCreatedBy(currentUserId)
+ .setUpdatedBy(currentUserId);
+ // 保存到文件系统
+ String targetFilePath = getPath(paths) + File.separator + folderName;
+ fileSystemService.createDirectory(targetFilePath);
+ return ElectromagneticResultUtil.success(true);
+ } catch (Exception e) {
+ String info = "添加子集失败";
+ log.error(info, e);
+ throw new BizException(-1, info);
+ }
+ }
+
+ /**
+ * 查询所有项目
+ *
+ * @return
+ */
+ @Override
+ public ElectromagneticResult> queryAllPrjInfo() {
+
+ try {
+ LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class)
+ .select(EdFileInfo::getId)
+ .eq(EdFileInfo::getParentId, 0)
+ .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code);
+ List ids = this.baseMapper.selectList(queryWrapper).stream().map(EdFileInfo::getId).collect(Collectors.toList());
+
+ List projectVOS = new ArrayList<>();
+
+ for (String id : ids) {
+ LambdaQueryWrapper queryWrapper1 = Wrappers.lambdaQuery(EdFileInfo.class)
+ .select(EdFileInfo::getId, EdFileInfo::getFileName, EdFileInfo::getParentId, EdFileInfo::getSort)
+ .like(EdFileInfo::getFilePath, MYSQL_FILE_PATH_SPLIT + id + MYSQL_FILE_PATH_SPLIT);
+ List edFileInfos = this.baseMapper.selectList(queryWrapper1);
+ // 转换为树
+ TreeNodeConfig config = new TreeNodeConfig();
+ config.setIdKey(EdFileInfo.Fields.id);
+ config.setParentIdKey(EdFileInfo.Fields.parentId);
+ config.setWeightKey(EdFileInfo.Fields.sort);
+
+ List> trees = TreeUtil.build(edFileInfos, "0", config, ((obj, treeNode) -> {
+ treeNode.putExtra(EdFileInfo.Fields.id, obj.getId());
+ treeNode.putExtra(EdFileInfo.Fields.parentId, obj.getParentId());
+ treeNode.putExtra(EdFileInfo.Fields.sort, obj.getSort());
+ treeNode.putExtra(EdFileInfo.Fields.fileName, obj.getFileName());
+ }));
+
+ String jsonStr = JSONUtil.toJsonStr(trees);
+ ProjectVO projectVO = JSONUtil.toList(jsonStr, ProjectVO.class).get(0);
+ projectVOS.add(projectVO);
+ }
+ return ElectromagneticResultUtil.success(projectVOS);
+ } catch (Exception e) {
+ String info = "查询项目失败";
+ log.error(info, e);
+ throw new BizException(-1, info);
+ }
+ }
+
+ /**
+ * 子集拖拽重排序
+ *
+ * @param folderResortDTOList
+ * @return
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public ElectromagneticResult> folderResort(List folderResortDTOList) {
+ try {
+ for (FolderResortDTO folderResortDTO : folderResortDTOList) {
+ LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate(EdFileInfo.class)
+ .set(EdFileInfo::getSort, folderResortDTO.getSort())
+ .eq(EdFileInfo::getId, folderResortDTO.getId());
+ this.update(updateWrapper);
+ }
+ return ElectromagneticResultUtil.success(true);
+ } catch (Exception e) {
+ String info = "子集重排序异常";
+ log.error(info, e);
+ throw new BizException(-1, info);
+ }
+ }
+
+ /**
+ * 项目发布
+ *
+ * @param prjId
+ * @return
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public ElectromagneticResult> publish(String prjId) {
+ try {
+ LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate(EdFileInfo.class)
+ .set(EdFileInfo::getDataStatus, EleDataStatusEnum.PUBLISHED.code)
+ .likeRight(EdFileInfo::getFilePath, prjId);
+ this.update(updateWrapper);
+ return ElectromagneticResultUtil.success(true);
+ } catch (Exception e) {
+ String info = "项目发布异常";
+ log.error(info, e);
+ throw new BizException(-1, info);
+ }
+ }
+
+ /**
+ * 删除子集
+ *
+ * @param fileId
+ * @return
+ */
+ @Override
+ public ElectromagneticResult> deleteFolder(String fileId) {
+
+ try {
+ // TODO是否需要判断文件夹是否为空
+ LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class)
+ .select(EdFileInfo::getId, EdFileInfo::getFilePath)
+ .like(EdFileInfo::getFilePath, MYSQL_FILE_PATH_SPLIT + fileId + MYSQL_FILE_PATH_SPLIT)
+ .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code);
+ List edFileInfos = this.baseMapper.selectList(queryWrapper);
+ List ids = edFileInfos.stream().map(EdFileInfo::getId).collect(Collectors.toList());
+ ids.add(fileId);
+ LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate(EdFileInfo.class)
+ .set(EdFileInfo::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code)
+ .set(EdFileInfo::getSort, -1)
+ .in(EdFileInfo::getId, ids);
+ this.baseMapper.update(null, updateWrapper);
+
+ String[] tmpFileIds = edFileInfos.get(0).getFilePath().split(MYSQL_FILE_PATH_SPLIT);
+ String parentId = tmpFileIds[0];
+ for (String tmpPathId : tmpFileIds) {
+ parentId = this.baseMapper.maxPrjId();
+ if (fileId.equals(tmpPathId)) {
+ break;
+ }
+ }
+ // 同层级的resort
+ List edFileInfos1 = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class)
+ .select(EdFileInfo::getId, EdFileInfo::getSort)
+ .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)
+ .eq(EdFileInfo::getParentId, parentId)
+ .orderByAsc(EdFileInfo::getSort));
+ for (int i = 1; i <= edFileInfos1.size(); i++) {
+ String id = edFileInfos1.get(i).getId();
+ this.baseMapper.update(null, Wrappers.lambdaUpdate(EdFileInfo.class)
+ .set(EdFileInfo::getSort, i)
+ .eq(EdFileInfo::getId, id));
+ }
+ return ElectromagneticResultUtil.success(true);
+ } catch (Exception e) {
+ String info = "删除子集异常";
+ log.error(info, e);
+ throw new BizException(-1, info);
+ }
+ }
+
+ /**
+ * 层级沿用
+ *
+ * @param sourceId
+ * @param targetId
+ * @return
+ */
+ @Override
+ public ElectromagneticResult> follow(String sourceId, String targetId) {
+
+ try {
+ String currentUserId = UserThreadLocal.getUserId();
+ // 把source工程的层级结构copy到目标工程
+ // 查找source的全部目录
+ List sourceEdFileInfos = this.baseMapper.selectAllAdminFolder(sourceId);
+ List targetEdFileInfos = this.baseMapper.selectAllAdminFolder(targetId);
+ // 确定层级最大为prjFolderMaxLength层,现在逐层来处理。
+ for (int i = 1; i <= prjFolderMaxLength; ++i) {
+ // 先查找source第i层下有那些子集
+ final int count = i;
+ EdFileInfo targetParentFile = targetEdFileInfos.stream()
+ .filter(e -> StrUtil.count(e.getFilePath(), MYSQL_FILE_PATH_SPLIT) == count - 1)
+ .collect(Collectors.toList()).get(0);
+ List sourceTmpEdFiles = sourceEdFileInfos.stream()
+ .filter(e -> StrUtil.count(e.getFilePath(), MYSQL_FILE_PATH_SPLIT) == count)
+ .collect(Collectors.toList());
+ List targetTmpEdFiles = targetEdFileInfos.stream()
+ .filter(e -> StrUtil.count(e.getFilePath(), MYSQL_FILE_PATH_SPLIT) == count)
+ .collect(Collectors.toList());
+ Map sourceFileNameMap= sourceTmpEdFiles.stream().collect(Collectors.toMap(EdFileInfo::getFileName, e -> e));
+ List targetFileNames = targetTmpEdFiles.stream().map(EdFileInfo::getFileName).collect(Collectors.toList());
+ for (EdFileInfo edFileInfo : sourceTmpEdFiles) {
+ String sourceFileName = edFileInfo.getFileName();
+ if (!targetFileNames.contains(sourceFileName)) {
+ EdFileInfo sourceFile = sourceFileNameMap.get(sourceFileName);
+ EdFileInfo targetFile = new EdFileInfo();
+ int maxFolderId = Integer.parseInt(this.baseMapper.maxPrjId());
+ String newFolderId = String.valueOf(maxFolderId + 1);
+ Date now = new Date();
+ targetFile.setId(newFolderId)
+ .setFileId(newFolderId)
+ .setFileName(sourceFile.getFileName())
+ .setFileVersion(100)
+ .setParentId(targetParentFile.getParentId())
+ .setFileTime(EleCommonUtil.getNowTimeStr())
+ .setDataType(EleDataTypeEnum.FOLDER.code)
+ .setDataStatus(EleDataStatusEnum.NOT_PUBLISHED.code)
+ .setEffectFlag(EffectFlagEnum.EFFECT.code)
+ .setSaveStatus(EleDataSaveStatusEnum.SUCCESS.code)
+ .setFilePath(targetParentFile.getFilePath() + MYSQL_FILE_PATH_SPLIT + newFolderId)
+ .setSort(targetTmpEdFiles.size() + 1)
+ .setCreatedTime(now)
+ .setUpdateTime(now)
+ .setCreatedBy(currentUserId)
+ .setUpdatedBy(currentUserId);
+ this.save(targetFile);
+ String targetSysFilePath = getSysFilePathByDbPath(targetFile.getFilePath()) + File.separator + sourceFileName;
+ fileSystemService.createDirectory(targetSysFilePath);
+ targetEdFileInfos = this.baseMapper.selectAllAdminFolder(targetId);
+ }
+ }
+ }
+ return ElectromagneticResultUtil.success(true);
+ } catch (Exception e) {
+ String info = StrFormatter.format("层级沿用失败");
+ log.error(info, e);
+ return ElectromagneticResultUtil.fail("-1", info);
+ }
+ }
+
+ /**
+ * 修改子集名称
+ *
+ * @param id
+ * @param newFolderName
+ * @return
+ */
+ @Override
+ public ElectromagneticResult> modifyFolder(String id, String newFolderName) {
+ try {
+ EdFileInfo fileInfo = this.baseMapper.selectOne(Wrappers.lambdaQuery(EdFileInfo.class)
+ .eq(EdFileInfo::getId, id));
+ String sysFilePath = getSysFilePathByDbPath(fileInfo.getFilePath());
+ this.baseMapper.update(null, Wrappers.lambdaUpdate(EdFileInfo.class)
+ .set(EdFileInfo::getFileName, newFolderName));
+ fileSystemService.renameFile(sysFilePath, newFolderName);
+ return ElectromagneticResultUtil.success(true);
+ } catch(Exception e) {
+ String info = StrFormatter.format("修改子集名称为{}失败", newFolderName);
+ log.error(info, e);
+ return ElectromagneticResultUtil.fail("-1", info);
+ }
+ }
+
+ private String getSysFilePathByDbPath(String dbPath) {
+ ArrayList paths = CollUtil.newArrayList(dbPath.split(MYSQL_FILE_PATH_SPLIT));
+ return getPath(paths);
+ }
+
+ private String getPath(List ids) {
+ LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class)
+ .select(EdFileInfo::getId, EdFileInfo::getFileName)
+ .in(EdFileInfo::getId, ids);
+ List edFileInfos = this.baseMapper.selectList(queryWrapper);
+ Map map = edFileInfos.stream().collect(Collectors.toMap(EdFileInfo::getId, EdFileInfo::getFileName));
+ StringBuilder path = new StringBuilder();
+ for (String id : ids) {
+ String tmp = map.get(id) + File.separator;
+ path.append(tmp);
+ }
+ return path.toString();
+ }
+
}
diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileSystemServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileSystemServiceImpl.java
new file mode 100644
index 0000000..2bc3ec6
--- /dev/null
+++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileSystemServiceImpl.java
@@ -0,0 +1,45 @@
+package com.electromagnetic.industry.software.manage.service.serviceimpl;
+
+import cn.hutool.core.io.FileUtil;
+import com.electromagnetic.industry.software.manage.service.FileSystemService;
+import org.springframework.stereotype.Service;
+
+import java.io.File;
+import java.io.InputStream;
+
+@Service
+public class FileSystemServiceImpl implements FileSystemService {
+
+ @Override
+ public void createDirectory(String path) {
+ FileUtil.mkdir(path);
+ }
+
+ @Override
+ public void copyFile(String source, String destination) {
+ }
+
+ @Override
+ public void moveFile(String source, String destination) {
+ }
+
+ @Override
+ public void save(InputStream inputStream, String destination) {
+ }
+
+ @Override
+ public void renameFile(String sourcePath, String newName) {
+ FileUtil.rename(new File(sourcePath), newName, true);
+ }
+
+ @Override
+ public void renameFile(String sourcePath, String oldName, String newName) {
+ File sourceFile = new File(sourcePath + File.separator + oldName);
+ FileUtil.rename(sourceFile, newName, true);
+ }
+
+ @Override
+ public boolean checkFolderExist(String newPath) {
+ return FileUtil.exist(newPath);
+ }
+}
diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java
index a62b5a6..08a163c 100644
--- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java
+++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java
@@ -83,7 +83,7 @@ public class UserServiceImpl implements UserService {
public Boolean checkUserValid(User user) {
if (user == null
|| user.getIsPublished() == PublishEnum.UNPUBLISHED.getCode()
- || user.getEffectFlag() == EffectFlagEnum.EFFECT_FLAG_0.getCode()
+ || user.getEffectFlag() == EffectFlagEnum.NOT_EFFECTIVE.code
) {
return false;
} else if (user.getInternshipEndDate() != null && user.getInternshipEndDate().before(now())) {
diff --git a/electrmangnetic/src/main/resources/application.properties b/electrmangnetic/src/main/resources/application.properties
index d2a6a4f..e2a1d29 100644
--- a/electrmangnetic/src/main/resources/application.properties
+++ b/electrmangnetic/src/main/resources/application.properties
@@ -1,14 +1,7 @@
#required
spring.application.name=electromagnetic-data
-# security
-run.mode=NORMAL
-com.alipay.env=shared
-#log
logging.file.path=./logs
loggerPath=electromagnetic-data
-logging.level.com.aliyun.fsi.insurance=${LOG_LEVEL:INFO}
-#日志配置
-logging.config=classpath:${LOG_CONFIG:log4j2-spring.xml}
spring.datasource.typd=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://139.224.43.89:3306/em_data?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true&rewriteBatchedStatements=true
spring.datasource.username=comac
@@ -21,21 +14,9 @@ mybatis-plus.mapper-locations=classpath:sqlmapper/*.xml
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
pagehelper.helperDialect=mysql
pagehelper.reasonable=false
-server.port=8888
-#windows文件存储目录
-data.windows.path=E:/comacFileStorage/
-#文件缓存路径
-data.file.cache.dir=/szsd/cache/
-#文件存储路径
-data.file.storage.dir=/szsd/fileStorage/
-#上传文件时文件的缓存文件夹名称
-data.upload.cache.dir=upload
-#导出数据时文件的缓存文件夹名称
-data.export.cache.dir=export
-#导入数据时文件的缓存文件夹名称
-data.import.cache.dir=import
-file.encode.passwd=adknfhkj87654knd
-#数据类型中的文件类型为file
-data.type.file=file
-#数据类型中的文件夹类型为folder
-data.type.folder=folder
+server.port=12395
+#windows文件存储目录,用于测试
+data.windows.path=E:/tmp/eleData/
+data.linux.path=/szsd/data/eleData
+prj.folder.max.length=6
+
diff --git a/electrmangnetic/src/main/resources/log4j.properties b/electrmangnetic/src/main/resources/log4j.properties
deleted file mode 100644
index f15f1e7..0000000
--- a/electrmangnetic/src/main/resources/log4j.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-log4j.rootLogger=DEBUG, stdout
-# Console output...
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
\ No newline at end of file
diff --git a/electrmangnetic/src/main/resources/log4j2-spring-prod.xml b/electrmangnetic/src/main/resources/log4j2-spring-prod.xml
deleted file mode 100644
index ca47405..0000000
--- a/electrmangnetic/src/main/resources/log4j2-spring-prod.xml
+++ /dev/null
@@ -1,206 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/electrmangnetic/src/main/resources/log4j2-spring.xml b/electrmangnetic/src/main/resources/log4j2-spring.xml
deleted file mode 100644
index 698bf69..0000000
--- a/electrmangnetic/src/main/resources/log4j2-spring.xml
+++ /dev/null
@@ -1,218 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/electrmangnetic/src/main/resources/sqlmapper/EdFileInfoMapper.xml b/electrmangnetic/src/main/resources/sqlmapper/EdFileInfoMapper.xml
new file mode 100644
index 0000000..14bb52f
--- /dev/null
+++ b/electrmangnetic/src/main/resources/sqlmapper/EdFileInfoMapper.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/electromagnetic-common/pom.xml b/electromagnetic-common/pom.xml
index 58d52ab..68972c7 100644
--- a/electromagnetic-common/pom.xml
+++ b/electromagnetic-common/pom.xml
@@ -39,6 +39,16 @@
hutool-all
5.8.22
+
+ ch.qos.logback
+ logback-classic
+ 1.2.3
+
+
+ ch.qos.logback
+ logback-core
+ 1.2.3
+
\ No newline at end of file
diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/cons/ElectromagneticConstants.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/cons/ElectromagneticConstants.java
index 2c560ae..13abaed 100644
--- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/cons/ElectromagneticConstants.java
+++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/cons/ElectromagneticConstants.java
@@ -4,4 +4,6 @@ public interface ElectromagneticConstants {
String EXPORT_FILE_SUFFIX = ".colib";
+ String MYSQL_FILE_PATH_SPLIT = "_";
+
}
diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/EffectFlagEnum.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/EffectFlagEnum.java
index 33a1285..f59a3f4 100644
--- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/EffectFlagEnum.java
+++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/EffectFlagEnum.java
@@ -10,18 +10,16 @@ import lombok.Getter;
* @version $Id: EffectFlagEnum.java, v 0.1 2024-08-01 18:18
*/
@AllArgsConstructor
-@Getter
public enum EffectFlagEnum {
/**
* 有效
*/
- EFFECT_FLAG_1(1, "有效"),
+ EFFECT(1, "有效"),
/**
* 无效
*/
- EFFECT_FLAG_0(0, "无效"),
- ;
- private Integer code;
- private String desc;
+ NOT_EFFECTIVE(0, "无效");
+ public Integer code;
+ public String desc;
}
\ No newline at end of file
diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/EleDataSaveStatusEnum.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/EleDataSaveStatusEnum.java
new file mode 100644
index 0000000..b5c6c49
--- /dev/null
+++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/EleDataSaveStatusEnum.java
@@ -0,0 +1,15 @@
+package com.electromagnetic.industry.software.common.enums;
+
+import lombok.AllArgsConstructor;
+
+@AllArgsConstructor
+public enum EleDataSaveStatusEnum {
+
+ UPLOADING(0, "上传中"),
+ SUCCESS(1, "上传成功"),
+ FAIL(2, "上传失败");
+
+ public int code;
+ public String des;
+
+}
diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/EleDataStatusEnum.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/EleDataStatusEnum.java
new file mode 100644
index 0000000..ac43024
--- /dev/null
+++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/EleDataStatusEnum.java
@@ -0,0 +1,15 @@
+package com.electromagnetic.industry.software.common.enums;
+
+import lombok.AllArgsConstructor;
+
+@AllArgsConstructor
+public enum EleDataStatusEnum {
+
+ NOT_PUBLISHED(0, "未发布"),
+ PUBLISHED(1, "已发布"),
+ OCCUPY(2, "占用");
+
+ public int code;
+ public String desc;
+
+}
diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/EleDataTypeEnum.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/EleDataTypeEnum.java
new file mode 100644
index 0000000..b65c0e9
--- /dev/null
+++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/EleDataTypeEnum.java
@@ -0,0 +1,13 @@
+package com.electromagnetic.industry.software.common.enums;
+
+import lombok.AllArgsConstructor;
+
+@AllArgsConstructor
+public enum EleDataTypeEnum {
+
+ FILE(0, "文件夹"),
+ FOLDER(1, "普通文件");
+
+ public int code;
+ public String desc;
+}
diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/exception/BizException.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/exception/BizException.java
new file mode 100644
index 0000000..ef5f2a6
--- /dev/null
+++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/exception/BizException.java
@@ -0,0 +1,17 @@
+package com.electromagnetic.industry.software.common.exception;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class BizException extends RuntimeException {
+
+ private int code;
+ private String msg;
+
+}
diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/EleCommonUtil.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/EleCommonUtil.java
index 6795ccb..bfd381c 100644
--- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/EleCommonUtil.java
+++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/EleCommonUtil.java
@@ -1,5 +1,7 @@
package com.electromagnetic.industry.software.common.util;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
import java.util.regex.Pattern;
public final class EleCommonUtil {
@@ -7,6 +9,8 @@ public final class EleCommonUtil {
// 正则表达式模式,匹配中文字符、下划线、连字符、加号、数字和英文字符
private static final String PATTERN = "^[\\u4e00-\\u9fa5a-zA-Z0-9._\\-+]+$";
+ private static final String TIME_FORMAT1 = "yyMMddHHmmssSSS";
+
// 编译正则表达式
private static final Pattern pattern = Pattern.compile(PATTERN);
@@ -37,4 +41,13 @@ public final class EleCommonUtil {
return pattern.matcher(fileFullName).matches();
}
+ public static String getNowTimeStr() {
+ // 获取当前时间
+ LocalDateTime now = LocalDateTime.now();
+ // 创建日期时间格式化器
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern(TIME_FORMAT1);
+ // 格式化当前时间
+ return now.format(formatter);
+ }
+
}
diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/EleLog.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/EleLog.java
new file mode 100644
index 0000000..4d476f3
--- /dev/null
+++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/EleLog.java
@@ -0,0 +1,32 @@
+package com.electromagnetic.industry.software.common.util;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class EleLog {
+
+ private Logger logger;
+
+ public EleLog(Class clazz) {
+ this.logger = LoggerFactory.getLogger(clazz);
+ }
+
+ public void info(String msg) {
+ logger.info(msg);
+ }
+
+ public void debug(String msg) {
+ logger.debug(msg);
+ }
+
+ public void warn(String msg) {
+ logger.warn(msg);
+ }
+ public void error(String msg) {
+ logger.error(msg);
+ }
+
+ public void error(String msg, Throwable e) {
+ logger.error(msg, e);
+ }
+}