From ef85c9fb60bbe26f5203b679bda20a4d212977af Mon Sep 17 00:00:00 2001 From: xiangZr-hhh <“2774915446@qq.com”> Date: Thu, 14 Mar 2024 17:35:19 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=96=87=E4=BB=B6=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsl/oa/controllers/ModuleContorller.java | 13 +++++++-- .../jsl/oa/controllers/ProjectController.java | 15 +++++++++- src/main/java/com/jsl/oa/dao/ProjectDAO.java | 8 +++++ .../java/com/jsl/oa/mapper/ModuleMapper.java | 4 +++ .../jsl/oa/model/voData/ProjectFileVO.java | 13 +++++++++ .../com/jsl/oa/services/ModuleService.java | 2 ++ .../com/jsl/oa/services/ProjectService.java | 2 ++ .../oa/services/impl/ModuleServiceImpl.java | 13 +++++++++ .../oa/services/impl/ProjectServiceImpl.java | 29 +++++++++++++++++++ src/main/java/com/jsl/oa/utils/ErrorCode.java | 3 +- 10 files changed, 97 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/jsl/oa/model/voData/ProjectFileVO.java diff --git a/src/main/java/com/jsl/oa/controllers/ModuleContorller.java b/src/main/java/com/jsl/oa/controllers/ModuleContorller.java index 02e6936..fe92860 100644 --- a/src/main/java/com/jsl/oa/controllers/ModuleContorller.java +++ b/src/main/java/com/jsl/oa/controllers/ModuleContorller.java @@ -4,9 +4,8 @@ import com.jsl.oa.services.ModuleService; import com.jsl.oa.utils.BaseResponse; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; @@ -43,4 +42,12 @@ public class ModuleContorller { return moduleService.getBySysId(sysId,request); } + + + @DeleteMapping("/module/delete/{id}") + public BaseResponse moudleDeleteById( @PathVariable("id") Long id, HttpServletRequest request){ + log.info("请求接口[DELETE]: /module/delete/{id}"); + return moduleService.deleteById(request,id); + } + } diff --git a/src/main/java/com/jsl/oa/controllers/ProjectController.java b/src/main/java/com/jsl/oa/controllers/ProjectController.java index 4f611cb..3e27315 100755 --- a/src/main/java/com/jsl/oa/controllers/ProjectController.java +++ b/src/main/java/com/jsl/oa/controllers/ProjectController.java @@ -176,7 +176,8 @@ public class ProjectController { * @Param projectId: **/ @PutMapping("/project/edit/{projectId}") - public BaseResponse projectEditById(HttpServletRequest request, @RequestBody @Validated ProjectEditVO projectEdit, @NotNull BindingResult bindingResult, @PathVariable("projectId") Long projectId) { + public BaseResponse projectEditById(HttpServletRequest request, @RequestBody @Validated ProjectEditVO projectEdit, + @NotNull BindingResult bindingResult, @PathVariable("projectId") Long projectId) { log.info("请求接口[PUT]: /project/edit/{projectId}"); // 判断是否有参数错误 if (bindingResult.hasErrors()) { @@ -290,4 +291,16 @@ public class ProjectController { return projectService.projectToOtherUserForCutting(request, oldUid, pid , newUid); } + + @GetMapping("/project/file") + public BaseResponse getProjectFile(HttpServletRequest request, @RequestParam Long projectId){ + log.info("请求接口[Get]: /project/file"); + //判断是否有参数错误 + if(projectId == null){ + return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR); + } + return projectService.projectFileGet(request,projectId); + } + + } diff --git a/src/main/java/com/jsl/oa/dao/ProjectDAO.java b/src/main/java/com/jsl/oa/dao/ProjectDAO.java index 65e28f9..8162bf4 100644 --- a/src/main/java/com/jsl/oa/dao/ProjectDAO.java +++ b/src/main/java/com/jsl/oa/dao/ProjectDAO.java @@ -119,6 +119,13 @@ public class ProjectDAO { return projectMapper.setProjectShow(setProjectShow); } + + public ProjectDO getProjectById(Long id){ + log.info("\t> 执行 DAO 层 ProjectDAO.getProjectById 方法"); + log.info("\t\t> 从 MySQL 获取数据"); + return projectMapper.getProjectById(id); + } + public List get(Long userId,Integer listAll,List tags,List isFinish) { log.info("\t> 执行 DAO 层 ProjectDAO.get 方法"); log.info("\t\t> 从 MySQL 获取数据"); @@ -224,4 +231,5 @@ public class ProjectDAO { return projectMapper.tget(id); } + } diff --git a/src/main/java/com/jsl/oa/mapper/ModuleMapper.java b/src/main/java/com/jsl/oa/mapper/ModuleMapper.java index 40f017c..2dc50a9 100644 --- a/src/main/java/com/jsl/oa/mapper/ModuleMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ModuleMapper.java @@ -1,6 +1,7 @@ package com.jsl.oa.mapper; import com.jsl.oa.model.doData.ProjectWorkDO; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; @@ -22,4 +23,7 @@ public interface ModuleMapper { @Select("select principal_id from organize_oa.oa_project_work where id=#{sysId}") Long getPidBySysid(Integer sysId); + + @Delete("DELETE FROM organize_oa.oa_project_work WHERE id = #{id}") + void deleteMoudule(Long id); } diff --git a/src/main/java/com/jsl/oa/model/voData/ProjectFileVO.java b/src/main/java/com/jsl/oa/model/voData/ProjectFileVO.java new file mode 100644 index 0000000..54c9df4 --- /dev/null +++ b/src/main/java/com/jsl/oa/model/voData/ProjectFileVO.java @@ -0,0 +1,13 @@ +package com.jsl.oa.model.voData; + +import lombok.Data; + +@Data +public class ProjectFileVO { + + String name; + String uuid; + String link; +} + + diff --git a/src/main/java/com/jsl/oa/services/ModuleService.java b/src/main/java/com/jsl/oa/services/ModuleService.java index de178cd..6e888d2 100644 --- a/src/main/java/com/jsl/oa/services/ModuleService.java +++ b/src/main/java/com/jsl/oa/services/ModuleService.java @@ -11,4 +11,6 @@ public interface ModuleService { BaseResponse getByProjectId(Integer projectId, HttpServletRequest request); BaseResponse getBySysId(Integer sysId, HttpServletRequest request); + + BaseResponse deleteById(HttpServletRequest request, Long id); } diff --git a/src/main/java/com/jsl/oa/services/ProjectService.java b/src/main/java/com/jsl/oa/services/ProjectService.java index 1609bd8..dfb026d 100644 --- a/src/main/java/com/jsl/oa/services/ProjectService.java +++ b/src/main/java/com/jsl/oa/services/ProjectService.java @@ -41,4 +41,6 @@ public interface ProjectService { BaseResponse projecWorktAdd(HttpServletRequest request, ProjectWorkVO projectWorkVO); BaseResponse tget(Integer id, List tags, List isFinish); + + BaseResponse projectFileGet(HttpServletRequest request, Long projectId); } diff --git a/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java index 9066e41..9d0c275 100644 --- a/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java @@ -7,6 +7,7 @@ import com.jsl.oa.mapper.RoleMapper; import com.jsl.oa.model.doData.ProjectWorkDO; import com.jsl.oa.services.ModuleService; import com.jsl.oa.utils.BaseResponse; +import com.jsl.oa.utils.ErrorCode; import com.jsl.oa.utils.Processing; import com.jsl.oa.utils.ResultUtil; import lombok.RequiredArgsConstructor; @@ -59,4 +60,16 @@ public class ModuleServiceImpl implements ModuleService { List projectWorkDOList = moduleMapper.getBySysId(sysId,userId,is); return ResultUtil.success(projectWorkDOList); } + + @Override + public BaseResponse deleteById(HttpServletRequest request, Long id) { + + if(!Processing.checkUserIsAdmin(request,roleMapper)){ + return ResultUtil.error(ErrorCode.NOT_PERMISSION); + } + + moduleMapper.deleteMoudule(id); + + return ResultUtil.success("删除成功"); + } } diff --git a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java index ebdd004..334f7cf 100644 --- a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java @@ -1,5 +1,9 @@ package com.jsl.oa.services.impl; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; import com.jsl.oa.annotations.CheckUserHasPermission; import com.jsl.oa.dao.ProjectDAO; import com.jsl.oa.dao.UserDAO; @@ -78,6 +82,31 @@ public class ProjectServiceImpl implements ProjectService { return ResultUtil.success(projectDOList); } + @Override + public BaseResponse projectFileGet(HttpServletRequest request, Long projectId) { + + +// 判断项目是否存在 + if(!projectDAO.isExistProjectById(projectId)){ + return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST); + } + + ProjectDO projectDO = projectDAO.getProjectById(projectId); + + if(projectDO.getFile() == null || projectDO.getFile().equals("{}")){ + return ResultUtil.success(null); + } + + // 将文件内容转换为 JSON 数组 + try { + Object fileJson = new ObjectMapper().readValue(projectDO.getFile(), Object.class); + return ResultUtil.success(fileJson); + } catch (JsonProcessingException e) { + return ResultUtil.error(ErrorCode.PROJECT_FILE_JSON_ERROR); + } + + } + @Override public BaseResponse projectEdit(HttpServletRequest request, @NotNull ProjectEditVO projectEdit, Long projectId) { log.info("\t> 执行 Service 层 ProjectService.projectEdit 方法"); diff --git a/src/main/java/com/jsl/oa/utils/ErrorCode.java b/src/main/java/com/jsl/oa/utils/ErrorCode.java index e790b0a..58098e2 100755 --- a/src/main/java/com/jsl/oa/utils/ErrorCode.java +++ b/src/main/java/com/jsl/oa/utils/ErrorCode.java @@ -50,7 +50,8 @@ public enum ErrorCode { DATABASE_DELETE_ERROR("DatabaseDeleteError", 50012, "数据库删除错误"), PROJECT_NOT_EXIST("ProjectNotExist", 40016, "项目不存在"), PROJECT_CUTTING_NOT_EXIST("ProjectCuttingNotExist", 40017, "项目分割模块不存在"), - PROJECT_USER_NOT_EXIST("ProjectUserNotExist", 40018, "用户项目表无对应记录"); + PROJECT_USER_NOT_EXIST("ProjectUserNotExist", 40018, "用户项目表无对应记录"), + PROJECT_FILE_JSON_ERROR("ProjectFileJsonError", 40019, "项目文件json格式错误"); private final String output;