|
|
package cn.teammodel;
|
|
|
|
|
|
import cn.teammodel.common.FiveEducations;
|
|
|
import cn.teammodel.model.entity.appraise.Appraise;
|
|
|
import cn.teammodel.model.entity.appraise.AppraiseTreeNode;
|
|
|
import cn.teammodel.model.entity.school.School;
|
|
|
import cn.teammodel.service.impl.EvaluationServiceImpl;
|
|
|
import cn.teammodel.utils.SchoolDateUtil;
|
|
|
import com.dingtalk.api.DefaultDingTalkClient;
|
|
|
import com.dingtalk.api.DingTalkClient;
|
|
|
import com.dingtalk.api.request.OapiRobotSendRequest;
|
|
|
import com.dingtalk.api.response.OapiRobotSendResponse;
|
|
|
import com.taobao.api.ApiException;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
|
|
import java.time.Instant;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.ZoneOffset;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.List;
|
|
|
import java.util.UUID;
|
|
|
|
|
|
/**
|
|
|
* @author winter
|
|
|
* @create 2023-11-10 10:42
|
|
|
*/
|
|
|
@Slf4j
|
|
|
public class TestWithoutSpring {
|
|
|
@Test
|
|
|
public void testJwtDecode() {
|
|
|
// Claims claims = null;
|
|
|
// try {
|
|
|
// Jwts.parser()
|
|
|
//
|
|
|
//
|
|
|
//// claims = Jwts.parser()
|
|
|
//// .setSigningKey("fXO6ko/qyXeYrkecPeKdgXnuLXf9vMEtnBC9OB3s+aA=")
|
|
|
//// .parseClaimsJws("eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ0ZXN0LnRlYW1tb2RlbC5jbiIsInN1YiI6IjE1OTUzMjEzNTQiLCJhenAiOiJoYmNuIiwiZXhwIjoxNjk5NTg2MzM1LCJuYW1lIjoi572X6ICB5biIIiwicGljdHVyZSI6Imh0dHBzOi8vY29yZXN0b3JhZ2VzZXJ2aWNlLmJsb2IuY29yZS5jaGluYWNsb3VkYXBpLmNuL2FjY291bnQvYXZhdGFyLzE1OTUzMjEzNTQiLCJyb2xlcyI6WyJ0ZWFjaGVyIiwiYWRtaW4iLCJhcmVhIl0sInBlcm1pc3Npb25zIjpbXSwic3RhbmRhcmQiOiJzdGFuZGFyZDEiLCJzY29wZSI6InRlYWNoZXIiLCJhcmVhIjoiNjllM2Q0MTMtNTBhMS00ZjVlLTg0NGEtZTBmN2M5NjIyZWEzIiwid2Vic2l0ZSI6IklFUyJ9.4NdqwDdDQcyberEAirX0srOIb1ADXLJfP-a9qNXb0yw")
|
|
|
//// .getBody();
|
|
|
// } catch (Exception e) {
|
|
|
// e.printStackTrace();
|
|
|
// }
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
public void testDingDing() throws ApiException {
|
|
|
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/robot/send?access_token=32d9b24f69c2c4fd7c2dab43268b6258a7214d2620e0805d7b6d1429003b64b6");
|
|
|
OapiRobotSendRequest request = new OapiRobotSendRequest();
|
|
|
request.setMsgtype("text");
|
|
|
OapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text();
|
|
|
text.setContent("测试告警文本消息");
|
|
|
request.setText(text);
|
|
|
OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();
|
|
|
at.setAtMobiles(Arrays.asList("15196506772"));
|
|
|
// isAtAll类型如果不为Boolean,请升级至最新SDK
|
|
|
at.setIsAtAll(true);
|
|
|
at.setAtUserIds(Arrays.asList("109929","32099"));
|
|
|
request.setAt(at);
|
|
|
|
|
|
request.setMsgtype("link");
|
|
|
OapiRobotSendRequest.Link link = new OapiRobotSendRequest.Link();
|
|
|
link.setMessageUrl("https://www.dingtalk.com/");
|
|
|
link.setPicUrl("");
|
|
|
link.setTitle("告警时代的火车向前开");
|
|
|
link.setText("告警这个即将发布的新版本,创始人xx称它为红树林。而在此之前,每当面临重大升级,产品经理们都会取一个应景的代号,这一次,为什么是红树林");
|
|
|
request.setLink(link);
|
|
|
|
|
|
request.setMsgtype("markdown");
|
|
|
OapiRobotSendRequest.Markdown markdown = new OapiRobotSendRequest.Markdown();
|
|
|
markdown.setTitle("杭州天气");
|
|
|
markdown.setText("#### 告警杭州天气 @156xxxx8827\n" +
|
|
|
"> 9度,西北风1级,空气良89,相对温度73%\n\n" +
|
|
|
"> \n" +
|
|
|
"> ###### 10点20分发布 [天气](http://www.thinkpage.cn/) \n");
|
|
|
request.setMarkdown(markdown);
|
|
|
OapiRobotSendResponse response = client.execute(request);
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
public void testException() {
|
|
|
try {
|
|
|
throw new Exception("出现异常");
|
|
|
} catch (Exception e) {
|
|
|
//e.printStackTrace();
|
|
|
log.error("error: {}", e);
|
|
|
//System.out.println(e.getMessage());
|
|
|
//System.out.println(e.getCause());
|
|
|
//System.out.println(e.getStackTrace());
|
|
|
}
|
|
|
}
|
|
|
@Test
|
|
|
public void testResult() {
|
|
|
EvaluationServiceImpl service = new EvaluationServiceImpl();
|
|
|
Appraise appraise = new Appraise();
|
|
|
appraise.setCode("evaluation");
|
|
|
appraise.setPeriodId("default");
|
|
|
List<AppraiseTreeNode> nodes = new ArrayList<>();
|
|
|
|
|
|
String root2Id = UUID.randomUUID().toString();
|
|
|
AppraiseTreeNode root1 = new AppraiseTreeNode();
|
|
|
root1.setId(root2Id);
|
|
|
root1.setPid(null);
|
|
|
root1.setName("root1");
|
|
|
root1.setScore(0);
|
|
|
// 1
|
|
|
String rootId = UUID.randomUUID().toString();
|
|
|
AppraiseTreeNode node = new AppraiseTreeNode();
|
|
|
node.setId(rootId);
|
|
|
node.setPid(null);
|
|
|
node.setName("root");
|
|
|
node.setScore(0);
|
|
|
|
|
|
|
|
|
// 2
|
|
|
AppraiseTreeNode node1 = new AppraiseTreeNode();
|
|
|
String subId = UUID.randomUUID().toString();
|
|
|
node1.setId(subId);
|
|
|
node1.setPid(rootId);
|
|
|
node1.setName("child-1");
|
|
|
node1.setScore(0);
|
|
|
// 3
|
|
|
AppraiseTreeNode node2 = new AppraiseTreeNode();
|
|
|
node2.setId(UUID.randomUUID().toString());
|
|
|
node2.setPid(subId);
|
|
|
node2.setName("child-2");
|
|
|
node2.setScore(0);
|
|
|
nodes.add(node);
|
|
|
nodes.add(root1);
|
|
|
nodes.add(node1);
|
|
|
nodes.add(node2);
|
|
|
appraise.setNodes(nodes);
|
|
|
|
|
|
//List<EvaluationTreeNode> tree = service.buildTree(nodes);
|
|
|
//System.out.println(JSONUtil.parse(service.buildTree(tree)).toStringPretty());
|
|
|
//
|
|
|
//List<EvaluationTreeNode> nodeList = new ArrayList<>();
|
|
|
//service.flattenTree(tree, nodeList);
|
|
|
//System.out.println(JSONUtil.parse(nodeList).toStringPretty());
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
public void testLocalDateTime() {
|
|
|
List<School.Semester> semesters = Arrays.asList(
|
|
|
new School.Semester("1", "上学期", 0, 2, 1), // 2024-3 , 正确: 2023-3
|
|
|
new School.Semester("3", "下学期", 1, 8, 1)
|
|
|
// new School.Semester("4", "下学期", 0, 11, 1),
|
|
|
// new School.Semester("2", "下学期", 0, 5, 1)
|
|
|
);
|
|
|
|
|
|
// LocalDate currentDate = LocalDate.of(2024, 11, 1);
|
|
|
|
|
|
String id = SchoolDateUtil.calculateAcademicYearId(semesters, LocalDate.now());
|
|
|
System.out.println(id);
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
public void testWeek() {
|
|
|
LocalDateTime start = LocalDateTime.ofInstant(Instant.ofEpochMilli(1690819200000L), ZoneOffset.of("+08:00"));
|
|
|
LocalDateTime end = LocalDateTime.ofInstant(Instant.ofEpochMilli(1708099200000L),ZoneOffset.of("+08:00"));
|
|
|
long l = SchoolDateUtil.calculateWeekNum(start, end, 1702025230000L);
|
|
|
System.out.println(l);
|
|
|
// LocalDateTime now = LocalDateTime.now();
|
|
|
// LocalDateTime time = now.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY))
|
|
|
// .withHour(0)
|
|
|
// .withMinute(0)
|
|
|
// .withSecond(0)
|
|
|
// .withNano(0);
|
|
|
//
|
|
|
// LocalDateTime time1 = LocalDateTime.of(2023, 12, 18, 0, 0);
|
|
|
// System.out.println(ChronoUnit.WEEKS.between(time, time1) + 1);
|
|
|
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
public void testDate() {
|
|
|
Integer a = 1000;
|
|
|
int b = 1000;
|
|
|
// 包装类碰到基本类型,会自动拆箱,这时候用 == 没事
|
|
|
// System.out.println(a == b);
|
|
|
|
|
|
System.out.println(FiveEducations.codes());
|
|
|
}
|
|
|
}
|