消息提醒代码开发

master
薛宏祥 1 year ago
parent a9dd6418b6
commit c9744211d9
  1. 86
      src/main/java/org/springblade/modules/business/contraller/MessageController.java
  2. 9
      src/main/java/org/springblade/modules/business/mapper/MessageMapper.java
  3. 40
      src/main/java/org/springblade/modules/business/pojo/entity/Message.java
  4. 22
      src/main/java/org/springblade/modules/business/pojo/vo/MessageVO.java
  5. 22
      src/main/java/org/springblade/modules/business/service/IMessageService.java
  6. 113
      src/main/java/org/springblade/modules/business/service/impl/MessageServiceImpl.java

@ -0,0 +1,86 @@
package org.springblade.modules.business.contraller;
import io.swagger.v3.oas.annotations.Operation;
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.entity.Message;
import org.springblade.modules.business.pojo.vo.MessageVO;
import org.springblade.modules.business.service.IMessageService;
import org.springframework.web.bind.annotation.*;
import javax.swing.plaf.SeparatorUI;
import java.time.LocalDateTime;
import java.util.List;
@RestController
@AllArgsConstructor
@RequestMapping("/messeage")
@Tag(name = "消息处理", description = "消息处理")
public class MessageController extends BladeController {
private final IMessageService messageService;
/**
* 获取消息列表接口
*
* @param current
* @param size
* @param start
* @param end
* @param status
* @return
*/
@PostMapping("/list")
@Operation(summary = "消息列表获取", description = "消息列表获取")
public R getMessageList(Integer current, Integer size, LocalDateTime start, LocalDateTime end, Integer status) {
List<MessageVO> messageList = messageService.getMessageList(current, size, start, end, status);
return R.data(messageList);
}
/**
* 获取消息总数接口
* @return
*/
@PostMapping("/total")
@Operation(summary = "获取消息总数",description = "获取消息总数")
public R getMessageTotal(){
Long messageTotal = messageService.getMessageTotal();
return R.data(messageTotal);
}
/**
* 更新已读接口
* @param id
* @param status
* @return
*/
@PostMapping("/updateStatus")
@Operation(summary = "更新已读",description = "更新已读")
public void updateMessageStatus(Integer id, Integer status) {
messageService.updateMessageStatus(id, status);
}
/**
* 一键已读全部接口
*/
@PostMapping("/updateStatusAll")
@Operation(summary = "一键全部已读",description = "一键全部已读")
public void updateMessageStatusAll(){
messageService.updateMessageStatusAll();
}
@PostMapping("/saveMessage")
public void saveMessage(@RequestBody Message message) {
String content = message.getContent();
String title = message.getTitle();
String systemType = message.getSystemType();
Long messageUser = message.getMessageUser();
Integer messageType = message.getMessageType();
messageService.saveMessage(systemType,title,content,messageUser,messageType);
}
}

@ -0,0 +1,9 @@
package org.springblade.modules.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.business.pojo.entity.Message;
public interface MessageMapper extends BaseMapper<Message> {
}

@ -0,0 +1,40 @@
package org.springblade.modules.business.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import java.util.Date;
@Data
@TableName("blade_message")
@EqualsAndHashCode(callSuper = true)
public class Message extends BaseEntity {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private String systemType;
private String tenantId;
private Long createUser;
private String title;
private String content;
private Integer level;
private Integer method;
private Integer isRead;
private Integer messageType;
private Long messageUser;
}

@ -0,0 +1,22 @@
package org.springblade.modules.business.pojo.vo;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.Date;
@Data
public class MessageVO {
private Long id;
private String content;
private Date createTime;
private Integer status;
private Integer messageType;
}

@ -0,0 +1,22 @@
package org.springblade.modules.business.service;
import org.springblade.core.mp.base.BaseService;
import org.springblade.modules.business.pojo.entity.Message;
import org.springblade.modules.business.pojo.vo.MessageVO;
import java.time.LocalDateTime;
import java.util.List;
public interface IMessageService extends BaseService<Message> {
void saveMessage(String systemType, String title, String content, Long messageUser, Integer messageType);
List<MessageVO> getMessageList(Integer current, Integer size, LocalDateTime start, LocalDateTime end, Integer status);
Long getMessageTotal();
void updateMessageStatus(Integer id, Integer status);
void updateMessageStatusAll();
}

@ -0,0 +1,113 @@
package org.springblade.modules.business.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.modules.business.mapper.MessageMapper;
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.stereotype.Service;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@Service
public class MessageServiceImpl extends BaseServiceImpl<MessageMapper, Message> implements IMessageService {
/**
* 保存消息
*
* @param systemType
* @param title
* @param content
* @param messageUser
* @param messageType
*/
@Override
public void saveMessage(String systemType, String title, String content, Long messageUser, Integer messageType) {
Message saveInformation = new Message();
saveInformation.setSystemType(systemType);
saveInformation.setTitle(title);
saveInformation.setContent(content);
saveInformation.setMessageUser(messageUser);
saveInformation.setTenantId(AuthUtil.getTenantId());
saveInformation.setCreateUser(AuthUtil.getUserId());
saveInformation.setLevel(1);
saveInformation.setMethod(2);
saveInformation.setIsRead(0);
saveInformation.setMessageType(messageType);
this.save(saveInformation);
}
/**
* 消息列表获取
*
* @param current
* @param size
* @param start
* @param end
* @param status
* @return
*/
@Override
public List<MessageVO> getMessageList(Integer current, Integer size, LocalDateTime start, LocalDateTime end, Integer status) {
QueryWrapper<Message> queryWrapper = new QueryWrapper<>();
if (start != null && end != null) {
queryWrapper.between("create_time", start, end);
}
if (status != null) {
queryWrapper.eq("is_read", status);
}
Page<Message> page = new Page<>(current, size);
Page<Message> messagePage = baseMapper.selectPage(page, queryWrapper);
List<Message> records = messagePage.getRecords();
MessageVO messageVO = new MessageVO();
List<MessageVO> messageVOList = new ArrayList<>();
for (Message record : records) {
messageVO.setId(record.getId());
messageVO.setContent(record.getContent());
messageVO.setMessageType(record.getMessageType());
messageVO.setStatus(record.getStatus());
messageVO.setCreateTime(record.getCreateTime());
messageVOList.add(messageVO);
}
return messageVOList;
}
/**
* 获取消息总数
*
* @return
*/
@Override
public Long getMessageTotal() {
return baseMapper.selectCount(null);
}
/**
* 更新消息为已读状态
*
* @param id
* @param status
*/
@Override
public void updateMessageStatus(Integer id, Integer status) {
UpdateWrapper<Message> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("id", id).set("is_read", status);
baseMapper.update(updateWrapper);
}
/**
* 一键已读全部
*/
@Override
public void updateMessageStatusAll() {
UpdateWrapper<Message> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("is_read", 0).set("is_read", 1);
baseMapper.update(updateWrapper);
}
}
Loading…
Cancel
Save