From 3ca0bed1e146d5a816b5be6abb212838a99c518c Mon Sep 17 00:00:00 2001 From: 176yunxuan <362612387@qq.com~> Date: Wed, 10 Apr 2024 20:51:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B6=88=E6=81=AF=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsl/oa/controllers/MessageController.java | 56 ++-- .../jsl/oa/controllers/ProjectController.java | 95 +----- src/main/java/com/jsl/oa/dao/ProjectDAO.java | 52 +--- .../java/com/jsl/oa/mapper/MessageMapper.java | 17 +- .../java/com/jsl/oa/mapper/ProjectMapper.java | 21 +- .../com/jsl/oa/model/dodata/MessageDO.java | 3 +- .../com/jsl/oa/model/vodata/MessageAddVO.java | 18 ++ .../com/jsl/oa/model/vodata/MessageGetVO.java | 17 ++ .../com/jsl/oa/services/MessageService.java | 23 +- .../com/jsl/oa/services/ProjectService.java | 16 +- .../oa/services/impl/MessageServiceImpl.java | 274 ++++++++++++++---- .../oa/services/impl/ModuleServiceImpl.java | 1 - .../oa/services/impl/ProjectServiceImpl.java | 97 +------ 13 files changed, 336 insertions(+), 354 deletions(-) create mode 100644 src/main/java/com/jsl/oa/model/vodata/MessageAddVO.java create mode 100644 src/main/java/com/jsl/oa/model/vodata/MessageGetVO.java diff --git a/src/main/java/com/jsl/oa/controllers/MessageController.java b/src/main/java/com/jsl/oa/controllers/MessageController.java index bf8b3a8..d511a9f 100644 --- a/src/main/java/com/jsl/oa/controllers/MessageController.java +++ b/src/main/java/com/jsl/oa/controllers/MessageController.java @@ -1,5 +1,4 @@ package com.jsl.oa.controllers; - import com.jsl.oa.services.MessageService; import com.jsl.oa.utils.BaseResponse; import com.jsl.oa.utils.ErrorCode; @@ -8,13 +7,10 @@ import com.jsl.oa.utils.ResultUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.format.annotation.DateTimeFormat; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; -import java.time.LocalDate; +import java.time.LocalDateTime; /** *

消息控制器

@@ -59,11 +55,12 @@ public class MessageController { * @return 消息列表 */ @GetMapping("/message/get") - public BaseResponse messageGet(@RequestParam(defaultValue = "1") Long page, - @RequestParam(defaultValue = "10") Long pageSize, - HttpServletRequest request, - @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin, - @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end) { + public BaseResponse messageGet( + @RequestParam(required = false, defaultValue = "1") Integer page, + @RequestParam(required = false, defaultValue = "10") Integer pageSize, + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime begin, + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime end, + HttpServletRequest request) { log.info("请求接口[GET]:/message/get"); String token = request.getHeader("Authorization").replace("Bearer ", ""); Long uid = JwtUtil.getUserId(token); @@ -75,32 +72,23 @@ public class MessageController { } /** - * 获取所有消息列表 + * 指派时消息 * - * @param page 页码 - * @param pageSize 每页条数 - * @param request 请求对象 - * @param begin 开始日期 - * @param end 结束日期 - * @param uid 用户id - * @return 消息列表 + * @param request + * @return */ - @GetMapping("/message/get/all") - public BaseResponse messageGetAll(@RequestParam(defaultValue = "1") Long page, - @RequestParam(defaultValue = "10") Long pageSize, - HttpServletRequest request, - @RequestParam Long uid, - @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin, - @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end) { - log.info("请求接口[GET]:/message/get/all"); - String token = request.getHeader("Authorization").replace("Bearer ", ""); - Long loginId = JwtUtil.getUserId(token); - if (loginId == null) { - return ResultUtil.error(ErrorCode.USER_NOT_EXIST); - } else { - return messageService.messageGetAll(request, begin, end, page, pageSize, loginId, uid); - } + @PostMapping("/message/assign") + public BaseResponse messageAssign( + @RequestParam Integer pId, + @RequestParam Integer systemId, + @RequestParam Integer moddleId, + @RequestParam Long uId, + @RequestParam Long isPass, + HttpServletRequest request) { + //messageService.messageAdd(pId, systemId, moddleId, uId, isPass, request); + return ResultUtil.success(); } + } diff --git a/src/main/java/com/jsl/oa/controllers/ProjectController.java b/src/main/java/com/jsl/oa/controllers/ProjectController.java index 7167cc6..91d555f 100755 --- a/src/main/java/com/jsl/oa/controllers/ProjectController.java +++ b/src/main/java/com/jsl/oa/controllers/ProjectController.java @@ -1,7 +1,4 @@ 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.ProjectEditVO; import com.jsl.oa.model.vodata.ProjectWorkVO; import com.jsl.oa.model.vodata.business.info.ProjectShowVO; @@ -16,7 +13,6 @@ import org.jetbrains.annotations.NotNull; import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; - import javax.servlet.http.HttpServletRequest; import java.util.List; @@ -140,7 +136,9 @@ public class ProjectController { * @return {@link BaseResponse} */ @PostMapping("/project/header/add") - public BaseResponse projectAddHeader(@RequestBody @Validated ProjectShowVO projectShowVO, HttpServletRequest request, @NotNull BindingResult bindingResult) { + public BaseResponse projectAddHeader(@RequestBody @Validated ProjectShowVO projectShowVO, + HttpServletRequest request, + @NotNull BindingResult bindingResult) { log.info("请求接口[POST]: /project/header/add"); // 判断是否有参数错误 if (bindingResult.hasErrors()) { @@ -160,7 +158,10 @@ public class ProjectController { * @return {@link BaseResponse} */ @PutMapping("/project/header/edit/{projectId}") - public BaseResponse projectEditById(@RequestParam Long projectId, HttpServletRequest request, @RequestBody @Validated ProjectEditVO projectEdit, @NotNull BindingResult bindingResult) { + public BaseResponse projectEditById(@RequestParam Long projectId, + @RequestBody @Validated ProjectEditVO projectEdit, + @NotNull BindingResult bindingResult, + HttpServletRequest request) { log.info("请求接口[PUT]: /project/header/edit/{projectId}"); // 判断是否有参数错误 if (bindingResult.hasErrors()) { @@ -177,7 +178,9 @@ public class ProjectController { * @return {@link BaseResponse} */ @PostMapping("/project/work/add") - public BaseResponse projectWorkAdd(HttpServletRequest request, @RequestBody @Validated ProjectWorkVO projectWorkVO, @NotNull BindingResult bindingResult) { + public BaseResponse projectWorkAdd(HttpServletRequest request, + @RequestBody @Validated ProjectWorkVO projectWorkVO, + @NotNull BindingResult bindingResult) { log.info("请求接口[POST]: /project/work/add"); // 判断是否有参数错误 if (bindingResult.hasErrors()) { @@ -196,39 +199,6 @@ public class ProjectController { return projectService.projectPrincipalGet(); } - /** - * 用户获取所分到的项目模块 - * - * @param uid 用户 id - * @return {@link BaseResponse} - */ - @GetMapping("/project/cut/user") - public BaseResponse projectGetUserInCutting(@RequestParam Long uid) { - log.info("请求接口[GET]: /project/cut/user"); - // 判断是否有参数错误 - if (uid == null) { - return ResultUtil.error(ErrorCode.PARAMETER_ERROR); - } - return projectService.projectGetUserInCutting(uid); - } - - /** - * 给某用户分配项目模块 - * - * @param uid 用户 id - * @param pid 项目 id - * @return {@link BaseResponse} - */ - @PostMapping("/project/cut/user/add") - public BaseResponse projectAddUserForCutting(HttpServletRequest request, @RequestParam Long uid, @RequestParam Long pid) { - log.info("请求接口[Post]: /project/cut/user/add"); - // 判断是否有参数错误 - if (uid == null || pid == null) { - return ResultUtil.error(ErrorCode.PARAMETER_ERROR); - } - return projectService.projectAddUserForCutting(request, uid, pid); - } - /** * 删除某项目记录 * @@ -244,51 +214,6 @@ public class ProjectController { return projectService.projectDelete(request, id); } - /** - * 项目轮播图 - * - * @param request 请求 - * @param projectCuttingAddVO 项目轮播图信息 - * @param bindingResult 参数校验 - * @return {@link BaseResponse} - */ - @PostMapping("/project/cut/add") - public BaseResponse projectCuttingAdd(HttpServletRequest request, @RequestBody @Validated ProjectCuttingAddVO projectCuttingAddVO, @NotNull BindingResult bindingResult) { - log.info("请求接口[Post]: /project/cut/add"); - // 判断是否有参数错误 - if (bindingResult.hasErrors()) { - return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); - } - return projectService.addProjectCutting(request, projectCuttingAddVO); - } - - - @PutMapping("/project/cut/edit") - public BaseResponse projectCuttingEdit(HttpServletRequest request, @RequestBody @Validated ProjectCuttingEditVO projectCuttingEditVO, @NotNull BindingResult bindingResult) { - log.info("请求接口[Put]: /project/cut/edit"); - // 判断是否有参数错误 - if (bindingResult.hasErrors()) { - return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); - } - return projectService.editProjectCutting(request, projectCuttingEditVO); - } - - @PutMapping("/project/cut/user/to") - public BaseResponse projectToOtherUserForCutting( - HttpServletRequest request, - @RequestParam Long oldUid, - @RequestParam Long pid, - @RequestParam Long newUid - ) { - log.info("请求接口[Put]: /project/cut/user/to"); - // 判断是否有参数错误 - if (oldUid == null || pid == null || newUid == null) { - return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR); - } - return projectService.projectToOtherUserForCutting(request, oldUid, pid, newUid); - } - - @GetMapping("/project/file") public BaseResponse getProjectFile(HttpServletRequest request, @RequestParam Long projectId) { log.info("请求接口[Get]: /project/file"); diff --git a/src/main/java/com/jsl/oa/dao/ProjectDAO.java b/src/main/java/com/jsl/oa/dao/ProjectDAO.java index d13cb73..649964b 100644 --- a/src/main/java/com/jsl/oa/dao/ProjectDAO.java +++ b/src/main/java/com/jsl/oa/dao/ProjectDAO.java @@ -1,10 +1,7 @@ package com.jsl.oa.dao; - import com.google.gson.Gson; 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.ProjectEditVO; @@ -61,18 +58,6 @@ public class ProjectDAO { return projectMapper.getProjectById(id) != null; } - public List projectGetUserInCutting(Long uid) { - log.info("\t> 执行 DAO 层 ProjectDAO.projectGetUserInCutting 方法"); - log.info("\t\t> 从 MySQL 获取数据"); - return projectMapper.projectGetUserInCutting(uid); - } - - public void projectAddUserForCutting(Long uid, Long pid) { - log.info("\t> 执行 DAO 层 ProjectDAO.projectAddUserForCutting 方法"); - log.info("\t\t> 从 MySQL 获取数据"); - projectMapper.projectAddUserInCutting(uid, pid); - } - public ProjectShowDO getHeader() { log.info("\t> 执行 DAO 层 ProjectDAO.getHeader 方法"); log.info("\t\t> 从 MySQL 获取数据"); @@ -150,7 +135,8 @@ public class ProjectDAO { } } - public List workget(Long userId, Integer listAll, List tags, List isFinish, Integer is) { + public List workget(Long userId, Integer listAll, + List tags, List isFinish, Integer is) { log.info("\t> 执行 DAO 层 ProjectDAO.workget 方法"); log.info("\t\t> 从 MySQL 获取数据"); if (tags != null && !tags.isEmpty()) { @@ -180,46 +166,12 @@ public class ProjectDAO { return projectMapper.deleteProject(id); } - public void projectCuttingAdd(ProjectCuttingDO projectCuttingDO) { - log.info("\t> 执行 DAO 层 ProjectDAO.projectCuttingAdd 方法"); - log.info("\t\t> 从 MySQL 获取数据"); - projectMapper.projectCuttingAdd(projectCuttingDO); - } - public boolean isExistProjectById(Long id) { log.info("\t> 执行 DAO 层 ProjectDAO.isExistProjectById 方法"); log.info("\t\t> 从 MySQL 获取数据"); return projectMapper.getProjectById(id) != null; } - public boolean updateProjectCutting(ProjectCuttingDO projectCuttingDO) { - log.info("\t> 执行 DAO 层 ProjectDAO.updateProjectCutting 方法"); - log.info("\t\t> 从 MySQL 获取数据"); - return projectMapper.projectCuttingUpdate(projectCuttingDO); - } - - public boolean isExistProjectCutting(Long id) { - log.info("\t> 执行 DAO 层 ProjectDAO.isExistProjectCutting 方法"); - log.info("\t\t> 从 MySQL 获取数据"); - return projectMapper.getProjectCuttingById(id) != null; - } - - public boolean isExistProjectUser(Long pid, Long uid) { - log.info("\t> 执行 DAO 层 ProjectDAO.isExistProjectUse 方法"); - log.info("\t\t> 从 MySQL 获取数据"); - return projectMapper.getProjectUserByPidAndUid(pid, uid) != null; - } - - public boolean updateUserForProjectUserByPidAndUid(Long pid, Long oldUid, Long newUid) { - log.info("\t> 执行 DAO 层 ProjectDAO.updateUserForProjectUserByPidAndUid 方法"); - log.info("\t\t> 从 MySQL 获取数据"); - ProjectUserDO projectUserDO = projectMapper.getProjectUserByPidAndUid(pid, oldUid); - if (projectUserDO == null) { - return false; - } - log.info("\t\t> 从 MySQL 更新数据"); - return projectMapper.updateUserForProjectUser(newUid, projectUserDO.getId()); - } public boolean isPrincipalUser(Long uid, Long projectId) { log.info("\t> 执行 DAO 层 ProjectDAO.isPrincipalUser 方法"); diff --git a/src/main/java/com/jsl/oa/mapper/MessageMapper.java b/src/main/java/com/jsl/oa/mapper/MessageMapper.java index 25896f9..be5fd13 100644 --- a/src/main/java/com/jsl/oa/mapper/MessageMapper.java +++ b/src/main/java/com/jsl/oa/mapper/MessageMapper.java @@ -1,11 +1,13 @@ package com.jsl.oa.mapper; import com.jsl.oa.model.dodata.MessageDO; +import com.jsl.oa.model.vodata.MessageAddVO; +import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; -import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.List; @@ -13,17 +15,18 @@ import java.util.List; public interface MessageMapper { @Update("UPDATE organize_oa.oa_message " - + "SET `read` = 1, deleted_at = CURRENT_TIMESTAMP " + + "SET `is_delete` = 1, deleted_at = CURRENT_TIMESTAMP " + "WHERE id = #{mid}") boolean deleteMessage(Long mid); @Select("SELECT * FROM organize_oa.oa_message where id = #{mid}") MessageDO getMessageById(Long mid); - @Select("select count(*) from organize_oa.oa_message where uid = #{uid}") - Long count(Long uid); + @Select("select * from organize_oa.oa_message where uid = #{uid} and is_delete = 0 " + + "and created_at between #{begin} and #{end}") + List page(LocalDateTime begin, LocalDateTime end, Long uid); - @Select("select * from organize_oa.oa_message where uid = #{uid}") - //and created_at between #{begin} and #{end} limit #{start},#{pageSize}") - List page(LocalDate begin, LocalDate end, Long uid, Long start, Long pageSize); + @Insert("insert into organize_oa.oa_message (uid, title, text, sid) " + + "values(#{uid},#{title},#{text},#{sid})") + void messageAdd(MessageAddVO messageAddVO); } diff --git a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java index 0c1bb5b..dc25d03 100644 --- a/src/main/java/com/jsl/oa/mapper/ProjectMapper.java +++ b/src/main/java/com/jsl/oa/mapper/ProjectMapper.java @@ -1,8 +1,6 @@ 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.ProjectWorkSimpleVO; @@ -73,26 +71,15 @@ public interface ProjectMapper { @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) " - + "VALUES (#{pid}, #{name}, #{tag}, #{realTime})") - void projectCuttingAdd(ProjectCuttingDO projectCuttingDO); - @Update("UPDATE organize_oa.oa_project_cutting SET name = #{name}, " + "tag = #{tag}, engineering = #{engineering}, estimated_time = #{estimatedTime}, " + "real_time = #{realTime}, updated_at = CURRENT_TIMESTAMP WHERE id = #{id}") boolean projectCuttingUpdate(ProjectCuttingDO projectCuttingDO); - - @Select("SELECT * FROM organize_oa.oa_project_cutting WHERE id = #{id}") - ProjectCuttingDO getProjectCuttingById(Long id); - - @Select("SELECT * FROM organize_oa.oa_project_user WHERE pid = #{pid} AND uid = #{uid}") - ProjectUserDO getProjectUserByPidAndUid(Long pid, Long uid); - @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, List isFinish, Integer is); List workgetByTags(Long userId, List tags, Integer is, List isFinish); @@ -122,4 +109,10 @@ public interface ProjectMapper { @Select("select * from organize_oa.oa_project_work where id=#{id}") ProjectWorkDO getProjectWorkById(Long id); + + @Select("select principal_id from organize_oa.oa_project_work where project_id=#{id}") + List getMemberByProjectId(Integer id); + + @Select("select principal_id from organize_oa.oa_project_work where pid=#{id}") + List getMemberBySystemId(Integer id); } diff --git a/src/main/java/com/jsl/oa/model/dodata/MessageDO.java b/src/main/java/com/jsl/oa/model/dodata/MessageDO.java index 0921bd5..1be987a 100644 --- a/src/main/java/com/jsl/oa/model/dodata/MessageDO.java +++ b/src/main/java/com/jsl/oa/model/dodata/MessageDO.java @@ -22,9 +22,10 @@ public class MessageDO { private Long id; private Long uid; + private Long sid; private String title; private String text; - private Short read; + private Integer isDelete; private Timestamp createdAt; private Timestamp deletedAt; diff --git a/src/main/java/com/jsl/oa/model/vodata/MessageAddVO.java b/src/main/java/com/jsl/oa/model/vodata/MessageAddVO.java new file mode 100644 index 0000000..a574a97 --- /dev/null +++ b/src/main/java/com/jsl/oa/model/vodata/MessageAddVO.java @@ -0,0 +1,18 @@ +package com.jsl.oa.model.vodata; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; +import lombok.experimental.Accessors; + + +@Data +@Accessors(chain = true) +@JsonInclude(JsonInclude.Include.NON_NULL) +public class MessageAddVO { + private String text; + private String title; + private Long uid; + private Long sid; + private String type; + private Integer toId; + +} diff --git a/src/main/java/com/jsl/oa/model/vodata/MessageGetVO.java b/src/main/java/com/jsl/oa/model/vodata/MessageGetVO.java new file mode 100644 index 0000000..d391bde --- /dev/null +++ b/src/main/java/com/jsl/oa/model/vodata/MessageGetVO.java @@ -0,0 +1,17 @@ +package com.jsl.oa.model.vodata; + +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 MessageGetVO { + private String text; + private String title; + private Timestamp createdAt; + private String senderName; + +} diff --git a/src/main/java/com/jsl/oa/services/MessageService.java b/src/main/java/com/jsl/oa/services/MessageService.java index 944c35a..89c2910 100644 --- a/src/main/java/com/jsl/oa/services/MessageService.java +++ b/src/main/java/com/jsl/oa/services/MessageService.java @@ -3,7 +3,7 @@ package com.jsl.oa.services; import com.jsl.oa.utils.BaseResponse; import javax.servlet.http.HttpServletRequest; -import java.time.LocalDate; +import java.time.LocalDateTime; /** *

消息服务接口

@@ -18,15 +18,16 @@ public interface MessageService { BaseResponse messageDelete(Long mid, HttpServletRequest request); - BaseResponse messageGet(LocalDate begin, LocalDate end, Long page, Long pageSize, Long uid); + BaseResponse messageGet( + LocalDateTime begin, + LocalDateTime end, + Integer page, + Integer pageSize, + Long uid); - BaseResponse messageGetAll( - HttpServletRequest request, - LocalDate begin, - LocalDate end, - Long page, - Long pageSize, - Long loginId, - Long uid - ); + void messageAdd(Integer pId, Integer systemId, Integer moddleId, Long uid, HttpServletRequest request); + void messageAdd(Integer pId, Integer systemId, Integer moddleId, Long uid, Long isPass, HttpServletRequest request); + void messageAdd(Integer pId, Integer type, Integer systemId, HttpServletRequest request); + void messageAdd(Integer pId, Integer systmeId, Integer moddleId, Integer type, HttpServletRequest request); + void messageAdd(Integer pId, Integer systemId, Integer moddleId); } diff --git a/src/main/java/com/jsl/oa/services/ProjectService.java b/src/main/java/com/jsl/oa/services/ProjectService.java index 9915778..1dec679 100644 --- a/src/main/java/com/jsl/oa/services/ProjectService.java +++ b/src/main/java/com/jsl/oa/services/ProjectService.java @@ -12,10 +12,6 @@ public interface ProjectService { BaseResponse projectEdit(HttpServletRequest request, ProjectEditVO projectEdit, Long projectId); - BaseResponse projectGetUserInCutting(Long uid); - - BaseResponse projectAddUserForCutting(HttpServletRequest request, Long uid, Long pid); - BaseResponse getHeader(Integer id); BaseResponse addHeader(HttpServletRequest request, ProjectShowVO projectShowVO); @@ -24,19 +20,15 @@ public interface ProjectService { BaseResponse editHeader(HttpServletRequest request, ProjectShowVO projectShowVO, Integer id); - BaseResponse get(Integer listAll, HttpServletRequest request, List tags, List isFinish, Integer page, Integer pageSize); + BaseResponse get(Integer listAll, HttpServletRequest request, + List tags, List isFinish, Integer page, Integer pageSize); BaseResponse getByName(String name); BaseResponse projectDelete(HttpServletRequest request, List id); - BaseResponse addProjectCutting(HttpServletRequest request, ProjectCuttingAddVO projectCuttingAddVO); - - BaseResponse editProjectCutting(HttpServletRequest request, ProjectCuttingEditVO projectCuttingEditVO); - - BaseResponse projectToOtherUserForCutting(HttpServletRequest request, Long oldUid, Long pid, Long newUid); - - BaseResponse workget(Integer listAll, HttpServletRequest request, List tags, List isFinish, Integer is, Integer page, Integer pageSize); + BaseResponse workget(Integer listAll, HttpServletRequest request, + List tags, List isFinish, Integer is, Integer page, Integer pageSize); BaseResponse projecWorktAdd(HttpServletRequest request, ProjectWorkVO projectWorkVO); diff --git a/src/main/java/com/jsl/oa/services/impl/MessageServiceImpl.java b/src/main/java/com/jsl/oa/services/impl/MessageServiceImpl.java index a387dab..e47d204 100644 --- a/src/main/java/com/jsl/oa/services/impl/MessageServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/MessageServiceImpl.java @@ -1,25 +1,21 @@ package com.jsl.oa.services.impl; - - import com.jsl.oa.annotations.CheckUserAbleToUse; -import com.jsl.oa.annotations.CheckUserHasPermission; +import com.jsl.oa.dao.UserDAO; import com.jsl.oa.mapper.MessageMapper; -import com.jsl.oa.mapper.RoleMapper; +import com.jsl.oa.mapper.ProjectMapper; import com.jsl.oa.model.dodata.MessageDO; -import com.jsl.oa.model.dodata.PageBeanDO; +import com.jsl.oa.model.vodata.MessageAddVO; +import com.jsl.oa.model.vodata.MessageGetVO; import com.jsl.oa.services.MessageService; -import com.jsl.oa.utils.BaseResponse; -import com.jsl.oa.utils.ErrorCode; -import com.jsl.oa.utils.JwtUtil; -import com.jsl.oa.utils.ResultUtil; +import com.jsl.oa.utils.*; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; - import javax.servlet.http.HttpServletRequest; -import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.List; - +import static java.lang.System.*; /** *

消息服务层实现类

@@ -36,10 +32,11 @@ import java.util.List; public class MessageServiceImpl implements MessageService { private final MessageMapper messageMapper; - private final RoleMapper roleMapper; + private final UserDAO userDAO; + private final ProjectMapper projectMapper; @Override - @CheckUserHasPermission("message.delete") + @CheckUserAbleToUse public BaseResponse messageDelete(Long mid, HttpServletRequest request) { //获取消息数据 MessageDO messageDO = messageMapper.getMessageById(mid); @@ -55,55 +52,226 @@ public class MessageServiceImpl implements MessageService { return ResultUtil.success(); } + @SuppressWarnings("checkstyle:Regexp") @Override @CheckUserAbleToUse - public BaseResponse messageGet(LocalDate begin, LocalDate end, Long page, Long pageSize, Long uid) { - //1.记录总数据数 - Long count = messageMapper.count(uid); - - //2.获取分页数据列表 + public BaseResponse messageGet(LocalDateTime beginTime, + LocalDateTime endTime, + Integer page, + Integer pageSize, + Long uid) { //默认获取时间为最近30天 - if (begin == null) { - begin = LocalDate.now(); - end = begin.minusDays(30); + if (beginTime == null) { + endTime = LocalDateTime.now(); + beginTime = endTime.minusDays(30); } - Long start = (page - 1) * pageSize; - List empList = messageMapper.page(begin, end, uid, start, pageSize); - - //3.封装PageBean对象 - PageBeanDO pageBean = new PageBeanDO<>(count, empList); - return ResultUtil.success(pageBean); + List messageDOList = messageMapper.page(beginTime, endTime, uid); + //封装返回数据 + List messageGetVOList = new ArrayList<>(); + for (MessageDO messageDO : messageDOList) { + MessageGetVO messageGetVO1 = new MessageGetVO(); + messageGetVO1.setText(messageDO.getText()); + messageGetVO1.setTitle(messageDO.getTitle()); + messageGetVO1.setCreatedAt(messageDO.getCreatedAt()); + if (messageDO.getSid() != null) { + messageGetVO1.setSenderName(userDAO.getUserById(messageDO.getSid()).getUsername()); + } + messageGetVOList.add(messageGetVO1); + } + //分页返回 + int start = (page - 1) * pageSize; + int end = start + pageSize; + List pageData = messageGetVOList.subList(start, + Math.min(end, messageGetVOList.size())); + return ResultUtil.success(pageData); } + /** + * 添加指派消息 + * + * @param pId 项目id + * @param systemId 系统id + * @param moddleId 模块id + * @param uid 用户id + * @param request + */ @Override - @CheckUserHasPermission("message.get") - public BaseResponse messageGetAll( - HttpServletRequest request, - LocalDate begin, - LocalDate end, - Long page, - Long pageSize, - Long loginId, - Long uid - ) { - log.info("请求接口服务层"); - //1.记录总数据数 - Long count = messageMapper.count(uid); - - //2.获取分页数据列表 - //默认获取时间为最近30天 - if (begin == null) { - begin = LocalDate.now(); - end = begin.minusDays(30); + public void messageAdd( + Integer pId, + Integer systemId, + Integer moddleId, + Long uid, + HttpServletRequest request) { + // 拿到token,获取发送人id + String token = request.getHeader("Authorization").replace("Bearer ", ""); + Long sid = JwtUtil.getUserId(token); + // 获取发送人名字,项目名,子系统名,子模块名 + String senderName = userDAO.getUserById(sid).getUsername(); + String projectName = projectMapper.tgetProjectById(pId).getName(); + String systemName = projectMapper.getWorkById(systemId).getName(); + // 添加消息 + MessageAddVO messageAddVO = new MessageAddVO(); + messageAddVO.setSid(sid); + messageAddVO.setUid(uid); + messageAddVO.setTitle("指派消息"); + if (moddleId == null) { + messageAddVO.setText(senderName + "指派了" + projectName + "项目的" + systemName + "子系统给您"); + } else { + String moddleName = projectMapper.getWorkById(moddleId).getName(); + messageAddVO.setText(senderName + "指派了" + projectName + "项目的" + systemName + "子系统的" + moddleName + "子模块给您"); } - Long start = (page - 1) * pageSize; - List messageDOList = messageMapper.page(begin, end, uid, start, pageSize); - - //3.封装PageBean对象 - PageBeanDO pageBean = new PageBeanDO<>(count, messageDOList); - return ResultUtil.success(pageBean); + messageAddVO.setType("跳转审批页"); + messageMapper.messageAdd(messageAddVO); } + /** + * 添加审批消息 + * + * @param pId 项目id + * @param systemId 系统id + * @param moddleId 模块id + * @param uid 用户id + * @param isPass 是否通过 1:通过 0:未通过 + * @param request + */ + @Override + public void messageAdd( + Integer pId, + Integer systemId, + Integer moddleId, + Long uid, + Long isPass, + HttpServletRequest request) { + // 获取发送人名字,项目名,子系统名,子模块名 + String projectName = projectMapper.tgetProjectById(pId).getName(); + String systemName = projectMapper.getWorkById(systemId).getName(); + // 添加消息 + MessageAddVO messageAddVO = new MessageAddVO(); + messageAddVO.setUid(uid); + messageAddVO.setTitle("审批消息"); + String moddleName = projectMapper.getWorkById(moddleId).getName(); + if (isPass == 1) { + messageAddVO.setText("您申请的" + projectName + "项目的" + systemName + "系统的" + moddleName + "模块负责人已通过"); + } else { + messageAddVO.setText("您申请的" + projectName + "项目的" + systemName + "系统的" + moddleName + "模块负责人未通过"); + } + messageAddVO.setType("消息详情"); + messageMapper.messageAdd(messageAddVO); + } + + /** + * 添加项目变动消息 + * @param pId 项目id + * @param type 类型 1:上传文档 2:修改状态 3:修改负责人 + * @param systemId 系统id + * @param request + */ + @Override + public void messageAdd( + Integer pId, + Integer type, + Integer systemId, + HttpServletRequest request) { + // 获取项目名,负责人名 + String projectName = projectMapper.tgetProjectById(pId).getName(); + String senderName = userDAO.getUserById(Processing.getAuthHeaderToUserId(request)).getUsername(); + String systemName = projectMapper.getWorkById(systemId).getName(); + // 添加消息 + // 1:上传文档 2:修改状态 3:修改负责人 + List uidList = projectMapper.getMemberByProjectId(pId); + for (Long uid : uidList) { + MessageAddVO messageAddVO = new MessageAddVO(); + messageAddVO.setUid(uid); + messageAddVO.setTitle("项目变动消息"); + if (type == 3) { + messageAddVO.setText("项目负责人" + senderName + "调整了" + systemName + "子系统的负责人"); + } else if (type == 2) { + messageAddVO.setText("项目负责人" + senderName + "修改了" + projectName + "项目的状态"); + } else if (type == 1) { + messageAddVO.setText("项目负责人" + senderName + "上传了文档到" + projectName + "项目"); + } + messageAddVO.setType("跳转项目页"); + messageAddVO.setToId(pId); + messageMapper.messageAdd(messageAddVO); + } + } + + /** + * 添加子系统变动消息 + * + * @param pId 项目id + * @param systmeId 系统id + * @param moddleId 模块id + * @param type 类型 1:删除模块 2:修改简介 3:修改周期 + * @param request + */ + @Override + public void messageAdd( + Integer pId, + Integer systmeId, + Integer moddleId, + Integer type, + HttpServletRequest request) { + // 获取项目名,负责人名 + String projectName = projectMapper.tgetProjectById(pId).getName(); + String senderName = userDAO.getUserById(Processing.getAuthHeaderToUserId(request)).getUsername(); + String systemName = projectMapper.getWorkById(systmeId).getName(); + String moddleName = projectMapper.getWorkById(moddleId).getName(); + // 添加消息 + // 1:删除模块 2:修改简介 3:修改周期 + if (type == 1) { + MessageAddVO messageAddVO = new MessageAddVO(); + messageAddVO.setUid(projectMapper.getPid(moddleId)); + messageAddVO.setTitle("子系统变动消息"); + messageAddVO.setText("项目经理" + senderName + "删除了" + projectName + "项目的" + + systemName + "系统的" + moddleName + "模块"); + messageMapper.messageAdd(messageAddVO); + } else { + List uidList = projectMapper.getMemberBySystemId(systmeId); + for (Long uid : uidList) { + MessageAddVO messageAddVO = new MessageAddVO(); + messageAddVO.setUid(uid); + messageAddVO.setTitle("子系统变动消息"); + if (type == 2) { + messageAddVO.setText("项目经理" + senderName + "修改了" + projectName + "项目的" + + systemName + "系统的简介说明"); + } else if (type == 3) { + messageAddVO.setText("项目经理" + senderName + "修改了" + projectName + "项目的" + + systemName + "系统的系统周期/工作量"); + } + messageAddVO.setType("跳转系统页"); + messageAddVO.setToId(systmeId); + messageMapper.messageAdd(messageAddVO); + } + } + } + + /** + * 添加日报消息 + * + * @param pId 项目id + * @param systemId 系统id + * @param moddleId 模块id + */ + @Override + public void messageAdd( + Integer pId, + Integer systemId, + Integer moddleId) { + // 获取项目名,系统名,模块名,负责人名 + String projectName = projectMapper.tgetProjectById(pId).getName(); + String systemName = projectMapper.getWorkById(systemId).getName(); + String moddleName = projectMapper.getWorkById(moddleId).getName(); + String principalName = userDAO.getUserById(projectMapper.getPid(moddleId)).getUsername(); + // 添加消息 + MessageAddVO messageAddVO = new MessageAddVO(); + messageAddVO.setUid(projectMapper.getPid(systemId)); + messageAddVO.setTitle("日报消息"); + messageAddVO.setText(projectName + "项目的" + systemName + "系统的" + moddleName + "模块负责人" + principalName + + "刚刚填写了日报"); + messageAddVO.setType("跳转日报页"); + messageMapper.messageAdd(messageAddVO); + } } 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 d94dff1..f3ccf55 100644 --- a/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/ModuleServiceImpl.java @@ -83,7 +83,6 @@ public class ModuleServiceImpl implements ModuleService { @Override public BaseResponse deleteById(HttpServletRequest request, Long id) { - // 检测是否为管理员 if (!Processing.checkUserIsAdmin(request, roleMapper)) { return ResultUtil.error(ErrorCode.NOT_PERMISSION); 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 1396230..a2916e4 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,4 @@ package com.jsl.oa.services.impl; - import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; @@ -9,7 +8,6 @@ import com.jsl.oa.dao.UserDAO; import com.jsl.oa.mapper.ProjectMapper; import com.jsl.oa.mapper.RoleMapper; import com.jsl.oa.mapper.UserMapper; -import com.jsl.oa.model.dodata.ProjectCuttingDO; import com.jsl.oa.model.dodata.ProjectDO; import com.jsl.oa.model.dodata.UserDO; import com.jsl.oa.model.dodata.info.ProjectShowDO; @@ -93,12 +91,13 @@ public class ProjectServiceImpl implements ProjectService { } else { return ResultUtil.error(ErrorCode.NOT_PERMISSION); } - }//增加子模块 - else { + } else { //是否是子系统的负责人 if (Objects.equals(userId, projectMapper.getPirIdbyWorkid(projectWorkVO.getPid()))) { projectDAO.projectWorkAdd(projectWorkVO); - } else return ResultUtil.error(ErrorCode.NOT_PERMISSION); + } else { + return ResultUtil.error(ErrorCode.NOT_PERMISSION); + } } return ResultUtil.success("添加成功"); @@ -231,8 +230,8 @@ public class ProjectServiceImpl implements ProjectService { //判断用户是否为老师 或者 项目负责人 - if (!Processing.checkUserIsTeacher(request, roleMapper) || - !projectDAO.isPrincipalUser(Processing.getAuthHeaderToUserId(request), projectId)) { + if (!Processing.checkUserIsTeacher(request, roleMapper) + || !projectDAO.isPrincipalUser(Processing.getAuthHeaderToUserId(request), projectId)) { return ResultUtil.error(ErrorCode.NOT_PERMISSION); } @@ -246,30 +245,6 @@ public class ProjectServiceImpl implements ProjectService { } - @Override - @CheckUserHasPermission("project.cutting.user.get") - public BaseResponse projectGetUserInCutting(Long uid) { - log.info("\t> 执行 Service 层 ProjectService.projectGetUserInCutting 方法"); - if (userDAO.isExistUser(uid)) { - List projectCuttingDOList = projectDAO.projectGetUserInCutting(uid); - return ResultUtil.success(projectCuttingDOList); - } else { - return ResultUtil.error(ErrorCode.USER_NOT_EXIST); - } - } - - @Override - @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); - } - } - @Override public BaseResponse getHeader(Integer id) { log.info("\t> 执行 Service 层 InfoService.getHeader 方法"); @@ -361,7 +336,8 @@ public class ProjectServiceImpl implements ProjectService { } @Override - public BaseResponse get(Integer listAll, HttpServletRequest request, List tags, List isFinish, Integer page, Integer pageSize) { + public BaseResponse get(Integer listAll, HttpServletRequest request, + List tags, List isFinish, Integer page, Integer pageSize) { log.info("\t> 执行 Service 层 ProjectService.get 方法"); //获取用户 @@ -437,7 +413,9 @@ public class ProjectServiceImpl implements ProjectService { } @Override - public BaseResponse workget(Integer listAll, HttpServletRequest request, List tags, List isFinish, Integer is, Integer page, Integer pageSize) { + public BaseResponse workget(Integer listAll, HttpServletRequest request, + List tags, List isFinish, Integer is, + Integer page, Integer pageSize) { log.info("\t> 执行 Service 层 ProjectService.workget 方法"); //获取用户 @@ -541,57 +519,4 @@ public class ProjectServiceImpl implements ProjectService { } 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(); - } - - @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(); - } - - @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(); - } - - }