diff --git a/aos-model-test/pom.xml b/aos-model-test/pom.xml
index ff34b11..81cfe0b 100644
--- a/aos-model-test/pom.xml
+++ b/aos-model-test/pom.xml
@@ -35,10 +35,6 @@
org.springframework.boot
spring-boot-starter-web
-
- org.springframework.boot
- spring-boot-starter-web
-
com.aos
aos-web
@@ -49,6 +45,12 @@
aos-robot
1.0-SNAPSHOT
+
+ cn.hutool
+ hutool-all
+ 5.8.9
+ test
+
diff --git a/aos-model-test/src/main/resources/application.properties b/aos-model-test/src/main/resources/application.properties
index c3d599d..e4dc345 100644
--- a/aos-model-test/src/main/resources/application.properties
+++ b/aos-model-test/src/main/resources/application.properties
@@ -1,2 +1,2 @@
-asura.robot.wx.ids.test=dc62c56e-c194-4a22-87ff-d9d0e30f56b4
+aos.robots.wx.id=dc62c56e-c194-4a22-87ff-d9d0e30f56b4
spring.profiles.active=dev
diff --git a/aos-model-test/src/test/java/com/aos/test/ApplicationTest.java b/aos-model-test/src/test/java/com/aos/test/ApplicationTest.java
index 18a560c..1c06f38 100644
--- a/aos-model-test/src/test/java/com/aos/test/ApplicationTest.java
+++ b/aos-model-test/src/test/java/com/aos/test/ApplicationTest.java
@@ -18,6 +18,6 @@ public class ApplicationTest {
@Test
public void test() throws InterruptedException {
- wxAlarm.alarm("test", "qwe");
+ wxAlarm.alarm("wx", "qwe");
}
}
diff --git a/aos-model-test/src/test/java/com/aos/test/BaseTest.java b/aos-model-test/src/test/java/com/aos/test/BaseTest.java
index 0ce50a9..4411ab3 100644
--- a/aos-model-test/src/test/java/com/aos/test/BaseTest.java
+++ b/aos-model-test/src/test/java/com/aos/test/BaseTest.java
@@ -1,6 +1,8 @@
package com.aos.test;
+import cn.hutool.json.JSONUtil;
import com.aos.robot.WXAlarm;
+import lombok.Data;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
@@ -8,6 +10,10 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.test.context.junit4.SpringRunner;
+import java.text.MessageFormat;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
@RunWith(SpringRunner.class)
@SpringBootTest(args = "--eureka.client.register-with-eureka=false", webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = BaseTest.Application.class)
public class BaseTest {
@@ -22,6 +28,22 @@ public class BaseTest {
@Test
public void robotTest() {
- wxAlarm.alarm("test", "123");
+ tmp tmp = new tmp();
+ tmp.setAge(1);
+ tmp.setName("wyl");
+ String test = JSONUtil.toJsonStr(tmp);
+ String format = MessageFormat.format("测试 {0},{1}", test, test);
+ System.out.println(format);
+// wxAlarm.alarm("test", "123");
+ }
+
+ @Data
+ public class tmp {
+ String name;
+ Integer age;
+ LocalDate date = LocalDate.now();
+ LocalDateTime dateTime = LocalDateTime.now();
}
}
+
+
diff --git a/aos-robot/src/main/java/com/aos/robot/WXAlarm.java b/aos-robot/src/main/java/com/aos/robot/WXAlarm.java
index 8cbc75a..6b9f811 100644
--- a/aos-robot/src/main/java/com/aos/robot/WXAlarm.java
+++ b/aos-robot/src/main/java/com/aos/robot/WXAlarm.java
@@ -1,7 +1,7 @@
package com.aos.robot;
import com.aos.robot.model.MegTypeEnum;
-import com.aos.robot.model.RobotParam;
+import com.aos.robot.model.WxRobotParam;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -47,9 +47,9 @@ public class WXAlarm {
}
private void makeMarkdownMessage(String robotName, String message) {
- RobotParam robotParam = new RobotParam();
+ WxRobotParam robotParam = new WxRobotParam();
robotParam.setMsgtype(MegTypeEnum.MARKDOWN);
- RobotParam.Markdown markdown = new RobotParam.Markdown();
+ WxRobotParam.Markdown markdown = new WxRobotParam.Markdown();
message = "## 当前时间 " + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) + "\n" + message;
markdown.setContent(message);
robotParam.setMarkdown(markdown);
@@ -59,8 +59,8 @@ public class WXAlarm {
private void makeTextMessage(String robotName, String message) {
message = "当前环境:" + env + "\n" + "当前时间:" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) + "\n" + message;
- RobotParam robotParam = new RobotParam();
- RobotParam.Text text = new RobotParam.Text();
+ WxRobotParam robotParam = new WxRobotParam();
+ WxRobotParam.Text text = new WxRobotParam.Text();
text.setContent(message);
robotParam.setText(text);
this.send(robotName, robotParam);
@@ -75,7 +75,7 @@ public class WXAlarm {
* @Date 2022/8/5
* @Author wangyl
*/
- private void send(String robotName, RobotParam robotParam) {
+ private void send(String robotName, WxRobotParam robotParam) {
robot.sendMessage(robotName, robotParam);
}
diff --git a/aos-robot/src/main/java/com/aos/robot/WxRobot.java b/aos-robot/src/main/java/com/aos/robot/WxRobot.java
index a5ed3e5..7c96a98 100644
--- a/aos-robot/src/main/java/com/aos/robot/WxRobot.java
+++ b/aos-robot/src/main/java/com/aos/robot/WxRobot.java
@@ -1,9 +1,12 @@
package com.aos.robot;
import com.aos.robot.model.RobotConfig;
-import com.aos.robot.model.RobotParam;
-import com.aos.robot.model.RobotRes;
+import com.aos.robot.model.RobotInfo;
+import com.aos.robot.model.RobotPatam;
+import com.aos.robot.model.WxRobotRes;
+import com.aos.robot.service.Robot;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
@@ -14,10 +17,11 @@ import javax.annotation.Resource;
@Slf4j
@Component
-public class WxRobot {
+public class WxRobot implements Robot {
+
@Resource(name = "robotRestTemplate")
RestTemplate restTemplate;
- @Resource
+ @Autowired
RobotConfig robotConfig;
/**
@@ -29,17 +33,18 @@ public class WxRobot {
* @Date 2022/8/5
* @Author wangyl
*/
- public void sendMessage(String robotName, RobotParam robotParam) {
- String key = robotConfig.getIds().get(robotName);
- if (StringUtils.isEmpty(key)) {
+ @Override
+ public void sendMessage(String robotName, RobotPatam robotParam) {
+ RobotInfo robotInfo = robotConfig.getRobots().get(robotName);
+ if (StringUtils.isEmpty(robotInfo)) {
throw new RuntimeException("获取机器人名称:" + robotName + "对应的id失败,请检查配置asura.robot.wx.ids." + robotName + "是否存在");
}
- String url = RobotConfig.URL + key;
- ResponseEntity stringResponseEntity = restTemplate.postForEntity(url, robotParam, RobotRes.class);
+ String url = robotInfo.getUrl() + robotInfo.getId();
+ ResponseEntity stringResponseEntity = restTemplate.postForEntity(url, robotParam, WxRobotRes.class);
if (stringResponseEntity.getStatusCode() != HttpStatus.OK) {
throw new RuntimeException("消息发送异常,网络代码【" + stringResponseEntity.getStatusCodeValue() + "】");
}
- RobotRes body = stringResponseEntity.getBody();
+ WxRobotRes body = stringResponseEntity.getBody();
if (!body.succeed()) {
log.error("消息发送异常【{}】,错误码【{}】", body.getErrmsg(), body.getErrcode());
throw new RuntimeException("消息发送异常,【" + body.getErrmsg() + "】");
diff --git a/aos-robot/src/main/java/com/aos/robot/conf/AutoRobotConfig.java b/aos-robot/src/main/java/com/aos/robot/conf/AutoRobotConfig.java
index 5d4caf3..3616c48 100644
--- a/aos-robot/src/main/java/com/aos/robot/conf/AutoRobotConfig.java
+++ b/aos-robot/src/main/java/com/aos/robot/conf/AutoRobotConfig.java
@@ -36,7 +36,7 @@ public class AutoRobotConfig {
}
@Bean
- @ConfigurationProperties(prefix = "asura.robot.wx")
+ @ConfigurationProperties(prefix = "aos")
public RobotConfig readDruidDataSource() {
return new RobotConfig();
}
diff --git a/aos-robot/src/main/java/com/aos/robot/model/RobotConfig.java b/aos-robot/src/main/java/com/aos/robot/model/RobotConfig.java
index 84f0e5b..264d215 100644
--- a/aos-robot/src/main/java/com/aos/robot/model/RobotConfig.java
+++ b/aos-robot/src/main/java/com/aos/robot/model/RobotConfig.java
@@ -8,7 +8,5 @@ import java.util.Map;
@Data
public class RobotConfig {
- private Map ids = new HashMap<>();
- final static public String URL = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=";
+ private Map robots = new HashMap<>();
}
-
diff --git a/aos-robot/src/main/java/com/aos/robot/model/RobotInfo.java b/aos-robot/src/main/java/com/aos/robot/model/RobotInfo.java
new file mode 100644
index 0000000..c91bf1a
--- /dev/null
+++ b/aos-robot/src/main/java/com/aos/robot/model/RobotInfo.java
@@ -0,0 +1,10 @@
+package com.aos.robot.model;
+
+import lombok.Data;
+
+
+@Data
+public class RobotInfo {
+ private String id;
+ private String url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=";
+}
diff --git a/aos-robot/src/main/java/com/aos/robot/model/RobotPatam.java b/aos-robot/src/main/java/com/aos/robot/model/RobotPatam.java
new file mode 100644
index 0000000..d1bc172
--- /dev/null
+++ b/aos-robot/src/main/java/com/aos/robot/model/RobotPatam.java
@@ -0,0 +1,4 @@
+package com.aos.robot.model;
+
+public interface RobotPatam {
+}
diff --git a/aos-robot/src/main/java/com/aos/robot/model/RobotRes.java b/aos-robot/src/main/java/com/aos/robot/model/RobotRes.java
index b6bc6a6..cf4a185 100644
--- a/aos-robot/src/main/java/com/aos/robot/model/RobotRes.java
+++ b/aos-robot/src/main/java/com/aos/robot/model/RobotRes.java
@@ -1,32 +1,14 @@
package com.aos.robot.model;
-import lombok.Data;
-
/**
* @author: wangyl
* @date: 2022/8/5
* @description: 企业微信机器人返回信息
*/
-@Data
-public class RobotRes {
- /**
- * 错误码
- */
- Integer errcode;
- /**
- * 错误信息
- */
- String errmsg;
+public interface RobotRes {
+ String getErrcode();
- /**
- * 判断是否成功
- *
- * @param
- * @return java.lang.Boolean
- * @Date 2022/8/5
- * @Author wangyl
- */
- public Boolean succeed() {
- return errcode == 0;
- }
+ String getErrmsg();
+
+ Boolean succeed();
}
diff --git a/aos-robot/src/main/java/com/aos/robot/model/RobotParam.java b/aos-robot/src/main/java/com/aos/robot/model/WxRobotParam.java
similarity index 88%
rename from aos-robot/src/main/java/com/aos/robot/model/RobotParam.java
rename to aos-robot/src/main/java/com/aos/robot/model/WxRobotParam.java
index 6cae375..6774104 100644
--- a/aos-robot/src/main/java/com/aos/robot/model/RobotParam.java
+++ b/aos-robot/src/main/java/com/aos/robot/model/WxRobotParam.java
@@ -5,7 +5,7 @@ import lombok.Data;
import java.util.List;
@Data
-public class RobotParam {
+public class WxRobotParam implements RobotPatam {
MegTypeEnum msgtype = MegTypeEnum.TEXT;
Text text;
Markdown markdown;
diff --git a/aos-robot/src/main/java/com/aos/robot/model/WxRobotRes.java b/aos-robot/src/main/java/com/aos/robot/model/WxRobotRes.java
new file mode 100644
index 0000000..b694e38
--- /dev/null
+++ b/aos-robot/src/main/java/com/aos/robot/model/WxRobotRes.java
@@ -0,0 +1,33 @@
+package com.aos.robot.model;
+
+import lombok.Data;
+
+/**
+ * @author: wangyl
+ * @date: 2022/8/5
+ * @description: 企业微信机器人返回信息
+ */
+@Data
+public class WxRobotRes implements RobotRes {
+ /**
+ * 错误码
+ */
+ String errcode;
+ /**
+ * 错误信息
+ */
+ String errmsg;
+
+ /**
+ * 判断是否成功
+ *
+ * @param
+ * @return java.lang.Boolean
+ * @Date 2022/8/5
+ * @Author wangyl
+ */
+ @Override
+ public Boolean succeed() {
+ return "0".equals(errcode);
+ }
+}
diff --git a/aos-robot/src/main/java/com/aos/robot/service/Robot.java b/aos-robot/src/main/java/com/aos/robot/service/Robot.java
new file mode 100644
index 0000000..083f172
--- /dev/null
+++ b/aos-robot/src/main/java/com/aos/robot/service/Robot.java
@@ -0,0 +1,16 @@
+package com.aos.robot.service;
+
+import com.aos.robot.model.RobotPatam;
+
+public interface Robot {
+ /**
+ * 发送消息
+ *
+ * @param robotName
+ * @param robotParam
+ * @return void
+ * @Date 2022/11/10
+ * @Author wangyl
+ */
+ void sendMessage(String robotName, RobotPatam robotParam);
+}