• 消息服务客户端


    组件编码 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)
    

    代码案例:

    public class Test {
    
        private final MessageClient messageClient;
        
        @Autowired
        public Test(MessageClient messageClient) {
            this.messageClient = messageClient;
        }
    
        public void sentMyMessage() {
            long tenantId = 0L;
            String messageTemplateCode = "HIAM.MODIFY_PASSWORD";
            String lang = "zh_CN";
            String receiverGroupCode = "TEST01";
            Map<String, String> args = new HashMap<>(4);
            args.put("password", "123");
            args.put("captcha", "123");
            args.put("loginName", "123");
            args.put("identifycode", "123");
    
            //发送站内消息,默认同步
            messageClient.sendWebMessage(tenantId, messageTemplateCode, lang, receiverGroupCode, args);
            messageClient.sync().sendWebMessage(tenantId, messageTemplateCode, lang, receiverGroupCode, args);
            //异步发送站内消息
            messageClient.async().sendWebMessage(tenantId, messageTemplateCode, lang, receiverGroupCode, 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)
    

    代码案例:

    public class Test {
    
        private final MessageClient messageClient;
    
        @Autowired
        public Test(MessageClient messageClient) {
            this.messageClient = messageClient;
        }
    
        public void sentMyMessage() {
            long tenantId = 0L;
            String serverCode = "TEST001";
            String messageTemplateCode = "HIAM.MODIFY_PASSWORD";
            Receiver receiver = new Receiver();
            receiver.setUserId(1L);
            receiver.setTargetUserTenantId(1L);
            receiver.setEmail("hzero@hand-china.com");
            receiver.setPhone("15123423412");
            receiver.setIdd("00");
            List<Receiver> receiverList = new ArrayList<>();
            receiverList.add(receiver);
            Map<String, String> args = new HashMap<>(4);
            args.put("password", "123");
            args.put("captcha", "123");
            args.put("loginName", "123");
            args.put("identifycode", "123");
                    
            //发送邮件,默认同步
            messageClient.sendEmail(tenantId, serverCode, messageTemplateCode, receiverList, args);
            messageClient.sync().sendEmail(tenantId, serverCode, messageTemplateCode, receiverList, args);
            //异步发送邮件
            messageClient.async().sendEmail(tenantId, serverCode, messageTemplateCode, receiverList, 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)
    

    代码案例:

    public class Test {
    
        private final MessageClient messageClient;
    
        @Autowired
        public Test(MessageClient messageClient) {
            this.messageClient = messageClient;
        }
    
        public void sentMyMessage() {
            long tenantId = 0L;
            String serverCode = "123123";
            String messageTemplateCode = "HIAM.MODIFY_PASSWORD";
            String lang = "zh_CN";
            Receiver receiver = new Receiver();
            receiver.setUserId(1L);
            receiver.setTargetUserTenantId(1L);
            receiver.setEmail("hzero@hand-china.com");
            receiver.setPhone("15123423412");
            receiver.setIdd("00");
            List<Receiver> receiverList = new ArrayList<>();
            receiverList.add(receiver);
            Map<String, String> args = new HashMap<>(4);
            args.put("password", "123");
            args.put("captcha", "123");
            args.put("loginName", "123");
            args.put("identifycode", "123");
            
            //发送短信,默认同步
            messageClient.sendSms(tenantId, serverCode, messageTemplateCode, lang, receiverList, args);
            messageClient.sync().sendSms(tenantId, serverCode, messageTemplateCode, lang, receiverList, args);
            //异步发送短信
            messageClient.async().sendSms(tenantId, serverCode, messageTemplateCode, lang, receiverList, 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)
    

    代码案例:

    public class Test {
    
        private final MessageClient messageClient;
        
        @Autowired
        public Test(MessageClient messageClient) {
            this.messageClient = messageClient;
        }
    
        public void sentMyMessage() {
            String sessionId = "123";
            String key = "123";
            String message = "message!";
                    
            //发送长连接信息,默认同步
            //指定sessionId发送webSocket消息
            messageClient.sendBySession(sessionId, key, message);
            messageClient.sync().sendBySession(sessionId, key, message);
            //异步发送
            messageClient.async().sendBySession(sessionId, 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)
    

    代码案例:

    public class Test {
    
        private final MessageClient messageClient;
    
        @Autowired
        public Test(MessageClient messageClient) {
            this.messageClient = messageClient;
        }
    
        public void sentMyMessage() {
            long tenantId = 0L;
            String serverCode = "TEST007";
            String messageTemplateCode = "HIAM.MODIFY_PASSWORD";
            List<String> userList = new ArrayList<>();
            userList.add("123");
            Map<String, WeChatFont> data = new HashMap<>(4);
            WeChatFont weChatFont = new WeChatFont();
            weChatFont.setValue("HAND");
            weChatFont.setColor("#000000");
            data.put("one", weChatFont);
                    
            //发送微信公众号消息,默认同步
            messageClient.sendWeChatOfficialMessage(tenantId, serverCode, messageTemplateCode, userList, data);
            messageClient.sync().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)
    

    代码案例:

    public class Test {
    
        private final MessageClient messageClient;
    
        @Autowired
        public Test(MessageClient messageClient) {
            this.messageClient = messageClient;
        }
    
        public void sentMyMessage() {
            long tenantId = 0L;
            String serverCode = "TEST";
            String messageTemplateCode = "HIAM.MODIFY_PASSWORD";
            String lang = "zh_CN";
            Long agentId = 1L;
            List<String> userList = new ArrayList<>();
            userList.add("123");
            List<String> partyList = new ArrayList<>();
            partyList.add("1");
            List<String> tagList = new ArrayList<>();
            tagList.add("1");
            Integer safe = 0;
            Map<String, String> args = new HashMap<>(4);
            args.put("password", "123");
            args.put("captcha", "123");
            args.put("loginName", "123");
            args.put("identifycode", "123");
                    
            //发送微信公众号消息,默认同步
            messageClient.sendWeChatEnterpriseMessage(tenantId, serverCode, messageTemplateCode, lang, agentId, userList, partyList, tagList, safe, args);
            messageClient.sync().sendWeChatEnterpriseMessage(tenantId, serverCode, messageTemplateCode, lang, agentId, userList, partyList, tagList, safe, args);
            //异步发送微信公众号消息
            messageClient.async().sendWeChatEnterpriseMessage(tenantId, serverCode, messageTemplateCode, lang, agentId, userList, partyList, tagList, safe, args);
        }
    }
    

    2.3 配置维护

    属性 描述 类型 默认值

    三、版本更新日志

    0.10.0.RELEASE [2019-06-23]

    1.0.0.RELEASE [2019-09-06]