|
@@ -15,18 +15,17 @@ import thyyxxk.webserver.utils.TokenUtil;
|
|
|
public class SendWxInfoController {
|
|
|
private static final String SEND_MSG_URL = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN";
|
|
|
private static volatile boolean OVER_LIMIT = false;
|
|
|
+ private static final int AGENT_ID = 1000041;
|
|
|
+ private static final int OVER_LIMIT_CODE = 45009;
|
|
|
+ private static final int SAFE_MODE = 0;
|
|
|
+ private static final String OVER_LIMIT_MESSAGE = "企业微信消息推送接口调用超过限制,今日无法再做推送!";
|
|
|
|
|
|
- private static final JSONObject overLimitJson;
|
|
|
+ private static final JSONObject OVER_LIMIT_ALERT;
|
|
|
|
|
|
static {
|
|
|
- overLimitJson = new JSONObject();
|
|
|
- overLimitJson.put("errcode", 45009);
|
|
|
- overLimitJson.put("errmsg", "企业微信消息推送接口调用超过限制,今日无法再做推送!");
|
|
|
- }
|
|
|
-
|
|
|
- @Scheduled(cron = "0 0 0 * * ?")
|
|
|
- public void resetOverLimitFlag() {
|
|
|
- OVER_LIMIT = false;
|
|
|
+ OVER_LIMIT_ALERT = new JSONObject();
|
|
|
+ OVER_LIMIT_ALERT.put("errcode", OVER_LIMIT_CODE);
|
|
|
+ OVER_LIMIT_ALERT.put("errmsg", OVER_LIMIT_MESSAGE);
|
|
|
}
|
|
|
|
|
|
@PassToken
|
|
@@ -34,30 +33,30 @@ public class SendWxInfoController {
|
|
|
public JSONObject sendCorpWxMsg(@RequestParam("touser") String touser,
|
|
|
@RequestParam("content") String content) {
|
|
|
if (OVER_LIMIT) {
|
|
|
- log.info("企业微信消息推送接口调用超过限制,今日无法再做推送!");
|
|
|
- return overLimitJson;
|
|
|
+ log.info(OVER_LIMIT_MESSAGE);
|
|
|
+ return OVER_LIMIT_ALERT;
|
|
|
}
|
|
|
String requestUrl= SEND_MSG_URL.replace("ACCESS_TOKEN", TokenUtil.getWeComSendMsgToken());
|
|
|
JSONObject msgObj = new JSONObject();
|
|
|
msgObj.put("content", content);
|
|
|
JSONObject param = new JSONObject();
|
|
|
- param.put("agentid", 1000041);
|
|
|
+ param.put("agentid", AGENT_ID);
|
|
|
param.put("touser", touser.replaceAll(",", "|"));
|
|
|
param.put("toparty", "");
|
|
|
param.put("totag", "");
|
|
|
param.put("msgtype", "text");
|
|
|
param.put("text", msgObj);
|
|
|
- param.put("safe", 0);
|
|
|
+ param.put("safe", SAFE_MODE);
|
|
|
log.info("推送企业信息消息 >>> {}", param);
|
|
|
RestTemplate restTemplate = new RestTemplate();
|
|
|
- String resStr = restTemplate.postForObject(requestUrl, param, String.class);
|
|
|
- JSONObject retObj = JSONObject.parseObject(resStr);
|
|
|
- log.info("推送企业信息消息结果 >>> {}", retObj);
|
|
|
- Integer errcode = retObj.getInteger("errcode");
|
|
|
- if (null != errcode && errcode == 45009) {
|
|
|
+ String response = restTemplate.postForObject(requestUrl, param, String.class);
|
|
|
+ JSONObject result = JSONObject.parseObject(response);
|
|
|
+ log.info("推送企业信息消息结果 >>> {}", result);
|
|
|
+ Integer errcode = result.getInteger("errcode");
|
|
|
+ if (null != errcode && errcode == OVER_LIMIT_CODE) {
|
|
|
OVER_LIMIT = true;
|
|
|
}
|
|
|
- return retObj;
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
@PassToken
|
|
@@ -68,4 +67,9 @@ public class SendWxInfoController {
|
|
|
TokenUtil.setWeComSendMsgToken(tokens.getWeComSendMsgToken());
|
|
|
return "success";
|
|
|
}
|
|
|
+
|
|
|
+ @Scheduled(cron = "0 0 0 * * ?")
|
|
|
+ public void resetOverLimitFlag() {
|
|
|
+ OVER_LIMIT = false;
|
|
|
+ }
|
|
|
}
|