From d7ded0eb25cf7998d7ced7df96981dbc4b039b16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=9C=B0=E5=B9=B3=E7=BA=BF?= <22250530@qq.com> Date: Mon, 19 Oct 2015 10:38:52 +0800 Subject: [PATCH] --- .../redkale/service/weixin/WeiXinQYMessage.java | 12 ++++++++++++ .../redkale/service/weixin/WeiXinQYService.java | 6 ++++++ 2 files changed, 18 insertions(+) diff --git a/src-plugin/com/wentch/redkale/service/weixin/WeiXinQYMessage.java b/src-plugin/com/wentch/redkale/service/weixin/WeiXinQYMessage.java index 6c64e6191..569dfaf3c 100644 --- a/src-plugin/com/wentch/redkale/service/weixin/WeiXinQYMessage.java +++ b/src-plugin/com/wentch/redkale/service/weixin/WeiXinQYMessage.java @@ -7,6 +7,7 @@ package com.wentch.redkale.service.weixin; import com.wentch.redkale.convert.json.*; import java.util.*; +import java.util.function.*; /** * 微信企业号Service @@ -29,6 +30,8 @@ public class WeiXinQYMessage { private String safe; + private Supplier contentSupplier; + public WeiXinQYMessage() { } @@ -37,11 +40,20 @@ public class WeiXinQYMessage { setTextMessage(text); } + public WeiXinQYMessage(String agentid, Supplier contentSupplier) { + this.agentid = agentid; + this.contentSupplier = contentSupplier; + } + public final void setTextMessage(String content) { if (text == null) text = new HashMap<>(); text.put("content", content); } + public void supplyContent() { + if (contentSupplier != null) setTextMessage(contentSupplier.get()); + } + public String getAgentid() { return agentid; } diff --git a/src-plugin/com/wentch/redkale/service/weixin/WeiXinQYService.java b/src-plugin/com/wentch/redkale/service/weixin/WeiXinQYService.java index 3ca207c8d..4c8a936ae 100644 --- a/src-plugin/com/wentch/redkale/service/weixin/WeiXinQYService.java +++ b/src-plugin/com/wentch/redkale/service/weixin/WeiXinQYService.java @@ -16,6 +16,7 @@ import java.lang.reflect.*; import java.nio.charset.*; import java.security.*; import java.util.*; +import java.util.function.*; import java.util.logging.*; import javax.annotation.*; import javax.crypto.*; @@ -99,10 +100,15 @@ public class WeiXinQYService implements Service { sendQYMessage(new WeiXinQYMessage(agentid, message)); } + public void sendQYTextMessage(String agentid, Supplier contentSupplier) { + sendQYMessage(new WeiXinQYMessage(agentid, contentSupplier)); + } + public void sendQYMessage(WeiXinQYMessage message) { submit(() -> { String result = null; try { + message.supplyContent(); String url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + getQYAccessToken(); result = postHttpContent(url, convert.convertTo(message)); if (finest) logger.finest("sendQYMessage ok: " + message + " -> " + result);