当前位置: 首页 > article >正文

【JAVA】java 企业微信信息推送

前言

JAVA中 将信息 推送到企业微信

	// 企微消息推送message
	private String getMessage(String name, String problemType, String pushResults, Long orderId,
			java.util.Date submitTime, java.util.Date payTime) {
		String message = "对接方:+<font color=\"info\">" + name + "</font>" + "\n" + ">问题类型:+<font color=\"info\">"
				+ problemType + "</font>" + "\n" + ">推送结果:+<font color=\"info\">" + pushResults + "</font>" + "\n"
				+ ">订单号:+<font color=\"info\">" + orderId + "</font>" + "\n" + ">订单产生时间:+<font color=\"info\">"
				+ submitTime + "</font>" + "\n" + ">订单支付时间:+<font color=\"info\">" + payTime + "</font>" + "\n"
				+ ">最后重推时间:+<font color=\"info\">" + new Date() + "</font>";
		return message;
	}

业务逻辑实现

                    LoggerFactory.getLogger(CtgExtendController.class).info("企业微信消息发送开始");
                    String message = getMessage(log);

                    String url = ConfigDao.getAppConfig().getConfig("fail_order_push_robot","https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=49308bf4-3e4c-47d8-95a9-1dbfd7984b66");
                    ExceptionMessageModel exceptionMessageModel = new ExceptionMessageModel();
                    exceptionMessageModel.setMessage(message);
                    exceptionMessageModel.setRobotUrl(url);
                    exceptionMessageModel.setTemplateCode(WxEtpRobotMsgEnum.MSG_ORDER_PUSH_H5.msgCode);
                    exceptionMessageModel.setJsonParam(JSONUtility.objectToNotNullJson(resVo));
                    //发送消息实现
                    if (StringUtils.isNotBlank(exceptionMessageModel.getTemplateCode()) && StringUtils.isNotBlank(exceptionMessageModel.getJsonParam())) {
                        //优先取配置项中的模板配置
                        String msg = WxEtpRobotMsgEnum.covertMsg(exceptionMessageModel.getTemplateCode(), exceptionMessageModel.getJsonParam());
                        if(StringUtils.isNotBlank(msg)){
                            exceptionMessageModel.setMessage(msg);
                        }
                    }
                    LoggerFactory.getLogger(CtgExtendController.class).info("异常信息推送埋点进入,入参:"+ exceptionMessageModel.toString());
                    WxRobotUtil.sendMsg(exceptionMessageModel.getRobotUrl(), exceptionMessageModel.getMessage());

                    LoggerFactory.getLogger(CtgExtendController.class).info("企业微信消息发送成功");

public class WxRobotUtil {
    private static final Logger logger= LoggerFactory.getLogger(WxRobotUtil.class);

    public static void sendMsg(String url,String msg){
        new CommonThread("","WxRobotUtil"){
            @Override
            public void run() {
               try {
                   //拼装发送消息
                   Map<String, Object> map = new HashMap<>();
                   Map<String, String> param = new HashMap<>();
                   map.put("msgtype", "markdown");
                   param.put("content","时间:"+new Date().getDateTimeStr()+"\n"+msg);
                   map.put("markdown", param);
                   String result = HttpUtility.doPost(url, JSONUtility.objectToJson(map), ContentType.APPLICATION_JSON.getMimeType());
                   logger.info("微信机器人消息:"+url+"---"+msg);
               }
               catch (Exception e){
                   logger.error("异常:"+url+"---"+msg,e);
               }
            }
        }.start();
    }
}

public class WxRobotUtil {
    private static final Logger logger= LoggerFactory.getLogger(WxRobotUtil.class);

    public static void sendMsg(String url,String msg){
        new CommonThread("","WxRobotUtil"){
            @Override
            public void run() {
               try {
                   //拼装发送消息
                   Map<String, Object> map = new HashMap<>();
                   Map<String, String> param = new HashMap<>();
                   map.put("msgtype", "markdown");
                   param.put("content","时间:"+new Date().getDateTimeStr()+"\n"+msg);
                   map.put("markdown", param);
                   String result = HttpUtility.doPost(url, JSONUtility.objectToJson(map), ContentType.APPLICATION_JSON.getMimeType());
                   logger.info("微信机器人消息:"+url+"---"+msg);
               }
               catch (Exception e){
                   logger.error("异常:"+url+"---"+msg,e);
               }
            }
        }.start();
    }
}


http://www.kler.cn/a/388080.html

相关文章:

  • 移动端【01】面试系统的MVVM重构实践
  • SOLIDWORKS代理商鑫辰信息科技
  • Android 配置默认输入法
  • Gurobi学术版+Anaconda安装步骤
  • 鸿蒙进阶篇-属性动画-animateTo转场动画
  • 【前端】JavaScript高级教程:线程机制与事件机制
  • 8+ 典型分析场景,25+ 标杆案例,Apache Doris 和 SelectDB 精选案例集(2024版)电子版上线
  • Python酷库之旅-第三方库Pandas(204)
  • layui 文件上传前检查文件大小,后面再点上传出现重复提交的问题
  • 【图】图学习
  • 20241106软考架构-------软考案例12答案
  • SQL,力扣题目262,行程和用户
  • 9_api_intro_imagerecognition_ocr2word
  • Vue 的 keep-alive
  • CSRF 跨站请求伪造的实现原理和预防措施
  • Windows 使用批处理脚本快速释放被占用的端口
  • 深度学习:预训练(Pre-training详解
  • 【如何在 Linux 和 Android 系统中杀死进程】
  • 【模型学习之路】手写+分析GAT
  • 前端 Flex 布局语法详解
  • Python接口自动化测试自学指南(项目实战)
  • 海外云手机在出海业务中的优势有哪些?
  • Elasticsearch实战使用
  • u盘怎么重装电脑系统_u盘重装电脑系统步骤和详细教程【新手宝典】
  • Hive中查看字段中是否包含某些字符串的函数
  • Git 入门篇(三)