Ver código fonte

补录订单模板的开发

dongxin 1 ano atrás
pai
commit
c2b853a85f
20 arquivos alterados com 444 adições e 19 exclusões
  1. 48 0
      commons/src/main/java/com/jzg/commons/entity/dto/MessageAddParam.java
  2. 23 0
      commons/src/main/java/com/jzg/commons/entity/enums/MessageCodeEnum.java
  3. 18 0
      commons/src/main/java/com/jzg/commons/entity/enums/MessageSourceEnum.java
  4. 18 0
      commons/src/main/java/com/jzg/commons/entity/enums/MessageTopicEnum.java
  5. 18 0
      commons/src/main/java/com/jzg/commons/entity/enums/MessageTypeEnum.java
  6. 0 3
      commons/src/main/java/com/jzg/commons/entity/po/SysMessage.java
  7. 1 1
      commons/src/main/java/com/jzg/commons/entity/po/SysMessageTemplate.java
  8. 12 0
      commons/src/main/java/com/jzg/commons/util/StringUtils.java
  9. 11 3
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/client/OrgClient.java
  10. 69 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/consumer/listener/enhance/EnhanceOrderMessageListener.java
  11. 40 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/consumer/message/OrderMessage.java
  12. 47 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/consumer/template/OrderMessageTemplate.java
  13. 39 4
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java
  14. 13 0
      tenant/organization/src/main/java/com/jzg/organization/controller/MessageController.java
  15. 35 0
      tenant/organization/src/main/java/com/jzg/organization/controller/MessageTemplateController.java
  16. 8 8
      tenant/organization/src/main/java/com/jzg/organization/controller/mq/EnhanceProduceController.java
  17. 7 0
      tenant/organization/src/main/java/com/jzg/organization/service/SysMessageService.java
  18. 11 0
      tenant/organization/src/main/java/com/jzg/organization/service/SysMessageTemplateService.java
  19. 11 0
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysMessageServiceImpl.java
  20. 15 0
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysMessageTemplateServiceImpl.java

+ 48 - 0
commons/src/main/java/com/jzg/commons/entity/dto/MessageAddParam.java

@@ -0,0 +1,48 @@
+package com.jzg.commons.entity.dto;
+
+import com.jzg.commons.entity.po.SysMessageTemplate;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import lombok.Data;
+
+@Schema(description = "消息表新增dto")
+@Data
+public class MessageAddParam {
+
+    /** 消息标题 */
+    @Schema(description = "消息标题")
+    @Size(min=1,max=50,message = "消息标题长度不能大于50")
+    @NotNull(message = "消息标题不能为空")
+    private String title;
+
+    /** 消息内容 */
+    @Schema(description = "消息内容")
+    @NotNull(message = "消息内容不能为空")
+    private String content;
+
+    /** 模版编号 */
+    @Schema(description = "模版id")
+    @NotNull(message = "模版id不能为空")
+    private String tplId;
+
+    /** 模版编号 */
+    @Schema(description = "模版编号")
+    @NotNull(message = "模版编号不能为空")
+    private String tplCode;
+
+    /**
+     * 接收方
+     */
+    @Schema(description = "接收方")
+    @NotNull(message = "接收方不能为空")
+    private String receive;
+
+    public MessageAddParam(String content, SysMessageTemplate template) {
+        this.content = content;
+        this.tplCode = template.getTplCode();
+        this.title = template.getTplName();
+        this.tplId = template.getId();
+        this.receive = template.getReceive();
+    }
+}

+ 23 - 0
commons/src/main/java/com/jzg/commons/entity/enums/MessageCodeEnum.java

@@ -0,0 +1,23 @@
+package com.jzg.commons.entity.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 模板code枚举
+ */
+@Getter
+@AllArgsConstructor
+public enum MessageCodeEnum {
+
+    /**测试模板1提醒*/
+    TEMPLATE_1("template_1","测试模板1"),
+    /**测试模板2提醒*/
+    TEMPLATE_2("template_2","测试模板2"),
+    /**补录订单提交审核提醒*/
+    TEMPLATE_3("template_3","补录订单提交审核");
+
+    private final String code;
+
+    private final String desc;
+}

+ 18 - 0
commons/src/main/java/com/jzg/commons/entity/enums/MessageSourceEnum.java

@@ -0,0 +1,18 @@
+package com.jzg.commons.entity.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 消息来源枚举
+ */
+@Getter
+@AllArgsConstructor
+public enum MessageSourceEnum {
+
+    ORDERREVIEW("orderReview", "补录订单审核");
+
+    private final String code;
+
+    private final String desc;
+}

+ 18 - 0
commons/src/main/java/com/jzg/commons/entity/enums/MessageTopicEnum.java

@@ -0,0 +1,18 @@
+package com.jzg.commons.entity.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 消息主题枚举
+ */
+@Getter
+@AllArgsConstructor
+public enum MessageTopicEnum {
+
+    ROCKET_ORDER("rocket_order", "订单主题");
+
+    private final String code;
+
+    private final String desc;
+}

+ 18 - 0
commons/src/main/java/com/jzg/commons/entity/enums/MessageTypeEnum.java

@@ -0,0 +1,18 @@
+package com.jzg.commons.entity.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 消息标签枚举
+ */
+@Getter
+@AllArgsConstructor
+public enum MessageTypeEnum {
+
+    ORDER("ORDER", "订单类型");
+
+    private final String code;
+
+    private final String desc;
+}

+ 0 - 3
commons/src/main/java/com/jzg/commons/entity/po/SysMessage.java

@@ -1,8 +1,5 @@
 package com.jzg.commons.entity.po;
 
-import java.io.Serializable;
-import java.util.Date;
-
 import com.jzg.commons.core.base.BaseModel;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;

+ 1 - 1
commons/src/main/java/com/jzg/commons/entity/po/SysMessageTemplate.java

@@ -23,7 +23,7 @@ public class SysMessageTemplate extends BaseModel {
 
     /** 模版ID */
     @Schema(description = "模版ID")
-    private Long id;
+    private String id;
 
     /** 模版编号 */
     @Schema(description = "模版编号")

+ 12 - 0
commons/src/main/java/com/jzg/commons/util/StringUtils.java

@@ -2,6 +2,7 @@ package com.jzg.commons.util;
 
 import com.jzg.commons.constants.Constants;
 import com.jzg.commons.text.StrFormatter;
+import org.apache.commons.lang3.text.StrSubstitutor;
 import org.springframework.util.AntPathMatcher;
 
 import java.util.*;
@@ -771,4 +772,15 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
     public static int toInt(Object object) {
         return toInt(object, 0);
     }
+
+    /**
+     * 文本替换
+     * @param content
+     * @param valuesMap
+     * @return
+     */
+    public static String replaceContent(String content, Map<String, Object> valuesMap) {
+        StrSubstitutor strSubstitutor = new StrSubstitutor(valuesMap);
+        return strSubstitutor.replace(content);
+    }
 }

+ 11 - 3
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/client/OrgClient.java

@@ -2,12 +2,13 @@ package com.jzg.quotation.commons.client;
 
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.agreement.po.PtlAgreementAttribution;
+import com.jzg.commons.entity.dto.MessageAddParam;
+import com.jzg.commons.entity.enums.MessageCodeEnum;
 import com.jzg.commons.entity.po.PtlAgreement;
+import com.jzg.commons.entity.po.SysMessageTemplate;
 import com.jzg.commons.entity.vo.PersonAreaVo;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestHeader;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
@@ -29,4 +30,11 @@ public interface OrgClient {
                                                          @RequestHeader("Authorization") String authToken,
                                                          @RequestHeader("system_code")String systemCode);
 
+    @GetMapping(value = "/messageTemplate/templateGet")
+    public HttpResult<SysMessageTemplate> templateGet(@RequestParam String messageCodeEnum,
+                                                      @RequestHeader("Authorization") String authToken);
+
+    @PostMapping(value = "/message/messageAdd")
+    public HttpResult<SysMessageTemplate> messageAdd(@RequestBody MessageAddParam param,
+                                                      @RequestHeader("Authorization") String authToken);
 }

+ 69 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/consumer/listener/enhance/EnhanceOrderMessageListener.java

@@ -0,0 +1,69 @@
+package com.jzg.quotation.summary.consumer.listener.enhance;
+
+import com.jzg.commons.core.base.BaseController;
+import com.jzg.commons.entity.dto.MessageAddParam;
+import com.jzg.commons.entity.po.SysMessage;
+import com.jzg.commons.entity.po.SysMessageTemplate;
+import com.jzg.handler.EnhanceMessageHandler;
+import com.jzg.quotation.commons.client.OrgClient;
+import com.jzg.quotation.summary.consumer.message.OrderMessage;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
+import org.apache.rocketmq.spring.core.RocketMQListener;
+import org.springframework.stereotype.Component;
+
+/**
+ * 增强订单类消息消费者
+ */
+@Slf4j
+@Component
+@RocketMQMessageListener(
+        consumerGroup = "enhance_consumer_group",
+        topic = "rocket_order",
+        selectorExpression = "*",
+        consumeThreadMax = 5 //默认是64个线程并发消息,配置 consumeThreadMax 参数指定并发消费线程数,避免太大导致资源不够
+)
+@RequiredArgsConstructor
+public class EnhanceOrderMessageListener extends EnhanceMessageHandler<OrderMessage> implements RocketMQListener<OrderMessage> {
+
+    private final OrgClient orgClient;
+    @Override
+    protected void handleMessage(OrderMessage message) throws Exception {
+        // 此时这里才是最终的业务处理,代码只需要处理资源类关闭异常,其他的可以交给父类重试
+        System.out.println("业务消息处理:"+message.getBody());
+        // 保存消息
+        MessageAddParam param = new MessageAddParam(message.getBody(),message.getTemplate());
+        orgClient.messageAdd(param,message.getToken());
+    }
+
+    @Override
+    protected void handleMaxRetriesExceeded(OrderMessage message) {
+        // 当超过指定重试次数消息时此处方法会被调用
+        // 生产中可以进行回退或其他业务操作
+        log.error("消息消费失败,请执行后续处理");
+    }
+
+
+    /**
+     * 是否执行重试机制
+     */
+    @Override
+    protected boolean isRetry() {
+        return true;
+    }
+
+    @Override
+    protected boolean throwException() {
+        // 是否抛出异常,false搭配retry自行处理异常
+        return false;
+    }
+
+    /**
+     * 监听消费消息,不需要执行业务处理,委派给父类做基础操作,父类做完基础操作后会调用子类的实际处理类型
+     */
+    @Override
+    public void onMessage(OrderMessage orderMessage) {
+        super.dispatchMessage(orderMessage);
+    }
+}

+ 40 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/consumer/message/OrderMessage.java

@@ -0,0 +1,40 @@
+package com.jzg.quotation.summary.consumer.message;
+
+import com.jzg.commons.entity.po.SysMessageTemplate;
+import com.jzg.domain.BaseMessage;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+
+/**
+ * 订单消息模板
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AllArgsConstructor
+@NoArgsConstructor
+public class OrderMessage extends BaseMessage {
+
+    /**
+     * 鉴权
+     */
+    private String token;
+
+    /**
+     * 发送时间
+     */
+    private LocalDateTime tradeTime;
+
+    /**
+     * 发送内容
+     */
+    private String body;
+
+    /**
+     * 模板
+     */
+    private SysMessageTemplate template;
+}

+ 47 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/consumer/template/OrderMessageTemplate.java

@@ -0,0 +1,47 @@
+package com.jzg.quotation.summary.consumer.template;
+
+import com.jzg.commons.entity.enums.MessageSourceEnum;
+import com.jzg.commons.entity.enums.MessageTopicEnum;
+import com.jzg.commons.entity.enums.MessageTypeEnum;
+import com.jzg.commons.entity.po.SysMessageTemplate;
+import com.jzg.quotation.summary.consumer.message.OrderMessage;
+import com.jzg.templete.RocketMQEnhanceTemplate;
+import jakarta.validation.constraints.NotNull;
+import org.apache.rocketmq.client.producer.SendResult;
+import org.apache.rocketmq.spring.core.RocketMQTemplate;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author dongxin
+ * 订单类发送消息模板工具类
+ */
+@Component
+public class OrderMessageTemplate extends RocketMQEnhanceTemplate {
+
+    public OrderMessageTemplate(RocketMQTemplate template) {
+        super(template);
+    }
+
+    /**
+     * 发送补录订单审核消息
+     *
+     * @param orderNo 订单号
+     * @param body    消息内容
+     * @param token
+     * @return
+     */
+    public SendResult SendOrderReview(@NotNull String orderNo, String body, SysMessageTemplate template, String token) {
+        OrderMessage message = new OrderMessage();
+        message.setKey(orderNo);
+        message.setSource(MessageSourceEnum.ORDERREVIEW.getCode());
+        message.setBody(body);
+        message.setTemplate(template);
+        message.setToken(token);
+        // 这两个字段只是为了测试
+        message.setTradeTime(LocalDateTime.now());
+        return send(MessageTopicEnum.ROCKET_ORDER.getCode(), MessageTypeEnum.ORDER.getCode(), message);
+    }
+
+}

+ 39 - 4
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java

@@ -10,11 +10,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jzg.commons.constants.CompanyConstants;
 import com.jzg.commons.constants.InsuranceRisk;
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
+import com.jzg.commons.core.base.BaseController;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.dto.InsOrdersParam;
 import com.jzg.commons.entity.dto.InsTaskImagesAdd;
+import com.jzg.commons.entity.enums.MessageCodeEnum;
 import com.jzg.commons.entity.orders.po.*;
 import com.jzg.commons.entity.po.InsTaskImages;
+import com.jzg.commons.entity.po.SysMessageTemplate;
 import com.jzg.commons.entity.quote.vo.*;
 import com.jzg.commons.entity.vo.InsOrdersOtherInfoVo;
 import com.jzg.commons.entity.vo.InsTaskImagesVo;
@@ -23,6 +26,7 @@ import com.jzg.commons.util.AssertionUtils;
 import com.jzg.commons.util.MinioUtils;
 import com.jzg.commons.util.StringUtils;
 import com.jzg.commons.util.idgen.IdGenerate;
+import com.jzg.quotation.commons.client.OrgClient;
 import com.jzg.quotation.commons.constant.enums.base.ProductsType;
 import com.jzg.quotation.commons.entity.vo.aggregated.QuoteResultsVo;
 import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
@@ -30,10 +34,13 @@ import com.jzg.quotation.commons.entity.vo.orders.InsOrdersAdd;
 import com.jzg.quotation.commons.entity.vo.orders.InsOrdersEnd;
 import com.jzg.quotation.commons.entity.vo.orders.InsOrdersVo;
 import com.jzg.quotation.commons.utils.SnowFlakeUtil;
+import com.jzg.quotation.summary.consumer.template.OrderMessageTemplate;
 import com.jzg.quotation.summary.mapper.InsOrdersMapper;
 import com.jzg.quotation.summary.service.*;
 import lombok.RequiredArgsConstructor;
+import lombok.Setter;
 import org.apache.commons.beanutils.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -41,9 +48,7 @@ import java.lang.reflect.InvocationTargetException;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 
 @RequiredArgsConstructor
 @Service
@@ -72,6 +77,13 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
 
     private final InsOrdersMapper insOrdersMapper;
 
+    private final OrgClient orgClient;
+
+    private final BaseController baseController;
+
+    @Setter(onMethod_ = @Autowired)
+    private OrderMessageTemplate orderMessageTemplate;
+
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -163,6 +175,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             ordersExternalPolicy.setOrderNo(String.valueOf(quoteNo));
             policyService.save(ordersExternalPolicy);
 
+            /** 补录订单发送订单审核消息 */
+            this.sendOrderMessage(insOrders,insOrdersCosts,baseController.getToken());
 
             // 返回成功信息,表示订单、车辆和用户信息保存成功
             return HttpResult.ok("保存成功");
@@ -174,6 +188,28 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         }
     }
 
+    /**
+     * 补录订单发送审核消息
+     *
+     * @param insOrders      订单信息
+     * @param insOrdersCosts 费用信息
+     * @param token
+     */
+    private void sendOrderMessage(InsOrders insOrders, InsOrdersCosts insOrdersCosts, String token) {
+        // 获取消息模板 并替换内容
+        HttpResult<SysMessageTemplate>  result = orgClient.templateGet(MessageCodeEnum.TEMPLATE_3.getCode(),
+                baseController.getToken());
+        SysMessageTemplate template = result.getData();
+        AssertionUtils.isFail(Objects.isNull(template),"获取模板失败!");
+        Map<String, Object> valuesMap = new HashMap<>();
+        valuesMap.put("addUser",insOrders.getCreateBy());               // 添加人员姓名
+        valuesMap.put("orderNo",insOrders.getId());                     // 订单号
+        valuesMap.put("businessUser",insOrders.getAuditName());         // 业务员 核保人
+        valuesMap.put("totalPremium",insOrdersCosts.getSumPremium());   // 总保费
+        String content = StringUtils.replaceContent(template.getContent(),valuesMap);
+        orderMessageTemplate.SendOrderReview(insOrders.getId(),content,template,token);
+    }
+
 
     @Override
     public HttpResult updateOrders(InsOrdersEnd ordersEnd) {
@@ -480,5 +516,4 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         return orderNo;
     }
 
-
 }

+ 13 - 0
tenant/organization/src/main/java/com/jzg/organization/controller/MessageController.java

@@ -84,4 +84,17 @@ public class MessageController extends BaseController {
         return HttpResult.ok("修改成功");
     }
 
+    /**
+     * 消息添加
+     * @param param
+     * @return
+     */
+    @Operation(summary = "消息添加")
+    @PostMapping("/messageAdd")
+    public HttpResult messageAdd(@Validated @RequestBody MessageAddParam param) {
+        // 接收方的校验
+        messageService.messageAdd(param);
+        return HttpResult.ok("新增成功");
+    }
+
 }

+ 35 - 0
tenant/organization/src/main/java/com/jzg/organization/controller/MessageTemplateController.java

@@ -0,0 +1,35 @@
+package com.jzg.organization.controller;
+
+import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.enums.MessageCodeEnum;
+import com.jzg.organization.service.SysMessageNoticeService;
+import com.jzg.organization.service.SysMessageTemplateService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 消息模板管理接口
+ */
+@Tag(name="消息模板管理接口")
+@RestController
+@RequestMapping("/messageTemplate")
+public class MessageTemplateController {
+
+    @Autowired
+    private SysMessageTemplateService messageTemplateService;
+
+    /**
+     * 消息通知信息查询
+     * @param messageCodeEnum 模板code枚举
+     * @return
+     */
+    @GetMapping(value = { "/templateGet"})
+    @Operation(summary = "消息模板查询")
+    public HttpResult templateGet(MessageCodeEnum messageCodeEnum) {
+        return HttpResult.ok(messageTemplateService.getModel(messageCodeEnum));
+    }
+}

+ 8 - 8
tenant/organization/src/main/java/com/jzg/organization/controller/mq/EnhanceProduceController.java

@@ -52,14 +52,14 @@ public class EnhanceProduceController {
     }
 
 
-    /**
-     * 定制模板消息
-     */
-    @GetMapping("/order")
-    public SendResult order() {
-        String key = "ORDER:"+ UUID.randomUUID();
-        return orderMessageTemplate.sendOrderPaid(key, "客户下单了,请备货");
-    }
+//    /**
+//     * 定制模板消息
+//     */
+//    @GetMapping("/order")
+//    public SendResult order() {
+//        String key = "ORDER:"+ UUID.randomUUID();
+//        return orderMessageTemplate.sendOrderPaid(key, "客户下单了,请备货");
+//    }
 
 
 }

+ 7 - 0
tenant/organization/src/main/java/com/jzg/organization/service/SysMessageService.java

@@ -2,6 +2,7 @@ package com.jzg.organization.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.jzg.commons.entity.dto.MessageAddParam;
 import com.jzg.commons.entity.dto.MessageParam;
 import com.jzg.commons.entity.po.SysMessage;
 import com.jzg.commons.entity.vo.MessageVo;
@@ -26,4 +27,10 @@ public interface SysMessageService extends IService<SysMessage> {
      * @return
      */
     Map<Integer, Long> getMessageCount();
+
+    /**
+     * 消息新增
+     * @param param
+     */
+    void messageAdd(MessageAddParam param);
 }

+ 11 - 0
tenant/organization/src/main/java/com/jzg/organization/service/SysMessageTemplateService.java

@@ -2,9 +2,12 @@ package com.jzg.organization.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jzg.commons.entity.dto.MessageTemplateParam;
+import com.jzg.commons.entity.enums.MessageCodeEnum;
 import com.jzg.commons.entity.po.SysMessageTemplate;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.Map;
+
 /**
 * @author dongxin
 * @description 针对表【sys_message_template(消息模版(sys_message_template))】的数据库操作Service
@@ -12,4 +15,12 @@ import com.baomidou.mybatisplus.extension.service.IService;
 */
 public interface SysMessageTemplateService extends IService<SysMessageTemplate> {
 
+
+    /**
+     * 获取消息模版
+     * @param messageCodeEnum 消息模版编码
+     * @return SysMessageTemplate  消息模版
+     */
+    SysMessageTemplate getModel(MessageCodeEnum messageCodeEnum);
+
 }

+ 11 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysMessageServiceImpl.java

@@ -3,13 +3,16 @@ package com.jzg.organization.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jzg.commons.entity.dto.MessageAddParam;
 import com.jzg.commons.entity.dto.MessageParam;
 import com.jzg.commons.entity.po.SysMessage;
+import com.jzg.commons.entity.po.SysMessageNotice;
 import com.jzg.commons.entity.vo.MessageVo;
 import com.jzg.commons.util.StringUtils;
 import com.jzg.organization.mapper.SysMessageMapper;
 import com.jzg.organization.service.SysMessageService;
 import org.apache.ibatis.annotations.Param;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -44,6 +47,14 @@ public class SysMessageServiceImpl extends ServiceImpl<SysMessageMapper, SysMess
         countResult.put(999, total);
         return countResult;
     }
+
+    @Override
+    public void messageAdd(MessageAddParam param) {
+        SysMessage message = new SysMessage();
+        BeanUtils.copyProperties(param, message);
+        this.save(message);
+        // 新增接收信息
+    }
 }
 
 

+ 15 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysMessageTemplateServiceImpl.java

@@ -1,13 +1,19 @@
 package com.jzg.organization.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jzg.commons.entity.dto.MessageTemplateParam;
+import com.jzg.commons.entity.enums.MessageCodeEnum;
 import com.jzg.commons.entity.po.SysMessageTemplate;
 import com.jzg.organization.mapper.SysMessageTemplateMapper;
 import com.jzg.organization.service.SysMessageTemplateService;
+import org.apache.commons.lang3.text.StrSubstitutor;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
+import java.util.Map;
+
 /**
 * @author dongxin
 * @description 针对表【sys_message_template(消息模版(sys_message_template))】的数据库操作Service实现
@@ -16,6 +22,15 @@ import org.springframework.stereotype.Service;
 @Service
 public class SysMessageTemplateServiceImpl extends ServiceImpl<SysMessageTemplateMapper, SysMessageTemplate>
     implements SysMessageTemplateService {
+
+    @Override
+    public SysMessageTemplate getModel(MessageCodeEnum messageCodeEnum) {
+        LambdaQueryWrapper<SysMessageTemplate> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SysMessageTemplate::getTplCode, messageCodeEnum.getCode())
+                .eq(SysMessageTemplate::getIsEnable, true)
+                .eq(SysMessageTemplate::getIsDelete, true);
+        return baseMapper.selectOne(wrapper);
+    }
 }