From c014f65f13e13de8791dbc3c2d1a48ca863625bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E4=BD=B3=E8=B1=AA?= Date: Fri, 20 Jun 2025 09:31:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B6=88=E6=81=AFbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application.yml | 2 + .../mybatis/core/domain/BaseEntity.java | 10 +-- .../handler/InjectionMetaObjectHandler.java | 2 +- .../controller/SysMessageController.java | 21 ++++-- .../SysMessageTemplateController.java | 27 ++++--- .../org/dromara/system/domain/SysMessage.java | 3 +- .../system/domain/SysMessageTemplate.java | 25 ++++--- .../dromara/system/domain/SysMessageUser.java | 3 +- .../system/domain/bo/SysMessageBo.java | 52 ++++++++----- .../domain/bo/SysMessageTemplateBo.java | 74 +++++++++++-------- .../domain/vo/SysMessageTemplateVo.java | 23 +++--- .../system/service/ISysMessageService.java | 11 +++ .../service/impl/SysMessageServiceImpl.java | 26 +++++++ .../impl/FlwDefinitionServiceImpl.java | 2 +- 14 files changed, 184 insertions(+), 97 deletions(-) diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 1cad7ba3c..888c73f77 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -136,6 +136,7 @@ tenant: - sys_role_menu - sys_user_post - sys_user_role + - sys_message - sys_client - sys_oss_config - ums_member @@ -145,6 +146,7 @@ tenant: - ums_cart - ums_account - ums_account_change_record + - sys_message_template - ums_fans - ums_block - oms_aftersale diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/core/domain/BaseEntity.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/core/domain/BaseEntity.java index 749fde7fe..969ae6b5e 100644 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/core/domain/BaseEntity.java +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/core/domain/BaseEntity.java @@ -31,11 +31,11 @@ public class BaseEntity implements Serializable { @TableField(exist = false) private String searchValue; -// /** -// * 创建部门 -// */ -// @TableField(fill = FieldFill.INSERT) -// private Long createDept; + /** + * 创建部门 + */ + @TableField(fill = FieldFill.INSERT) + private Long createDept; /** * 创建者 diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/InjectionMetaObjectHandler.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/InjectionMetaObjectHandler.java index 5413f6178..713d4ce0c 100644 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/InjectionMetaObjectHandler.java +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/InjectionMetaObjectHandler.java @@ -45,7 +45,7 @@ public class InjectionMetaObjectHandler implements MetaObjectHandler { // 填充创建人、更新人和创建部门信息 baseEntity.setCreateBy(userId); baseEntity.setUpdateBy(userId); -// baseEntity.setCreateDept(ObjectUtils.notNull(baseEntity.getCreateDept(), loginUser.getDeptId())); + baseEntity.setCreateDept(ObjectUtils.notNull(baseEntity.getCreateDept(), loginUser.getDeptId())); } } } else { diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMessageController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMessageController.java index 2e99b35e2..196a8f4a7 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMessageController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMessageController.java @@ -1,8 +1,8 @@ package org.dromara.system.controller; import cn.dev33.satoken.annotation.SaCheckPermission; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; @@ -59,8 +59,9 @@ public class SysMessageController extends BaseController { * 查询消息列表 */ @SaCheckPermission("system:message:list") + @Tag(name = "查询消息列表") @PostMapping("/list") - public R> list(@RequestBody SysMessageBo bo, @RequestBody Page page) { + public R> list(@RequestBody SysMessageBo bo, @RequestBody Page page) { Page messagePage = messageService.page(page, bo.toWrapper()); Page voPage = new Page<>(messagePage.getCurrent(), messagePage.getSize(), messagePage.getTotal()); voPage.setRecords(MapstructUtils.convert(messagePage.getRecords(), SysMessageVo.class)); @@ -149,18 +150,22 @@ public class SysMessageController extends BaseController { * 获取未读消息列表 */ @SaCheckPermission("system:message:list") - @GetMapping("/unread") - public TableDataInfo unreadList(PageQuery pageQuery) { - return messageService.selectPageUnreadMessages(getUserId(), pageQuery); + @Tag(name = "查询未读消息列表") + @PostMapping("/unread") + public R> unreadList(@RequestBody Page page) { + Page unreadPage = messageService.selectUnreadMessagesPage(getUserId(), page); + return R.ok(unreadPage); } /** * 获取已读消息列表 */ @SaCheckPermission("system:message:list") - @GetMapping("/read") - public TableDataInfo readList(PageQuery pageQuery) { - return messageService.selectPageReadMessages(getUserId(), pageQuery); + @Tag(name = "查询已读消息列表") + @PostMapping("/read") + public R> readList(@RequestBody Page page) { + Page readPage = messageService.selectReadMessagesPage(getUserId(), page); + return R.ok(readPage); } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMessageTemplateController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMessageTemplateController.java index 7ab52929a..05dbea391 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMessageTemplateController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMessageTemplateController.java @@ -1,18 +1,20 @@ package org.dromara.system.controller; import cn.dev33.satoken.annotation.SaCheckPermission; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; +import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; -import org.dromara.common.mybatis.core.page.PageQuery; -import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.web.core.BaseController; +import org.dromara.system.domain.SysMessageTemplate; import org.dromara.system.domain.bo.SysMessageTemplateBo; import org.dromara.system.domain.vo.SysMessageTemplateVo; import org.dromara.system.service.ISysMessageTemplateService; @@ -38,9 +40,13 @@ public class SysMessageTemplateController extends BaseController { * 查询消息模板列表 */ @SaCheckPermission("system:message:template:list") - @GetMapping("/list") - public TableDataInfo list(SysMessageTemplateBo bo, PageQuery pageQuery) { - return templateService.selectTemplatePage(bo, pageQuery); + @Tag(name = "查询消息模板列表") + @PostMapping("/list") + public R> list(@RequestBody SysMessageTemplateBo bo, @RequestBody Page page) { + Page templatePage = templateService.page(page, bo.toWrapper()); + Page voPage = new Page<>(templatePage.getCurrent(), templatePage.getSize(), templatePage.getTotal()); + voPage.setRecords(MapstructUtils.convert(templatePage.getRecords(), SysMessageTemplateVo.class)); + return R.ok(voPage); } /** @@ -51,7 +57,8 @@ public class SysMessageTemplateController extends BaseController { @SaCheckPermission("system:message:template:query") @GetMapping("/{id}") public R getInfo(@NotNull(message = "消息模板ID不能为空") @PathVariable Long id) { - return R.ok(templateService.selectTemplateById(id)); + SysMessageTemplate template = templateService.getById(id); + return R.ok(MapstructUtils.convert(template, SysMessageTemplateVo.class)); } /** @@ -62,7 +69,7 @@ public class SysMessageTemplateController extends BaseController { @RepeatSubmit() @PostMapping() public R add(@Validated(AddGroup.class) @RequestBody SysMessageTemplateBo bo) { - return toAjax(templateService.insertTemplate(bo)); + return toAjax(templateService.save(bo.toEntity())); } /** @@ -73,7 +80,7 @@ public class SysMessageTemplateController extends BaseController { @RepeatSubmit() @PutMapping() public R edit(@Validated(EditGroup.class) @RequestBody SysMessageTemplateBo bo) { - return toAjax(templateService.updateTemplate(bo)); + return toAjax(templateService.updateById(bo.toEntity())); } /** @@ -85,6 +92,6 @@ public class SysMessageTemplateController extends BaseController { @Log(title = "消息模板管理", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public R remove(@NotEmpty(message = "消息模板ID不能为空") @PathVariable Long[] ids) { - return toAjax(templateService.deleteTemplateByIds(ids)); + return toAjax(templateService.removeByIds(List.of(ids))); } -} \ No newline at end of file +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMessage.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMessage.java index 88de0ca71..8defcfae9 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMessage.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMessage.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; +import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.tenant.core.TenantEntity; @@ -18,7 +19,7 @@ import java.util.Date; @Data @EqualsAndHashCode(callSuper = true) @TableName("sys_message") -public class SysMessage extends BaseEntity { +public class SysMessage extends BaseAudit { private static final long serialVersionUID = 1L; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMessageTemplate.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMessageTemplate.java index 26c6bc738..f23165a14 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMessageTemplate.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMessageTemplate.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; +import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.tenant.core.TenantEntity; @@ -15,7 +16,7 @@ import org.dromara.common.tenant.core.TenantEntity; @Data @EqualsAndHashCode(callSuper = true) @TableName("sys_message_template") -public class SysMessageTemplate extends BaseEntity { +public class SysMessageTemplate extends BaseAudit { private static final long serialVersionUID = 1L; @@ -26,9 +27,10 @@ public class SysMessageTemplate extends BaseEntity { private Long id; /** - * 模板类型(1通知 2公告 3消息) + * 模板类型(0通知 1公告) */ private String templateType; + private String title; /** * 模板编码 @@ -40,23 +42,24 @@ public class SysMessageTemplate extends BaseEntity { */ private String templateName; + /** * 模板内容 */ private String templateContent; - /** - * 模板参数 - */ - private String templateParams; +// /** +// * 模板参数 +// */ +// private String templateParams; /** * 状态(0正常 1停用) */ private String status; - - /** - * 备注 - */ - private String remark; +// +// /** +// * 备注 +// */ +// private String remark; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMessageUser.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMessageUser.java index 8994159c1..bfe2cd3ff 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMessageUser.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMessageUser.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; +import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.tenant.core.TenantEntity; @@ -17,7 +18,7 @@ import java.util.Date; @Data @EqualsAndHashCode(callSuper = true) @TableName("sys_message_user") -public class SysMessageUser extends BaseEntity { +public class SysMessageUser extends BaseAudit { private static final long serialVersionUID = 1L; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMessageBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMessageBo.java index 5082bc6da..e85ae3705 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMessageBo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMessageBo.java @@ -6,12 +6,14 @@ import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Size; import lombok.Data; import lombok.EqualsAndHashCode; +import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.system.domain.SysMessage; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import io.github.linpeilie.annotations.AutoMapper; import java.util.Date; import java.util.List; @@ -24,7 +26,8 @@ import java.util.List; @Data @EqualsAndHashCode(callSuper = true) @ExcelIgnoreUnannotated -public class SysMessageBo extends BaseEntity { +@AutoMapper(target = SysMessage.class, reverseConvertGenerate = false) +public class SysMessageBo extends BaseAudit { /** 主键ID */ @ExcelProperty(value = "消息ID") @@ -58,22 +61,42 @@ public class SysMessageBo extends BaseEntity { @ExcelProperty(value = "定时发送时间") private Date scheduledTime; -// /** 状态(0正常 1停用) */ -// @ExcelProperty(value = "状态") -// private String status; - /** 发送范围(all:全部用户, userType:按用户类型, userIds:指定用户) */ + @NotBlank(message = "发送范围不能为空", groups = { AddGroup.class }) private String sendScope; /** 接收用户ID列表 */ private List userIds; -// /** 用户类型(1普通用户 2商家 3达人 4代理) */ -// private String userType; - /** 是否发送给所有用户 */ private Boolean sendToAll; + /** 扩展数据(JSON格式) */ + private String extraData; + + /** 状态(0正常 1停用) */ + private String status; + + /** 备注 */ + private String remark; + + /** + * 转换为查询条件 + */ + public LambdaQueryWrapper toWrapper() { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.like(StringUtils.isNotBlank(this.getTitle()), SysMessage::getTitle, this.getTitle()) + .eq(StringUtils.isNotBlank(this.getMsgType()), SysMessage::getMsgType, this.getMsgType()) + .eq(StringUtils.isNotBlank(this.getSubType()), SysMessage::getSubType, this.getSubType()) + .eq(this.getSenderId() != null, SysMessage::getSenderId, this.getSenderId()) +// .eq(StringUtils.isNotBlank(this.getStatus()), SysMessage::getStatus, this.getStatus()) + .orderByDesc(SysMessage::getCreateTime); + return lqw; + } + + /** + * 转换为实体对象 + */ public SysMessage toEntity() { SysMessage entity = new SysMessage(); entity.setId(this.getId()); @@ -83,22 +106,13 @@ public class SysMessageBo extends BaseEntity { entity.setSubType(this.getSubType()); entity.setSenderId(this.getSenderId()); entity.setScheduledTime(this.getScheduledTime()); +// entity.setExtraData(this.getExtraData()); // entity.setStatus(this.getStatus()); +// entity.setRemark(this.getRemark()); entity.setCreateBy(this.getCreateBy()); entity.setCreateTime(this.getCreateTime()); entity.setUpdateBy(this.getUpdateBy()); entity.setUpdateTime(this.getUpdateTime()); return entity; } - - /** - * 转换为查询条件 - */ - public LambdaQueryWrapper toWrapper() { - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); - lqw.like(StringUtils.isNotBlank(this.getTitle()), SysMessage::getTitle, this.getTitle()) - .eq(StringUtils.isNotBlank(this.getMsgType()), SysMessage::getMsgType, this.getMsgType()) - .orderByDesc(SysMessage::getCreateTime); - return lqw; - } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMessageTemplateBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMessageTemplateBo.java index fc6cca4ec..398ff67f6 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMessageTemplateBo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMessageTemplateBo.java @@ -1,7 +1,12 @@ package org.dromara.system.domain.bo; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.dromara.common.core.domain.model.BaseAudit; +import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; import org.dromara.common.mybatis.core.domain.BaseEntity; @@ -12,13 +17,15 @@ import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; /** - * 消息模板业务对象 sys_message_template + * 消息模板业务对象 * * @author ruoyi */ @Data +@NoArgsConstructor @EqualsAndHashCode(callSuper = true) -public class SysMessageTemplateBo extends BaseEntity { +@AutoMapper(target = SysMessageTemplate.class, reverseConvertGenerate = false) +public class SysMessageTemplateBo extends BaseAudit { /** * 模板ID @@ -27,24 +34,25 @@ public class SysMessageTemplateBo extends BaseEntity { private Long id; /** - * 模板类型(1通知 2公告 3消息) + * 模板名称 */ - @NotBlank(message = "模板类型不能为空", groups = { AddGroup.class, EditGroup.class }) - private String templateType; + @NotBlank(message = "模板名称不能为空", groups = { AddGroup.class, EditGroup.class }) + @Size(max = 100, message = "模板名称长度不能超过{max}个字符") + private String templateName; /** * 模板编码 */ @NotBlank(message = "模板编码不能为空", groups = { AddGroup.class, EditGroup.class }) - @Size(min = 0, max = 64, message = "模板编码长度不能超过64个字符") + @Size(max = 50, message = "模板编码长度不能超过{max}个字符") private String templateCode; /** - * 模板名称 + * 模板类型(SMS=短信 MAIL=邮件 WECHAT=微信 SYSTEM=系统消息) */ - @NotBlank(message = "模板名称不能为空", groups = { AddGroup.class, EditGroup.class }) - @Size(min = 0, max = 100, message = "模板名称长度不能超过100个字符") - private String templateName; + @NotBlank(message = "模板类型不能为空", groups = { AddGroup.class, EditGroup.class }) + @Size(max = 20, message = "模板类型长度不能超过{max}个字符") + private String templateType; /** * 模板内容 @@ -53,38 +61,44 @@ public class SysMessageTemplateBo extends BaseEntity { private String templateContent; /** - * 模板参数 + * 状态(0正常 1停用) */ - private String templateParams; - + private String status; + /** + * 标题 + */ + private String title; // /** -// * 状态(0正常 1停用) +// * 备注 // */ -// @NotBlank(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class }) -// private String status; +// private String remark; /** - * 备注 + * 将当前对象转换为查询条件 */ - private String remark; + public LambdaQueryWrapper toWrapper() { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.like(StringUtils.isNotBlank(templateName), SysMessageTemplate::getTemplateName, templateName) + .like(StringUtils.isNotBlank(templateCode), SysMessageTemplate::getTemplateCode, templateCode) + .eq(StringUtils.isNotBlank(templateType), SysMessageTemplate::getTemplateType, templateType) + .eq(StringUtils.isNotBlank(status), SysMessageTemplate::getStatus, status) + .orderByDesc(SysMessageTemplate::getCreateTime); + return lqw; + } /** * 转换为实体对象 */ public SysMessageTemplate toEntity() { SysMessageTemplate entity = new SysMessageTemplate(); - entity.setId(this.getId()); - entity.setTemplateType(this.getTemplateType()); - entity.setTemplateCode(this.getTemplateCode()); - entity.setTemplateName(this.getTemplateName()); - entity.setTemplateContent(this.getTemplateContent()); - entity.setTemplateParams(this.getTemplateParams()); -// entity.setStatus(this.getStatus()); - entity.setRemark(this.getRemark()); - entity.setCreateBy(this.getCreateBy()); - entity.setCreateTime(this.getCreateTime()); - entity.setUpdateBy(this.getUpdateBy()); - entity.setUpdateTime(this.getUpdateTime()); + entity.setId(id); + entity.setTemplateName(templateName); + entity.setTemplateCode(templateCode); + entity.setTemplateType(templateType); + entity.setTemplateContent(templateContent); + entity.setStatus(status); + entity.setTitle(title); +// entity.setRemark(remark); return entity; } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMessageTemplateVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMessageTemplateVo.java index 958fe5b61..10bb840a5 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMessageTemplateVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMessageTemplateVo.java @@ -1,8 +1,11 @@ package org.dromara.system.domain.vo; +import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; import org.dromara.common.tenant.core.TenantEntity; +import org.dromara.system.domain.SysMessage; +import org.dromara.system.domain.SysMessageTemplate; import java.io.Serializable; @@ -12,7 +15,7 @@ import java.io.Serializable; * @author ruoyi */ @Data -//@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysMessageTemplate.class) public class SysMessageTemplateVo implements Serializable { private static final long serialVersionUID = 1L; @@ -42,18 +45,18 @@ public class SysMessageTemplateVo implements Serializable { */ private String templateContent; +// /** +// * 模板参数 +// */ +// private String templateParams; + /** - * 模板参数 + * 状态(0正常 1停用) */ - private String templateParams; + private String status; // /** -// * 状态(0正常 1停用) +// * 备注 // */ -// private String status; - - /** - * 备注 - */ - private String remark; +// private String remark; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMessageService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMessageService.java index 158346f4b..0fb33c2e5 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMessageService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMessageService.java @@ -1,6 +1,7 @@ package org.dromara.system.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -22,6 +23,16 @@ public interface ISysMessageService extends IService { */ TableDataInfo selectPageMessageList(SysMessageBo bo, PageQuery pageQuery); + /** + * 查询未读消息分页(Page方式) + */ + Page selectUnreadMessagesPage(Long userId, Page page); + + /** + * 查询已读消息分页(Page方式) + */ + Page selectReadMessagesPage(Long userId, Page page); + /** * 发送消息给指定用户 * diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMessageServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMessageServiceImpl.java index 896b8b9c2..1578590cb 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMessageServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMessageServiceImpl.java @@ -49,6 +49,32 @@ public class SysMessageServiceImpl extends ServiceImpl selectUnreadMessagesPage(Long userId, Page page) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.inSql(SysMessage::getId, + "SELECT message_id FROM sys_message_user WHERE user_id = " + userId + " AND is_read = 0") + .orderByDesc(SysMessage::getCreateTime); + + Page messagePage = messageMapper.selectPage(page, lqw); + Page voPage = new Page<>(messagePage.getCurrent(), messagePage.getSize(), messagePage.getTotal()); + voPage.setRecords(MapstructUtils.convert(messagePage.getRecords(), SysMessageVo.class)); + return voPage; + } + + @Override + public Page selectReadMessagesPage(Long userId, Page page) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.inSql(SysMessage::getId, + "SELECT message_id FROM sys_message_user WHERE user_id = " + userId + " AND is_read = 1") + .orderByDesc(SysMessage::getCreateTime); + + Page messagePage = messageMapper.selectPage(page, lqw); + Page voPage = new Page<>(messagePage.getCurrent(), messagePage.getSize(), messagePage.getTotal()); + voPage.setRecords(MapstructUtils.convert(messagePage.getRecords(), SysMessageVo.class)); + return voPage; + } + @Override @Transactional(rollbackFor = Exception.class) public int sendMessageToUser(SysMessageBo message, Long userId) { diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java index b725b783d..7f0f67ec6 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java @@ -220,7 +220,7 @@ public class FlwDefinitionServiceImpl implements IFlwDefinitionService { .eq(FlowCategory::getTenantId, DEFAULT_TENANT_ID).eq(FlowCategory::getCategoryId, FlowConstant.FLOW_CATEGORY_ID)); flowCategory.setCategoryId(null); flowCategory.setTenantId(tenantId); -// flowCategory.setCreateDept(null); + flowCategory.setCreateDept(null); flowCategory.setCreateBy(null); flowCategory.setCreateTime(null); flowCategory.setUpdateBy(null);