From 4f3a98f19143865cdc1de4791e8a95d96bd40c65 Mon Sep 17 00:00:00 2001 From: maven <2163098428@qq.com> Date: 星期五, 01 八月 2025 13:27:59 +0800 Subject: [PATCH] yys 密码已重置 --- ruoyi-common/src/main/java/com/ruoyi/common/utils/WxCpUtils.java | 153 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 153 insertions(+), 0 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/WxCpUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/WxCpUtils.java new file mode 100644 index 0000000..32266bf --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/WxCpUtils.java @@ -0,0 +1,153 @@ +package com.ruoyi.common.utils; + +import cn.hutool.http.HttpRequest; +import cn.hutool.json.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import me.chanjar.weixin.common.bean.result.WxMediaUploadResult; +import me.chanjar.weixin.cp.api.impl.WxCpServiceImpl; +import me.chanjar.weixin.cp.bean.message.WxCpMessage; +import me.chanjar.weixin.cp.bean.message.WxCpMessageSendResult; +import me.chanjar.weixin.cp.config.impl.WxCpDefaultConfigImpl; + +import java.io.*; +import java.net.MalformedURLException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.Base64; +import java.util.List; + +/** + * @Author: chenxiangfeng + * @Date: 2021/7/20 10:35 + */ +public class WxCpUtils { + + public static final String CORP_ID = "wwa423654b975441ac"; + public static final String CORP_SECRET = "snXq8qwA5tGu0YN1PlSDQqr6u9x3A0c_jQDmt8CN8Vs"; + public static final Integer AGENT_ID = 1000515; + + /** + * @param user 渚嬶細ZT-033268|ZT-028629锛屽涓腑闂寸敤|闅斿紑 + * @param content 浼犳枃鏈唴瀹� + * @param imageFile 鍥剧墖 + * @throws Exception + */ + public static void inform(String user, String content, File imageFile) throws Exception { + WxCpDefaultConfigImpl config = new WxCpDefaultConfigImpl(); + // 娉ㄥ唽鐨勪紒涓氫俊鎭� + config.setCorpId(CORP_ID); + config.setCorpSecret(CORP_SECRET); + + WxCpServiceImpl wxCpService = new WxCpServiceImpl(); + wxCpService.setWxCpConfigStorage(config); + + WxCpMessage message; + WxCpMessageSendResult result; + // 鍙戦�佹枃鏈� + if (StringUtils.isNotBlank(content)) { + message = WxCpMessage.TEXT() + .content(content) + // 鐢ㄦ埛id + .toUser(user) + // 搴旂敤id + .agentId(AGENT_ID) + .build(); + result = wxCpService.getMessageService().send(message); + } + // 鍙戦�佹枃浠� + if (imageFile != null) { + // 鑾峰彇鏂囦欢id + WxMediaUploadResult imgResult = wxCpService.getMediaService().upload("file", imageFile); + message = WxCpMessage.IMAGE() + .mediaId(imgResult.getMediaId()) + // 鐢ㄦ埛id + .toUser(user) + // 搴旂敤id + .agentId(AGENT_ID) + .build(); + result = wxCpService.getMessageService().send(message); + } + } + + /** + * 鎺ㄩ�佺兢娑堟伅 + * + * @param webHookList 浼佷笟寰俊鏈哄櫒浜哄湴鍧� + * @param file 鍥剧墖 + * @throws Exception + */ + public static void informWebHook(List<String> webHookList, File file) throws Exception { + JSONObject json = new JSONObject(); + json.putOpt("msgtype", "image"); + JSONObject image = new JSONObject(); + image.putOpt("base64", getBase64(file)); + image.putOpt("md5", getMd5(file)); + json.putOpt("image", image); + + webHookList.stream().forEach(webHook -> { + String result = HttpRequest.post(webHook) + .header("Content-Type", "application/json") + .body(json.toString()) + .execute().body(); + }); + } + + /** + * 鎺ㄩ�佺兢娑堟伅 + * + * @param webHook 浼佷笟寰俊鏈哄櫒浜哄湴鍧� + * @param content 鏁版嵁 + * @throws Exception + */ + public static String informWebHook(String webHook, String content) { + JSONObject jsonObject = new JSONObject() + .accumulate("msgtype", "text") + .accumulate("text", new JSONObject() + .accumulate("content", content)); + return HttpRequest.post(webHook).header("Content-Type", "application/json").body(jsonObject.toString()).execute().body(); + } + + public static String getMd5(File file) { + String name = ""; + try { + InputStream inputStream = new BufferedInputStream(new FileInputStream(file)); + byte[] bytes = new byte[1024]; + int len = 0; + MessageDigest messagedigest = MessageDigest.getInstance("MD5"); + while ((len = inputStream.read(bytes)) > 0) { + messagedigest.update(bytes, 0, len); + } + name = Md5Util.bufferToHex(messagedigest.digest()); + inputStream.close(); + } catch (MalformedURLException e) { + } catch (IOException e) { + } catch (NoSuchAlgorithmException e) { + } + return name; + + } + + public static String getBase64(File file) { + FileInputStream inputStream = null; + String base64Str = ""; + try { + inputStream = new FileInputStream(file); + Base64.Encoder encoder = Base64.getEncoder(); + int available = inputStream.available(); + byte[] bytes = new byte[available]; + inputStream.read(bytes); + base64Str = encoder.encodeToString(bytes); + inputStream.close(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + inputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + return base64Str; + } + +} -- Gitblit v1.9.3