diff --git a/src/main/java/org/springblade/modules/business/contraller/MessageController.java b/src/main/java/org/springblade/modules/business/contraller/MessageController.java new file mode 100644 index 0000000..988392a --- /dev/null +++ b/src/main/java/org/springblade/modules/business/contraller/MessageController.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 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); + } + +} diff --git a/src/main/java/org/springblade/modules/business/mapper/MessageMapper.java b/src/main/java/org/springblade/modules/business/mapper/MessageMapper.java new file mode 100644 index 0000000..9021a49 --- /dev/null +++ b/src/main/java/org/springblade/modules/business/mapper/MessageMapper.java @@ -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 { + + +} diff --git a/src/main/java/org/springblade/modules/business/pojo/entity/Message.java b/src/main/java/org/springblade/modules/business/pojo/entity/Message.java new file mode 100644 index 0000000..67a57b0 --- /dev/null +++ b/src/main/java/org/springblade/modules/business/pojo/entity/Message.java @@ -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; + +} diff --git a/src/main/java/org/springblade/modules/business/pojo/vo/MessageVO.java b/src/main/java/org/springblade/modules/business/pojo/vo/MessageVO.java new file mode 100644 index 0000000..ca21cc2 --- /dev/null +++ b/src/main/java/org/springblade/modules/business/pojo/vo/MessageVO.java @@ -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; + + +} diff --git a/src/main/java/org/springblade/modules/business/service/IMessageService.java b/src/main/java/org/springblade/modules/business/service/IMessageService.java new file mode 100644 index 0000000..bf77df4 --- /dev/null +++ b/src/main/java/org/springblade/modules/business/service/IMessageService.java @@ -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 { + + void saveMessage(String systemType, String title, String content, Long messageUser, Integer messageType); + + + List getMessageList(Integer current, Integer size, LocalDateTime start, LocalDateTime end, Integer status); + + Long getMessageTotal(); + + void updateMessageStatus(Integer 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 new file mode 100644 index 0000000..1536957 --- /dev/null +++ b/src/main/java/org/springblade/modules/business/service/impl/MessageServiceImpl.java @@ -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 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 getMessageList(Integer current, Integer size, LocalDateTime start, LocalDateTime end, Integer status) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + if (start != null && end != null) { + queryWrapper.between("create_time", start, end); + } + if (status != null) { + queryWrapper.eq("is_read", status); + } + Page page = new Page<>(current, size); + Page messagePage = baseMapper.selectPage(page, queryWrapper); + List records = messagePage.getRecords(); + MessageVO messageVO = new MessageVO(); + List 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 updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id", id).set("is_read", status); + baseMapper.update(updateWrapper); + } + + /** + * 一键已读全部 + */ + @Override + public void updateMessageStatusAll() { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("is_read", 0).set("is_read", 1); + baseMapper.update(updateWrapper); + } +}