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();
}