diff --git a/.idea/misc.xml b/.idea/misc.xml index a833e35..132404b 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -8,10 +8,7 @@ - + - - - + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 94a25f7..35eb1dd 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 7778b51..54d721b 100644 --- a/pom.xml +++ b/pom.xml @@ -103,6 +103,7 @@ org.springframework.boot spring-boot-maven-plugin + ${spring-boot.version} diff --git a/src/main/java/cn/van/business/enums/ValidCodeConverter.java b/src/main/java/cn/van/business/enums/ValidCodeConverter.java index b0b9b46..535ae3f 100644 --- a/src/main/java/cn/van/business/enums/ValidCodeConverter.java +++ b/src/main/java/cn/van/business/enums/ValidCodeConverter.java @@ -13,6 +13,7 @@ public class ValidCodeConverter { private static final Map codeDescriptions = new HashMap<>(); static { + codeDescriptions.put(-100, "无变化"); codeDescriptions.put(-1, "未知"); codeDescriptions.put(2, "无效-拆单"); codeDescriptions.put(3, "无效-取消"); diff --git a/src/main/java/cn/van/business/util/JDUtils.java b/src/main/java/cn/van/business/util/JDUtils.java index 27a6b22..bce41e4 100644 --- a/src/main/java/cn/van/business/util/JDUtils.java +++ b/src/main/java/cn/van/business/util/JDUtils.java @@ -209,7 +209,7 @@ public class JDUtils { /** * 菜单: * 今日统计 - * 昨天统计 + * 昨日统计 * 最近七天统计 * 最近一个月统计 * 今天订单 @@ -221,10 +221,10 @@ public class JDUtils { content = "菜单:京粉 +命令 \n 如: 京粉 今日统计\r"; content += "今日统计\r"; content += "昨天统计\r"; - content += "最近七天统计\r"; - content += "最近一个月统计\r"; - content += "今天订单\r"; - content += "昨天订单\r"; + content += "七日统计\r"; + content += "一个月统计\r"; + content += "今日订单\r"; + content += "昨日订单\r"; content += "刷新三天\r"; break; case "今日统计": { @@ -239,9 +239,11 @@ public class JDUtils { break; } - case "昨天统计": { + case "昨日统计": { List yesterdayOrders = filterOrdersByDate(orderRows, 1); - content = "昨天统计:"; + List todayOrders = filterOrdersByDate(orderRows, 0); + yesterdayOrders.removeAll(todayOrders); + content = "昨日统计:"; content += "订单总数:" + yesterdayOrders.size() + "\r"; content += "已付款:" + yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count() + "\r"; content += "已取消:" + yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16).count() + "\r"; @@ -249,25 +251,25 @@ public class JDUtils { break; } - case "最近七天统计": + case "七日统计": List last7DaysOrders = filterOrdersByDate(orderRows, 7); - content = "最近七天统计:"; + content = "七日统计:"; content += "订单总数:" + last7DaysOrders.size() + "\r"; content += "已付款:" + last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count() + "\r"; content += "已取消:" + last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16).count() + "\r"; content += "佣金总计:" + last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).mapToDouble(OrderRow::getEstimateFee).sum(); break; - case "最近一个月统计": + case "一个月统计": List last30DaysOrders = filterOrdersByDate(orderRows, 30); - content = "最近一个月统计:"; + content = "一个月统计:"; content += "订单总数:" + last30DaysOrders.size() + "\r"; content += "已付款:" + last30DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count() + "\r"; content += "已取消:" + last30DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16).count() + "\r"; content += "佣金总计:" + last30DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).mapToDouble(OrderRow::getEstimateFee).sum(); break; - case "今天订单": { + case "今日订单": { List todayOrders = filterOrdersByDate(orderRows, 0); // 订单总数,已付款,已取消,佣金总计 content = "今日统计:"; @@ -283,9 +285,9 @@ public class JDUtils { break; } - case "昨天订单": { + case "昨日订单": { List yesterdayOrders = filterOrdersByDate(orderRows, 1); - content = "昨天统计:"; + content = "昨日统计:"; content += "订单总数:" + yesterdayOrders.size() + "\r"; content += "已付款:" + yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count() + "\r"; content += "已取消:" + yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16).count() + "\r"; @@ -328,6 +330,13 @@ public class JDUtils { } content = "刷新三天成功,耗时" + (System.currentTimeMillis() - start) / 1000 + "秒\r" + "刷新订单数:" + count; } + case "刷新两个月": { + long start = System.currentTimeMillis(); + + fetchHistoricalOrders(); + content = "刷新两个月,耗时" + (System.currentTimeMillis() - start) / 1000 + "秒\r"; + + } } if (content != null) { wxUtil.sendTextMessage(WXUtil.super_admin_wxid, content, 1, WXUtil.super_admin_wxid); @@ -350,7 +359,7 @@ public class JDUtils { if (isAutoFlush && lastValidCode.equals(newValidCode)) { } else { String content; - content = getFormattedOrderInfo(orderRow); + content = getFormattedOrderInfo(orderRow, Util.isEmpty(oldValidCode) ? -100 : Integer.parseInt(oldValidCode)); // 推送 wxUtil.sendTextMessage(WXUtil.super_admin_wxid, content, 1, WXUtil.super_admin_wxid); @@ -363,7 +372,7 @@ public class JDUtils { } - public String getFormattedOrderInfo(OrderRow orderRow) { + public String getFormattedOrderInfo(OrderRow orderRow, Integer oldValidCode) { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); ValidCodeConverter converter = new ValidCodeConverter(); String orderInfo = @@ -380,9 +389,14 @@ public class JDUtils { + "实际计算佣金的金额:" + orderRow.getActualCosPrice() + "\r" + "下单时间:" + formatter.format(orderRow.getOrderTime()) + "\r" + "完成时间:" + (orderRow.getFinishTime() != null ? formatter.format(orderRow.getFinishTime()) : "未完成") + "\r\n" - + "订单状态:" + (converter.getCodeDescription(orderRow.getValidCode())) + "\r"; + + "最新订单状态:" + (converter.getCodeDescription(orderRow.getValidCode())) + "\r"; + if (oldValidCode != -100) { + orderInfo = "订单状态从 :" + (converter.getCodeDescription(oldValidCode)) + " --变成-- " + + (converter.getCodeDescription(orderRow.getValidCode())) + "\r" + orderInfo; + } - return orderInfo + "祝 财源滚滚"; + + return orderInfo; } /** @@ -496,12 +510,12 @@ public class JDUtils { LocalDateTime startDate = LocalDateTime.now().minusMonths(2).truncatedTo(ChronoUnit.HOURS); LocalDateTime now = LocalDateTime.now(); - LocalDateTime lastHour = now.minusHours(1).withMinute(0).withSecond(0).withNano(0); + LocalDateTime lastHour = now.truncatedTo(ChronoUnit.HOURS); while (!startDate.isEqual(lastHour)) { + startDate = startDate.plusHours(1); UnionOpenOrderRowQueryResponse response = fetchOrdersForDateTime(startDate, false); // 假的代表历史订单 - if (response != null) { int code = response.getQueryResult().getCode(); if (code == 200) { @@ -520,7 +534,7 @@ public class JDUtils { } } } - startDate = startDate.plusHours(1); + } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 1c8e1d0..d79245c 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -11,6 +11,13 @@ spring: url: jdbc:mysql://134.175.126.60:33306/jd?characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8 username: root password: mysql_7sjTXH + hikari: + maximum-pool-size: 200 # 最大连接数 + minimum-idle: 5 # 最小空闲连接数 + idle-timeout: 30000 # 空闲连接超时时间(毫秒) + max-lifetime: 2000000 # 最大生命周期(毫秒) + connection-timeout: 30000 # 连接超时时间(毫秒) + pool-name: SpringBootHikariCP # 连接池名字 #redis配置 redis: host: 134.175.126.60 @@ -19,7 +26,7 @@ spring: timeout: 1800000 lettuce: pool: - max-active: 20 + max-active: 200 #最大阻塞等待时间(负数表示没限制) max-wait: -1 max-idle: 5