From 5389773b2d1ae86daec68b00f67c3682dc907e01 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期五, 22 十一月 2024 14:35:48 +0800 Subject: [PATCH] 代码提交(长期任务电话完成) --- smartor/src/main/java/com/smartor/common/SendService.java | 150 +++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 130 insertions(+), 20 deletions(-) diff --git a/smartor/src/main/java/com/smartor/common/SendService.java b/smartor/src/main/java/com/smartor/common/SendService.java index 7645456..4eef100 100644 --- a/smartor/src/main/java/com/smartor/common/SendService.java +++ b/smartor/src/main/java/com/smartor/common/SendService.java @@ -1,17 +1,32 @@ package com.smartor.common; -import com.aliyun.dysmsapi20170525.models.SendSmsResponseBody; -import com.smartor.domain.BaseSmsRequest; -import com.smartor.domain.DingTalkReqVo; -import com.smartor.domain.SendMagParam; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.ruoyi.common.utils.http.HttpUtils; +import com.smartor.domain.*; +import com.smartor.mapper.PatWildcardMapper; import com.smartor.service.DingTalkService; +import com.smartor.service.ISmsParamService; +import com.smartor.service.WeChatService; import com.smartor.service.impl.BaseSmsaccountServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; + +import java.io.UnsupportedEncodingException; +import java.lang.reflect.Field; +import java.net.URLEncoder; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * 鍙戦�佹湇鍔″伐鍏风被 */ +@Slf4j @Component public class SendService { @Autowired @@ -20,33 +35,103 @@ @Autowired private DingTalkService dingTalkService; - public Boolean sendMsg(SendMagParam sendMagParam) { + @Autowired + private PatWildcardMapper patWildcardMapper; + + @Autowired + private WeChatService weChatService; + + @Autowired + ISmsParamService iSmsParamService; + + @Value("${xhsmsPath}") + private String xhsmsPath; + // 甯愬彿 + @Value("${xhsmsAccount}") + private String xhsmsAccount; + // 鎺ュ彛瀵嗙爜 + @Value("${xhsmsPwd}") + private String xhsmsPwd; + // 铏氭嫙鎺ュ叆鐮� + @Value("${xhsmsjrm}") + private String xhsmsjrm; + + public Boolean sendMsg(SendMagParam sendMagParam) throws UnsupportedEncodingException, JsonProcessingException { + // 1,澶氬獟浣� 2,绾歌川 3,鐢佃瘽 4,鐭俊 5.寰俊鍏紬鍙� 6.寰俊灏忕▼搴� 7.鏀粯瀹� 8.鏅鸿兘灏忕▼搴� 9.閽夐拤 switch (sendMagParam.getType()) { - case ("澶氬獟浣�"): + case ("1"): - case ("绾歌川"): + case ("2"): - case ("鐢佃瘽"): + case ("3"): - case ("鐭俊"): - BaseSmsRequest baseSmsRequest = new BaseSmsRequest(); - baseSmsRequest.setPhoneNumber(sendMagParam.getPhone()); - baseSmsRequest.setTemplateCode("SMS_461860582"); + case ("4"): + //鐭俊 + Map<String, String> map2 = new HashMap<>(); + map2.put("action", "send"); + map2.put("account", xhsmsAccount); + map2.put("password", xhsmsPwd); + map2.put("mobile", sendMagParam.getPhone()); + map2.put("content", sendMagParam.getContent()); + map2.put("extno", xhsmsjrm); + map2.put("rt", "json"); + StringBuilder encodedParams = new StringBuilder(); - SendSmsResponseBody sendSmsResponseBody = baseSmsaccountService.sendMsg(baseSmsRequest); - if (sendSmsResponseBody.getCode().equals("OK")) { - return true; + for (Map.Entry<String, String> entry : map2.entrySet()) { + if (encodedParams.length() > 0) { + encodedParams.append("&"); + } + // 瀵归敭鍜屽�艰繘琛孶RL缂栫爜 + String encodedKey = URLEncoder.encode(entry.getKey(), "UTF-8"); + String encodedValue = URLEncoder.encode(entry.getValue(), "UTF-8"); + encodedParams.append(encodedKey).append("=").append(encodedValue); } + + String result = HttpUtils.sendPost(xhsmsPath, encodedParams.toString()); + ObjectMapper objectMapper2 = new ObjectMapper(); + Map<String, Object> map3 = objectMapper2.readValue(result, new TypeReference<Map<String, Object>>() { + }); + if (ObjectUtils.isNotEmpty(map3)) { + String status = map3.get("status").toString(); + if (status.equals("0")) { + return true; + } + } + log.error("鐭俊鍙戦�佸け璐ap:{}, 杩斿洖鐨勪俊鎭负:{}", map2, result); return false; - case ("寰俊鍏紬鍙�"): + case ("5"): + //鍏紬鍙� +// String params = "service=smarthos.yygh.ApiService.push&idcard=" + sendMagParam.getIdcard() + "&url=" + sendMagParam.getUrl() + "&keyword1=null&keyword2=null&keyword3=null&keyword4=null"; +// String result = HttpUtils.sendPost("/api", params); +// JSONObject jsonObject = JSONObject.parseObject(result); +// String code = (String) jsonObject.get("code"); +// if (!code.equals(0)) { +// log.error("寰俊鍏紬鍙锋秷鎭彂閫佸け璐ヤ簡锛歿}", sendMagParam); +// return false; +// } +// return true; - case ("寰俊灏忕▼搴�"): + WeChatSendVo weChatSendVo = new WeChatSendVo(); + weChatSendVo.setUrl(sendMagParam.getUrl()); + weChatSendVo.setTemplateId(sendMagParam.getTmpCode()); + ObjectMapper objectMapper = new ObjectMapper(); + Map map = null; + try { + map = objectMapper.readValue(sendMagParam.getContent(), Map.class); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + weChatSendVo.setContent(map); + weChatSendVo.setOpenid(sendMagParam.getOpenid()); + Boolean aBoolean1 = weChatService.sendMessageToFollowers(weChatSendVo); + return aBoolean1; + case ("6"): - case ("鏀粯瀹�"): + case ("7"): - case ("鏅鸿兘灏忕▼搴�"): + case ("8"): - case ("閽夐拤"): + case ("9"): DingTalkReqVo dingTalkReqVo = new DingTalkReqVo(); Boolean aBoolean = dingTalkService.sendNotification(dingTalkReqVo); if (aBoolean) { @@ -57,4 +142,29 @@ } } + + /** + * 瀵归棶棰樹腑鐨勯�氶厤绗﹁繘琛屽尮閰� + * + * @param script + * @param patArchive + * @return + */ + public String patWildcard(String script, PatArchive patArchive) { + List<PatWildcard> patWildcards = patWildcardMapper.selectPatWildcardList(new PatWildcard()); + for (PatWildcard patWildcard : patWildcards) { + try { + //鑾峰彇鎮h�呭搴旂殑瀛楁鐨勫�� + Field field = patArchive.getClass().getField(patWildcard.getPatField()); + field.setAccessible(true); + String value = field.get(patArchive).toString(); + //灏嗛棶棰樹腑鐨勯�氶厤绗﹁繘琛屾浛鎹� + script.replaceAll(patWildcard.getWildcard(), value); + } catch (Exception e) { + e.printStackTrace(); + } + } + + return script; + } } -- Gitblit v1.9.3