WebhookService.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. package com.qs.mp.common.utils;
  2. import com.alibaba.fastjson.JSON;
  3. import com.dingtalk.api.DefaultDingTalkClient;
  4. import com.dingtalk.api.DingTalkClient;
  5. import com.dingtalk.api.request.OapiRobotSendRequest;
  6. import com.dingtalk.api.response.OapiRobotSendResponse;
  7. import com.qs.mp.common.enums.ServerEnvEnum;
  8. import com.qs.mp.common.utils.http.OkHttpUtil;
  9. import com.taobao.api.ApiException;
  10. import org.slf4j.Logger;
  11. import org.slf4j.LoggerFactory;
  12. import org.springframework.beans.factory.annotation.Value;
  13. import org.springframework.stereotype.Component;
  14. import java.util.Arrays;
  15. @Component
  16. public class WebhookService {
  17. private static Logger logger = LoggerFactory.getLogger(WebhookService.class);
  18. // private String dingToken = "https://oapi.dingtalk.com/robot/send?access_token=a2f955b2c685e4449ac98fd4a41b9ba1238a6badb58aba4da9c6fc50714fc43d";
  19. // final static String alertUrl = "https://oapi.dingtalk.com/robot/send?access_token=942c2e951c794fa9683acaad5b9be13e61224fd797093dd580cc65ca776977e7";
  20. final static String alertUrl = "https://oapi.dingtalk.com/robot/send?access_token=137a49db8579dc0f10b44992f0dbefc846e9be51b25761564b3c3e2bc4a9a588";
  21. //final static String url = "https://oapi.dingtalk.com/robot/send?access_token=a2f955b2c685e4449ac98fd4a41b9ba1238a6badb58aba4da9c6fc50714fc43d";
  22. final static String wxLogMonitorUrl = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=4275487c-8706-4676-ae21-e74db900fcb6";
  23. private static String wxRobotUrl = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=dd8d3a48-01f2-44b0-b4bb-406e2f466050";
  24. private static String env;
  25. @Value("${server.env}")
  26. public void setEnv(String serverEnv) {
  27. env = serverEnv;
  28. }
  29. /*public static void sendDing(String msg) {
  30. sendDing(url, msg, null);
  31. }*/
  32. public static void sendAlertDing(String msg) {
  33. sendDing(alertUrl, msg, null);
  34. }
  35. public static void sendDing(String token, String msg, String[] mobiles) {
  36. DingTalkClient client = new DefaultDingTalkClient(token);
  37. OapiRobotSendRequest request = new OapiRobotSendRequest();
  38. request.setMsgtype("text");
  39. OapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text();
  40. text.setContent(msg);
  41. request.setText(text);
  42. OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();
  43. if (mobiles != null) {
  44. at.setAtMobiles(Arrays.asList(mobiles));
  45. }
  46. request.setAt(at);
  47. try {
  48. OapiRobotSendResponse response = client.execute(request);
  49. logger.info("errorCode:"+response.getErrorCode());
  50. } catch (ApiException e) {
  51. logger.error("钉钉消息发送失败");
  52. }
  53. }
  54. public static String sendWXRobot(String url , String msg) {
  55. //System.out.println("企业微信机器人告警发送:" + msg);
  56. if (StringUtils.isNotBlank(msg) && msg.length() > 2500) {
  57. msg = msg.substring(0, 2500);
  58. }
  59. String jsonStr = "{\n" +
  60. " \"msgtype\": \"text\",\n" +
  61. " \"text\": {\n" +
  62. " \"content\": "+ JSON.toJSONString(msg)+"\n" +
  63. " }\n" +
  64. " }";
  65. //System.out.println(jsonStr);
  66. return OkHttpUtil.post(url, jsonStr, null);
  67. }
  68. /**
  69. * 系统监控
  70. * @param msg
  71. * @return
  72. */
  73. public static String sendLogAlertMsg(String msg) {
  74. // 钉钉机器人发送
  75. sendAlertDing(msg);
  76. return "success";
  77. // return sendWXRobot(wxLogMonitorUrl,msg);
  78. }
  79. /**
  80. * 业务通知
  81. * @param msg
  82. * @return
  83. */
  84. public static String sendBizData(String msg){
  85. if (ServerEnvEnum.PROD.getCode().equals(env)){
  86. return sendWXRobot(wxRobotUrl,msg);
  87. }
  88. LogUtil.info(logger, "当前环境为{0},不发送业务监控消息。msg:{1}", new Object[]{env, msg});
  89. return null;
  90. }
  91. public static void main(String[] args){
  92. WebhookService.sendLogAlertMsg("测试");
  93. // WebhookService.sendLogAlertMsg("测试下\"xx");
  94. // String resp = WebhookService.sendWXRobot(wxLogMonitorUrl, "2022-05-20\n累计代理:505,当日新增:7\n"
  95. // + "累计门店:527,当日新增:16\n"
  96. // + "累计用户:1935,当日新增:60\n"
  97. // + "===================\n"
  98. // + "累计销售额:160564.20元,当日:3086.00元\n"
  99. // + "累计分佣:31777.32元,当日:637.56元\n"
  100. // + "累计核销:61325.00元,当日:807.00元\n"
  101. // + "累计提现:70983.59元,待提现:21538.85元,当日:743.13元\n"
  102. // + "累计兑换订单:1381个,当日:22个\n"
  103. // + "累计派发盲豆:199166颗,当日:1760颗\n"
  104. // + "累计兑换盲豆:106155颗,当日:1233颗\n"
  105. // + "===================\n"
  106. // + "发财线上测试票|线上票(0.10元),累计销售额:0.50元,当日:0.00元\n"
  107. // + "------------------------\n"
  108. // + "数码组|线上票(20.00元),累计销售额:7000.00元,当日:0.00元\n"
  109. // + "------------------------\n"
  110. // + "五百人抢 单张20元,共计500张|线上票(20.00元),累计销售额:3460.00元,当日:0.00元\n"
  111. // + "------------------------\n"
  112. // + "双百人抢 单张58元,共计200张|线上票(58.00元),累计销售额:6670.00元,当日:0.00元\n"
  113. // + "------------------------\n"
  114. // + "百人抢 单张118元,共计100张|线上票(118.00元),累计销售额:6136.00元,当日:0.00元\n"
  115. // + "------------------------\n"
  116. // + "百人抢 单张58元,共计100张|线上票(58.00元),累计销售额:870.00元,当日:0.00元\n"
  117. // + "------------------------\n"
  118. // + "毒物|线上票(58.00元),累计销售额:812.00元,当日:58.00元\n"
  119. // + "------------------------\n"
  120. // + "20元轻娱乐|线上票(20.00元),累计销售额:740.00元,当日:20.00元\n"
  121. // + "------------------------\n"
  122. // + "10元体验版|线上票(10.00元),累计销售额:80.00元,当日:0.00元\n"
  123. // + "------------------------\n"
  124. // + "10元线上乐享票|线上票(10.00元),累计销售额:740.00元,当日:200.00元\n"
  125. // + "------------------------\n"
  126. // + "58盲票小家电款|线上票(58.00元),累计销售额:58.00元,当日:0.00元\n"
  127. // + "------------------------\n"
  128. // + "188大奖超高抽中组|线上票(188.00元),累计销售额:0.00元,当日:0.00元\n"
  129. // + "------------------------\n"
  130. // + "通用线下测试票|线下票(0.10元),累计销售额:0.80元,当日:0.00元\n"
  131. // + "------------------------\n"
  132. // + "呱呱刮|线下票(10.00元),累计销售额:41860.00元,当日:130.00元\n"
  133. // + "------------------------\n"
  134. // + "通用线下测试票1|线下票(0.10元),累计销售额:0.80元,当日:0.00元\n"
  135. // + "------------------------\n"
  136. // + "美女专场 |线下票(20.00元),累计销售额:460.00元,当日:40.00元\n"
  137. // + "------------------------\n"
  138. // + "天天刮一|线下票(10.00元),累计销售额:30420.00元,当日:370.00元\n"
  139. // + "------------------------\n"
  140. // + "天天刮二|线下票(10.00元),累计销售额:55930.00元,当日:600.00元\n"
  141. // + "------------------------\n"
  142. // + "演示专用测试票|线下票(0.10元),累计销售额:0.10元,当日:0.00元\n"
  143. // + "------------------------\n"
  144. // + "10元美鸬山居(无门店核销版)|线下票(10.00元),累计销售额:810.00元,当日:70.00元\n"
  145. // + "------------------------\n"
  146. // + "10元遥远的山民宿(门店核销版)|线下票(10.00元),累计销售额:180.00元,当日:10.00元\n"
  147. // + "------------------------\n"
  148. // + "10元莫梵美宿(门店多核销版)|线下票(10.00元),累计销售额:210.00元,当日:20.00元\n"
  149. // + "------------------------\n"
  150. // + "10元泗溪而上民宿(无门店核销版)|线下票(10.00元),累计销售额:70.00元,当日:30.00元\n"
  151. // + "------------------------\n"
  152. // + "10元乐朴山静(门店核销版)|线下票(10.00元),累计销售额:40.00元,当日:10.00元\n"
  153. // + "------------------------\n"
  154. // + "10元莫干山鱼缸民宿(门店多核销版)|线下票(10.00元),累计销售额:990.00元,当日:600.00元\n"
  155. // + "------------------------\n"
  156. // + "15元快乐无限版票|线下票(15.00元),累计销售额:1080.00元,当日:60.00元\n"
  157. // + "------------------------\n"
  158. // + "20元小汽车(门店多核销版)|线下票(20.00元),累计销售额:1260.00元,当日:300.00元\n"
  159. // + "------------------------\n"
  160. // + "30元泛娱乐(无门店核销版)|线下票(30.00元),累计销售额:570.00元,当日:510.00元\n"
  161. // + "------------------------\n"
  162. // + "58元夜场娱乐版|线下票(58.00元),累计销售额:116.00元,当日:58.00元\n"
  163. // + "------------------------\n"
  164. // + "10元乡村专用票(定制勿选)|线下票(10.00元),累计销售额:0.00元,当日:0.00元\n"
  165. // + "------------------------\n"
  166. // + "10元传化(无门店核销版)|线下票(10.00元),累计销售额:0.00元,当日:0.00元\n"
  167. // + "------------------------\n"
  168. // + "10元传化(门店多核销版)|线下票(10.00元),累计销售额:0.00元,当日:0.00元\n"
  169. // + "------------------------\n"
  170. // + "15元划算版|线下票(15.00元),累计销售额:0.00元,当日:0.00元\n"
  171. // + "------------------------\n"
  172. // + "20元传化(奢侈品版)|线下票(20.00元),累计销售额:0.00元,当日:0.00元\n"
  173. // + "------------------------\n"
  174. // + "10元传化(小家电版)|线下票(10.00元),累计销售额:0.00元,当日:0.00元\n"
  175. // + "------------------------\n"
  176. // + "58元传化(酒吧版)|线下票(58.00元),累计销售额:0.00元,当日:0.00元\n"
  177. // + "------------------------\n"
  178. // + "58元传化(小家电版)|线下票(58.00元),累计销售额:0.00元,当日:0.00元\n"
  179. // + "------------------------\n"
  180. // + "16元传化(全核销版)|线下票(16.00元),累计销售额:0.00元,当日:0.00元\n"
  181. // + "------------------------\n"
  182. // + "10元传化(丝滑版)|线下票(10.00元),累计销售额:0.00元,当日:0.00元\n"
  183. // + "------------------------");
  184. // System.out.println(resp);
  185. }
  186. }