diff --git a/src/main/java/org/springblade/modules/business/contraller/MessageController.java b/src/main/java/org/springblade/modules/business/contraller/MessageController.java index 59c062f..1f0ad8f 100644 --- a/src/main/java/org/springblade/modules/business/contraller/MessageController.java +++ b/src/main/java/org/springblade/modules/business/contraller/MessageController.java @@ -5,11 +5,13 @@ import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.tool.api.R; +import org.springblade.modules.business.pojo.dto.MessageUpdateDTO; import org.springblade.modules.business.pojo.entity.Message; import org.springblade.modules.business.pojo.vo.MessageVO; import org.springblade.modules.business.service.IMessageService; import org.springframework.web.bind.annotation.*; +import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; @@ -27,15 +29,15 @@ public class MessageController extends BladeController { * * @param current * @param size - * @param start - * @param end + * @param startTime + * @param endTime * @param status * @return */ @GetMapping("/list") @Operation(summary = "消息列表获取", description = "消息列表获取") - public R getMessageList(Integer current, Integer size, LocalDateTime start, LocalDateTime end, Integer status) { - return R.data(messageService.getMessageList(current, size, start, end, status)); + public R getMessageList(Integer current, Integer size, LocalDate startTime, LocalDate endTime, Integer status) { + return R.data(messageService.getMessageList(current, size, startTime, endTime, status)); } /** @@ -53,23 +55,26 @@ public class MessageController extends BladeController { /** * 更新已读接口 * - * @param id - * @param status + * @param messageUpdateDTO * @return */ - @PutMapping("/updateStatus") + @PostMapping("/updateStatus") @Operation(summary = "更新已读", description = "更新已读") - public void updateMessageStatus(Integer id, Integer status) { + public R updateMessageStatus(@RequestBody MessageUpdateDTO messageUpdateDTO) { + Integer status = messageUpdateDTO.getStatus(); + Long id = messageUpdateDTO.getId(); messageService.updateMessageStatus(id, status); + return R.success(); } /** * 一键已读全部接口 */ - @PutMapping("/updateStatusAll") + @PostMapping("/updateStatusAll") @Operation(summary = "一键全部已读", description = "一键全部已读") - public void updateMessageStatusAll() { + public R updateMessageStatusAll() { messageService.updateMessageStatusAll(); + return R.success(); } @PostMapping("/saveMessage") @@ -79,7 +84,6 @@ public class MessageController extends BladeController { String systemType = message.getSystemType(); Long messageUser = message.getMessageUser(); Integer messageType = message.getMessageType(); - messageService.saveMessage(systemType, title, content, messageUser, messageType); } diff --git a/src/main/java/org/springblade/modules/business/pojo/dto/MessageUpdateDTO.java b/src/main/java/org/springblade/modules/business/pojo/dto/MessageUpdateDTO.java new file mode 100644 index 0000000..62e4d42 --- /dev/null +++ b/src/main/java/org/springblade/modules/business/pojo/dto/MessageUpdateDTO.java @@ -0,0 +1,11 @@ +package org.springblade.modules.business.pojo.dto; + +import lombok.Data; + +@Data +public class MessageUpdateDTO { + + private Long id; + + private Integer status; +} diff --git a/src/main/java/org/springblade/modules/business/service/IMessageService.java b/src/main/java/org/springblade/modules/business/service/IMessageService.java index d392c59..2437229 100644 --- a/src/main/java/org/springblade/modules/business/service/IMessageService.java +++ b/src/main/java/org/springblade/modules/business/service/IMessageService.java @@ -5,6 +5,7 @@ import org.springblade.modules.business.pojo.entity.Message; import org.springblade.modules.business.pojo.vo.MessageVO; import org.springblade.modules.business.pojo.vo.PageVO; +import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; @@ -13,11 +14,11 @@ public interface IMessageService extends BaseService { void saveMessage(String systemType, String title, String content, Long messageUser, Integer messageType); - PageVO getMessageList(Integer current, Integer size, LocalDateTime start, LocalDateTime end, Integer status); + PageVO getMessageList(Integer current, Integer size, LocalDate start, LocalDate end, Integer status); Long getMessageTotal(); - void updateMessageStatus(Integer id, Integer status); + void updateMessageStatus(Long id, Integer status); void updateMessageStatusAll(); } diff --git a/src/main/java/org/springblade/modules/business/service/impl/MessageServiceImpl.java b/src/main/java/org/springblade/modules/business/service/impl/MessageServiceImpl.java index 043e923..798f589 100644 --- a/src/main/java/org/springblade/modules/business/service/impl/MessageServiceImpl.java +++ b/src/main/java/org/springblade/modules/business/service/impl/MessageServiceImpl.java @@ -12,7 +12,7 @@ import org.springblade.modules.business.pojo.vo.PageVO; import org.springblade.modules.business.service.IMessageService; import org.springframework.stereotype.Service; -import java.time.LocalDateTime; +import java.time.LocalDate; import java.util.ArrayList; import java.util.List; @@ -49,31 +49,37 @@ public class MessageServiceImpl extends BaseServiceImpl * * @param current * @param size - * @param start - * @param end + * @param startTime + * @param endTime * @param status * @return */ @Override - public PageVO getMessageList(Integer current, Integer size, LocalDateTime start, LocalDateTime end, Integer status) { + public PageVO getMessageList(Integer current, Integer size, LocalDate startTime, LocalDate endTime, Integer status) { QueryWrapper queryWrapper = new QueryWrapper<>(); - if (start != null && end != null) { - queryWrapper.between("create_time", start, end); + if (startTime != null && endTime != null) { + queryWrapper.between("create_time", startTime, endTime); } if (status != null) { queryWrapper.eq("is_read", status); } + //筛选专属该用户的信息 + queryWrapper.eq("message_user", AuthUtil.getUserId()); + //使未读在已读之上 + queryWrapper.orderByAsc("is_read"); + //在未读在已读之上的基础上 再按时间进行排序 + queryWrapper.orderByDesc("create_time"); Page page = new Page<>(current, size); Page messagePage = baseMapper.selectPage(page, queryWrapper); List records = messagePage.getRecords(); Long total = messagePage.getTotal(); - MessageVO messageVO = new MessageVO(); List messageVOList = new ArrayList<>(); for (Message record : records) { + MessageVO messageVO = new MessageVO(); messageVO.setId(record.getId()); messageVO.setContent(record.getContent()); messageVO.setMessageType(record.getMessageType()); - messageVO.setStatus(record.getStatus()); + messageVO.setStatus(record.getIsRead()); messageVO.setCreateTime(record.getCreateTime()); messageVOList.add(messageVO); } @@ -90,7 +96,12 @@ public class MessageServiceImpl extends BaseServiceImpl */ @Override public Long getMessageTotal() { - return baseMapper.selectCount(null); + QueryWrapper queryWrapper = new QueryWrapper<>(); + //筛选该用户的专属消息 + queryWrapper.eq("message_user", AuthUtil.getUserId()); + //只查询未读的消息 + queryWrapper.eq("is_read", 0); + return baseMapper.selectCount(queryWrapper); } /** @@ -100,7 +111,7 @@ public class MessageServiceImpl extends BaseServiceImpl * @param status */ @Override - public void updateMessageStatus(Integer id, Integer status) { + public void updateMessageStatus(Long id, Integer status) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.eq("id", id).set("is_read", status); baseMapper.update(updateWrapper); @@ -112,6 +123,8 @@ public class MessageServiceImpl extends BaseServiceImpl @Override public void updateMessageStatusAll() { UpdateWrapper updateWrapper = new UpdateWrapper<>(); + //筛选该用户的专属消息 + updateWrapper.eq("message_user", AuthUtil.getUserId()); updateWrapper.eq("is_read", 0).set("is_read", 1); baseMapper.update(updateWrapper); }