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