From 6dbed458bd97b4db44237fd955d31eb723847b8e Mon Sep 17 00:00:00 2001 From: 176yunxuan <362612387@qq.com~> Date: Tue, 9 Apr 2024 20:50:33 +0800 Subject: [PATCH] =?UTF-8?q?=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 | 40 +++++++---- .../java/com/jsl/oa/mapper/MessageMapper.java | 15 ++-- .../com/jsl/oa/model/doData/MessageAddDO.java | 21 ++++++ .../com/jsl/oa/model/doData/MessageDO.java | 3 +- .../com/jsl/oa/model/voData/MessageGetVO.java | 18 +++++ .../com/jsl/oa/services/MessageService.java | 8 ++- .../oa/services/impl/MessageServiceImpl.java | 72 ++++++++++++++----- 7 files changed, 138 insertions(+), 39 deletions(-) create mode 100644 src/main/java/com/jsl/oa/model/doData/MessageAddDO.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 b625408..3e7396a 100644 --- a/src/main/java/com/jsl/oa/controllers/MessageController.java +++ b/src/main/java/com/jsl/oa/controllers/MessageController.java @@ -1,20 +1,20 @@ package com.jsl.oa.controllers; +import com.jsl.oa.model.doData.MessageAddDO; 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.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.validation.BindingResult; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import javax.naming.Binding; import javax.servlet.http.HttpServletRequest; +import javax.validation.constraints.NotNull; import java.time.LocalDate; +import java.time.LocalDateTime; /** *

消息控制器

@@ -34,14 +34,15 @@ public class MessageController { @DeleteMapping("/message/delete") public BaseResponse messageDelete(@RequestParam Long id, HttpServletRequest request) { + log.info("请求接口[DELETE]:/message/delete"); if (id == null) { return ResultUtil.error(ErrorCode.PARAMETER_ERROR); } else return messageService.messageDelete(id, request); } @GetMapping("/message/get") - public BaseResponse messageGet(@RequestParam(defaultValue = "1") Long page, - @RequestParam(defaultValue = "10") Long pageSize, + public BaseResponse messageGet(@RequestParam(required = false,defaultValue = "1") Integer page, + @RequestParam(required = false,defaultValue = "10") Integer pageSize, HttpServletRequest request, @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin, @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end) { @@ -53,9 +54,10 @@ public class MessageController { } else return messageService.messageGet(begin, end, page, pageSize, uid); } + /* @GetMapping("/message/get/all") - public BaseResponse messageGetAll(@RequestParam(defaultValue = "1") Long page, - @RequestParam(defaultValue = "10") Long pageSize, + public BaseResponse messageGetAll(@RequestParam(defaultValue = "1") Integer page, + @RequestParam(defaultValue = "10") Integer pageSize, HttpServletRequest request, @RequestParam Long uid, @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin, @@ -65,7 +67,19 @@ public class MessageController { 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); + } else return messageService.messageGetAll(begin, end, page, pageSize, LoginId, uid); + } +*/ + @PostMapping("/message/add") + public BaseResponse messageAdd(HttpServletRequest request, + @RequestBody @Validated MessageAddDO messageAddDO, + @NotNull BindingResult bindingResult) { + log.info("请求接口[POST]:/message/add"); + //校验参数 + if (bindingResult.hasErrors()) { + return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); + } + return messageService.messageAdd(request, messageAddDO); } } diff --git a/src/main/java/com/jsl/oa/mapper/MessageMapper.java b/src/main/java/com/jsl/oa/mapper/MessageMapper.java index 6a635b4..5f8496a 100644 --- a/src/main/java/com/jsl/oa/mapper/MessageMapper.java +++ b/src/main/java/com/jsl/oa/mapper/MessageMapper.java @@ -1,11 +1,14 @@ package com.jsl.oa.mapper; +import com.jsl.oa.model.doData.MessageAddDO; import com.jsl.oa.model.doData.MessageDO; +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,7 +16,7 @@ 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); @@ -23,7 +26,11 @@ public interface MessageMapper { @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 created_at between #{begin} and #{end} limit #{start},#{pageSize}") - List page(LocalDate begin, LocalDate end, Long uid, Long start, Long pageSize); + @Select("select * from organize_oa.oa_message where uid = #{uid} and created_at between" + + " #{begin} and #{end} ") + List page(LocalDate begin, LocalDate end, Long uid); + + @Insert("INSERT INTO organize_oa.oa_message (uid,title,text,sid) " + + "VALUES (#{uid}, #{title}, #{text},#{sid})") + boolean messageAdd (MessageAddDO messageAddDO); } diff --git a/src/main/java/com/jsl/oa/model/doData/MessageAddDO.java b/src/main/java/com/jsl/oa/model/doData/MessageAddDO.java new file mode 100644 index 0000000..0a04992 --- /dev/null +++ b/src/main/java/com/jsl/oa/model/doData/MessageAddDO.java @@ -0,0 +1,21 @@ +package com.jsl.oa.model.doData; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; +import lombok.NonNull; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotNull; +import java.sql.Timestamp; + +@Data +@Accessors(chain = true) +@JsonInclude(JsonInclude.Include.NON_NULL) +public class MessageAddDO { + @NotNull(message = "发送到用户的id不能为空") + private Long uid; + private Long sid; + private String title; + private String text; + +} \ No newline at end of file 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 08c542c..5975315 100644 --- a/src/main/java/com/jsl/oa/model/doData/MessageDO.java +++ b/src/main/java/com/jsl/oa/model/doData/MessageDO.java @@ -21,10 +21,11 @@ import java.sql.Timestamp; public class MessageDO { private Long id; + private Long sid; private Long uid; 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/MessageGetVO.java b/src/main/java/com/jsl/oa/model/voData/MessageGetVO.java new file mode 100644 index 0000000..055edc3 --- /dev/null +++ b/src/main/java/com/jsl/oa/model/voData/MessageGetVO.java @@ -0,0 +1,18 @@ +package com.jsl.oa.model.voData; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.sql.Timestamp; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class MessageGetVO { + private String sidName; + private String txt; + private String title; + private Timestamp createdAt; + +} diff --git a/src/main/java/com/jsl/oa/services/MessageService.java b/src/main/java/com/jsl/oa/services/MessageService.java index 7030145..362093c 100644 --- a/src/main/java/com/jsl/oa/services/MessageService.java +++ b/src/main/java/com/jsl/oa/services/MessageService.java @@ -1,9 +1,11 @@ package com.jsl.oa.services; +import com.jsl.oa.model.doData.MessageAddDO; import com.jsl.oa.utils.BaseResponse; import javax.servlet.http.HttpServletRequest; import java.time.LocalDate; +import java.time.LocalDateTime; /** *

消息服务接口

@@ -18,7 +20,9 @@ public interface MessageService { BaseResponse messageDelete(Long mid,HttpServletRequest request); - BaseResponse messageGet(LocalDate begin,LocalDate end,Long page,Long pageSize,Long uid); + BaseResponse messageGet(LocalDate begin, LocalDate end, Integer page, Integer pageSize, Long uid); - BaseResponse messageGetAll(HttpServletRequest request,LocalDate begin, LocalDate end, Long page, Long pageSize, Long loginId, Long uid); + //BaseResponse messageGetAll(LocalDate begin, LocalDate end, Integer page, Integer pageSize, Long loginId, Long uid); + + BaseResponse messageAdd(HttpServletRequest request, MessageAddDO messageAddDO); } 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 d80a481..c062220 100644 --- a/src/main/java/com/jsl/oa/services/impl/MessageServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/impl/MessageServiceImpl.java @@ -5,8 +5,12 @@ import com.jsl.oa.annotations.CheckUserAbleToUse; import com.jsl.oa.annotations.CheckUserHasPermission; import com.jsl.oa.mapper.MessageMapper; import com.jsl.oa.mapper.RoleMapper; +import com.jsl.oa.mapper.UserMapper; +import com.jsl.oa.model.doData.MessageAddDO; import com.jsl.oa.model.doData.MessageDO; import com.jsl.oa.model.doData.PageBeanDO; +import com.jsl.oa.model.voData.MessageGetVO; +import com.jsl.oa.model.voData.ProjectSimpleVO; import com.jsl.oa.services.MessageService; import com.jsl.oa.utils.BaseResponse; import com.jsl.oa.utils.ErrorCode; @@ -18,6 +22,8 @@ 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; @@ -37,10 +43,12 @@ public class MessageServiceImpl implements MessageService { private final MessageMapper messageMapper; private final RoleMapper roleMapper; + private final UserMapper userMapper; @Override - @CheckUserHasPermission("message.delete") + //@CheckUserHasPermission("message.delete") public BaseResponse messageDelete(Long mid, HttpServletRequest request) { + log.info("\t执行 service 层 messageDelete 方法"); //获取消息数据 MessageDO messageDO = messageMapper.getMessageById(mid); //检测用户id与消息的uid是否相同 @@ -56,28 +64,40 @@ public class MessageServiceImpl implements MessageService { } @Override - @CheckUserAbleToUse - public BaseResponse messageGet(LocalDate begin, LocalDate end, Long page, Long pageSize, Long uid) { - //1.记录总数据数 - Long count = messageMapper.count(uid); + //@CheckUserAbleToUse + public BaseResponse messageGet(LocalDate begin, LocalDate end, Integer page, + Integer pageSize, Long uid) { + log.info("\t执行 service 层 messageGet 方法"); - //2.获取分页数据列表 //默认获取时间为最近30天 if (begin == null) { - begin = LocalDate.now(); - end = begin.minusDays(30); + end = LocalDate.now(); + begin = end.minusDays(30); + } + List messageList = messageMapper.page(begin, end, uid); + List messageGetVOList = new ArrayList<>(); + for (MessageDO messageDO : messageList) { + MessageGetVO messageGetVO = new MessageGetVO(); + messageGetVO.setSidName(userMapper.getUserById(messageDO.getSid()).getUsername()); + messageGetVO.setTxt(messageDO.getText()); + messageGetVO.setTitle(messageDO.getTitle()); + messageGetVO.setCreatedAt(messageDO.getCreatedAt()); + messageGetVOList.add(messageGetVO); } - 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); + //3.分页返回 + int start = (page-1) * pageSize; + int endIndex = start + pageSize; + List pageData = messageGetVOList.subList(start, + Math.min(endIndex,messageGetVOList.size())); + return ResultUtil.success(pageData); } + /* @Override @CheckUserHasPermission("message.get") - public BaseResponse messageGetAll(HttpServletRequest request, LocalDate begin, LocalDate end, Long page, Long pageSize, Long loginId, Long uid) { + public BaseResponse messageGetAll( LocalDate begin, LocalDate end, Integer page, + Integer pageSize, Long loginId, Long uid) { log.info("请求接口服务层"); //1.记录总数据数 Long count = messageMapper.count(uid); @@ -88,12 +108,26 @@ public class MessageServiceImpl implements MessageService { begin = LocalDate.now(); end = begin.minusDays(30); } - Long start = (page - 1) * pageSize; - List messageDOList = messageMapper.page(begin, end, uid, start, pageSize); + List messageDOList = messageMapper.page(begin, end, uid); - //3.封装PageBean对象 - PageBeanDO pageBean = new PageBeanDO<>(count, messageDOList); - return ResultUtil.success(pageBean); + //3.分页返回 + int start = (page-1) * pageSize; + int endIndex = start + pageSize; + List pageData = messageDOList.subList((start), + Math.min(endIndex,messageDOList.size())); + return ResultUtil.success(pageData); + } +*/ + @Override + public BaseResponse messageAdd(HttpServletRequest request, MessageAddDO messageAddDO) { + log.info("\t执行 service 层 messageAdd 方法"); + + Long sid = JwtUtil.getUserId(request.getHeader("Authorization").replace("Bearer ", "")); + messageAddDO.setSid(sid); + if(!messageMapper.messageAdd(messageAddDO)){ + return ResultUtil.error(ErrorCode.DATABASE_INSERT_ERROR); + } + return ResultUtil.success(); }