From fbddeff093003a9e39fca07fdb6b815c4ab1f7b1 Mon Sep 17 00:00:00 2001 From: 176yunxuan <362612387@qq.com~> Date: Mon, 11 Mar 2024 16:33:39 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E6=A0=87=E7=AD=BE=E5=92=8C=E7=8A=B6=E6=80=81=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/jsl/oa/dao/ProjectDAO.java | 4 ++-- src/main/java/com/jsl/oa/mapper/ProjectMapper.java | 10 +++++----- .../com/jsl/oa/services/impl/ProjectServiceImpl.java | 3 ++- src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml | 2 +- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/jsl/oa/dao/ProjectDAO.java b/src/main/java/com/jsl/oa/dao/ProjectDAO.java index be19ea8..f635a2d 100644 --- a/src/main/java/com/jsl/oa/dao/ProjectDAO.java +++ b/src/main/java/com/jsl/oa/dao/ProjectDAO.java @@ -109,10 +109,10 @@ public class ProjectDAO { log.info("\t> 执行 DAO 层 ProjectDAO.get 方法"); log.info("\t\t> 从 MySQL 获取数据"); if(isFinish != null){ - return projectMapper.getByIsfinish(isFinish); + return projectMapper.getByIsfinish(userId,isFinish); } if(tags != null && !tags.isEmpty()){ - return projectMapper.getByTags(tags); + return projectMapper.getByTags(userId,tags); } if(listAll == 0) { return projectMapper.get(userId); diff --git a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java index 4453bf9..4ce6b46 100644 --- a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java @@ -43,15 +43,15 @@ public interface ProjectMapper { //@Select("select * from organize_oa.oa_project where json_extract(tags,'$.tags')" + //"like concat('%',#{tags},'%')") - @Select("select * from organize_oa.oa_project where is_finish=#{isFinish} and is_delete=false") - ListgetByIsfinish(Integer isFinish); + @Select("select * from organize_oa.oa_project where is_finish=#{isFinish} and is_delete=false and principal_id =#{userId}") + ListgetByIsfinish(Long userId,Integer isFinish); - ListgetByTags(List tags); + ListgetByTags(Long userId,List tags); - @Select("select * from organize_oa.oa_project where is_delete=false and status =1") + @Select("select * from organize_oa.oa_project where is_delete=false and status =1 and principal_id=#{userId}") List get(Long userId); - @Select("select * from organize_oa.oa_project where status =1 and status=1") + @Select("select * from organize_oa.oa_project where status =1 and status=1 and principal_id=#{userId}") List get1(Long userId); @Select("select * from organize_oa.oa_project where name=#{name}") 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 9a914ea..3306c12 100644 --- a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java @@ -204,7 +204,8 @@ public class ProjectServiceImpl implements ProjectService { List projectDOList = projectDAO.get(userId,listAll,tags,isFinish); return ResultUtil.success(projectDOList); }else { - List projectDOList = projectDAO.get(userId,0,tags,isFinish); + listAll = 0; + List projectDOList = projectDAO.get(userId,listAll,tags,isFinish); return ResultUtil.success(projectDOList); } diff --git a/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml b/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml index 07cbe27..f443087 100644 --- a/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml +++ b/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml @@ -51,7 +51,7 @@ select * from organize_oa.oa_project where + close=",'%') and is_delete=false and principal_id=#{userId}"> #{tag} From 789eea8d49d4ed941223c87990ef917e3965e376 Mon Sep 17 00:00:00 2001 From: 176yunxuan <362612387@qq.com~> Date: Mon, 11 Mar 2024 19:04:59 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E5=AD=90=E6=A8=A1=E5=9D=97/=E5=AD=90?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E7=9A=84=E6=9F=A5=E8=AF=A2=E5=92=8C=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsl/oa/controllers/ProjectController.java | 33 +++++++++++++- src/main/java/com/jsl/oa/dao/ProjectDAO.java | 25 +++++++++++ .../java/com/jsl/oa/mapper/ProjectMapper.java | 22 +++++++++- .../com/jsl/oa/model/doData/ProjectDO.java | 4 +- .../com/jsl/oa/services/ProjectService.java | 5 +++ .../oa/services/impl/ProjectServiceImpl.java | 43 ++++++++++++++++++- .../com/jsl/oa/mapper/ProjectMapper.xml | 9 ++++ 7 files changed, 135 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/jsl/oa/controllers/ProjectController.java b/src/main/java/com/jsl/oa/controllers/ProjectController.java index 580d3a8..d60f3b5 100755 --- a/src/main/java/com/jsl/oa/controllers/ProjectController.java +++ b/src/main/java/com/jsl/oa/controllers/ProjectController.java @@ -3,6 +3,7 @@ package com.jsl.oa.controllers; import com.jsl.oa.model.voData.ProjectCuttingAddVO; import com.jsl.oa.model.voData.ProjectCuttingEditVO; import com.jsl.oa.model.voData.ProjectInfoVO; +import com.jsl.oa.model.voData.ProjectWorkVO; import com.jsl.oa.model.voData.business.info.ProjectShowVO; import com.jsl.oa.services.ProjectService; import com.jsl.oa.utils.BaseResponse; @@ -54,6 +55,20 @@ public class ProjectController { return projectService.get(listAll,request,tags,isFinish); } + /** + * 子模块子系统的查询 + * + * @return + */ + @GetMapping("/project/work/get") + public BaseResponse projectWorkGet(@RequestParam(required = false) Integer listAll, + @RequestParam(required = false) List tags, + @RequestParam(required = false) Integer isFinish, + HttpServletRequest request) { + log.info("请求接口[GET]: /project/work/get"); + return projectService.workget(listAll, request, tags, isFinish); + } + /** * 单个项目的详细 * 项目轮播图 @@ -130,8 +145,6 @@ public class ProjectController { /** * 项目表进行,项目增加 * - * @param projectAdd - * @param bindingResult * @return */ @PostMapping("/project/add") @@ -144,6 +157,22 @@ public class ProjectController { return projectService.projectAdd(request, projectAdd); } + /** + * 子系统子模块的增加 + * @param request + * @param bindingResult + * @return + */ + @PostMapping("/project/work/add") + public BaseResponse projectWorkAdd(HttpServletRequest request, @RequestBody @Validated ProjectWorkVO projectWorkVO, @NotNull BindingResult bindingResult) { + log.info("请求接口[POST]: /project/work/add"); + // 判断是否有参数错误 + if (bindingResult.hasErrors()) { + return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); + } + return projectService.projecWorktAdd(request, projectWorkVO); + } + /** * 项目表进行,项目的修改 * diff --git a/src/main/java/com/jsl/oa/dao/ProjectDAO.java b/src/main/java/com/jsl/oa/dao/ProjectDAO.java index f635a2d..8a1afe1 100644 --- a/src/main/java/com/jsl/oa/dao/ProjectDAO.java +++ b/src/main/java/com/jsl/oa/dao/ProjectDAO.java @@ -5,8 +5,10 @@ import com.jsl.oa.mapper.ProjectMapper; import com.jsl.oa.model.doData.ProjectCuttingDO; import com.jsl.oa.model.doData.ProjectDO; import com.jsl.oa.model.doData.ProjectUserDO; +import com.jsl.oa.model.doData.ProjectWorkDO; import com.jsl.oa.model.doData.info.ProjectShowDO; import com.jsl.oa.model.voData.ProjectInfoVO; +import com.jsl.oa.model.voData.ProjectWorkVO; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; @@ -29,7 +31,12 @@ public class ProjectDAO { log.info("\t> 执行 DAO 层 ProjectDAO.projectAdd 方法"); log.info("\t\t> 从 MySQL 获取数据"); projectMapper.projectAdd(projectAdd); + } + public void projectWorkAdd(ProjectWorkVO projectWorkVO) { + log.info("\t> 执行 DAO 层 ProjectDAO.projecWorktAdd 方法"); + log.info("\t\t> 从 MySQL 获取数据"); + projectMapper.projectWorkAdd(projectWorkVO); } public void projectEdit(ProjectInfoVO projectEdit) { @@ -121,6 +128,22 @@ public class ProjectDAO { } } + public List workget(Long userId, Integer listAll, List tags, Integer isFinish) { + log.info("\t> 执行 DAO 层 ProjectDAO.workget 方法"); + log.info("\t\t> 从 MySQL 获取数据"); + if(isFinish != null){ + return projectMapper.workgetByIsfinish(userId,isFinish); + } + if(tags != null && !tags.isEmpty()){ + return projectMapper.workgetByTags(userId,tags); + } + if(listAll == 0) { + return projectMapper.workget(userId); + }else { + return projectMapper.workget1(userId); + } + } + public ProjectDO getByName(String name) { log.info("\t> 执行 DAO 层 ProjectDAO.getByName 方法"); log.info("\t\t> 从 MySQL 获取数据"); @@ -174,4 +197,6 @@ public class ProjectDAO { return projectMapper.updateUserForProjectUser(newUid,projectUserDO.getId()); } + + } diff --git a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java index 4ce6b46..b77ddff 100644 --- a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java @@ -3,7 +3,9 @@ package com.jsl.oa.mapper; import com.jsl.oa.model.doData.ProjectCuttingDO; import com.jsl.oa.model.doData.ProjectDO; import com.jsl.oa.model.doData.ProjectUserDO; +import com.jsl.oa.model.doData.ProjectWorkDO; import com.jsl.oa.model.voData.ProjectInfoVO; +import com.jsl.oa.model.voData.ProjectWorkVO; import org.apache.ibatis.annotations.*; import org.apache.ibatis.annotations.Param; @@ -19,6 +21,11 @@ public interface ProjectMapper { ",#{completeTime},#{deadline},#{status},#{isFinish})") void projectAdd(ProjectInfoVO projectAdd); + @Insert("insert into organize_oa.oa_project_work (project_id, pid, name, principal_id," + + " work_load, description, cycle, complete_time, type, is_finish,status) " + + "value (#{projectId},#{pid},#{name},#{principalId},#{workLoad}," + + "#{description},#{cycle},#{completeTime},#{type},#{isFinish},#{status})") + void projectWorkAdd(ProjectWorkVO projectWorkVO); void projectEdit(ProjectInfoVO projectEdit); @@ -51,7 +58,7 @@ public interface ProjectMapper { @Select("select * from organize_oa.oa_project where is_delete=false and status =1 and principal_id=#{userId}") List get(Long userId); - @Select("select * from organize_oa.oa_project where status =1 and status=1 and principal_id=#{userId}") + @Select("select * from organize_oa.oa_project where status =1 and is_delete =true and principal_id=#{userId}") List get1(Long userId); @Select("select * from organize_oa.oa_project where name=#{name}") @@ -77,4 +84,17 @@ public interface ProjectMapper { @Update("UPDATE organize_oa.oa_project_user SET uid = #{uid} , updated_at = CURRENT_TIMESTAMP WHERE id = #{id}") boolean updateUserForProjectUser(Long uid, Long id); + + @Select("select * from organize_oa.oa_project_work where is_finish=#{isFinish} and is_delete=false and principal_id =#{userId}") + List workgetByIsfinish(Long userId, Integer isFinish); + + List workgetByTags(Long userId, List tags); + + @Select("select * from organize_oa.oa_project_work where is_delete=false and status =1 and principal_id=#{userId}") + List workget(Long userId); + + @Select("select * from organize_oa.oa_project_work where is_delete =true and status=1 and principal_id=#{userId}") + List workget1(Long userId); + + } diff --git a/src/main/java/com/jsl/oa/model/doData/ProjectDO.java b/src/main/java/com/jsl/oa/model/doData/ProjectDO.java index 6f494d6..86f9194 100755 --- a/src/main/java/com/jsl/oa/model/doData/ProjectDO.java +++ b/src/main/java/com/jsl/oa/model/doData/ProjectDO.java @@ -26,8 +26,8 @@ public class ProjectDO { private String name; private String file; private String description; - private Integer is_delete; - private Integer is_finish; + private Integer isDelete; + private Integer isFinish; private boolean status; private Timestamp beginTime; private Timestamp completeTime; diff --git a/src/main/java/com/jsl/oa/services/ProjectService.java b/src/main/java/com/jsl/oa/services/ProjectService.java index ed29493..ab605a4 100644 --- a/src/main/java/com/jsl/oa/services/ProjectService.java +++ b/src/main/java/com/jsl/oa/services/ProjectService.java @@ -3,6 +3,7 @@ package com.jsl.oa.services; import com.jsl.oa.model.voData.ProjectCuttingAddVO; import com.jsl.oa.model.voData.ProjectCuttingEditVO; import com.jsl.oa.model.voData.ProjectInfoVO; +import com.jsl.oa.model.voData.ProjectWorkVO; import com.jsl.oa.model.voData.business.info.ProjectShowVO; import com.jsl.oa.utils.BaseResponse; @@ -37,4 +38,8 @@ public interface ProjectService { BaseResponse editProjectCutting(HttpServletRequest request, ProjectCuttingEditVO projectCuttingEditVO); BaseResponse projectToOtherUserForCutting(HttpServletRequest request, Long oldUid, Long pid, Long newUid); + + BaseResponse workget(Integer listAll, HttpServletRequest request, List tags, Integer isFinish); + + BaseResponse projecWorktAdd(HttpServletRequest request, ProjectWorkVO projectWorkVO); } 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 3306c12..7d62050 100644 --- a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java @@ -6,11 +6,13 @@ import com.jsl.oa.dao.UserDAO; import com.jsl.oa.mapper.RoleMapper; import com.jsl.oa.model.doData.ProjectCuttingDO; import com.jsl.oa.model.doData.ProjectDO; +import com.jsl.oa.model.doData.ProjectWorkDO; import com.jsl.oa.model.doData.UserDO; import com.jsl.oa.model.doData.info.ProjectShowDO; import com.jsl.oa.model.voData.ProjectCuttingAddVO; import com.jsl.oa.model.voData.ProjectCuttingEditVO; import com.jsl.oa.model.voData.ProjectInfoVO; +import com.jsl.oa.model.voData.ProjectWorkVO; import com.jsl.oa.model.voData.business.info.ProjectShowVO; import com.jsl.oa.services.ProjectService; import com.jsl.oa.utils.BaseResponse; @@ -21,7 +23,6 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; import org.springframework.stereotype.Service; -import org.springframework.web.bind.annotation.RequestParam; import javax.servlet.http.HttpServletRequest; import java.sql.Timestamp; @@ -56,6 +57,13 @@ public class ProjectServiceImpl implements ProjectService { } + @Override + public BaseResponse projecWorktAdd(HttpServletRequest request, ProjectWorkVO projectWorkVO) { + log.info("\t> 执行 Service 层 ProjectService.projectWorkAdd 方法"); + projectDAO.projectWorkAdd(projectWorkVO); + return ResultUtil.success("添加成功"); + } + @Override @CheckUserHasPermission("project.edit") public BaseResponse projectEdit(HttpServletRequest request, @NotNull ProjectInfoVO projectEdit) { @@ -186,6 +194,7 @@ public class ProjectServiceImpl implements ProjectService { @Override public BaseResponse get(Integer listAll, HttpServletRequest request, List tags, Integer isFinish) { log.info("\t> 执行 Service 层 ProjectService.get 方法"); + //获取用户 Long userId= Processing.getAuthHeaderToUserId(request); //根据状态查询 @@ -211,6 +220,36 @@ public class ProjectServiceImpl implements ProjectService { } + @Override + public BaseResponse workget(Integer listAll, HttpServletRequest request, List tags, Integer isFinish) { + log.info("\t> 执行 Service 层 ProjectService.workget 方法"); + + //获取用户 + Long userId= Processing.getAuthHeaderToUserId(request); + //根据状态查询 + if(isFinish != null){ + List projectWorkDOList = projectDAO.workget(userId,listAll,tags,isFinish); + return ResultUtil.success(projectWorkDOList); + } + //根据标签查询 + if(tags != null && !tags.isEmpty()){ + List projectWorkDOList = projectDAO.workget(userId,listAll,tags,isFinish); + return ResultUtil.success(projectWorkDOList); + } + + //判断是否是老师(项目负责人) + if(listAll != null && Processing.checkUserIsTeacher(request,roleMapper)){ + List projectWorkDOList = projectDAO.workget(userId,listAll,tags,isFinish); + return ResultUtil.success(projectWorkDOList); + }else { + listAll = 0; + List projectWorkDOList = projectDAO.workget(userId,listAll,tags,isFinish); + return ResultUtil.success(projectWorkDOList); + } + } + + + @Override public BaseResponse getByName(String name) { log.info("\t> 执行 Service 层 ProjectService.getByName 方法"); @@ -284,4 +323,6 @@ public class ProjectServiceImpl implements ProjectService { } + + } diff --git a/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml b/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml index f443087..f9a9685 100644 --- a/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml +++ b/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml @@ -56,4 +56,13 @@ + + \ No newline at end of file From 187fb598232403f34dcdf4c1fdb6a57dca7368ee Mon Sep 17 00:00:00 2001 From: 176yunxuan <362612387@qq.com~> Date: Mon, 11 Mar 2024 20:58:11 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=8F=96=E6=B6=88token=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/jsl/oa/aspect/AuthControllerAspect.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/jsl/oa/aspect/AuthControllerAspect.java b/src/main/java/com/jsl/oa/aspect/AuthControllerAspect.java index 51bf162..b5530e0 100755 --- a/src/main/java/com/jsl/oa/aspect/AuthControllerAspect.java +++ b/src/main/java/com/jsl/oa/aspect/AuthControllerAspect.java @@ -75,7 +75,8 @@ public class AuthControllerAspect { "&& !execution(* com.jsl.oa.controllers.IndexController.*(..)) " + "&& !execution(* com.jsl.oa.controllers.CustomController.*(..)) " + "&& !execution(* com.jsl.oa.controllers.InfoController.infoGetHeaderImage(..)) " + - "&& !execution(* com.jsl.oa.controllers.InfoController.infoGetHeaderUser(..))") + "&& !execution(* com.jsl.oa.controllers.InfoController.infoGetHeaderUser(..))" + + "&& !execution(* com.jsl.oa.controllers.ProjectController.projectGet(..))") public Object tokenControllerAround(ProceedingJoinPoint pjp) throws Throwable { // 获取 HttpServletRequest 对象 HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); From ce123e185869dc91261e7d2c8f8026278cca3ff1 Mon Sep 17 00:00:00 2001 From: 176yunxuan <362612387@qq.com~> Date: Mon, 11 Mar 2024 21:01:59 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=8F=96=E6=B6=88token=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/jsl/oa/mapper/ProjectMapper.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java index b77ddff..adde849 100644 --- a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java @@ -50,15 +50,15 @@ public interface ProjectMapper { //@Select("select * from organize_oa.oa_project where json_extract(tags,'$.tags')" + //"like concat('%',#{tags},'%')") - @Select("select * from organize_oa.oa_project where is_finish=#{isFinish} and is_delete=false and principal_id =#{userId}") + @Select("select * from organize_oa.oa_project where is_finish=#{isFinish} and is_delete=false") ListgetByIsfinish(Long userId,Integer isFinish); ListgetByTags(Long userId,List tags); - @Select("select * from organize_oa.oa_project where is_delete=false and status =1 and principal_id=#{userId}") + @Select("select * from organize_oa.oa_project where is_delete=false and status=1") List get(Long userId); - @Select("select * from organize_oa.oa_project where status =1 and is_delete =true and principal_id=#{userId}") + @Select("select * from organize_oa.oa_project where status =1 and is_delete =true") List get1(Long userId); @Select("select * from organize_oa.oa_project where name=#{name}") From 6e4f22170d78490cb4fedb2e158abb1c1dbcc27b Mon Sep 17 00:00:00 2001 From: 176yunxuan <362612387@qq.com~> Date: Mon, 11 Mar 2024 22:08:10 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E6=B8=B8=E5=AE=A2=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jsl/oa/aspect/AuthControllerAspect.java | 2 +- .../com/jsl/oa/config/shiro/ShiroConfiguration.java | 2 ++ .../com/jsl/oa/controllers/ProjectController.java | 13 ++++++++++++- src/main/java/com/jsl/oa/dao/ProjectDAO.java | 6 +++++- src/main/java/com/jsl/oa/mapper/ProjectMapper.java | 9 +++++---- .../java/com/jsl/oa/services/ProjectService.java | 2 ++ .../jsl/oa/services/impl/ProjectServiceImpl.java | 7 +++++++ .../resources/com/jsl/oa/mapper/ProjectMapper.xml | 6 ++++++ 8 files changed, 40 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/jsl/oa/aspect/AuthControllerAspect.java b/src/main/java/com/jsl/oa/aspect/AuthControllerAspect.java index b5530e0..0d0d33b 100755 --- a/src/main/java/com/jsl/oa/aspect/AuthControllerAspect.java +++ b/src/main/java/com/jsl/oa/aspect/AuthControllerAspect.java @@ -76,7 +76,7 @@ public class AuthControllerAspect { "&& !execution(* com.jsl.oa.controllers.CustomController.*(..)) " + "&& !execution(* com.jsl.oa.controllers.InfoController.infoGetHeaderImage(..)) " + "&& !execution(* com.jsl.oa.controllers.InfoController.infoGetHeaderUser(..))" + - "&& !execution(* com.jsl.oa.controllers.ProjectController.projectGet(..))") + "&& !execution(* com.jsl.oa.controllers.ProjectController.projectGetCustom(..))") public Object tokenControllerAround(ProceedingJoinPoint pjp) throws Throwable { // 获取 HttpServletRequest 对象 HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); diff --git a/src/main/java/com/jsl/oa/config/shiro/ShiroConfiguration.java b/src/main/java/com/jsl/oa/config/shiro/ShiroConfiguration.java index 3faed43..c23b655 100755 --- a/src/main/java/com/jsl/oa/config/shiro/ShiroConfiguration.java +++ b/src/main/java/com/jsl/oa/config/shiro/ShiroConfiguration.java @@ -63,7 +63,9 @@ public class ShiroConfiguration { filterChainDefinitionMap.put("/info/header-user/get", "anon"); // 信息接口允许匿名访问 filterChainDefinitionMap.put("/project/header/get", "anon"); // 信息接口允许匿名访问 filterChainDefinitionMap.put("/project/get", "anon"); // 信息接口允许匿名访问 + filterChainDefinitionMap.put("/project/get/custom", "anon"); // 游客获取项目允许匿名访问 filterChainDefinitionMap.put("/**/**", "authc"); // 其他接口一律拦截(需要Token) + return filterChainDefinitionMap; } } diff --git a/src/main/java/com/jsl/oa/controllers/ProjectController.java b/src/main/java/com/jsl/oa/controllers/ProjectController.java index d60f3b5..f738fa2 100755 --- a/src/main/java/com/jsl/oa/controllers/ProjectController.java +++ b/src/main/java/com/jsl/oa/controllers/ProjectController.java @@ -42,7 +42,18 @@ public class ProjectController { } /** - * 全部项目的信息获取(打开项目页) + * 游客获取项目 + * @return + */ + @GetMapping("/project/get/custom") + public BaseResponse projectGetCustom(@RequestParam(required = false) Integer id){ + log.info("请求接口[GET]: /project/all/get"); + return projectService.tget(id); + } + + + /** + * 我负责的界面的获取项目 * * @return */ diff --git a/src/main/java/com/jsl/oa/dao/ProjectDAO.java b/src/main/java/com/jsl/oa/dao/ProjectDAO.java index 8a1afe1..eaf1743 100644 --- a/src/main/java/com/jsl/oa/dao/ProjectDAO.java +++ b/src/main/java/com/jsl/oa/dao/ProjectDAO.java @@ -9,6 +9,7 @@ import com.jsl.oa.model.doData.ProjectWorkDO; import com.jsl.oa.model.doData.info.ProjectShowDO; import com.jsl.oa.model.voData.ProjectInfoVO; import com.jsl.oa.model.voData.ProjectWorkVO; +import com.jsl.oa.utils.BaseResponse; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; @@ -198,5 +199,8 @@ public class ProjectDAO { } - + public List tget(Integer id) { + log.info("DAO层"); + return projectMapper.tget(id); + } } diff --git a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java index adde849..723c22f 100644 --- a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java @@ -50,15 +50,15 @@ public interface ProjectMapper { //@Select("select * from organize_oa.oa_project where json_extract(tags,'$.tags')" + //"like concat('%',#{tags},'%')") - @Select("select * from organize_oa.oa_project where is_finish=#{isFinish} and is_delete=false") + @Select("select * from organize_oa.oa_project where is_finish=#{isFinish} and is_delete=false and principal_id=#{userId}") ListgetByIsfinish(Long userId,Integer isFinish); ListgetByTags(Long userId,List tags); - @Select("select * from organize_oa.oa_project where is_delete=false and status=1") + @Select("select * from organize_oa.oa_project where is_delete=false and status=1 and principal_id=#{userId}") List get(Long userId); - @Select("select * from organize_oa.oa_project where status =1 and is_delete =true") + @Select("select * from organize_oa.oa_project where status =1 and is_delete =true and principal_id=#{userId}") List get1(Long userId); @Select("select * from organize_oa.oa_project where name=#{name}") @@ -96,5 +96,6 @@ public interface ProjectMapper { @Select("select * from organize_oa.oa_project_work where is_delete =true and status=1 and principal_id=#{userId}") List workget1(Long userId); - + //@Select("select * from organize_oa.oa_project where is_delete=false and status=1") + List tget(Integer id); } diff --git a/src/main/java/com/jsl/oa/services/ProjectService.java b/src/main/java/com/jsl/oa/services/ProjectService.java index ab605a4..0f270fe 100644 --- a/src/main/java/com/jsl/oa/services/ProjectService.java +++ b/src/main/java/com/jsl/oa/services/ProjectService.java @@ -42,4 +42,6 @@ public interface ProjectService { BaseResponse workget(Integer listAll, HttpServletRequest request, List tags, Integer isFinish); BaseResponse projecWorktAdd(HttpServletRequest request, ProjectWorkVO projectWorkVO); + + BaseResponse tget(Integer id); } 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 7d62050..ed732f2 100644 --- a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java @@ -64,6 +64,13 @@ public class ProjectServiceImpl implements ProjectService { return ResultUtil.success("添加成功"); } + @Override + public BaseResponse tget(Integer id) { + log.info("\t> 执行 Service 层 ProjectService.tget 方法"); + List projectDOList = projectDAO.tget(id); + return ResultUtil.success(projectDOList); + } + @Override @CheckUserHasPermission("project.edit") public BaseResponse projectEdit(HttpServletRequest request, @NotNull ProjectInfoVO projectEdit) { diff --git a/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml b/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml index f9a9685..cc1e00c 100644 --- a/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml +++ b/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml @@ -64,5 +64,11 @@ #{tag} + \ No newline at end of file From 935003c12607b028eeba1cc284eb01d624d2dca6 Mon Sep 17 00:00:00 2001 From: xiangZr-hhh <“2774915446@qq.com”> Date: Tue, 12 Mar 2024 11:24:25 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=8E=A5=E5=8F=A3=E6=B7=BB=E5=8A=A0=E8=A7=92?= =?UTF-8?q?=E8=89=B2=E6=8E=A7=E5=88=B6=20=E9=A1=B9=E7=9B=AE=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E3=80=81=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsl/oa/controllers/IndexController.java | 2 + .../jsl/oa/controllers/NewsController.java | 3 + .../jsl/oa/controllers/ProjectController.java | 42 ++--- src/main/java/com/jsl/oa/dao/ProjectDAO.java | 21 ++- .../java/com/jsl/oa/mapper/ProjectMapper.java | 3 +- .../com/jsl/oa/model/doData/ProjectDO.java | 6 + .../jsl/oa/model/voData/ProjectEditVO.java | 29 +++ .../com/jsl/oa/services/ProjectService.java | 7 +- .../oa/services/impl/ProjectServiceImpl.java | 177 +++++++++--------- .../jsl/oa/services/impl/UserServiceImpl.java | 8 + .../java/com/jsl/oa/utils/Processing.java | 1 + .../com/jsl/oa/mapper/ProjectMapper.xml | 20 +- 12 files changed, 194 insertions(+), 125 deletions(-) create mode 100644 src/main/java/com/jsl/oa/model/voData/ProjectEditVO.java diff --git a/src/main/java/com/jsl/oa/controllers/IndexController.java b/src/main/java/com/jsl/oa/controllers/IndexController.java index 0945f7e..bcaf0c9 100644 --- a/src/main/java/com/jsl/oa/controllers/IndexController.java +++ b/src/main/java/com/jsl/oa/controllers/IndexController.java @@ -25,4 +25,6 @@ public class IndexController { newMap.put("timestamp", "构建时间:" + timestamp); return ResultUtil.success("欢迎使用JSL-OA系统,服务器处于正常状态", newMap); } + + } diff --git a/src/main/java/com/jsl/oa/controllers/NewsController.java b/src/main/java/com/jsl/oa/controllers/NewsController.java index bb1a038..ee90fdf 100644 --- a/src/main/java/com/jsl/oa/controllers/NewsController.java +++ b/src/main/java/com/jsl/oa/controllers/NewsController.java @@ -45,6 +45,9 @@ public class NewsController { return newsService.newsAdd(newsAddVO, request); } + + + } diff --git a/src/main/java/com/jsl/oa/controllers/ProjectController.java b/src/main/java/com/jsl/oa/controllers/ProjectController.java index f738fa2..e1b2f3a 100755 --- a/src/main/java/com/jsl/oa/controllers/ProjectController.java +++ b/src/main/java/com/jsl/oa/controllers/ProjectController.java @@ -1,9 +1,6 @@ package com.jsl.oa.controllers; -import com.jsl.oa.model.voData.ProjectCuttingAddVO; -import com.jsl.oa.model.voData.ProjectCuttingEditVO; -import com.jsl.oa.model.voData.ProjectInfoVO; -import com.jsl.oa.model.voData.ProjectWorkVO; +import com.jsl.oa.model.voData.*; import com.jsl.oa.model.voData.business.info.ProjectShowVO; import com.jsl.oa.services.ProjectService; import com.jsl.oa.utils.BaseResponse; @@ -18,7 +15,6 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; -import java.util.Arrays; import java.util.List; @Slf4j @@ -168,6 +164,26 @@ public class ProjectController { return projectService.projectAdd(request, projectAdd); } + + /** + * @Description: 项目的修改 + * @Date: 2024/3/10 + * @Param request: + * @Param projectEdit: + * @Param bindingResult: + * @Param projectId: + **/ + @PutMapping("/project/edit/{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()) { + return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); + } + return projectService.projectEdit(request, projectEdit,projectId); + } + + /** * 子系统子模块的增加 * @param request @@ -184,22 +200,6 @@ public class ProjectController { return projectService.projecWorktAdd(request, projectWorkVO); } - /** - * 项目表进行,项目的修改 - * - * @param projectEdit - * @param bindingResult - * @return - */ - @PutMapping("/project/edit") - public BaseResponse projectEdit(HttpServletRequest request, @RequestBody @Validated ProjectInfoVO projectEdit, @NotNull BindingResult bindingResult) { - log.info("请求接口[PUT]: /project/edit"); - // 判断是否有参数错误 - if (bindingResult.hasErrors()) { - return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); - } - return projectService.projectEdit(request, projectEdit); - } /** * 用户获取所分到的项目模块 diff --git a/src/main/java/com/jsl/oa/dao/ProjectDAO.java b/src/main/java/com/jsl/oa/dao/ProjectDAO.java index eaf1743..2a6d2be 100644 --- a/src/main/java/com/jsl/oa/dao/ProjectDAO.java +++ b/src/main/java/com/jsl/oa/dao/ProjectDAO.java @@ -7,9 +7,10 @@ import com.jsl.oa.model.doData.ProjectDO; import com.jsl.oa.model.doData.ProjectUserDO; import com.jsl.oa.model.doData.ProjectWorkDO; import com.jsl.oa.model.doData.info.ProjectShowDO; +import com.jsl.oa.model.voData.ProjectEditVO; import com.jsl.oa.model.voData.ProjectInfoVO; import com.jsl.oa.model.voData.ProjectWorkVO; -import com.jsl.oa.utils.BaseResponse; +import com.jsl.oa.utils.Processing; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; @@ -40,10 +41,14 @@ public class ProjectDAO { projectMapper.projectWorkAdd(projectWorkVO); } - public void projectEdit(ProjectInfoVO projectEdit) { + public ProjectDO projectEdit(@NotNull ProjectEditVO projectEdit, Long projectId) { log.info("\t> 执行 DAO 层 ProjectDAO.projectEdit 方法"); + log.info("\t\t> 从 MySQL 更新数据"); + ProjectDO projectDO = new ProjectDO(); + Processing.copyProperties(projectEdit,projectDO); + projectMapper.projectEdit(projectDO); log.info("\t\t> 从 MySQL 获取数据"); - projectMapper.projectEdit(projectEdit); + return projectMapper.getProjectById(projectId); } public boolean isExistProject(Long id) { @@ -198,6 +203,16 @@ public class ProjectDAO { return projectMapper.updateUserForProjectUser(newUid,projectUserDO.getId()); } + public boolean isPrincipalUser(Long uid,Long projectId){ + log.info("\t> 执行 DAO 层 ProjectDAO.isPrincipalUser 方法"); + log.info("\t\t> 从 MySQL 获取数据"); + ProjectDO projectDO = projectMapper.getProjectById(projectId); + if(uid == projectDO.getPrincipalId()){ + return true; + } + return false; + } + public List tget(Integer id) { log.info("DAO层"); diff --git a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java index 723c22f..e0ffcae 100644 --- a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java @@ -7,7 +7,6 @@ import com.jsl.oa.model.doData.ProjectWorkDO; import com.jsl.oa.model.voData.ProjectInfoVO; import com.jsl.oa.model.voData.ProjectWorkVO; import org.apache.ibatis.annotations.*; -import org.apache.ibatis.annotations.Param; import java.util.List; @@ -27,7 +26,7 @@ public interface ProjectMapper { "#{description},#{cycle},#{completeTime},#{type},#{isFinish},#{status})") void projectWorkAdd(ProjectWorkVO projectWorkVO); - void projectEdit(ProjectInfoVO projectEdit); + void projectEdit(ProjectDO projectEdit); @Select("select * from organize_oa.oa_project where id=#{id}") ProjectDO getProjectById(Long id); diff --git a/src/main/java/com/jsl/oa/model/doData/ProjectDO.java b/src/main/java/com/jsl/oa/model/doData/ProjectDO.java index 86f9194..d0249f1 100755 --- a/src/main/java/com/jsl/oa/model/doData/ProjectDO.java +++ b/src/main/java/com/jsl/oa/model/doData/ProjectDO.java @@ -1,5 +1,6 @@ package com.jsl.oa.model.doData; +import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonInclude; import lombok.Data; import lombok.experimental.Accessors; @@ -29,7 +30,12 @@ public class ProjectDO { private Integer isDelete; private Integer isFinish; private boolean status; + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "UTC") private Timestamp beginTime; + + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "UTC") private Timestamp completeTime; + + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "UTC") private Timestamp deadline; } diff --git a/src/main/java/com/jsl/oa/model/voData/ProjectEditVO.java b/src/main/java/com/jsl/oa/model/voData/ProjectEditVO.java new file mode 100644 index 0000000..f377e2f --- /dev/null +++ b/src/main/java/com/jsl/oa/model/voData/ProjectEditVO.java @@ -0,0 +1,29 @@ +package com.jsl.oa.model.voData; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; +import lombok.Getter; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.sql.Timestamp; + +@Data +public class ProjectEditVO { + + private String name; + private Long principalId; + private String tags; + private Long cycle; + private String file; + private String description; + private Integer isFinish; + private boolean status; + private Timestamp beginTime; + private Timestamp completeTime; + private Timestamp deadline; + +} + + diff --git a/src/main/java/com/jsl/oa/services/ProjectService.java b/src/main/java/com/jsl/oa/services/ProjectService.java index 0f270fe..0e3fc17 100644 --- a/src/main/java/com/jsl/oa/services/ProjectService.java +++ b/src/main/java/com/jsl/oa/services/ProjectService.java @@ -1,9 +1,6 @@ package com.jsl.oa.services; -import com.jsl.oa.model.voData.ProjectCuttingAddVO; -import com.jsl.oa.model.voData.ProjectCuttingEditVO; -import com.jsl.oa.model.voData.ProjectInfoVO; -import com.jsl.oa.model.voData.ProjectWorkVO; +import com.jsl.oa.model.voData.*; import com.jsl.oa.model.voData.business.info.ProjectShowVO; import com.jsl.oa.utils.BaseResponse; @@ -13,7 +10,7 @@ import java.util.List; public interface ProjectService { BaseResponse projectAdd(HttpServletRequest request, ProjectInfoVO projectAdd); - BaseResponse projectEdit(HttpServletRequest request, ProjectInfoVO projectEdit); + BaseResponse projectEdit(HttpServletRequest request, ProjectEditVO projectEdit, Long projectId); BaseResponse projectGetUserInCutting(Long uid); 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 ed732f2..636003c 100644 --- a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java @@ -9,10 +9,7 @@ import com.jsl.oa.model.doData.ProjectDO; import com.jsl.oa.model.doData.ProjectWorkDO; import com.jsl.oa.model.doData.UserDO; import com.jsl.oa.model.doData.info.ProjectShowDO; -import com.jsl.oa.model.voData.ProjectCuttingAddVO; -import com.jsl.oa.model.voData.ProjectCuttingEditVO; -import com.jsl.oa.model.voData.ProjectInfoVO; -import com.jsl.oa.model.voData.ProjectWorkVO; +import com.jsl.oa.model.voData.*; import com.jsl.oa.model.voData.business.info.ProjectShowVO; import com.jsl.oa.services.ProjectService; import com.jsl.oa.utils.BaseResponse; @@ -34,10 +31,10 @@ import java.util.List; *
* 用于项目服务层的实现类 * - * @since v1.1.0 + * @author xiao_lfeng | 176yunxuan | xiangZr-hhh * @version v1.1.0 * @see com.jsl.oa.services.ProjectService - * @author xiao_lfeng | 176yunxuan | xiangZr-hhh + * @since v1.1.0 */ @Slf4j @Service @@ -52,9 +49,8 @@ public class ProjectServiceImpl implements ProjectService { @CheckUserHasPermission("project.add") public BaseResponse projectAdd(HttpServletRequest request, ProjectInfoVO projectAdd) { log.info("\t> 执行 Service 层 ProjectService.projectAdd 方法"); - projectDAO.projectAdd(projectAdd); - return ResultUtil.success("添加成功"); - + projectDAO.projectAdd(projectAdd); + return ResultUtil.success("添加成功"); } @Override @@ -72,16 +68,25 @@ public class ProjectServiceImpl implements ProjectService { } @Override - @CheckUserHasPermission("project.edit") - public BaseResponse projectEdit(HttpServletRequest request, @NotNull ProjectInfoVO projectEdit) { + public BaseResponse projectEdit(HttpServletRequest request, @NotNull ProjectEditVO projectEdit, Long projectId) { log.info("\t> 执行 Service 层 ProjectService.projectEdit 方法"); - //判断项目是否存在 - if (projectDAO.isExistProject(projectEdit.getId())) { - projectDAO.projectEdit(projectEdit); - return ResultUtil.success("修改成功"); - } else { - return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST); - } + + + + //判断用户是否为老师 或者 项目负责人 + if (!Processing.checkUserIsTeacher(request, roleMapper) || + !projectDAO.isPrincipalUser(Processing.getAuthHeaderToUserId(request), projectId)) { + return ResultUtil.error(ErrorCode.NOT_PERMISSION); + } + + //判断项目是否存在 + if (projectDAO.isExistProject(projectId)) { + //更新数据 + return ResultUtil.success(projectDAO.projectEdit(projectEdit,projectId)); + } else { + return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST); + } + } @Override @@ -100,12 +105,12 @@ public class ProjectServiceImpl implements ProjectService { @CheckUserHasPermission("project.cutting.user.add") public BaseResponse projectAddUserForCutting(HttpServletRequest request, Long uid, Long pid) { log.info("\t> 执行 Service 层 ProjectService.projectAddUserForCutting 方法"); - if (userDAO.isExistUser(uid)) { - projectDAO.projectAddUserForCutting(uid, pid); - return ResultUtil.success(); - } else { - return ResultUtil.error(ErrorCode.USER_NOT_EXIST); - } + if (userDAO.isExistUser(uid)) { + projectDAO.projectAddUserForCutting(uid, pid); + return ResultUtil.success(); + } else { + return ResultUtil.error(ErrorCode.USER_NOT_EXIST); + } } @Override @@ -203,25 +208,25 @@ public class ProjectServiceImpl implements ProjectService { log.info("\t> 执行 Service 层 ProjectService.get 方法"); //获取用户 - Long userId= Processing.getAuthHeaderToUserId(request); + Long userId = Processing.getAuthHeaderToUserId(request); //根据状态查询 - if(isFinish != null){ - List projectDOList = projectDAO.get(userId,listAll,tags,isFinish); + if (isFinish != null) { + List projectDOList = projectDAO.get(userId, listAll, tags, isFinish); return ResultUtil.success(projectDOList); } //根据标签查询 - if(tags != null && !tags.isEmpty()){ - List projectDOList = projectDAO.get(userId,listAll,tags,isFinish); + if (tags != null && !tags.isEmpty()) { + List projectDOList = projectDAO.get(userId, listAll, tags, isFinish); return ResultUtil.success(projectDOList); } //判断是否是老师(项目负责人) - if(listAll != null && Processing.checkUserIsTeacher(request,roleMapper)){ - List projectDOList = projectDAO.get(userId,listAll,tags,isFinish); + if (listAll != null && Processing.checkUserIsTeacher(request, roleMapper)) { + List projectDOList = projectDAO.get(userId, listAll, tags, isFinish); return ResultUtil.success(projectDOList); - }else { + } else { listAll = 0; - List projectDOList = projectDAO.get(userId,listAll,tags,isFinish); + List projectDOList = projectDAO.get(userId, listAll, tags, isFinish); return ResultUtil.success(projectDOList); } @@ -232,31 +237,30 @@ public class ProjectServiceImpl implements ProjectService { log.info("\t> 执行 Service 层 ProjectService.workget 方法"); //获取用户 - Long userId= Processing.getAuthHeaderToUserId(request); + Long userId = Processing.getAuthHeaderToUserId(request); //根据状态查询 - if(isFinish != null){ - List projectWorkDOList = projectDAO.workget(userId,listAll,tags,isFinish); + if (isFinish != null) { + List projectWorkDOList = projectDAO.workget(userId, listAll, tags, isFinish); return ResultUtil.success(projectWorkDOList); } //根据标签查询 - if(tags != null && !tags.isEmpty()){ - List projectWorkDOList = projectDAO.workget(userId,listAll,tags,isFinish); + if (tags != null && !tags.isEmpty()) { + List projectWorkDOList = projectDAO.workget(userId, listAll, tags, isFinish); return ResultUtil.success(projectWorkDOList); } //判断是否是老师(项目负责人) - if(listAll != null && Processing.checkUserIsTeacher(request,roleMapper)){ - List projectWorkDOList = projectDAO.workget(userId,listAll,tags,isFinish); + if (listAll != null && Processing.checkUserIsTeacher(request, roleMapper)) { + List projectWorkDOList = projectDAO.workget(userId, listAll, tags, isFinish); return ResultUtil.success(projectWorkDOList); - }else { + } else { listAll = 0; - List projectWorkDOList = projectDAO.workget(userId,listAll,tags,isFinish); + List projectWorkDOList = projectDAO.workget(userId, listAll, tags, isFinish); return ResultUtil.success(projectWorkDOList); } } - @Override public BaseResponse getByName(String name) { log.info("\t> 执行 Service 层 ProjectService.getByName 方法"); @@ -268,68 +272,73 @@ public class ProjectServiceImpl implements ProjectService { } @Override - @CheckUserHasPermission("project.delete") public BaseResponse projectDelete(HttpServletRequest request, Long id) { log.info("\t> 执行 Service 层 ProjectService.projectDelete 方法"); - if (!projectDAO.projectDelete(id)) { - return ResultUtil.error(ErrorCode.DATABASE_DELETE_ERROR); - } else { - return ResultUtil.success(); - } + + //判断用户是否为老师 或者 项目负责人 或管理员 + if (!Processing.checkUserIsTeacher(request, roleMapper) && + !projectDAO.isPrincipalUser(Processing.getAuthHeaderToUserId(request), id) + && !Processing.checkUserIsAdmin(request, roleMapper)) { + return ResultUtil.error(ErrorCode.NOT_PERMISSION); + } + + if (!projectDAO.projectDelete(id)) { + return ResultUtil.error(ErrorCode.DATABASE_DELETE_ERROR); + } else { + return ResultUtil.success(); + } } @Override @CheckUserHasPermission("project.cutting.add") public BaseResponse addProjectCutting(HttpServletRequest request, ProjectCuttingAddVO projectCuttingAddVO) { log.info("\t> 执行 Service 层 ProjectService.projectCuttingAdd方法"); - //赋值数据 - ProjectCuttingDO projectCuttingDO = new ProjectCuttingDO(); - Processing.copyProperties(projectCuttingAddVO, projectCuttingDO); - //根据pid检测项目是否存在 - if (!projectDAO.isExistProjectById(projectCuttingAddVO.getPid())) { - return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST); - } - //向数据库添加数据 - projectDAO.projectCuttingAdd(projectCuttingDO); - return ResultUtil.success(); + //赋值数据 + ProjectCuttingDO projectCuttingDO = new ProjectCuttingDO(); + Processing.copyProperties(projectCuttingAddVO, projectCuttingDO); + //根据pid检测项目是否存在 + if (!projectDAO.isExistProjectById(projectCuttingAddVO.getPid())) { + return ResultUtil.error(ErrorCode.PROJECT_NOT_EXIST); + } + //向数据库添加数据 + projectDAO.projectCuttingAdd(projectCuttingDO); + return ResultUtil.success(); } @Override @CheckUserHasPermission("project.cutting.edit") public BaseResponse editProjectCutting(HttpServletRequest request, ProjectCuttingEditVO projectCuttingEditVO) { log.info("\t> 执行 Service 层 ProjectService.projectCuttingEdit方法"); - //赋值数据 - ProjectCuttingDO projectCuttingDO = new ProjectCuttingDO(); - Processing.copyProperties(projectCuttingEditVO, projectCuttingDO); - //根据id检测项目模块是否存在 - if (!projectDAO.isExistProjectCutting(projectCuttingEditVO.getId())) { - return ResultUtil.error(ErrorCode.PROJECT_CUTTING_NOT_EXIST); - } - //向数据库添加数据 - projectDAO.updateProjectCutting(projectCuttingDO); - return ResultUtil.success(); + //赋值数据 + ProjectCuttingDO projectCuttingDO = new ProjectCuttingDO(); + Processing.copyProperties(projectCuttingEditVO, projectCuttingDO); + //根据id检测项目模块是否存在 + if (!projectDAO.isExistProjectCutting(projectCuttingEditVO.getId())) { + return ResultUtil.error(ErrorCode.PROJECT_CUTTING_NOT_EXIST); + } + //向数据库添加数据 + projectDAO.updateProjectCutting(projectCuttingDO); + return ResultUtil.success(); } @Override @CheckUserHasPermission("project.cutting.delete") public BaseResponse projectToOtherUserForCutting(HttpServletRequest request, Long oldUid, Long pid, Long newUid) { log.info("\t> 执行 Service 层 ProjectService.projectToOtherUserForCutting方法"); - //检测新旧用户是否存在 - if (!userDAO.isExistUser(oldUid) || !userDAO.isExistUser(newUid)) { - return ResultUtil.error(ErrorCode.USER_NOT_EXIST); - } - //用户项目表是否含有对应记录 - if (!projectDAO.isExistProjectUser(pid, oldUid)) { - return ResultUtil.error(ErrorCode.PROJECT_USER_NOT_EXIST); - } - //更新数据 - if (!projectDAO.updateUserForProjectUserByPidAndUid(pid, oldUid, newUid)) { - return ResultUtil.error(ErrorCode.DATABASE_UPDATE_ERROR); - } - return ResultUtil.success(); + //检测新旧用户是否存在 + if (!userDAO.isExistUser(oldUid) || !userDAO.isExistUser(newUid)) { + return ResultUtil.error(ErrorCode.USER_NOT_EXIST); + } + //用户项目表是否含有对应记录 + if (!projectDAO.isExistProjectUser(pid, oldUid)) { + return ResultUtil.error(ErrorCode.PROJECT_USER_NOT_EXIST); + } + //更新数据 + if (!projectDAO.updateUserForProjectUserByPidAndUid(pid, oldUid, newUid)) { + return ResultUtil.error(ErrorCode.DATABASE_UPDATE_ERROR); + } + return ResultUtil.success(); } - - } diff --git a/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java index a60f852..9209089 100755 --- a/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/UserServiceImpl.java @@ -257,6 +257,12 @@ public class UserServiceImpl implements UserService { @Override public BaseResponse userProfileGet(HttpServletRequest request) { log.info("\t> 执行 Service 层 UserService.userProfileGet 方法"); + //判断用户是否为 老师 或 管理员 + if(!Processing.checkUserIsAdmin(request,roleDAO.roleMapper) && + !Processing.checkUserIsTeacher(request,roleDAO.roleMapper)){ + return ResultUtil.error(ErrorCode.NOT_PERMISSION); + } + // 获取用户Id UserDO userDO = userDAO.getUserById(Processing.getAuthHeaderToUserId(request)); UserProfileVo userProfileVo = new UserProfileVo(); @@ -264,4 +270,6 @@ public class UserServiceImpl implements UserService { userProfileVo.setSex(Processing.getSex(userDO.getSex())); return ResultUtil.success(userProfileVo); } + + } diff --git a/src/main/java/com/jsl/oa/utils/Processing.java b/src/main/java/com/jsl/oa/utils/Processing.java index 1e1ea50..2609fae 100755 --- a/src/main/java/com/jsl/oa/utils/Processing.java +++ b/src/main/java/com/jsl/oa/utils/Processing.java @@ -193,6 +193,7 @@ public class Processing { } } + private static char getCharFromIndex(int index) { // 生成字符集合,可以根据需要自定义 String charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; diff --git a/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml b/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml index cc1e00c..63a556f 100644 --- a/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml +++ b/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml @@ -13,8 +13,8 @@ description = #{description}, - - principal_id = #{principal_id}, + + principal_id = #{principalId}, tags = #{tags}, @@ -25,11 +25,11 @@ file = #{file}, - - begin_time = #{begin_time}, + + begin_time = #{beginTime}, - - complete_time = #{complete_time}, + + complete_time = #{completeTime}, deadline = #{deadline}, @@ -37,11 +37,11 @@ status = #{status}, - - is_finish = #{is_finish}, + + is_finish = #{isFinish}, - - is_delete = #{is_delete}, + + is_delete = #{isDelete}, where id = #{id} From ee9e3611302fdd3e77dceee3c541e3a4a7292c7a Mon Sep 17 00:00:00 2001 From: xiangZr-hhh <“2774915446@qq.com”> Date: Tue, 12 Mar 2024 11:29:52 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/jsl/oa/mapper/ProjectMapper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java index e0ffcae..7615dcc 100644 --- a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java @@ -63,7 +63,7 @@ public interface ProjectMapper { @Select("select * from organize_oa.oa_project where name=#{name}") ProjectDO getByName(String name); - @Delete("DELETE FROM organize_oa.oa_project where id=#{id}") + @Update("UPDATE organize_oa.oa_project SET is_delete = 1 where id=#{id}") boolean deleteProject(Long id); @Insert("INSERT INTO organize_oa.oa_project_cutting (pid, name, tag, real_time) " + From e19630f9cc1d34f6dd76b7dccb5bf621ef0c9c0c Mon Sep 17 00:00:00 2001 From: 176yunxuan <362612387@qq.com~> Date: Tue, 12 Mar 2024 12:43:05 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E6=B8=B8=E5=AE=A2=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=A0=87=E7=AD=BE=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsl/oa/controllers/ProjectController.java | 6 +++-- src/main/java/com/jsl/oa/dao/ProjectDAO.java | 9 ++++++-- .../java/com/jsl/oa/mapper/ProjectMapper.java | 6 +++++ .../com/jsl/oa/services/ProjectService.java | 2 +- .../oa/services/impl/ProjectServiceImpl.java | 16 +++++++++++-- .../com/jsl/oa/mapper/ProjectMapper.xml | 23 ++++++++++++------- 6 files changed, 47 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/jsl/oa/controllers/ProjectController.java b/src/main/java/com/jsl/oa/controllers/ProjectController.java index f738fa2..43a9bdd 100755 --- a/src/main/java/com/jsl/oa/controllers/ProjectController.java +++ b/src/main/java/com/jsl/oa/controllers/ProjectController.java @@ -46,9 +46,11 @@ public class ProjectController { * @return */ @GetMapping("/project/get/custom") - public BaseResponse projectGetCustom(@RequestParam(required = false) Integer id){ + public BaseResponse projectGetCustom(@RequestParam(required = false) Integer id, + @RequestParam(required = false) List tags, + @RequestParam(required = false) Integer isFinish){ log.info("请求接口[GET]: /project/all/get"); - return projectService.tget(id); + return projectService.tget(id,tags,isFinish); } diff --git a/src/main/java/com/jsl/oa/dao/ProjectDAO.java b/src/main/java/com/jsl/oa/dao/ProjectDAO.java index eaf1743..e9fc2c5 100644 --- a/src/main/java/com/jsl/oa/dao/ProjectDAO.java +++ b/src/main/java/com/jsl/oa/dao/ProjectDAO.java @@ -9,7 +9,6 @@ import com.jsl.oa.model.doData.ProjectWorkDO; import com.jsl.oa.model.doData.info.ProjectShowDO; import com.jsl.oa.model.voData.ProjectInfoVO; import com.jsl.oa.model.voData.ProjectWorkVO; -import com.jsl.oa.utils.BaseResponse; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; @@ -199,8 +198,14 @@ public class ProjectDAO { } - public List tget(Integer id) { + public List tget(Integer id, List tags, Integer isFinish) { log.info("DAO层"); + if(isFinish != null){ + return projectMapper.tgetByIsfinish(isFinish); + } + if(tags != null && !tags.isEmpty()){ + return projectMapper.tgetByTags(tags); + } return projectMapper.tget(id); } } diff --git a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java index 723c22f..fca131a 100644 --- a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java @@ -98,4 +98,10 @@ public interface ProjectMapper { //@Select("select * from organize_oa.oa_project where is_delete=false and status=1") List tget(Integer id); + + @Select("select * from organize_oa.oa_project where is_finish=#{isFinish} and is_delete=false") + List tgetByIsfinish(Integer isFinish); + + + List tgetByTags(List tags); } diff --git a/src/main/java/com/jsl/oa/services/ProjectService.java b/src/main/java/com/jsl/oa/services/ProjectService.java index 0f270fe..b3d66d2 100644 --- a/src/main/java/com/jsl/oa/services/ProjectService.java +++ b/src/main/java/com/jsl/oa/services/ProjectService.java @@ -43,5 +43,5 @@ public interface ProjectService { BaseResponse projecWorktAdd(HttpServletRequest request, ProjectWorkVO projectWorkVO); - BaseResponse tget(Integer id); + BaseResponse tget(Integer id, List tags, Integer isFinish); } 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 ed732f2..51e485b 100644 --- a/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ProjectServiceImpl.java @@ -65,9 +65,21 @@ public class ProjectServiceImpl implements ProjectService { } @Override - public BaseResponse tget(Integer id) { + public BaseResponse tget(Integer id, List tags, Integer isFinish) { log.info("\t> 执行 Service 层 ProjectService.tget 方法"); - List projectDOList = projectDAO.tget(id); + + //根据状态查询 + if(isFinish != null){ + List projectDOList = projectDAO.tget(id,tags,isFinish); + return ResultUtil.success(projectDOList); + } + //根据标签查询 + if(tags != null && !tags.isEmpty()){ + List projectDOList = projectDAO.tget(id,tags,isFinish); + return ResultUtil.success(projectDOList); + } + + List projectDOList = projectDAO.tget(id,tags,isFinish); return ResultUtil.success(projectDOList); } diff --git a/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml b/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml index cc1e00c..84157ec 100644 --- a/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml +++ b/src/main/resources/com/jsl/oa/mapper/ProjectMapper.xml @@ -48,22 +48,21 @@ + + + \ No newline at end of file From 56bfc0737f33e89ed2d7ad11db681a533d24b805 Mon Sep 17 00:00:00 2001 From: 176yunxuan <362612387@qq.com~> Date: Tue, 12 Mar 2024 12:44:22 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E6=B8=B8=E5=AE=A2=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=A0=87=E7=AD=BE=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsl/oa/model/doData/ProjectWorkDO.java | 27 +++++++++++++++++ .../jsl/oa/model/voData/ProjectWorkVO.java | 30 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 src/main/java/com/jsl/oa/model/doData/ProjectWorkDO.java create mode 100644 src/main/java/com/jsl/oa/model/voData/ProjectWorkVO.java diff --git a/src/main/java/com/jsl/oa/model/doData/ProjectWorkDO.java b/src/main/java/com/jsl/oa/model/doData/ProjectWorkDO.java new file mode 100644 index 0000000..4253f19 --- /dev/null +++ b/src/main/java/com/jsl/oa/model/doData/ProjectWorkDO.java @@ -0,0 +1,27 @@ +package com.jsl.oa.model.doData; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.sql.Timestamp; + +@Data +@Accessors(chain = true) +@JsonInclude(JsonInclude.Include.NON_NULL) +public class ProjectWorkDO { + private Long id; + private Long pid; + private Long projectId; + private Long principalId; + private Integer cycle; + private Integer workLoad; + private Integer type; + private String name; + private String description; + private Integer isDelete; + private Integer isFinish; + private boolean status; + private Timestamp beginTime; + private Timestamp completeTime; +} diff --git a/src/main/java/com/jsl/oa/model/voData/ProjectWorkVO.java b/src/main/java/com/jsl/oa/model/voData/ProjectWorkVO.java new file mode 100644 index 0000000..15603cf --- /dev/null +++ b/src/main/java/com/jsl/oa/model/voData/ProjectWorkVO.java @@ -0,0 +1,30 @@ +package com.jsl.oa.model.voData; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.sql.Timestamp; + +@Data +public class ProjectWorkVO { + + private Long pid; + @NotNull(message = "项目id不能为空") + private Long projectId; + @NotNull(message = "负责人id不能为空") + private Long principalId; + @NotNull(message = "周期不能为空") + private Integer cycle; + + private Integer workLoad; + @NotNull(message = "类型不能为空") + private Integer type; + @NotNull(message = "名字不能为空") + private String name; + private String description; + private Integer isDelete; + private Integer isFinish; + private Integer status; + private Timestamp beginTime; + private Timestamp completeTime; +}