• 消息服务客户端


    组件编码 hzero-boot-message

    一、简介

    1.1 概述

    消息服务接口集成,使用feign调用实现

    1.2 特性

    1.3 组件坐标

    <dependency>
        <groupId>org.hzero.boot</groupId>
        <artifactId>hzero-boot-message</artifactId>
        <version>${hzero.boot.version}</version>
    </dependency>
    

    二、使用指南

    2.1 使用方法

    1.在代码中自动注入消息客户端:org.hzero.boot.message.MessageClient

    2.消息生成:

        // ----------------------------- 平台级
        
        /**
         * 生成消息内容
         *
         * @param templateCode 消息模板编码
         * @param args         自定义参数
         * @return 消息内容,返回消息主题,消息内容
         */
        Message generateMessage(String templateCode, Map<String, String> args)
    
        /**
         * 生成消息内容
         *
         * @param templateCode 消息模板编码
         * @param args         自定义参数
         * @param lang         语言
         * @return 消息内容,返回消息主题,消息内容
         */
        Message generateMessage(String templateCode, Map<String, String> args, String lang)
    
        /**
         * 生成消息内容
         *
         * @param templateCode 消息模板编码
         * @param args         自定义参数
         * @param sqlEnable    是否使用sqlValue
         * @return 消息内容,返回消息主题,消息内容
         */
        Message generateMessage(String templateCode, Map<String, String> args, boolean sqlEnable)
    
        /**
         * 生成消息内容
         *
         * @param templateCode 消息模板编码
         * @param args         自定义参数
         * @param sqlEnable    是否使用sqlValue
         * @param lang         语言
         * @return 消息内容,返回消息主题,消息内容
         */
        Message generateMessage(String templateCode, Map<String, String> args, boolean sqlEnable, String lang)
    
        /**
         * 生成消息内容
         *
         * @param templateCode 消息模板编码
         * @param args         自定义参数
         * @return 消息内容,返回消息主题,消息内容
         */
        Message generateMessage(String templateCode, String serverTypeCode, Map<String, String> args)
    
        /**
         * 生成消息内容
         *
         * @param templateCode 消息模板编码
         * @param args         自定义参数
         * @param lang         语言
         * @return 消息内容,返回消息主题,消息内容
         */
        Message generateMessage(String templateCode, String serverTypeCode, Map<String, String> args, String lang)
    
        /**
         * 生成消息内容
         *
         * @param templateCode 消息模板编码
         * @param args         自定义参数
         * @param sqlEnable    是否使用sqlValue
         * @return 消息内容,返回消息主题,消息内容
         */
        Message generateMessage(String templateCode, String serverTypeCode, Map<String, String> args, boolean sqlEnable)
    
        /**
         * 生成消息内容
         *
         * @param templateCode 消息模板编码
         * @param args         自定义参数
         * @param sqlEnable    是否使用sqlValue
         * @param lang         语言
         * @return 消息内容,返回消息主题,消息内容
         */
        Message generateMessage(String templateCode, String serverTypeCode, Map<String, String> args, boolean sqlEnable, String lang)
    
        // ----------------------------- 租户级
    
        /**
         * 生成消息内容
         *
         * @param tenantId     租户ID
         * @param templateCode 消息模板编码
         * @param args         自定义参数
         * @return 消息内容,返回消息主题,消息内容
         */
        Message generateMessage(long tenantId, String templateCode, Map<String, String> args)
    
        /**
         * 生成消息内容
         *
         * @param tenantId     租户ID
         * @param templateCode 消息模板编码
         * @param args         自定义参数
         * @param lang         语言
         * @return 消息内容,返回消息主题,消息内容
         */
        Message generateMessage(long tenantId, String templateCode, Map<String, String> args, String lang)
    
        /**
         * 生成消息内容
         *
         * @param tenantId     租户ID
         * @param templateCode 消息模板编码
         * @param args         自定义参数
         * @param sqlEnable    是否使用sqlValue
         * @return 消息内容,返回消息主题,消息内容
         */
        Message generateMessage(long tenantId, String templateCode, Map<String, String> args, boolean sqlEnable)
    
        /**
         * 生成消息内容
         *
         * @param tenantId     租户ID
         * @param templateCode 消息模板编码
         * @param args         自定义参数
         * @param sqlEnable    是否使用sqlValue
         * @param lang         语言
         * @return 消息内容,返回消息主题,消息内容
         */
        Message generateMessage(long tenantId, String templateCode, Map<String, String> args, boolean sqlEnable, String lang)
    
        /**
         * 生成消息内容
         *
         * @param tenantId       租户ID
         * @param templateCode   消息模板编码
         * @param serverTypeCode 服务类型编码,短信
         * @param args           自定义参数
         * @return 消息内容,返回消息主题,消息内容
         */
        Message generateMessage(long tenantId, String templateCode, String serverTypeCode, Map<String, String> args)
    
        /**
         * 生成消息内容
         *
         * @param tenantId       租户ID
         * @param templateCode   消息模板编码
         * @param serverTypeCode 服务类型编码,短信
         * @param args           自定义参数
         * @param lang           语言
         * @return 消息内容,返回消息主题,消息内容
         */
        Message generateMessage(long tenantId, String templateCode, String serverTypeCode, Map<String, String> args, String lang)
    
        /**
         * 生成消息内容
         *
         * @param tenantId       租户ID
         * @param templateCode   消息模板编码
         * @param serverTypeCode 服务类型编码,短信
         * @param args           自定义参数
         * @param sqlEnable      是否使用sqlValue
         * @return 消息内容,返回消息主题,消息内容
         */
        Message generateMessage(long tenantId, String templateCode, String serverTypeCode, Map<String, String> args, boolean sqlEnable)
    
        /**
         * 生成消息内容
         *
         * @param tenantId       租户ID
         * @param templateCode   消息模板编码
         * @param serverTypeCode 服务类型编码,短信
         * @param args           自定义参数
         * @param sqlEnable      是否使用sqlValue
         * @param lang           语言
         * @return 消息内容,返回消息主题,消息内容
         */
        Message generateMessage(long tenantId, String templateCode, String serverTypeCode, Map<String, String> args, boolean sqlEnable, String lang)
    

    3.获取接收人:

        /**
         * 获取消息接收人
         *
         * @param receiverTypeCode 消息接收人编码
         * @param args             自定义参数
         * @return 消息接收人
         */
        List<Receiver> receiver(String receiverTypeCode, Map<String, String> args)
    
        /**
         * 获取消息接收人
         *
         * @param tenantId         租户ID
         * @param receiverTypeCode 消息接收人编码
         * @param args             自定义参数
         * @return 消息接收人
         */
        List<Receiver> receiver(long tenantId, String receiverTypeCode, Map<String, String> args)
    

    4.发送站内消息:

        /**
         * 发送站内消息
         *
         * @param messageTemplateCode 消息模板编码
         * @param receiverGroupCode   接收人组编码
         * @param args                参数
         * @return 发送结果
         */
        Message sendWebMessage(String messageTemplateCode, String receiverGroupCode, Map<String, String> args)
    
        /**
         * 发送站内消息
         *
         * @param messageTemplateCode 消息模板编码
         * @param receiverList        接收人列表
         * @param args                参数
         * @return 发送结果
         */
        Message sendWebMessage(String messageTemplateCode, List<Receiver> receiverList, Map<String, String> args)
    
    
        /**
         * 发送站内消息
         *
         * @param messageTemplateCode 消息模板编码
         * @param lang                语言(为空取默认语言)
         * @param receiverGroupCode   接收人组编码
         * @param args                参数
         * @return 发送结果
         */
        Message sendWebMessage(String messageTemplateCode, String lang, String receiverGroupCode, Map<String, String> args)
    
        /**
         * 发送站内消息
         *
         * @param messageTemplateCode 消息模板编码
         * @param lang                语言(为空取默认语言)
         * @param receiverList        接收人列表
         * @param args                参数
         * @return 发送结果
         */
        Message sendWebMessage(String messageTemplateCode, String lang, List<Receiver> receiverList, Map<String, String> args)
    
        /**
         * 发送站内消息
         *
         * @param tenantId            租户ID(平台默认0)
         * @param messageTemplateCode 消息模板编码
         * @param receiverGroupCode   接收人组编码
         * @param args                参数
         * @return 发送结果
         */
        Message sendWebMessage(long tenantId, String messageTemplateCode, String receiverGroupCode, Map<String, String> args)
    
        /**
         * 发送站内消息
         *
         * @param tenantId            租户ID(平台默认0)
         * @param messageTemplateCode 消息模板编码
         * @param receiverList        接收人列表
         * @param args                参数
         * @return 发送结果
         */
        Message sendWebMessage(long tenantId, String messageTemplateCode, List<Receiver> receiverList, Map<String, String> args)
    
    
        /**
         * 发送站内消息
         *
         * @param tenantId            租户ID(平台默认0)
         * @param messageTemplateCode 消息模板编码
         * @param lang                语言(为空取默认语言)
         * @param receiverGroupCode   接收人组编码
         * @param args                参数
         * @return 发送结果
         */
        Message sendWebMessage(long tenantId, String messageTemplateCode, String lang, String receiverGroupCode, Map<String, String> args)
    
        /**
         * 发送站内消息
         *
         * @param tenantId            租户ID(平台默认0)
         * @param messageTemplateCode 消息模板编码
         * @param lang                语言(为空取默认语言)
         * @param receiverList        接收人列表
         * @param args                参数
         * @return 发送结果
         */
        Message sendWebMessage(long tenantId, String messageTemplateCode, String lang, List<Receiver> receiverList, Map<String, String> args)
    

    代码案例:

    @Service
    public class MessageServiceImpl implements MessageService {
    
        private final MessageClient messageClient;
    
        @Autowired
        public MessageServiceImpl(MessageClient messageClient) {
            this.messageClient = messageClient;
        }
    
        @Override
        public void sendWebMessage() {
            long tenantId = 0L;
            String messageTemplateCode = "HWFP.REMIND";
            String lang = "zh_CN";
            Receiver receiver = new Receiver().setUserId(1L).setTargetUserTenantId(0L);
            Map<String, String> args = new HashMap<>(16);
            args.put("processName", "测试消息");
            args.put("processDescription", "测试消息");
            // 同步发送站内消息
            messageClient.sendWebMessage(tenantId, messageTemplateCode, lang, Collections.singletonList(receiver), args);
            // 异步发送站内消息
            messageClient.async().sendWebMessage(tenantId, messageTemplateCode, lang, Collections.singletonList(receiver), args);
        }
    }
    

    5.发送邮件:

        /**
         * 发送邮件
         *
         * @param serverCode          服务编码
         * @param messageTemplateCode 消息模板编码
         * @param receiverGroupCode   接收人组编码
         * @param args                参数
         * @param attachments         附件
         * @return 发送结果
         */
        Message sendEmail(String serverCode, String messageTemplateCode, String receiverGroupCode, Map<String, String> args, Attachment... attachments)
    
        /**
         * 发送邮件
         *
         * @param serverCode          服务编码
         * @param messageTemplateCode 消息模板编码
         * @param receiverList        接收人列表
         * @param args                参数
         * @param attachments         附件
         * @return 发送结果
         */
        Message sendEmail(String serverCode, String messageTemplateCode, List<Receiver> receiverList, Map<String, String> args, Attachment... attachments)
    
    
        /**
         * 发送邮件
         *
         * @param serverCode          服务编码
         * @param messageTemplateCode 消息模板编码
         * @param lang                语言(为空取默认语言)
         * @param receiverGroupCode   接收人组编码
         * @param args                参数
         * @param attachments         附件
         * @return 发送结果
         */
        Message sendEmail(String serverCode, String messageTemplateCode, String lang, String receiverGroupCode, Map<String, String> args, Attachment... attachments)
    
        /**
         * 发送邮件
         *
         * @param serverCode          服务编码
         * @param messageTemplateCode 消息模板编码
         * @param lang                语言(为空取默认语言)
         * @param receiverList        接收人列表
         * @param args                参数
         * @param attachments         附件
         * @return 发送结果
         */
        Message sendEmail(String serverCode, String messageTemplateCode, String lang, List<Receiver> receiverList, Map<String, String> args, Attachment... attachments)
    
        /**
         * 发送邮件
         *
         * @param tenantId            租户ID(平台默认0)
         * @param serverCode          服务编码
         * @param messageTemplateCode 消息模板编码
         * @param receiverGroupCode   接收人组编码
         * @param args                参数
         * @param attachments         附件
         * @return 发送结果
         */
        Message sendEmail(long tenantId, String serverCode, String messageTemplateCode, String receiverGroupCode, Map<String, String> args, Attachment... attachments)
    
        /**
         * 发送邮件(指定抄送,密送)
         *
         * @param tenantId            租户ID(平台默认0)
         * @param serverCode          服务编码
         * @param messageTemplateCode 消息模板编码
         * @param receiverGroupCode   接收人组编码
         * @param args                参数
         * @param ccList              抄送
         * @param bccList             密送
         * @param attachments         附件
         * @return 发送结果
         */
        Message sendEmail(long tenantId, String serverCode, String messageTemplateCode, String receiverGroupCode, Map<String, String> args, List<String> ccList, List<String> bccList, Attachment... attachments)
    
        /**
         * 发送邮件
         *
         * @param tenantId            租户ID(平台默认0)
         * @param serverCode          服务编码
         * @param messageTemplateCode 消息模板编码
         * @param receiverList        接收人列表
         * @param args                参数
         * @param attachments         附件
         * @return 发送结果
         */
        Message sendEmail(long tenantId, String serverCode, String messageTemplateCode, List<Receiver> receiverList, Map<String, String> args, Attachment... attachments)
    
        /**
         * 发送邮件(指定抄送,密送)
         *
         * @param tenantId            租户ID(平台默认0)
         * @param serverCode          服务编码
         * @param messageTemplateCode 消息模板编码
         * @param receiverList        接收人列表
         * @param args                参数
         * @param ccList              抄送
         * @param bccList             密送
         * @param attachments         附件
         * @return 发送结果
         */
        Message sendEmail(long tenantId, String serverCode, String messageTemplateCode, List<Receiver> receiverList, Map<String, String> args, List<String> ccList, List<String> bccList, Attachment... attachments)
    
    
        /**
         * 发送邮件
         *
         * @param tenantId            租户ID(平台默认0)
         * @param serverCode          服务编码
         * @param messageTemplateCode 消息模板编码
         * @param lang                语言(为空取默认语言)
         * @param receiverGroupCode   接收人组编码
         * @param args                参数
         * @param attachments         附件
         * @return 发送结果
         */
        Message sendEmail(long tenantId, String serverCode, String messageTemplateCode, String lang, String receiverGroupCode, Map<String, String> args, Attachment... attachments)
    
        /**
         * 发送邮件(指定抄送,密送)
         *
         * @param tenantId            租户ID(平台默认0)
         * @param serverCode          服务编码
         * @param messageTemplateCode 消息模板编码
         * @param lang                语言(为空取默认语言)
         * @param receiverGroupCode   接收人组编码
         * @param args                参数
         * @param ccList              抄送
         * @param bccList             密送
         * @param attachments         附件
         * @return 发送结果
         */
        Message sendEmail(long tenantId, String serverCode, String messageTemplateCode, String lang, String receiverGroupCode, Map<String, String> args, List<String> ccList, List<String> bccList, Attachment... attachments)
    
        /**
         * 发送邮件
         *
         * @param tenantId            租户ID(平台默认0)
         * @param serverCode          服务编码
         * @param messageTemplateCode 消息模板编码
         * @param lang                语言(为空取默认语言)
         * @param receiverList        接收人列表
         * @param args                参数
         * @param attachments         附件
         * @return 发送结果
         */
        Message sendEmail(long tenantId, String serverCode, String messageTemplateCode, String lang, List<Receiver> receiverList, Map<String, String> args, Attachment... attachments)
    
        /**
         * 发送邮件(指定抄送,密送)
         *
         * @param tenantId            租户ID(平台默认0)
         * @param serverCode          服务编码
         * @param messageTemplateCode 消息模板编码
         * @param lang                语言(为空取默认语言)
         * @param receiverList        接收人列表
         * @param args                参数
         * @param ccList              抄送
         * @param bccList             密送
         * @param attachments         附件
         * @return 发送结果
         */
        Message sendEmail(long tenantId, String serverCode, String messageTemplateCode, String lang, List<Receiver> receiverList, Map<String, String> args, List<String> ccList, List<String> bccList, Attachment... attachments)
    
        /**
         * 不使用消息模板,发送邮件
         *
         * @param tenantId     租户
         * @param serverCode   邮箱账户编码
         * @param subject      标题
         * @param content      内容
         * @param receiverList 接收人
         * @param ccList       抄送地址
         * @param bccList      密送地址
         * @param attachments  附件
         * @return 发送结果
         */
        Message sendCustomEmail(Long tenantId, String serverCode, String subject, String content, List<Receiver> receiverList, List<String> ccList, List<String> bccList, Attachment... attachments)
    

    代码案例:

    @Service
    public class MessageServiceImpl implements MessageService {
    
        private final MessageClient messageClient;
    
        @Autowired
        public MessageServiceImpl(MessageClient messageClient) {
            this.messageClient = messageClient;
        }
    
        @Override
        public void sendEmail() {
            long tenantId = 0L;
            String serverCode = "HZERO";
            String messageTemplateCode = "HWFP.REMIND";
            Receiver receiver = new Receiver().setEmail("hzero@hand-china.com");
            Map<String, String> args = new HashMap<>(16);
            args.put("processName", "测试消息");
            args.put("processDescription", "测试消息");
            // 同步发送站内消息
            messageClient.sendEmail(tenantId, serverCode, messageTemplateCode, Collections.singletonList(receiver), args);
            // 异步发送站内消息
            messageClient.async().sendEmail(tenantId, serverCode, messageTemplateCode, Collections.singletonList(receiver), args);
        }
    }
    

    6.发送短信:

        /**
         * 发送短信
         *
         * @param serverCode          服务编码
         * @param messageTemplateCode 消息模板编码
         * @param receiverGroupCode   接收人组编码
         * @param args                参数
         * @return 发送结果
         */
        Message sendSms(String serverCode, String messageTemplateCode, String receiverGroupCode, Map<String, String> args)
    
        /**
         * 发送短信
         *
         * @param serverCode          服务编码
         * @param messageTemplateCode 消息模板编码
         * @param receiverList        接收人列表
         * @param args                参数
         * @return 发送结果
         */
        Message sendSms(String serverCode, String messageTemplateCode, List<Receiver> receiverList, Map<String, String> args)
    
    
        /**
         * 发送短信
         *
         * @param serverCode          服务编码
         * @param messageTemplateCode 消息模板编码
         * @param lang                语言(为空取默认语言)
         * @param receiverGroupCode   接收人组编码
         * @param args                参数
         * @return 发送结果
         */
        Message sendSms(String serverCode, String messageTemplateCode, String lang, String receiverGroupCode, Map<String, String> args)
    
        /**
         * 发送短信
         *
         * @param serverCode          服务编码
         * @param messageTemplateCode 消息模板编码
         * @param lang                语言(为空取默认语言)
         * @param receiverList        接收人列表
         * @param args                参数
         * @return 发送结果
         */
        Message sendSms(String serverCode, String messageTemplateCode, String lang, List<Receiver> receiverList, Map<String, String> args)
    
        /**
         * 发送短信
         *
         * @param tenantId            租户ID(平台默认0)
         * @param serverCode          服务编码
         * @param messageTemplateCode 消息模板编码
         * @param receiverGroupCode   接收人组编码
         * @param args                参数
         * @return 发送结果
         */
        Message sendSms(long tenantId, String serverCode, String messageTemplateCode, String receiverGroupCode, Map<String, String> args)
    
        /**
         * 发送短信
         *
         * @param tenantId            租户ID(平台默认0)
         * @param serverCode          服务编码
         * @param messageTemplateCode 消息模板编码
         * @param receiverList        接收人列表
         * @param args                参数
         * @return 发送结果
         */
        Message sendSms(long tenantId, String serverCode, String messageTemplateCode, List<Receiver> receiverList, Map<String, String> args)
    
    
        /**
         * 发送短信
         *
         * @param tenantId            租户ID(平台默认0)
         * @param serverCode          服务编码
         * @param messageTemplateCode 消息模板编码
         * @param lang                语言(为空取默认语言)
         * @param receiverGroupCode   接收人组编码
         * @param args                参数
         * @return 发送结果
         */
        Message sendSms(long tenantId, String serverCode, String messageTemplateCode, String lang, String receiverGroupCode, Map<String, String> args)
    
        /**
         * 发送短信
         *
         * @param tenantId            租户ID(平台默认0)
         * @param serverCode          服务编码
         * @param messageTemplateCode 消息模板编码
         * @param lang                语言(为空取默认语言)
         * @param receiverList        接收人列表
         * @param args                参数
         * @return 发送结果
         */
        Message sendSms(long tenantId, String serverCode, String messageTemplateCode, String lang, List<Receiver> receiverList, Map<String, String> args)
    

    代码案例:

    @Service
    public class MessageServiceImpl implements MessageService {
    
        private final MessageClient messageClient;
    
        @Autowired
        public MessageServiceImpl(MessageClient messageClient) {
            this.messageClient = messageClient;
        }
    
        @Override
        public void sendSms() {
            long tenantId = 0L;
            String serverCode = "HZERO";
            String messageTemplateCode = "HIAM.CAPTCHA";
            Receiver receiver = new Receiver().setIdd("+86").setPhone("18866886688");
            Map<String, String> args = new HashMap<>(16);
            args.put("captcha", "123456");
            // 同步发送站内消息
            messageClient.sendSms(tenantId, serverCode, messageTemplateCode, Collections.singletonList(receiver), args);
            // 异步发送站内消息
            messageClient.async().sendSms(tenantId, serverCode, messageTemplateCode, Collections.singletonList(receiver), args);
        }
    }
    

    7.发送长连接消息:

        /**
         * 指定sessionId发送webSocket消息
         *
         * @param sessionId sessionId
         * @param key       自定义的key
         * @param message   消息内容
         */
        void sendBySession(String sessionId, String key, String message)
    
        /**
         * 指定用户发送webSocket消息
         *
         * @param userId  用户Id
         * @param key     自定义的key
         * @param message 消息内容
         */
        void sendByUserId(Long userId, String key, String message)
    
        /**
         * 向所有用户发送webSocket消息
         *
         * @param key     自定义的key
         * @param message 消息内容
         */
        void sendToAll(String key, String message)
    

    代码案例:

    @Service
    public class MessageServiceImpl implements MessageService {
    
        private final MessageClient messageClient;
    
        @Autowired
        public MessageServiceImpl(MessageClient messageClient) {
            this.messageClient = messageClient;
        }
    
        @Override
        public void sendSockMessage() {
            long userId = 1L;
            String key = "sock-demo";
            String message = "Hello World";
            // 指定用户,发送长连接消息
            messageClient.sendByUserId(userId, key, message);
        }
    }
    

    8.获取在线用户:

        /**
         * 获取在线用户信息
         *
         * @return 在线用户信息
         */
        List<OnLineUserDTO> getUser()
    

    9.处理前端websocket消息

    实现org.hzero.boot.message.handler.ISocketHandler接口,类添加@SocketHandler注解,指定话题的key

    import org.hzero.boot.message.annotation.SocketHandler;
    import org.hzero.boot.message.entity.Msg;
    import org.hzero.boot.message.handler.ISocketHandler;
    
    @SocketHandler("hzero-demo")
    public class MessageHandlerDemo implements ISocketHandler {
    
        @Override
        public void processMessage(Msg msg) {
            System.out.println("接收到前端socket消息:" + msg.getMessage());
        }
    }
    

    10.发送微信公众号模板消息

        /**
         * 发送微信公众号消息
         *
         * @param messageTemplateCode 消息模板编码
         * @param userList            接收人列表
         * @param data                参数
         * @return 发送结果
         */
        Message sendWeChatOfficialMessage(String serverCode, String messageTemplateCode, List<String> userList, Map<String, WeChatFont> data)
    
        /**
         * 发送微信公众号消息
         *
         * @param messageTemplateCode 消息模板编码
         * @param lang                语言(为空取默认语言)
         * @param userList            接收人列表
         * @param data                参数
         * @return 发送结果
         */
        Message sendWeChatOfficialMessage(String serverCode, String messageTemplateCode, String lang, List<String> userList, Map<String, WeChatFont> data, String url, Miniprogram miniprogram)
    
        /**
         * 发送微信公众号消息
         *
         * @param tenantId            租户ID(平台默认0)
         * @param serverCode          公众号配置编码
         * @param messageTemplateCode 消息模板编码
         * @param userList            接收人列表
         * @param data                参数
         * @return 发送结果
         */
        Message sendWeChatOfficialMessage(long tenantId, String serverCode, String messageTemplateCode, List<String> userList, Map<String, WeChatFont> data)
    
        /**
         * 发送微信公众号消息
         *
         * @param tenantId            租户ID(平台默认0)
         * @param serverCode          公众号配置编码
         * @param messageTemplateCode 消息模板编码
         * @param lang                语言(为空取默认语言)
         * @param userList            接收人列表
         * @param data                参数
         * @param url                 跳转地址
         * @param miniprogram         小程序参数
         * @return 发送结果
         */
        Message sendWeChatOfficialMessage(long tenantId, String serverCode, String messageTemplateCode, String lang, List<String> userList, Map<String, WeChatFont> data, String url, Miniprogram miniprogram)
    

    代码案例:

    @Service
    public class MessageServiceImpl implements MessageService {
    
        private final MessageClient messageClient;
    
        @Autowired
        public MessageServiceImpl(MessageClient messageClient) {
            this.messageClient = messageClient;
        }
    
        @Override
        public void sendWeChatOfficial() {
            long tenantId = 0L;
            String serverCode = "HZERO";
            String messageTemplateCode = "DEMO";
            List<String> userList = new ArrayList<>();
            userList.add("oZjfCs4W9gU2qsD6CiuKGtfPzDPE");
            Map<String, WeChatFont> data = new HashMap<>(4);
            data.put("name", new WeChatFont().setValue("开发人员").setColor("#173177"));
    
            // 同步发送微信公众号消息
            messageClient.sendWeChatOfficialMessage(tenantId, serverCode, messageTemplateCode, userList, data);
            // 异步发送微信公众号消息
            messageClient.async().sendWeChatOfficialMessage(tenantId, serverCode, messageTemplateCode, userList, data);
        }
    }
    

    11.发送企业微信应用消息

        /**
         * 发送企业微信应用消息
         *
         * @param tenantId            租户ID(平台默认0)
         * @param serverCode          企业微信号配置编码
         * @param messageTemplateCode 消息模板编码
         * @param agentId             企业应用ID
         * @param userList            接收人列表
         * @param args                参数
         * @return 发送结果
         */
        Message sendWeChatEnterpriseMessage(long tenantId, String serverCode, String messageTemplateCode, Long agentId, List<String> userList, Map<String, String> args)
    
        /**
         * 发送企业微信应用消息
         *
         * @param tenantId            租户ID(平台默认0)
         * @param serverCode          企业微信号配置编码
         * @param messageTemplateCode 消息模板编码
         * @param lang                语言(为空取默认语言)
         * @param agentId             企业应用ID
         * @param userList            接收人列表
         * @param partyList           企业微信部门ID列表
         * @param tagList             本企业的标签ID列表,最多支持100个。
         * @param safe                企业微信表示是否是保密消息,0表示否,1表示是,默认0
         * @param args                参数
         * @return 发送结果
         */
        Message sendWeChatEnterpriseMessage(long tenantId, String serverCode, String messageTemplateCode, String lang, Long agentId, List<String> userList, List<String> partyList, List<String> tagList, Integer safe, Map<String, String> args)
    

    代码案例:

    @Service
    public class MessageServiceImpl implements MessageService {
    
        private final MessageClient messageClient;
    
        @Autowired
        public MessageServiceImpl(MessageClient messageClient) {
            this.messageClient = messageClient;
        }
    
        @Override
        public void sendWeChatEnterprise() {
            long tenantId = 0L;
            String serverCode = "HZERO";
            String messageTemplateCode = "DEMO";
            // 应用ID
            Long agentId = 334455L;
            List<String> userList = new ArrayList<>();
            userList.add("20999");
            Map<String, String> data = new HashMap<>(4);
            data.put("name", "开发人员");
    
            // 同步发送企业微信消息
            messageClient.sendWeChatEnterpriseMessage(tenantId, serverCode, messageTemplateCode, agentId,  userList, data);
            // 异步发送企业微信消息
            messageClient.async().sendWeChatEnterpriseMessage(tenantId, serverCode, messageTemplateCode, agentId,  userList, data);
        }
    }
    
    

    三、版本更新日志

    0.10.0.RELEASE [2019-06-23]

    1.0.0.RELEASE [2019-09-06]

    1.1.0.RELEASE [2019-11-10]

    1.2.0.RELEASE [2020-01-06]