package cn.teammodel; 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" + "> ![screenshot](https://gw.alicdn.com/tfs/TB1ut3xxbsrBKNjSZFpXXcXhFXa-846-786.png)\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 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 tree = service.buildTree(nodes); //System.out.println(JSONUtil.parse(service.buildTree(tree)).toStringPretty()); // //List nodeList = new ArrayList<>(); //service.flattenTree(tree, nodeList); //System.out.println(JSONUtil.parse(nodeList).toStringPretty()); } @Test public void testLocalDateTime() { List semesters = Arrays.asList( new School.Semester("1", "上学期", 1, 2, 1), new School.Semester("3", "下学期", 0, 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, currentDate); 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); } }