From 8121f5cc5bfa2d6822fd9ae1c24e37efe7d8401d Mon Sep 17 00:00:00 2001 From: shenyifei Date: Thu, 15 Jan 2026 09:00:54 +0800 Subject: [PATCH] =?UTF-8?q?feat(message):=20=E6=B7=BB=E5=8A=A0=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E6=A8=A1=E6=9D=BF=E5=8A=9F=E8=83=BD=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 MessageTemplateController 提供 REST API 接口 - 定义 MessageTemplateServiceI 接口及其实现类 - 创建消息模板相关的 DTO 类 (CreateCmd、UpdateCmd、DestroyCmd、Qry、VO) - 添加消息模板分类和场景枚举类 - 实现消息模板的数据访问层和业务逻辑层 - 集成 MyBatis-Plus 进行数据库操作 - 添加 MapStruct 映射转换器处理对象转换 --- .../controller/MessageTemplateController.java | 79 ++++++++++++++++ .../assembler/MessageTemplateAssembler.java | 15 +++ .../cmd/MessageTemplateCreateCmdExe.java | 29 ++++++ .../cmd/MessageTemplateDestroyCmdExe.java | 22 +++++ .../cmd/MessageTemplateUpdateCmdExe.java | 27 ++++++ .../query/MessageTemplateListQryExe.java | 30 ++++++ .../query/MessageTemplatePageQryExe.java | 29 ++++++ .../query/MessageTemplateShowQryExe.java | 29 ++++++ .../service/MessageTemplateServiceImpl.java | 71 ++++++++++++++ .../biz/domain/entity/MessageTemplate.java | 77 ++++++++++++++++ .../gateway/MessageTemplateGateway.java | 30 ++++++ .../convert/MessageTemplateConvert.java | 32 +++++++ .../entity/MessageTemplateDO.java | 85 +++++++++++++++++ .../gateway/MessageTemplateGatewayImpl.java | 92 +++++++++++++++++++ .../mapper/MessageTemplateMapper.java | 13 +++ .../mapper/MessageTemplateMapper.xml | 26 ++++++ .../api/biz/api/MessageTemplateServiceI.java | 30 ++++++ .../biz/dto/cmd/MessageTemplateCreateCmd.java | 88 ++++++++++++++++++ .../dto/cmd/MessageTemplateDestroyCmd.java | 19 ++++ .../biz/dto/cmd/MessageTemplateUpdateCmd.java | 18 ++++ .../enums/MessageTemplateCategoryEnum.java | 27 ++++++ .../dto/enums/MessageTemplateSceneEnum.java | 31 +++++++ .../biz/dto/qry/MessageTemplateListQry.java | 19 ++++ .../biz/dto/qry/MessageTemplatePageQry.java | 19 ++++ .../biz/dto/qry/MessageTemplateShowQry.java | 19 ++++ .../api/biz/dto/vo/MessageTemplateVO.java | 88 ++++++++++++++++++ 26 files changed, 1044 insertions(+) create mode 100644 erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/MessageTemplateController.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/MessageTemplateAssembler.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/MessageTemplateCreateCmdExe.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/MessageTemplateDestroyCmdExe.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/MessageTemplateUpdateCmdExe.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/MessageTemplateListQryExe.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/MessageTemplatePageQryExe.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/MessageTemplateShowQryExe.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/MessageTemplateServiceImpl.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/MessageTemplate.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/MessageTemplateGateway.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/MessageTemplateConvert.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/MessageTemplateDO.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/MessageTemplateGatewayImpl.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/MessageTemplateMapper.java create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/MessageTemplateMapper.xml create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/MessageTemplateServiceI.java create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/MessageTemplateCreateCmd.java create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/MessageTemplateDestroyCmd.java create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/MessageTemplateUpdateCmd.java create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/MessageTemplateCategoryEnum.java create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/MessageTemplateSceneEnum.java create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/MessageTemplateListQry.java create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/MessageTemplatePageQry.java create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/MessageTemplateShowQry.java create mode 100644 erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/MessageTemplateVO.java diff --git a/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/MessageTemplateController.java b/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/MessageTemplateController.java new file mode 100644 index 0000000..42b148a --- /dev/null +++ b/erp-turbo-admin/src/main/java/com/xunhong/erp/turbo/admin/controller/MessageTemplateController.java @@ -0,0 +1,79 @@ +package com.xunhong.erp.turbo.admin.controller; + +import cn.dev33.satoken.annotation.SaCheckLogin; +import com.alibaba.cola.dto.MultiResponse; +import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.Response; +import com.alibaba.cola.dto.SingleResponse; +import com.xunhong.erp.turbo.api.biz.api.MessageTemplateServiceI; +import com.xunhong.erp.turbo.api.biz.dto.cmd.MessageTemplateCreateCmd; +import com.xunhong.erp.turbo.api.biz.dto.cmd.MessageTemplateDestroyCmd; +import com.xunhong.erp.turbo.api.biz.dto.cmd.MessageTemplateUpdateCmd; +import com.xunhong.erp.turbo.api.biz.dto.qry.MessageTemplateListQry; +import com.xunhong.erp.turbo.api.biz.dto.qry.MessageTemplatePageQry; +import com.xunhong.erp.turbo.api.biz.dto.qry.MessageTemplateShowQry; +import com.xunhong.erp.turbo.api.biz.dto.vo.MessageTemplateVO; +import com.xunhong.erp.turbo.base.dto.PageDTO; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import org.apache.dubbo.config.annotation.DubboReference; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +/** + * @author shenyifei + */ +@Tag(name = "MessageTemplate", description = "消息模板管理") +@RestController("operationMessageTemplateController") +@RequestMapping(value = "/operation") +@RequiredArgsConstructor +public class MessageTemplateController { + + @DubboReference(version = "1.0.0") + private final MessageTemplateServiceI messageTemplateService; + + @SaCheckLogin + @GetMapping("listMessageTemplate") + @Operation(summary = "消息模板列表", method = "GET") + public MultiResponse listMessageTemplate(@ModelAttribute @Validated MessageTemplateListQry messageTemplateListQry) { + return MultiResponse.of(messageTemplateService.list(messageTemplateListQry)); + } + + @SaCheckLogin + @PostMapping("createMessageTemplate") + @Operation(summary = "创建消息模板", method = "POST") + public SingleResponse createMessageTemplate(@RequestBody @Validated MessageTemplateCreateCmd messageTemplateCreateCmd) { + return SingleResponse.of(messageTemplateService.create(messageTemplateCreateCmd)); + } + + @SaCheckLogin + @GetMapping("showMessageTemplate") + @Operation(summary = "消息模板详情", method = "GET") + public SingleResponse showMessageTemplate(@ModelAttribute @Validated MessageTemplateShowQry messageTemplateShowQry) { + return SingleResponse.of(messageTemplateService.show(messageTemplateShowQry)); + } + + @SaCheckLogin + @GetMapping("pageMessageTemplate") + @Operation(summary = "消息模板列表", method = "GET") + public PageResponse pageMessageTemplate(@ModelAttribute @Validated MessageTemplatePageQry messageTemplatePageQry) { + PageDTO page = messageTemplateService.page(messageTemplatePageQry); + return PageResponse.of(page.getRecords(), (int) page.getTotal(), (int) page.getSize(), (int) page.getCurrent()); + } + + @SaCheckLogin + @RequestMapping(value = "updateMessageTemplate", method = {RequestMethod.PATCH, RequestMethod.PUT}) + @Operation(summary = "消息模板更新", method = "PATCH") + public SingleResponse updateMessageTemplate(@RequestBody @Validated MessageTemplateUpdateCmd messageTemplateUpdateCmd) { + return SingleResponse.of(messageTemplateService.update(messageTemplateUpdateCmd)); + } + + @SaCheckLogin + @DeleteMapping("destroyMessageTemplate") + @Operation(summary = "消息模板删除", method = "DELETE") + public Response destroyMessageTemplate(@RequestBody @Validated MessageTemplateDestroyCmd messageTemplateDestroyCmd) { + messageTemplateService.destroy(messageTemplateDestroyCmd); + return Response.buildSuccess(); + } +} diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/MessageTemplateAssembler.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/MessageTemplateAssembler.java new file mode 100644 index 0000000..a163848 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/assembler/MessageTemplateAssembler.java @@ -0,0 +1,15 @@ +package com.xunhong.erp.turbo.biz.app.assembler; + +import com.xunhong.erp.turbo.api.biz.dto.vo.MessageTemplateVO; +import com.xunhong.erp.turbo.biz.domain.entity.MessageTemplate; +import org.mapstruct.Mapper; +import org.mapstruct.NullValueCheckStrategy; + +/** + * @author shenyifei + */ +@Mapper(componentModel = "spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS) +public interface MessageTemplateAssembler { + + MessageTemplateVO toMessageTemplateVO(MessageTemplate messageTemplate); +} diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/MessageTemplateCreateCmdExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/MessageTemplateCreateCmdExe.java new file mode 100644 index 0000000..d27e94d --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/MessageTemplateCreateCmdExe.java @@ -0,0 +1,29 @@ +package com.xunhong.erp.turbo.biz.app.executor.cmd; + +import com.xunhong.erp.turbo.api.biz.dto.cmd.MessageTemplateCreateCmd; +import com.xunhong.erp.turbo.api.biz.dto.vo.MessageTemplateVO; +import com.xunhong.erp.turbo.biz.app.assembler.MessageTemplateAssembler; +import com.xunhong.erp.turbo.biz.domain.entity.MessageTemplate; +import com.xunhong.erp.turbo.biz.domain.gateway.MessageTemplateGateway; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @author shenyifei + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class MessageTemplateCreateCmdExe { + + private final MessageTemplateAssembler messageTemplateAssembler; + private final MessageTemplateGateway messageTemplateGateway; + + public MessageTemplateVO execute(MessageTemplateCreateCmd messageTemplateCreateCmd) { + MessageTemplate messageTemplate = messageTemplateGateway.save(messageTemplateCreateCmd); + + return messageTemplateAssembler.toMessageTemplateVO(messageTemplate); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/MessageTemplateDestroyCmdExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/MessageTemplateDestroyCmdExe.java new file mode 100644 index 0000000..7de8f06 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/MessageTemplateDestroyCmdExe.java @@ -0,0 +1,22 @@ +package com.xunhong.erp.turbo.biz.app.executor.cmd; + +import com.xunhong.erp.turbo.api.biz.dto.cmd.MessageTemplateDestroyCmd; +import com.xunhong.erp.turbo.biz.domain.gateway.MessageTemplateGateway; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @author shenyifei + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class MessageTemplateDestroyCmdExe { + private final MessageTemplateGateway messageTemplateGateway; + + public void execute(MessageTemplateDestroyCmd messageTemplateDestroyCmd) { + messageTemplateGateway.destroy(messageTemplateDestroyCmd); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/MessageTemplateUpdateCmdExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/MessageTemplateUpdateCmdExe.java new file mode 100644 index 0000000..bf65876 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/cmd/MessageTemplateUpdateCmdExe.java @@ -0,0 +1,27 @@ +package com.xunhong.erp.turbo.biz.app.executor.cmd; + +import com.xunhong.erp.turbo.api.biz.dto.cmd.MessageTemplateUpdateCmd; +import com.xunhong.erp.turbo.api.biz.dto.vo.MessageTemplateVO; +import com.xunhong.erp.turbo.biz.app.assembler.MessageTemplateAssembler; +import com.xunhong.erp.turbo.biz.domain.entity.MessageTemplate; +import com.xunhong.erp.turbo.biz.domain.gateway.MessageTemplateGateway; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @author shenyifei + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class MessageTemplateUpdateCmdExe { + + private final MessageTemplateAssembler messageTemplateAssembler; + private final MessageTemplateGateway messageTemplateGateway; + + public MessageTemplateVO execute(MessageTemplateUpdateCmd messageTemplateUpdateCmd) { + MessageTemplate messageTemplate = messageTemplateGateway.update(messageTemplateUpdateCmd); + return messageTemplateAssembler.toMessageTemplateVO(messageTemplate); + } +} diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/MessageTemplateListQryExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/MessageTemplateListQryExe.java new file mode 100644 index 0000000..77fce1a --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/MessageTemplateListQryExe.java @@ -0,0 +1,30 @@ +package com.xunhong.erp.turbo.biz.app.executor.query; + +import com.xunhong.erp.turbo.api.biz.dto.qry.MessageTemplateListQry; +import com.xunhong.erp.turbo.api.biz.dto.vo.MessageTemplateVO; +import com.xunhong.erp.turbo.biz.app.assembler.MessageTemplateAssembler; +import com.xunhong.erp.turbo.biz.domain.entity.MessageTemplate; +import com.xunhong.erp.turbo.biz.domain.gateway.MessageTemplateGateway; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @author shenyifei + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class MessageTemplateListQryExe { + + private final MessageTemplateGateway messageTemplateGateway; + private final MessageTemplateAssembler messageTemplateAssembler; + + public List execute(MessageTemplateListQry messageTemplateListQry) { + List messageTemplateList = messageTemplateGateway.list(messageTemplateListQry); + return messageTemplateList.stream().map(messageTemplateAssembler::toMessageTemplateVO).toList(); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/MessageTemplatePageQryExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/MessageTemplatePageQryExe.java new file mode 100644 index 0000000..9cf2a3b --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/MessageTemplatePageQryExe.java @@ -0,0 +1,29 @@ +package com.xunhong.erp.turbo.biz.app.executor.query; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.xunhong.erp.turbo.api.biz.dto.qry.MessageTemplatePageQry; +import com.xunhong.erp.turbo.api.biz.dto.vo.MessageTemplateVO; +import com.xunhong.erp.turbo.biz.app.assembler.MessageTemplateAssembler; +import com.xunhong.erp.turbo.biz.domain.entity.MessageTemplate; +import com.xunhong.erp.turbo.biz.domain.gateway.MessageTemplateGateway; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @author shenyifei + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class MessageTemplatePageQryExe { + + private final MessageTemplateGateway messageTemplateGateway; + private final MessageTemplateAssembler messageTemplateAssembler; + + public IPage execute(MessageTemplatePageQry messageTemplatePageQry) { + IPage page = messageTemplateGateway.page(messageTemplatePageQry); + return page.convert(messageTemplateAssembler::toMessageTemplateVO); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/MessageTemplateShowQryExe.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/MessageTemplateShowQryExe.java new file mode 100644 index 0000000..d4cefec --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/executor/query/MessageTemplateShowQryExe.java @@ -0,0 +1,29 @@ +package com.xunhong.erp.turbo.biz.app.executor.query; + +import com.xunhong.erp.turbo.api.biz.dto.qry.MessageTemplateShowQry; +import com.xunhong.erp.turbo.api.biz.dto.vo.MessageTemplateVO; +import com.xunhong.erp.turbo.biz.app.assembler.MessageTemplateAssembler; +import com.xunhong.erp.turbo.biz.domain.entity.MessageTemplate; +import com.xunhong.erp.turbo.biz.domain.gateway.MessageTemplateGateway; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @author shenyifei + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class MessageTemplateShowQryExe { + + private final MessageTemplateAssembler messageTemplateAssembler; + private final MessageTemplateGateway messageTemplateGateway; + + public MessageTemplateVO execute(MessageTemplateShowQry messageTemplateShowQry) { + MessageTemplate messageTemplate = messageTemplateGateway.show(messageTemplateShowQry); + + return messageTemplateAssembler.toMessageTemplateVO(messageTemplate); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/MessageTemplateServiceImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/MessageTemplateServiceImpl.java new file mode 100644 index 0000000..6688abd --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/app/service/MessageTemplateServiceImpl.java @@ -0,0 +1,71 @@ +package com.xunhong.erp.turbo.biz.app.service; + +import com.xunhong.erp.turbo.api.biz.api.MessageTemplateServiceI; +import com.xunhong.erp.turbo.api.biz.dto.cmd.MessageTemplateCreateCmd; +import com.xunhong.erp.turbo.api.biz.dto.cmd.MessageTemplateDestroyCmd; +import com.xunhong.erp.turbo.api.biz.dto.cmd.MessageTemplateUpdateCmd; +import com.xunhong.erp.turbo.api.biz.dto.qry.MessageTemplateListQry; +import com.xunhong.erp.turbo.api.biz.dto.qry.MessageTemplatePageQry; +import com.xunhong.erp.turbo.api.biz.dto.qry.MessageTemplateShowQry; +import com.xunhong.erp.turbo.api.biz.dto.vo.MessageTemplateVO; +import com.xunhong.erp.turbo.base.dto.PageDTO; +import com.xunhong.erp.turbo.biz.app.executor.cmd.MessageTemplateCreateCmdExe; +import com.xunhong.erp.turbo.biz.app.executor.cmd.MessageTemplateDestroyCmdExe; +import com.xunhong.erp.turbo.biz.app.executor.cmd.MessageTemplateUpdateCmdExe; +import com.xunhong.erp.turbo.biz.app.executor.query.MessageTemplateListQryExe; +import com.xunhong.erp.turbo.biz.app.executor.query.MessageTemplatePageQryExe; +import com.xunhong.erp.turbo.biz.app.executor.query.MessageTemplateShowQryExe; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.config.annotation.DubboService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author shenyifei + */ +@Slf4j +@Service +@DubboService(interfaceClass = MessageTemplateServiceI.class, version = "1.0.0") +@RequiredArgsConstructor +public class MessageTemplateServiceImpl implements MessageTemplateServiceI { + + private final MessageTemplateCreateCmdExe messageTemplateCreateCmdExe; + private final MessageTemplateUpdateCmdExe messageTemplateUpdateCmdExe; + private final MessageTemplatePageQryExe messageTemplatePageQryExe; + private final MessageTemplateListQryExe messageTemplateListQryExe; + private final MessageTemplateShowQryExe messageTemplateShowQryExe; + private final MessageTemplateDestroyCmdExe messageTemplateDestroyCmdExe; + + @Override + public MessageTemplateVO create(MessageTemplateCreateCmd messageTemplateCreateCmd) { + return messageTemplateCreateCmdExe.execute(messageTemplateCreateCmd); + } + + @Override + public PageDTO page(MessageTemplatePageQry messageTemplatePageQry) { + return PageDTO.of(messageTemplatePageQryExe.execute(messageTemplatePageQry)); + } + + @Override + public List list(MessageTemplateListQry messageTemplateListQry) { + return messageTemplateListQryExe.execute(messageTemplateListQry); + } + + @Override + public MessageTemplateVO update(MessageTemplateUpdateCmd messageTemplateUpdateCmd) { + return messageTemplateUpdateCmdExe.execute(messageTemplateUpdateCmd); + } + + @Override + public MessageTemplateVO show(MessageTemplateShowQry messageTemplateShowQry) { + return messageTemplateShowQryExe.execute(messageTemplateShowQry); + } + + @Override + public void destroy(MessageTemplateDestroyCmd messageTemplateDestroyCmd) { + messageTemplateDestroyCmdExe.execute(messageTemplateDestroyCmd); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/MessageTemplate.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/MessageTemplate.java new file mode 100644 index 0000000..6dbb4ce --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/MessageTemplate.java @@ -0,0 +1,77 @@ +package com.xunhong.erp.turbo.biz.domain.entity; + +import com.alibaba.cola.domain.Entity; +import com.alibaba.cola.dto.DTO; +import com.xunhong.erp.turbo.api.biz.dto.enums.MessageTemplateCategoryEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.MessageTemplateSceneEnum; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * @author shenyifei + */ +@Data +@Entity +@EqualsAndHashCode(callSuper = true) +public class MessageTemplate extends DTO { + + /** + * 模板ID + */ + private Long messageTemplateId; + + /** + * 模板分类:1_采购单消息模板; + */ + private MessageTemplateCategoryEnum templateCategory; + + /** + * 触发场景:1_待审核;2_待审批;3_审批通过;4_审核驳回;5_审批驳回 + */ + private MessageTemplateSceneEnum templateScene; + + /** + * 模板标题 + */ + private String titleTemplate; + + /** + * 内容模板 + */ + private String contentTemplate; + + /** + * 模板描述 + */ + private String description; + + /** + * 模板变量定义 + */ + private String variables; + + /** + * 通知角色 + */ + private List roleIds; + + /** + * 备注 + */ + private String remark; + + /** + * 状态:1_启用;0_禁用 + */ + private Boolean status; + + /** + * 创建时间 + */ + private LocalDateTime createdAt; + +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/MessageTemplateGateway.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/MessageTemplateGateway.java new file mode 100644 index 0000000..f6f9a4b --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/gateway/MessageTemplateGateway.java @@ -0,0 +1,30 @@ +package com.xunhong.erp.turbo.biz.domain.gateway; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.xunhong.erp.turbo.api.biz.dto.cmd.MessageTemplateCreateCmd; +import com.xunhong.erp.turbo.api.biz.dto.cmd.MessageTemplateDestroyCmd; +import com.xunhong.erp.turbo.api.biz.dto.cmd.MessageTemplateUpdateCmd; +import com.xunhong.erp.turbo.api.biz.dto.qry.MessageTemplateListQry; +import com.xunhong.erp.turbo.api.biz.dto.qry.MessageTemplatePageQry; +import com.xunhong.erp.turbo.api.biz.dto.qry.MessageTemplateShowQry; +import com.xunhong.erp.turbo.biz.domain.entity.MessageTemplate; + +import java.util.List; + +/** + * @author shenyifei + */ +public interface MessageTemplateGateway { + MessageTemplate save(MessageTemplateCreateCmd messageTemplateCreateCmd); + + IPage page(MessageTemplatePageQry messageTemplatePageQry); + + List list(MessageTemplateListQry messageTemplateListQry); + + MessageTemplate update(MessageTemplateUpdateCmd messageTemplateUpdateCmd); + + MessageTemplate show(MessageTemplateShowQry messageTemplateShowQry); + + void destroy(MessageTemplateDestroyCmd messageTemplateDestroyCmd); +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/MessageTemplateConvert.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/MessageTemplateConvert.java new file mode 100644 index 0000000..beda091 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/MessageTemplateConvert.java @@ -0,0 +1,32 @@ +package com.xunhong.erp.turbo.biz.infrastructure.convert; + +import com.xunhong.erp.turbo.api.biz.dto.cmd.MessageTemplateCreateCmd; +import com.xunhong.erp.turbo.api.biz.dto.cmd.MessageTemplateUpdateCmd; +import com.xunhong.erp.turbo.biz.domain.entity.MessageTemplate; +import com.xunhong.erp.turbo.biz.infrastructure.entity.MessageTemplateDO; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.MappingTarget; +import org.mapstruct.NullValueCheckStrategy; + +/** + * @author shenyifei + */ +@Mapper(componentModel = "spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS) +public interface MessageTemplateConvert { + + MessageTemplate toMessageTemplate(MessageTemplateDO messageTemplateDO); + + @Mapping(target = "version", ignore = true) + @Mapping(target = "updatedAt", ignore = true) + @Mapping(target = "isDelete", ignore = true) + @Mapping(target = "createdAt", ignore = true) + MessageTemplateDO toMessageTemplateDO(MessageTemplateCreateCmd messageTemplateCreateCmd); + + @Mapping(target = "version", ignore = true) + @Mapping(target = "updatedAt", ignore = true) + @Mapping(target = "isDelete", ignore = true) + @Mapping(target = "createdAt", ignore = true) + void toMessageTemplateDO(@MappingTarget MessageTemplateDO messageTemplateDO, MessageTemplateUpdateCmd messageTemplateUpdateCmd); +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/MessageTemplateDO.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/MessageTemplateDO.java new file mode 100644 index 0000000..a0d39ba --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/MessageTemplateDO.java @@ -0,0 +1,85 @@ +package com.xunhong.erp.turbo.biz.infrastructure.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import com.xunhong.erp.turbo.api.biz.dto.enums.MessageTemplateCategoryEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.MessageTemplateSceneEnum; +import com.xunhong.erp.turbo.datasource.domain.entity.BaseDO; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * @author shenyifei + */ +@Data +@TableName(value = "message_template", autoResultMap = true) +@EqualsAndHashCode(callSuper = true) +public class MessageTemplateDO extends BaseDO { + + /** + * 模板ID + */ + @TableId(value = "message_template_id", type = IdType.ASSIGN_ID) + private Long messageTemplateId; + + /** + * 模板分类:1_采购单消息模板; + */ + @TableField(value = "template_category") + private MessageTemplateCategoryEnum templateCategory; + + /** + * 触发场景:1_待审核;2_待审批;3_审批通过;4_审核驳回;5_审批驳回 + */ + @TableField(value = "template_scene") + private MessageTemplateSceneEnum templateScene; + + /** + * 模板标题 + */ + @TableField(value = "title_template") + private String titleTemplate; + + /** + * 内容模板 + */ + @TableField(value = "content_template") + private String contentTemplate; + + /** + * 模板描述 + */ + @TableField(value = "description") + private String description; + + /** + * 模板变量定义 + */ + @TableField(value = "variables") + private String variables; + + /** + * 通知角色 + */ + @TableField(value = "role_ids", typeHandler = JacksonTypeHandler.class) + private List roleIds; + + /** + * 备注 + */ + @TableField(value = "remark") + private String remark; + + /** + * 状态:1_启用;0_禁用 + */ + @TableField(value = "status") + private Boolean status; + +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/MessageTemplateGatewayImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/MessageTemplateGatewayImpl.java new file mode 100644 index 0000000..38d3d79 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/MessageTemplateGatewayImpl.java @@ -0,0 +1,92 @@ +package com.xunhong.erp.turbo.biz.infrastructure.gateway; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.xunhong.erp.turbo.api.biz.dto.cmd.MessageTemplateCreateCmd; +import com.xunhong.erp.turbo.api.biz.dto.cmd.MessageTemplateDestroyCmd; +import com.xunhong.erp.turbo.api.biz.dto.cmd.MessageTemplateUpdateCmd; +import com.xunhong.erp.turbo.api.biz.dto.qry.MessageTemplateListQry; +import com.xunhong.erp.turbo.api.biz.dto.qry.MessageTemplatePageQry; +import com.xunhong.erp.turbo.api.biz.dto.qry.MessageTemplateShowQry; +import com.xunhong.erp.turbo.biz.domain.entity.MessageTemplate; +import com.xunhong.erp.turbo.biz.domain.gateway.MessageTemplateGateway; +import com.xunhong.erp.turbo.biz.infrastructure.convert.MessageTemplateConvert; +import com.xunhong.erp.turbo.biz.infrastructure.entity.MessageTemplateDO; +import com.xunhong.erp.turbo.biz.infrastructure.mapper.MessageTemplateMapper; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @author shenyifei + */ +@Repository +@RequiredArgsConstructor +public class MessageTemplateGatewayImpl implements MessageTemplateGateway { + private final MessageTemplateMapper messageTemplateMapper; + private final MessageTemplateConvert messageTemplateConvert; + + @Override + public MessageTemplate save(MessageTemplateCreateCmd messageTemplateCreateCmd) { + MessageTemplateDO messageTemplateDO = messageTemplateConvert.toMessageTemplateDO(messageTemplateCreateCmd); + messageTemplateMapper.insert(messageTemplateDO); + + return messageTemplateConvert.toMessageTemplate(messageTemplateDO); + } + + @Override + public IPage page(MessageTemplatePageQry messageTemplatePageQry) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(MessageTemplateDO.class); + queryWrapper.orderByDesc(MessageTemplateDO::getCreatedAt); + + IPage page = new Page<>(messageTemplatePageQry.getPageIndex(), messageTemplatePageQry.getPageSize()); + page = messageTemplateMapper.selectPage(page, queryWrapper); + + return page.convert(messageTemplateConvert::toMessageTemplate); + } + + @Override + public List list(MessageTemplateListQry messageTemplateListQry) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(MessageTemplateDO.class); + List messageTemplateDOList = messageTemplateMapper.selectList(queryWrapper); + return messageTemplateDOList.stream().map(messageTemplateConvert::toMessageTemplate).toList(); + } + + @Override + public MessageTemplate update(MessageTemplateUpdateCmd messageTemplateUpdateCmd) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(MessageTemplateDO.class); + queryWrapper.eq(MessageTemplateDO::getMessageTemplateId, messageTemplateUpdateCmd.getMessageTemplateId()); + queryWrapper.last("limit 1"); + + MessageTemplateDO messageTemplateDO = messageTemplateMapper.selectOne(queryWrapper); + + messageTemplateConvert.toMessageTemplateDO(messageTemplateDO, messageTemplateUpdateCmd); + messageTemplateMapper.updateById(messageTemplateDO); + + return messageTemplateConvert.toMessageTemplate(messageTemplateDO); + } + + @Override + public MessageTemplate show(MessageTemplateShowQry messageTemplateShowQry) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(MessageTemplateDO.class); + queryWrapper.eq(MessageTemplateDO::getMessageTemplateId, messageTemplateShowQry.getMessageTemplateId()); + queryWrapper.last("limit 1"); + + MessageTemplateDO messageTemplateDO = messageTemplateMapper.selectOne(queryWrapper); + return messageTemplateConvert.toMessageTemplate(messageTemplateDO); + } + + @Override + public void destroy(MessageTemplateDestroyCmd messageTemplateDestroyCmd) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(MessageTemplateDO.class); + queryWrapper.eq(MessageTemplateDO::getMessageTemplateId, messageTemplateDestroyCmd.getMessageTemplateId()); + queryWrapper.last("limit 1"); + + MessageTemplateDO messageTemplateDO = messageTemplateMapper.selectOne(queryWrapper); + messageTemplateDO.deleteById(); + } +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/MessageTemplateMapper.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/MessageTemplateMapper.java new file mode 100644 index 0000000..a5828b0 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/mapper/MessageTemplateMapper.java @@ -0,0 +1,13 @@ +package com.xunhong.erp.turbo.biz.infrastructure.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.xunhong.erp.turbo.biz.infrastructure.entity.MessageTemplateDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author shenyifei + */ +@Mapper +public interface MessageTemplateMapper extends BaseMapper { +} + diff --git a/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/MessageTemplateMapper.xml b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/MessageTemplateMapper.xml new file mode 100644 index 0000000..8b27cc5 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/MessageTemplateMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/MessageTemplateServiceI.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/MessageTemplateServiceI.java new file mode 100644 index 0000000..a3035f4 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/api/MessageTemplateServiceI.java @@ -0,0 +1,30 @@ +package com.xunhong.erp.turbo.api.biz.api; + +import com.xunhong.erp.turbo.api.biz.dto.cmd.MessageTemplateCreateCmd; +import com.xunhong.erp.turbo.api.biz.dto.cmd.MessageTemplateDestroyCmd; +import com.xunhong.erp.turbo.api.biz.dto.cmd.MessageTemplateUpdateCmd; +import com.xunhong.erp.turbo.api.biz.dto.qry.MessageTemplateListQry; +import com.xunhong.erp.turbo.api.biz.dto.qry.MessageTemplatePageQry; +import com.xunhong.erp.turbo.api.biz.dto.qry.MessageTemplateShowQry; +import com.xunhong.erp.turbo.api.biz.dto.vo.MessageTemplateVO; +import com.xunhong.erp.turbo.base.dto.PageDTO; + +import java.util.List; + +/** + * @author shenyifei + */ +public interface MessageTemplateServiceI { + MessageTemplateVO create(MessageTemplateCreateCmd messageTemplateCreateCmd); + + PageDTO page(MessageTemplatePageQry messageTemplatePageQry); + + List list(MessageTemplateListQry messageTemplateListQry); + + MessageTemplateVO update(MessageTemplateUpdateCmd messageTemplateUpdateCmd); + + MessageTemplateVO show(MessageTemplateShowQry messageTemplateShowQry); + + void destroy(MessageTemplateDestroyCmd messageTemplateDestroyCmd); +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/MessageTemplateCreateCmd.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/MessageTemplateCreateCmd.java new file mode 100644 index 0000000..ff5cc67 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/MessageTemplateCreateCmd.java @@ -0,0 +1,88 @@ +package com.xunhong.erp.turbo.api.biz.dto.cmd; + +import com.xunhong.erp.turbo.api.biz.dto.enums.MessageTemplateCategoryEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.MessageTemplateSceneEnum; +import com.xunhong.erp.turbo.base.dto.Command; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * @author shenyifei + */ +@Data +@Schema(title = "消息模板创建") +@EqualsAndHashCode(callSuper = true) +public class MessageTemplateCreateCmd extends Command { + + /** + * 模板ID + */ + @Schema(title = "模板ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED) + private Long messageTemplateId; + + /** + * 模板分类:1_采购单消息模板; + */ + @Schema(title = "模板分类:1_采购单消息模板;", requiredMode = Schema.RequiredMode.REQUIRED) + private MessageTemplateCategoryEnum templateCategory; + + /** + * 触发场景:1_待审核;2_待审批;3_审批通过;4_审核驳回;5_审批驳回 + */ + @Schema(title = "触发场景:1_待审核;2_待审批;3_审批通过;4_审核驳回;5_审批驳回", requiredMode = Schema.RequiredMode.REQUIRED) + private MessageTemplateSceneEnum templateScene; + + /** + * 模板标题 + */ + @Schema(title = "模板标题") + private String titleTemplate; + + /** + * 内容模板 + */ + @Schema(title = "内容模板") + private String contentTemplate; + + /** + * 模板描述 + */ + @Schema(title = "模板描述") + private String description; + + /** + * 模板变量定义 + */ + @Schema(title = "模板变量定义") + private String variables; + + /** + * 通知角色 + */ + @Schema(title = "通知角色") + private List roleIds; + + /** + * 备注 + */ + @Schema(title = "备注") + private String remark; + + /** + * 状态:1_启用;0_禁用 + */ + @Schema(title = "状态:1_启用;0_禁用", requiredMode = Schema.RequiredMode.REQUIRED) + private Boolean status; + + /** + * 创建时间 + */ + @Schema(title = "创建时间") + private LocalDateTime createdAt; + +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/MessageTemplateDestroyCmd.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/MessageTemplateDestroyCmd.java new file mode 100644 index 0000000..a7440ad --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/MessageTemplateDestroyCmd.java @@ -0,0 +1,19 @@ +package com.xunhong.erp.turbo.api.biz.dto.cmd; + +import com.xunhong.erp.turbo.base.dto.Command; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author shenyifei + */ +@Data +@Schema(title = "删除消息模板") +@EqualsAndHashCode(callSuper = true) +public class MessageTemplateDestroyCmd extends Command { + + @Schema(title = "消息模板ID", requiredMode = Schema.RequiredMode.REQUIRED, type = "string") + private Long messageTemplateId; +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/MessageTemplateUpdateCmd.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/MessageTemplateUpdateCmd.java new file mode 100644 index 0000000..a5deba5 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/MessageTemplateUpdateCmd.java @@ -0,0 +1,18 @@ +package com.xunhong.erp.turbo.api.biz.dto.cmd; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author shenyifei + */ +@Data +@Schema(title = "消息模板更新") +@EqualsAndHashCode(callSuper = true) +public class MessageTemplateUpdateCmd extends MessageTemplateCreateCmd { + + @Schema(title = "消息模板ID", requiredMode = Schema.RequiredMode.REQUIRED, type = "string") + private Long messageTemplateId; +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/MessageTemplateCategoryEnum.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/MessageTemplateCategoryEnum.java new file mode 100644 index 0000000..a6a9cbf --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/MessageTemplateCategoryEnum.java @@ -0,0 +1,27 @@ +package com.xunhong.erp.turbo.api.biz.dto.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 消息模板分类枚举 + * + * @author shenyifei + */ +@Getter +@AllArgsConstructor +public enum MessageTemplateCategoryEnum { + + /** + * 模板分类:1_采购单消息模板; + */ + PURCHASE_ORDER_MESSAGE_TEMPLATE(1, "采购单消息模板"), + + ; + @EnumValue + private final Integer type; + + private final String message; + +} diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/MessageTemplateSceneEnum.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/MessageTemplateSceneEnum.java new file mode 100644 index 0000000..3b093a4 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/enums/MessageTemplateSceneEnum.java @@ -0,0 +1,31 @@ +package com.xunhong.erp.turbo.api.biz.dto.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 消息模板分类枚举 + * + * @author shenyifei + */ +@Getter +@AllArgsConstructor +public enum MessageTemplateSceneEnum { + + /** + * 触发场景:1_待审核;2_待审批;3_审批通过;4_审核驳回;5_审批驳回 + */ + WAIT_AUDIT(1, "待审核"), + WAIT_APPROVE(2, "待审批"), + APPROVE_PASS(3, "审批通过"), + AUDIT_REJECT(4, "审核驳回"), + APPROVE_REJECT(5, "审批驳回"), + ; + + @EnumValue + private final Integer type; + + private final String message; + +} diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/MessageTemplateListQry.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/MessageTemplateListQry.java new file mode 100644 index 0000000..0dd23a6 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/MessageTemplateListQry.java @@ -0,0 +1,19 @@ +package com.xunhong.erp.turbo.api.biz.dto.qry; + +import com.xunhong.erp.turbo.base.dto.Query; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author shenyifei + */ +@Data +@Schema(title = "消息模板列表查询") +@EqualsAndHashCode(callSuper = true) +public class MessageTemplateListQry extends Query { + + @Schema(title = "消息模板ID", type = "string") + private Long messageTemplateId; +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/MessageTemplatePageQry.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/MessageTemplatePageQry.java new file mode 100644 index 0000000..bd005e2 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/MessageTemplatePageQry.java @@ -0,0 +1,19 @@ +package com.xunhong.erp.turbo.api.biz.dto.qry; + +import com.xunhong.erp.turbo.base.dto.PageQuery; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author shenyifei + */ +@Data +@Schema(title = "消息模板分页查询") +@EqualsAndHashCode(callSuper = true) +public class MessageTemplatePageQry extends PageQuery { + + @Schema(title = "消息模板ID", type = "string") + private Long messageTemplateId; +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/MessageTemplateShowQry.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/MessageTemplateShowQry.java new file mode 100644 index 0000000..0325775 --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/qry/MessageTemplateShowQry.java @@ -0,0 +1,19 @@ +package com.xunhong.erp.turbo.api.biz.dto.qry; + +import com.xunhong.erp.turbo.base.dto.Query; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author shenyifei + */ +@Data +@Schema(title = "消息模板查询") +@EqualsAndHashCode(callSuper = true) +public class MessageTemplateShowQry extends Query { + + @Schema(title = "消息模板ID", type = "string") + private Long messageTemplateId; +} + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/MessageTemplateVO.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/MessageTemplateVO.java new file mode 100644 index 0000000..2e3acfc --- /dev/null +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/MessageTemplateVO.java @@ -0,0 +1,88 @@ +package com.xunhong.erp.turbo.api.biz.dto.vo; + +import com.alibaba.cola.dto.DTO; +import com.xunhong.erp.turbo.api.biz.dto.enums.MessageTemplateCategoryEnum; +import com.xunhong.erp.turbo.api.biz.dto.enums.MessageTemplateSceneEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * @author shenyifei + */ +@Data +@Schema(title = "消息模板") +@EqualsAndHashCode(callSuper = true) +public class MessageTemplateVO extends DTO { + + /** + * 模板ID + */ + @Schema(title = "模板ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED) + private Long messageTemplateId; + + /** + * 模板分类:1_采购单消息模板; + */ + @Schema(title = "模板分类:1_采购单消息模板;", requiredMode = Schema.RequiredMode.REQUIRED) + private MessageTemplateCategoryEnum templateCategory; + + /** + * 触发场景:1_待审核;2_待审批;3_审批通过;4_审核驳回;5_审批驳回 + */ + @Schema(title = "触发场景:1_待审核;2_待审批;3_审批通过;4_审核驳回;5_审批驳回", requiredMode = Schema.RequiredMode.REQUIRED) + private MessageTemplateSceneEnum templateScene; + + /** + * 模板标题 + */ + @Schema(title = "模板标题") + private String titleTemplate; + + /** + * 内容模板 + */ + @Schema(title = "内容模板") + private String contentTemplate; + + /** + * 模板描述 + */ + @Schema(title = "模板描述") + private String description; + + /** + * 模板变量定义 + */ + @Schema(title = "模板变量定义") + private String variables; + + /** + * 通知角色 + */ + @Schema(title = "通知角色") + private List roleIds; + + /** + * 备注 + */ + @Schema(title = "备注") + private String remark; + + /** + * 状态:1_启用;0_禁用 + */ + @Schema(title = "状态:1_启用;0_禁用", requiredMode = Schema.RequiredMode.REQUIRED) + private Boolean status; + + /** + * 创建时间 + */ + @Schema(title = "创建时间") + private LocalDateTime createdAt; + +} +