消息模块
All checks were successful
JslGroup/JslDeveloper/JSL_OrganizeInternalOA/pipeline/head This commit looks good

This commit is contained in:
176yunxuan 2024-04-09 20:50:33 +08:00
parent 5d046f4a04
commit 6dbed458bd
7 changed files with 138 additions and 39 deletions

View File

@ -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;
/**
* <h1>消息控制器</h1>
@ -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);
}
}

View File

@ -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<MessageDO> 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<MessageDO> 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);
}

View File

@ -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;
}

View File

@ -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;

View File

@ -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;
}

View File

@ -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;
/**
* <h1>消息服务接口</h1>
@ -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);
}

View File

@ -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);
}
Long start = (page - 1) * pageSize;
List<MessageDO> empList = messageMapper.page(begin, end, uid, start, pageSize);
//3.封装PageBean对象
PageBeanDO<MessageDO> pageBean = new PageBeanDO<>(count, empList);
return ResultUtil.success(pageBean);
List<MessageDO> messageList = messageMapper.page(begin, end, uid);
List<MessageGetVO> 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);
}
//3.分页返回
int start = (page-1) * pageSize;
int endIndex = start + pageSize;
List<MessageGetVO> 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<MessageDO> messageDOList = messageMapper.page(begin, end, uid, start, pageSize);
List<MessageDO> messageDOList = messageMapper.page(begin, end, uid);
//3.封装PageBean对象
PageBeanDO<MessageDO> pageBean = new PageBeanDO<>(count, messageDOList);
return ResultUtil.success(pageBean);
//3.分页返回
int start = (page-1) * pageSize;
int endIndex = start + pageSize;
List<MessageDO> 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();
}