ruoyi-admin/pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/DingTalkController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/DingTalkService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SendMessageIn.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/WeChatController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/WeChatService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-admin/src/main/resources/application-druid.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-common/pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
smartor/src/main/java/com/smartor/domain/WeChatSendVo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
ruoyi-admin/pom.xml
@@ -68,6 +68,19 @@ <version>3.8.5</version> <scope>compile</scope> </dependency> <!-- https://mvnrepository.com/artifact/net.glxn.qrgen/javase --> <dependency> <groupId>net.glxn.qrgen</groupId> <artifactId>javase</artifactId> <version>2.0</version> </dependency> <!-- https://mvnrepository.com/artifact/net.glxn.qrgen/core --> <dependency> <groupId>net.glxn.qrgen</groupId> <artifactId>core</artifactId> <version>2.0</version> </dependency> </dependencies> <build> ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/DingTalkController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,131 @@ package com.ruoyi.web.controller.smartor; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.dingtalk.api.DefaultDingTalkClient; import com.dingtalk.api.DingTalkClient; import com.dingtalk.api.request.OapiGettokenRequest; import com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request; import com.dingtalk.api.request.OapiUserListidRequest; import com.dingtalk.api.response.OapiGettokenResponse; import com.dingtalk.api.response.OapiMessageCorpconversationAsyncsendV2Response; import com.dingtalk.api.response.OapiUserListidResponse; import com.ruoyi.common.core.controller.BaseController; import com.taobao.api.ApiException; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.List; /** * 微信æ¥å£ * * @author liusheng * @date 2023-05-15 */ @RestController @RequestMapping("/smartor/dingtalk") public class DingTalkController extends BaseController { @Value("appid") private String dingAppid = "dingn8iip5ubj7clrrsv"; @Value("appSecret") private String dingAppSecret = "qlEK8D3oOVwGPOTiBQIBYTqQVlAfy9S_qQizEQFjJdSScwemWFryg4gbneu-NqWD"; /** * åéééæ¶æ¯ * * @param mobile * @param park * @param alarmCode * @param severityDesc * @throws ApiException */ public void sendNotification(String mobile, String park, String alarmCode, String severityDesc) throws ApiException { // Log.info("åééééç¥"); String accessToken = getAccessToken(); if (StringUtils.isBlank(mobile)) { return; } DingTalkClient client3 = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/user/listid"); OapiUserListidRequest request2 = new OapiUserListidRequest(); request2.setDeptId(675909059L); // 设置è¦è·åçé¨é¨ IDï¼è¿éä»¥æ ¹é¨é¨ä¸ºä¾ // 设置é¨é¨ IDï¼å¦æè·åææåå·¥ææºå·ï¼å¯ä»¥è®¾ç½®ä¸ºæ ¹é¨é¨ç ID OapiUserListidResponse response2 = client3.execute(request2, accessToken); String body = response2.getBody(); // è§£æä¸ºJSONObject JSONObject jsonObject = JSONObject.parseObject(body); // æååºJSONArray JSONArray jsonArray = new JSONArray(jsonObject.getJSONObject("result").getJSONArray("userid_list")); // å°JSONArray转为Listå表 String str = JSONObject.toJSONString(jsonArray); List<String> list = JSONObject.parseObject(str, List.class); //useridæ°ç» for (String urid : list) { DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2"); OapiMessageCorpconversationAsyncsendV2Request request = new OapiMessageCorpconversationAsyncsendV2Request(); request.setUseridList(urid); request.setAgentId(1779052814L); request.setToAllUser(false); OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg(); msg.setOa(new OapiMessageCorpconversationAsyncsendV2Request.OA()); msg.getOa().setMessageUrl("www.baidu.com"); msg.getOa().setPcMessageUrl("www.baidu.com"); msg.getOa().setHead(new OapiMessageCorpconversationAsyncsendV2Request.Head()); msg.getOa().getHead().setText("text"); msg.getOa().getHead().setBgcolor("FFBBBBBB"); msg.getOa().setBody(new OapiMessageCorpconversationAsyncsendV2Request.Body()); msg.getOa().getBody().setContent("msgä¿¡æ¯"); OapiMessageCorpconversationAsyncsendV2Request.Form formPark = new OapiMessageCorpconversationAsyncsendV2Request.Form(); formPark.setKey(null); formPark.setValue(null); OapiMessageCorpconversationAsyncsendV2Request.Form formAlarmCode = new OapiMessageCorpconversationAsyncsendV2Request.Form(); formAlarmCode.setKey("工工工a "); formAlarmCode.setValue(alarmCode); OapiMessageCorpconversationAsyncsendV2Request.Form formSeverityDesc = new OapiMessageCorpconversationAsyncsendV2Request.Form(); formSeverityDesc.setKey("æè¦è¦è¦è¦"); formSeverityDesc.setValue(severityDesc); OapiMessageCorpconversationAsyncsendV2Request.Form formConner = new OapiMessageCorpconversationAsyncsendV2Request.Form(); formConner.setKey("å å¨å¨"); ArrayList<OapiMessageCorpconversationAsyncsendV2Request.Form> objects = new ArrayList<>(); objects.add(formPark); objects.add(formSeverityDesc); objects.add(formAlarmCode); objects.add(formConner); msg.getOa().getBody().setForm(objects); msg.setMsgtype("oa"); request.setMsg(msg); // log.info("è·ååééç¥æ¶æ¯ä½åè·ååééç¥äººå®æ"); OapiMessageCorpconversationAsyncsendV2Response response = client.execute(request, accessToken); // log.info("åéæ¶æ¯æ¯å¦æå"+response.isSuccess()); System.out.println(response.isSuccess()); // log.info("æ¶æ¯ä»»å¡ID"+response.getTaskId()); System.out.println(response.getTaskId()); } } /** * è·å access_token */ private String getAccessToken() throws ApiException { DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken"); OapiGettokenRequest request = new OapiGettokenRequest(); //Appkey request.setAppkey(dingAppid); //Appsecret request.setAppsecret(dingAppSecret); /*è¯·æ±æ¹å¼*/ request.setHttpMethod("GET"); OapiGettokenResponse response = client.execute(request); return response.getAccessToken(); } } ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/DingTalkService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,127 @@ package com.ruoyi.web.controller.smartor; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.dingtalk.api.DefaultDingTalkClient; import com.dingtalk.api.DingTalkClient; import com.dingtalk.api.request.OapiGettokenRequest; import com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request; import com.dingtalk.api.request.OapiUserGetByMobileRequest; import com.dingtalk.api.request.OapiUserListidRequest; import com.dingtalk.api.response.*; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.taobao.api.ApiException; import org.apache.commons.lang3.StringUtils; import java.util.ArrayList; import java.util.List; import java.util.Map; public class DingTalkService { /** * è·åAccessToken * * @return AccessToken * @throws ApiException */ private static String getAccessToken() throws ApiException { DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken"); OapiGettokenRequest request = new OapiGettokenRequest(); //Appkey request.setAppkey("dingn8iip5ubj7clrrsv"); //Appsecret request.setAppsecret("qlEK8D3oOVwGPOTiBQIBYTqQVlAfy9S_qQizEQFjJdSScwemWFryg4gbneu-NqWD"); /*è¯·æ±æ¹å¼*/ request.setHttpMethod("GET"); OapiGettokenResponse response = client.execute(request); return response.getAccessToken(); } public static void sendNotification(String mobile, String park, String alarmCode, String severityDesc) throws ApiException { // Log.info("åééééç¥"); String accessToken = getAccessToken(); if (StringUtils.isBlank(mobile)) { return; } // DingTalkClient client3 = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/user/listid"); DingTalkClient client3 = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/user/listid"); OapiUserListidRequest request2 = new OapiUserListidRequest(); request2.setDeptId(675909059L); // 设置è¦è·åçé¨é¨ IDï¼è¿éä»¥æ ¹é¨é¨ä¸ºä¾ // 设置é¨é¨ IDï¼å¦æè·åææåå·¥ææºå·ï¼å¯ä»¥è®¾ç½®ä¸ºæ ¹é¨é¨ç ID OapiUserListidResponse response2 = client3.execute(request2, accessToken); String body = response2.getBody(); // è§£æä¸ºJSONObject JSONObject jsonObject = JSONObject.parseObject(body); // æååºJSONArray JSONArray jsonArray = new JSONArray(jsonObject.getJSONObject("result").getJSONArray("userid_list")); // å°JSONArray转为Listå表 String str = JSONObject.toJSONString(jsonArray); List<String> list = JSONObject.parseObject(str,List.class); //çµè¯å·ç æ°ç» // String[] split = mobile.split(","); // for (String s : split) { // DingTalkClient client2 = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/get_by_mobile"); // OapiUserGetByMobileRequest req = new OapiUserGetByMobileRequest(); // req.setMobile(s); // req.setHttpMethod("GET"); // OapiUserGetByMobileResponse rsp = client2.execute(req, accessToken); // //è·åå°Uridå°±æ¯å¨å ¬å¸éè¦åéå°é£ä¸ªäººçid // String urid = rsp.getUserid(); for (String urid : list) { DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2"); OapiMessageCorpconversationAsyncsendV2Request request = new OapiMessageCorpconversationAsyncsendV2Request(); request.setUseridList(urid); request.setAgentId(1779052814L); request.setToAllUser(false); OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg(); msg.setOa(new OapiMessageCorpconversationAsyncsendV2Request.OA()); msg.getOa().setMessageUrl("www.baidu.com"); msg.getOa().setPcMessageUrl("www.baidu.com"); msg.getOa().setHead(new OapiMessageCorpconversationAsyncsendV2Request.Head()); msg.getOa().getHead().setText("text"); msg.getOa().getHead().setBgcolor("FFBBBBBB"); msg.getOa().setBody(new OapiMessageCorpconversationAsyncsendV2Request.Body()); msg.getOa().getBody().setContent("msgä¿¡æ¯"); OapiMessageCorpconversationAsyncsendV2Request.Form formPark = new OapiMessageCorpconversationAsyncsendV2Request.Form(); formPark.setKey(null); formPark.setValue(null); OapiMessageCorpconversationAsyncsendV2Request.Form formAlarmCode = new OapiMessageCorpconversationAsyncsendV2Request.Form(); formAlarmCode.setKey("工工工a "); formAlarmCode.setValue(alarmCode); OapiMessageCorpconversationAsyncsendV2Request.Form formSeverityDesc = new OapiMessageCorpconversationAsyncsendV2Request.Form(); formSeverityDesc.setKey("æè¦è¦è¦è¦"); formSeverityDesc.setValue(severityDesc); OapiMessageCorpconversationAsyncsendV2Request.Form formConner = new OapiMessageCorpconversationAsyncsendV2Request.Form(); formConner.setKey("å å¨å¨"); ArrayList<OapiMessageCorpconversationAsyncsendV2Request.Form> objects = new ArrayList<>(); objects.add(formPark); objects.add(formSeverityDesc); objects.add(formAlarmCode); objects.add(formConner); msg.getOa().getBody().setForm(objects); msg.setMsgtype("oa"); request.setMsg(msg); // log.info("è·ååééç¥æ¶æ¯ä½åè·ååééç¥äººå®æ"); OapiMessageCorpconversationAsyncsendV2Response response = client.execute(request, accessToken); // log.info("åéæ¶æ¯æ¯å¦æå"+response.isSuccess()); System.out.println(response.isSuccess()); // log.info("æ¶æ¯ä»»å¡ID"+response.getTaskId()); System.out.println(response.getTaskId()); } } public static void main(String[] args) throws ApiException { // String appId = "wx1c5243d2337753f4"; // String appSecret = "84a2186a0d175e88345267c716516cd3"; // WeChatService weChatService = new WeChatService(appId, appSecret); // weChatService.sendMessageToFollowers("ä½ å¨è¯´å¥å¢ï¼ï¼ï¼ï¼"); // // new com.smartor.controller.BaseSmsaccountController().sendMessageToFollowers("AIJSl-IF6M05NzaXofPYbT5wgSP3bWH7I9OBmvJqsaU","www.baidu.com"); sendNotification("17607179857", "1", "2", "3"); } } ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SendMessageIn.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,22 @@ package com.ruoyi.web.controller.smartor; import lombok.Data; import java.util.List; @Data public class SendMessageIn { //æ¶æ¯ç±»å private String msgType; //webhook private String webhook; //å¯é¥ private String secret; //ææ¬ private String text; //æå®å¯¹è±¡ private List<String> mobileList; //æ¯å¦æ¨éææäºº private boolean isAtAll; } ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/WeChatController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,110 @@ package com.ruoyi.web.controller.smartor; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.ruoyi.common.core.controller.BaseController; import com.smartor.domain.WeChatSendVo; import me.chanjar.weixin.common.exception.WxErrorException; import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl; import me.chanjar.weixin.mp.bean.template.WxMpTemplateData; import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import java.io.IOException; import java.util.List; /** * 微信æ¥å£ * * @author liusheng * @date 2023-05-15 */ @RestController @RequestMapping("/smartor/wechat") public class WeChatController extends BaseController { @Value("appid") private String appid = "wx1c5243d2337753f4"; @Value("appSecret") private String appSecret = "84a2186a0d175e88345267c716516cd3"; /** * è·å模æ¿ä¿¡æ¯ * * @return */ @GetMapping("/getTemplateList") public JSONArray getTemplateList() { String url = "https://api.weixin.qq.com/cgi-bin/template/get_all_private_template?access_token=" + getAccessToken(); OkHttpClient httpClient = new OkHttpClient(); Request request = new Request.Builder().url(url).build(); try { Response response = httpClient.newCall(request).execute(); JSONObject jsonObject = JSONObject.parseObject(response.body().string()); return jsonObject.getJSONArray("template_list"); } catch (IOException e) { e.printStackTrace(); return null; } } /** * å¾®ä¿¡å ¬ä¼å·ä¿¡æ¯åé * * @param weChatSendVo * @return */ @PostMapping("/sendMessageToFollowers") public Boolean sendMessageToFollowers(@RequestBody WeChatSendVo weChatSendVo) { WxMpService wxMpService; wxMpService = new WxMpServiceImpl(); wxMpService.setWxMpConfigStorage(new WxMpInMemoryConfigStorage()); WxMpInMemoryConfigStorage wxMpConfigStorage = (WxMpInMemoryConfigStorage) wxMpService.getWxMpConfigStorage(); wxMpConfigStorage.setAppId(appid); wxMpConfigStorage.setSecret(appSecret); try { List<String> openIdList = wxMpService.getUserService().userList(null).getOpenids(); for (String openId : openIdList) { WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder().toUser(openId).templateId(weChatSendVo.getTemplateId()).url(weChatSendVo.getUrl()).build(); for (String key : weChatSendVo.getContent().keySet()) { templateMessage.addData(new WxMpTemplateData(key, weChatSendVo.getContent().get(key).toString())); } wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage); } } catch (WxErrorException e) { e.printStackTrace(); } return true; } /** * è·å access_token */ public String getAccessToken() { String accessTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appid + "&secret=" + appSecret; OkHttpClient httpClient = new OkHttpClient(); Request request = new Request.Builder().url(accessTokenUrl).build(); try { Response response = httpClient.newCall(request).execute(); JSONObject jsonObject = JSONObject.parseObject(response.body().string()); return jsonObject.getString("access_token"); } catch (IOException e) { e.printStackTrace(); return null; } } // } } ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/WeChatService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,87 @@ package com.ruoyi.web.controller.smartor; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.smartor.domain.WeChatSendVo; import me.chanjar.weixin.common.exception.WxErrorException; import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl; import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage; import me.chanjar.weixin.mp.bean.template.WxMpTemplateData; import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage; import java.util.HashMap; import java.util.List; import java.util.Map; public class WeChatService { private WxMpService wxMpService; public WeChatService(String appId, String appSecret) { wxMpService = new WxMpServiceImpl(); wxMpService.setWxMpConfigStorage(new WxMpInMemoryConfigStorage()); WxMpInMemoryConfigStorage wxMpConfigStorage = (WxMpInMemoryConfigStorage) wxMpService.getWxMpConfigStorage(); wxMpConfigStorage.setAppId(appId); wxMpConfigStorage.setSecret(appSecret); } public void sendMessageToFollowers(String messageContent) { try { // è·åææå ³æ³¨è çOpenIDå表 List<String> openIdList = wxMpService.getUserService().userList(null).getOpenids(); for (String openId : openIdList) { WxMpKefuMessage wxMpKefuMessage = WxMpKefuMessage.TEXT().toUser(openId).content("婿¹å ¬ä¼å·æµè¯").build(); // try { // boolean b = wxMpService.getKefuService().sendKefuMessage(wxMpKefuMessage); // if(b==false){ // continue; // } // }catch (WxErrorException e){ // continue; // } WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder().toUser(openId).templateId("oG3pJHPVWpE81DmZsua_2tKwgJ97r0qz37z56ns7NB4").url("www.baidu.com").build(); templateMessage.addData(new WxMpTemplateData("{first", "ä½ å¥½ï¼æ ¹æ®ä½ çè®°å½ä¿¡æ¯ï¼ä¸ºä½ çæè¿æçåº·å¤æ¥å", "#FFB6C1")); templateMessage.addData(new WxMpTemplateData("keyword1", "2023-05-15-2023-05-16", "#B95EA6")); templateMessage.addData(new WxMpTemplateData("keyword2", "å ±æµéè¡ç³10次ï¼å ¶ä¸æ£å¸¸7次ãåé«2次ãåä½1次ï¼å¹³åæ¯æ¥é¥®é£æå ¥çé1578大å¡ï¼å¨æ¯æ¥çéæ§å¶èå´å ï¼å¹³åæ¯æ¥æ£æ¥1å°æ¶ï¼æ»¡è¶³åº·å¤éè¦", "#173177")); templateMessage.addData(new WxMpTemplateData("remark", "213456", "#87cefa")); // templateMessage.addData(new WxMpTemplateData("low","AA","#FF6347")); // templateMessage.addData(new WxMpTemplateData("scq_day","AA","#FF1493")); // templateMessage.addData(new WxMpTemplateData("bir_day","AA","#FF00FF" )); // templateMessage.addData(new WxMpTemplateData("daily_english_cn","AA","#800080")); // templateMessage.addData(new WxMpTemplateData("daily_english_en","AA","#FFA500")); wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage); } } catch (WxErrorException e) { e.printStackTrace(); } } public static void main(String[] args) { // String appId = "wx1c5243d2337753f4"; // String appSecret = "84a2186a0d175e88345267c716516cd3"; // WeChatService weChatService = new WeChatService(appId, appSecret); // weChatService.sendMessageToFollowers("ä½ å¨è¯´å¥å¢ï¼ï¼ï¼ï¼"); // // new com.smartor.controller.BaseSmsaccountController().sendMessageToFollowers("AIJSl-IF6M05NzaXofPYbT5wgSP3bWH7I9OBmvJqsaU","www.baidu.com"); WeChatController weChatController = new WeChatController(); JSONArray templateList = weChatController.getTemplateList(); for (int i = 0; i < templateList.size(); i++) { JSONObject template = templateList.getJSONObject(i); System.out.println("Template ID: " + template.getString("template_id")); System.out.println("Title: " + template.getString("title")); System.out.println("Content: " + template.getString("content")); System.out.println("==============================="); WeChatSendVo weChatSendVo = new WeChatSendVo(); weChatSendVo.setTemplateId(template.getString("template_id")); Map<String, Object> map = new HashMap<>(); map.put("first", "æ¦å¨çå¡"); map.put("keyword1", "çæä»æ¬¾çæä»æ¬¾æªå¼æ¾çæä»æ¬¾"); map.put("keyword2", "12657698798797"); map.put("remark", "ååæååå"); weChatSendVo.setContent(map); weChatController.sendMessageToFollowers(weChatSendVo); } } } ruoyi-admin/src/main/resources/application-druid.yml
@@ -55,3 +55,5 @@ wall: config: multi-statement-allow: true appid : wxf50c5c72265188eb appSecret : 7ab0a81392a96b157efa1df00f9cd939 ruoyi-common/pom.xml
@@ -72,6 +72,19 @@ <artifactId>fastjson2</artifactId> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.4.0</version> </dependency> <dependency> <groupId>com.github.binarywang</groupId> <artifactId>weixin-java-mp</artifactId> <version>3.0.0</version> </dependency> <!-- io常ç¨å·¥å ·ç±» --> <dependency> <groupId>commons-io</groupId> @@ -131,7 +144,21 @@ <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.26</version> </dependency> <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>4.10.0</version> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>alibaba-dingtalk-service-sdk</artifactId> <version>2.0.0</version> </dependency> </dependencies> </project> smartor/src/main/java/com/smartor/domain/WeChatSendVo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,33 @@ package com.smartor.domain; import com.ruoyi.common.annotation.Excel; import lombok.Data; import java.util.Map; @Data public class WeChatSendVo { /** * 模æ¿ID */ @Excel(name = " 模æ¿ID ") String templateId; /** * åéå 容 * [{ * "first":"ä½ å¥½ï¼æ ¹æ®ä½ çè®°å½ä¿¡æ¯ï¼ä¸ºä½ çæè¿æçåº·å¤æ¥å", * âkeyword1âï¼â......â * }] */ @Excel(name = " åéå 容 ") Map<String, Object> content; /** * 跳转URL */ @Excel(name = " 跳转URL ") String url; }