feat(message): 添加消息模板功能模块
- 新增 MessageTemplateController 提供 REST API 接口 - 定义 MessageTemplateServiceI 接口及其实现类 - 创建消息模板相关的 DTO 类 (CreateCmd、UpdateCmd、DestroyCmd、Qry、VO) - 添加消息模板分类和场景枚举类 - 实现消息模板的数据访问层和业务逻辑层 - 集成 MyBatis-Plus 进行数据库操作 - 添加 MapStruct 映射转换器处理对象转换
This commit is contained in:
parent
e02645531a
commit
8121f5cc5b
@ -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<MessageTemplateVO> listMessageTemplate(@ModelAttribute @Validated MessageTemplateListQry messageTemplateListQry) {
|
||||
return MultiResponse.of(messageTemplateService.list(messageTemplateListQry));
|
||||
}
|
||||
|
||||
@SaCheckLogin
|
||||
@PostMapping("createMessageTemplate")
|
||||
@Operation(summary = "创建消息模板", method = "POST")
|
||||
public SingleResponse<MessageTemplateVO> createMessageTemplate(@RequestBody @Validated MessageTemplateCreateCmd messageTemplateCreateCmd) {
|
||||
return SingleResponse.of(messageTemplateService.create(messageTemplateCreateCmd));
|
||||
}
|
||||
|
||||
@SaCheckLogin
|
||||
@GetMapping("showMessageTemplate")
|
||||
@Operation(summary = "消息模板详情", method = "GET")
|
||||
public SingleResponse<MessageTemplateVO> showMessageTemplate(@ModelAttribute @Validated MessageTemplateShowQry messageTemplateShowQry) {
|
||||
return SingleResponse.of(messageTemplateService.show(messageTemplateShowQry));
|
||||
}
|
||||
|
||||
@SaCheckLogin
|
||||
@GetMapping("pageMessageTemplate")
|
||||
@Operation(summary = "消息模板列表", method = "GET")
|
||||
public PageResponse<MessageTemplateVO> pageMessageTemplate(@ModelAttribute @Validated MessageTemplatePageQry messageTemplatePageQry) {
|
||||
PageDTO<MessageTemplateVO> 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<MessageTemplateVO> 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();
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
@ -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<MessageTemplateVO> execute(MessageTemplateListQry messageTemplateListQry) {
|
||||
List<MessageTemplate> messageTemplateList = messageTemplateGateway.list(messageTemplateListQry);
|
||||
return messageTemplateList.stream().map(messageTemplateAssembler::toMessageTemplateVO).toList();
|
||||
}
|
||||
}
|
||||
|
||||
@ -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<MessageTemplateVO> execute(MessageTemplatePageQry messageTemplatePageQry) {
|
||||
IPage<MessageTemplate> page = messageTemplateGateway.page(messageTemplatePageQry);
|
||||
return page.convert(messageTemplateAssembler::toMessageTemplateVO);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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<MessageTemplateVO> page(MessageTemplatePageQry messageTemplatePageQry) {
|
||||
return PageDTO.of(messageTemplatePageQryExe.execute(messageTemplatePageQry));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MessageTemplateVO> 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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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<Long> roleIds;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 状态:1_启用;0_禁用
|
||||
*/
|
||||
private Boolean status;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createdAt;
|
||||
|
||||
}
|
||||
|
||||
@ -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<MessageTemplate> page(MessageTemplatePageQry messageTemplatePageQry);
|
||||
|
||||
List<MessageTemplate> list(MessageTemplateListQry messageTemplateListQry);
|
||||
|
||||
MessageTemplate update(MessageTemplateUpdateCmd messageTemplateUpdateCmd);
|
||||
|
||||
MessageTemplate show(MessageTemplateShowQry messageTemplateShowQry);
|
||||
|
||||
void destroy(MessageTemplateDestroyCmd messageTemplateDestroyCmd);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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<MessageTemplateDO> {
|
||||
|
||||
/**
|
||||
* 模板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<Long> roleIds;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@TableField(value = "remark")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 状态:1_启用;0_禁用
|
||||
*/
|
||||
@TableField(value = "status")
|
||||
private Boolean status;
|
||||
|
||||
}
|
||||
|
||||
@ -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<MessageTemplate> page(MessageTemplatePageQry messageTemplatePageQry) {
|
||||
LambdaQueryWrapper<MessageTemplateDO> queryWrapper = Wrappers.lambdaQuery(MessageTemplateDO.class);
|
||||
queryWrapper.orderByDesc(MessageTemplateDO::getCreatedAt);
|
||||
|
||||
IPage<MessageTemplateDO> page = new Page<>(messageTemplatePageQry.getPageIndex(), messageTemplatePageQry.getPageSize());
|
||||
page = messageTemplateMapper.selectPage(page, queryWrapper);
|
||||
|
||||
return page.convert(messageTemplateConvert::toMessageTemplate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MessageTemplate> list(MessageTemplateListQry messageTemplateListQry) {
|
||||
LambdaQueryWrapper<MessageTemplateDO> queryWrapper = Wrappers.lambdaQuery(MessageTemplateDO.class);
|
||||
List<MessageTemplateDO> messageTemplateDOList = messageTemplateMapper.selectList(queryWrapper);
|
||||
return messageTemplateDOList.stream().map(messageTemplateConvert::toMessageTemplate).toList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public MessageTemplate update(MessageTemplateUpdateCmd messageTemplateUpdateCmd) {
|
||||
LambdaQueryWrapper<MessageTemplateDO> 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<MessageTemplateDO> 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<MessageTemplateDO> queryWrapper = Wrappers.lambdaQuery(MessageTemplateDO.class);
|
||||
queryWrapper.eq(MessageTemplateDO::getMessageTemplateId, messageTemplateDestroyCmd.getMessageTemplateId());
|
||||
queryWrapper.last("limit 1");
|
||||
|
||||
MessageTemplateDO messageTemplateDO = messageTemplateMapper.selectOne(queryWrapper);
|
||||
messageTemplateDO.deleteById();
|
||||
}
|
||||
}
|
||||
|
||||
@ -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<MessageTemplateDO> {
|
||||
}
|
||||
|
||||
@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper
|
||||
namespace="com.xunhong.erp.turbo.biz.infrastructure.mapper.MessageTemplateMapper">
|
||||
<resultMap id="BaseResultMap"
|
||||
type="com.xunhong.erp.turbo.biz.infrastructure.entity.MessageTemplateDO">
|
||||
<result property="messageTemplateId" column="message_template_id"/>
|
||||
<result property="templateCategory" column="template_category"/>
|
||||
<result property="templateScene" column="template_scene"/>
|
||||
<result property="titleTemplate" column="title_template"/>
|
||||
<result property="contentTemplate" column="content_template"/>
|
||||
<result property="description" column="description"/>
|
||||
<result property="variables" column="variables"/>
|
||||
<result property="roleIds" column="role_ids"
|
||||
typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="createdAt" column="created_at"/>
|
||||
<result property="createdAt" column="created_at"/>
|
||||
<result property="updatedAt" column="updated_at"/>
|
||||
<result property="isDelete" column="is_delete"/>
|
||||
<result property="version" column="version"/>
|
||||
</resultMap>
|
||||
</mapper>
|
||||
|
||||
@ -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<MessageTemplateVO> page(MessageTemplatePageQry messageTemplatePageQry);
|
||||
|
||||
List<MessageTemplateVO> list(MessageTemplateListQry messageTemplateListQry);
|
||||
|
||||
MessageTemplateVO update(MessageTemplateUpdateCmd messageTemplateUpdateCmd);
|
||||
|
||||
MessageTemplateVO show(MessageTemplateShowQry messageTemplateShowQry);
|
||||
|
||||
void destroy(MessageTemplateDestroyCmd messageTemplateDestroyCmd);
|
||||
}
|
||||
|
||||
@ -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<Long> roleIds;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@Schema(title = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 状态:1_启用;0_禁用
|
||||
*/
|
||||
@Schema(title = "状态:1_启用;0_禁用", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Boolean status;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@Schema(title = "创建时间")
|
||||
private LocalDateTime createdAt;
|
||||
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
}
|
||||
@ -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;
|
||||
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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<Long> roleIds;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@Schema(title = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 状态:1_启用;0_禁用
|
||||
*/
|
||||
@Schema(title = "状态:1_启用;0_禁用", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Boolean status;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@Schema(title = "创建时间")
|
||||
private LocalDateTime createdAt;
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user