Merge remote-tracking branch '群晖/master'

# Conflicts:
#	src/main/java/cn/van/business/util/JDUtil.java
This commit is contained in:
雷欧(林平凡)
2025-03-13 17:17:27 +08:00
7 changed files with 100 additions and 50 deletions

View File

@@ -320,9 +320,10 @@ public class JDUtil {
OrderFetchStrategy strategy = new Days3090Strategy(); OrderFetchStrategy strategy = new Days3090Strategy();
for (WXUtil.SuperAdmin admin : super_admins.values()) { for (WXUtil.SuperAdmin admin : super_admins.values()) {
try { try {
fetchOrders(strategy, admin.getAppKey(), admin.getSecretKey()); int count = fetchOrders(strategy, admin.getAppKey(), admin.getSecretKey());
logger.info("账号{} 3090订单拉取完成新增{}条", admin.getAppKey().substring(18), count);
} catch (Exception e) { } catch (Exception e) {
logger.error("账号{}拉取异常: {}", admin.getAppKey().substring(18), e.getMessage()); logger.error("账号 {} 拉取异常: {}", admin.getAppKey().substring(18), e.getMessage());
} }
} }
} catch (Exception ex) { } catch (Exception ex) {
@@ -343,9 +344,10 @@ public class JDUtil {
OrderFetchStrategy strategy = new Days1430Strategy(); // 需补充Days1430Strategy实现 OrderFetchStrategy strategy = new Days1430Strategy(); // 需补充Days1430Strategy实现
for (WXUtil.SuperAdmin admin : super_admins.values()) { for (WXUtil.SuperAdmin admin : super_admins.values()) {
try { try {
fetchOrders(strategy, admin.getAppKey(), admin.getSecretKey()); int count = fetchOrders(strategy, admin.getAppKey(), admin.getSecretKey());
logger.info("账号{} 1430订单拉取完成新增{}条", admin.getAppKey().substring(18), count);
} catch (Exception e) { } catch (Exception e) {
logger.error("账号{}拉取异常: {}", admin.getAppKey().substring(18), e.getMessage()); logger.error("账号 {} 拉取异常: {}", admin.getAppKey().substring(18), e.getMessage());
} }
} }
} catch (Exception ex) { } catch (Exception ex) {
@@ -366,9 +368,11 @@ public class JDUtil {
super_admins.values().parallelStream().forEach(admin -> { super_admins.values().parallelStream().forEach(admin -> {
if (Util.isAnyEmpty(admin.getAppKey(), admin.getSecretKey())) return; if (Util.isAnyEmpty(admin.getAppKey(), admin.getSecretKey())) return;
try { try {
fetchOrders(strategy, admin.getAppKey(), admin.getSecretKey()); int count = fetchOrders(strategy, admin.getAppKey(), admin.getSecretKey());
logger.info("账号{} 0714订单拉取完成新增{}条", admin.getAppKey().substring(18), count);
} catch (Exception e) { } catch (Exception e) {
logger.error("账号{}0714拉取异常: {}", admin.getAppKey().substring(18), e.getMessage()); logger.error("账号 {} 0714拉取异常: {}", admin.getAppKey().substring(18), e.getMessage());
} }
}); });
} catch (Exception ex) { } catch (Exception ex) {
@@ -528,6 +532,7 @@ public class JDUtil {
// 订单总数,已付款,已取消,佣金总计 // 订单总数,已付款,已取消,佣金总计
content.append("今日统计:\n"); content.append("今日统计:\n");
content.append("订单总数:").append(todayOrders.size()).append("\r"); content.append("订单总数:").append(todayOrders.size()).append("\r");
content.append("订单总数(不含取消)").append(todayOrders.size() - todayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已付款:").append(todayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已付款:").append(todayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r");
content.append("已取消:").append(todayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已取消:").append(todayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已完成:").append(todayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); content.append("已完成:").append(todayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r");
@@ -544,6 +549,8 @@ public class JDUtil {
List<OrderRow> yesterdayOrders = filterOrdersByDate(orderRows, 1); List<OrderRow> yesterdayOrders = filterOrdersByDate(orderRows, 1);
content.append("昨日统计:\n"); content.append("昨日统计:\n");
content.append("订单总数:").append(yesterdayOrders.size()).append("\r"); content.append("订单总数:").append(yesterdayOrders.size()).append("\r");
content.append("订单总数(不含取消)").append(yesterdayOrders.size() - yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已付款:").append(yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已付款:").append(yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r");
content.append("已取消:").append(yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已取消:").append(yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已完成:").append(yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); content.append("已完成:").append(yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r");
@@ -560,6 +567,8 @@ public class JDUtil {
List<OrderRow> last3DaysOrders = filterOrdersByDate(orderRows, 3); List<OrderRow> last3DaysOrders = filterOrdersByDate(orderRows, 3);
content.append("三日统计:\n"); content.append("三日统计:\n");
content.append("订单总数:").append(last3DaysOrders.size()).append("\r"); content.append("订单总数:").append(last3DaysOrders.size()).append("\r");
content.append("订单总数(不含取消)").append(last3DaysOrders.size() - last3DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已付款:").append(last3DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已付款:").append(last3DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r");
content.append("已取消:").append(last3DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已取消:").append(last3DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已完成:").append(last3DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); content.append("已完成:").append(last3DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r");
@@ -576,6 +585,7 @@ public class JDUtil {
List<OrderRow> last7DaysOrders = filterOrdersByDate(orderRows, 7); List<OrderRow> last7DaysOrders = filterOrdersByDate(orderRows, 7);
content.append("七日统计:\n"); content.append("七日统计:\n");
content.append("订单总数:").append(last7DaysOrders.size()).append("\r"); content.append("订单总数:").append(last7DaysOrders.size()).append("\r");
content.append("订单总数(不含取消)").append(last7DaysOrders.size() - last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已付款:").append(last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已付款:").append(last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r");
content.append("已取消:").append(last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已取消:").append(last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已完成:").append(last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); content.append("已完成:").append(last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r");
@@ -592,6 +602,8 @@ public class JDUtil {
List<OrderRow> last30DaysOrders = filterOrdersByDate(orderRows, 30); List<OrderRow> last30DaysOrders = filterOrdersByDate(orderRows, 30);
content.append("一个月统计:\n"); content.append("一个月统计:\n");
content.append("订单总数:").append(last30DaysOrders.size()).append("\r"); content.append("订单总数:").append(last30DaysOrders.size()).append("\r");
content.append("订单总数(不含取消)").append(last30DaysOrders.size() - last30DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已付款:").append(last30DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已付款:").append(last30DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r");
content.append("已取消:").append(last30DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已取消:").append(last30DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已完成:").append(last30DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); content.append("已完成:").append(last30DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r");
@@ -609,6 +621,8 @@ public class JDUtil {
List<OrderRow> last60DaysOrders = filterOrdersByDate(orderRows, 60); List<OrderRow> last60DaysOrders = filterOrdersByDate(orderRows, 60);
content.append("两个月统计:\n"); content.append("两个月统计:\n");
content.append("订单总数:").append(last60DaysOrders.size()).append("\r"); content.append("订单总数:").append(last60DaysOrders.size()).append("\r");
content.append("订单总数(不含取消)").append(last60DaysOrders.size() - last60DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已付款:").append(last60DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已付款:").append(last60DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r");
content.append("已取消:").append(last60DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已取消:").append(last60DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已完成:").append(last60DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); content.append("已完成:").append(last60DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r");
@@ -625,6 +639,8 @@ public class JDUtil {
content = new StringBuilder(); content = new StringBuilder();
List<OrderRow> last90DaysOrders = filterOrdersByDate(orderRows, 90); List<OrderRow> last90DaysOrders = filterOrdersByDate(orderRows, 90);
content.append("订单总数:").append(last90DaysOrders.size()).append("\r"); content.append("订单总数:").append(last90DaysOrders.size()).append("\r");
content.append("订单总数(不含取消)").append(last90DaysOrders.size() - last90DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已付款:").append(last90DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已付款:").append(last90DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r");
content.append("已取消:").append(last90DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已取消:").append(last90DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已完成:").append(last90DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); content.append("已完成:").append(last90DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r");
@@ -645,6 +661,8 @@ public class JDUtil {
content.append("本月统计:\n"); content.append("本月统计:\n");
content.append("订单总数:").append(thisMonthOrders.size()).append("\r"); content.append("订单总数:").append(thisMonthOrders.size()).append("\r");
content.append("订单总数(不含取消)").append(thisMonthOrders.size() - thisMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已付款:").append(thisMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已付款:").append(thisMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r");
content.append("已取消:").append(thisMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已取消:").append(thisMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已完成:").append(thisMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); content.append("已完成:").append(thisMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r");
@@ -668,6 +686,8 @@ public class JDUtil {
content.append("上个月统计:\n"); content.append("上个月统计:\n");
content.append("订单总数:").append(lastMonthOrders.size()).append("\r"); content.append("订单总数:").append(lastMonthOrders.size()).append("\r");
content.append("订单总数(不含取消)").append(lastMonthOrders.size() - lastMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已付款:").append(lastMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已付款:").append(lastMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r");
content.append("已取消:").append(lastMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已取消:").append(lastMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已完成:").append(lastMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); content.append("已完成:").append(lastMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r");
@@ -687,6 +707,8 @@ public class JDUtil {
content = new StringBuilder(); content = new StringBuilder();
content.append("总统计:\n"); content.append("总统计:\n");
content.append("订单总数:").append(orderRows.size()).append("\r"); content.append("订单总数:").append(orderRows.size()).append("\r");
content.append("订单总数(不含取消)").append(orderRows.size() - orderRows.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已付款:").append(orderRows.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已付款:").append(orderRows.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r");
content.append("已取消:").append(orderRows.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已取消:").append(orderRows.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已完成:").append(orderRows.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); content.append("已完成:").append(orderRows.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r");
@@ -707,6 +729,8 @@ public class JDUtil {
// 订单总数,已付款,已取消,佣金总计 // 订单总数,已付款,已取消,佣金总计
content.append("今日统计:\n"); content.append("今日统计:\n");
content.append("订单总数:").append(todayOrders.size()).append("\r"); content.append("订单总数:").append(todayOrders.size()).append("\r");
content.append("订单总数(不含取消)").append(todayOrders.size() - todayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已付款:").append(todayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已付款:").append(todayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r");
content.append("已取消:").append(todayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已取消:").append(todayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已完成:").append(todayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); content.append("已完成:").append(todayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r");
@@ -716,7 +740,7 @@ public class JDUtil {
content.append("\r" + "违规佣金:").append(getStreamForWeiGui(todayOrders).mapToDouble(orderRow -> orderRow.getEstimateCosPrice() * orderRow.getCommissionRate() * 0.01).sum()); content.append("\r" + "违规佣金:").append(getStreamForWeiGui(todayOrders).mapToDouble(orderRow -> orderRow.getEstimateCosPrice() * orderRow.getCommissionRate() * 0.01).sum());
if(!todayOrders.isEmpty()){ if (!todayOrders.isEmpty()) {
orderUtil.orderToWxBatch(todayOrders); orderUtil.orderToWxBatch(todayOrders);
} }
@@ -731,6 +755,8 @@ public class JDUtil {
yesterdayOrders.removeAll(todayOrders); yesterdayOrders.removeAll(todayOrders);
content.append("昨日统计:\n"); content.append("昨日统计:\n");
content.append("订单总数:").append(yesterdayOrders.size()).append("\r"); content.append("订单总数:").append(yesterdayOrders.size()).append("\r");
content.append("订单总数(不含取消)").append(yesterdayOrders.size() - yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已付款:").append(yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已付款:").append(yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r");
content.append("已取消:").append(yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已取消:").append(yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已完成:").append(yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); content.append("已完成:").append(yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r");
@@ -739,7 +765,7 @@ public class JDUtil {
content.append("已完成佣金:").append(yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).mapToDouble(OrderRow::getEstimateFee).sum()); content.append("已完成佣金:").append(yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).mapToDouble(OrderRow::getEstimateFee).sum());
content.append("\r" + "违规佣金:").append(getStreamForWeiGui(yesterdayOrders).mapToDouble(orderRow -> orderRow.getEstimateCosPrice() * orderRow.getCommissionRate() * 0.01).sum()); content.append("\r" + "违规佣金:").append(getStreamForWeiGui(yesterdayOrders).mapToDouble(orderRow -> orderRow.getEstimateCosPrice() * orderRow.getCommissionRate() * 0.01).sum());
if(!yesterdayOrders.isEmpty()){ if (!yesterdayOrders.isEmpty()) {
orderUtil.orderToWxBatch(todayOrders); orderUtil.orderToWxBatch(todayOrders);
} }
@@ -748,21 +774,24 @@ public class JDUtil {
} }
case "七日订单": { case "七日订单": {
content = new StringBuilder(); content = new StringBuilder();
List<OrderRow> sevendayOrders = filterOrdersByDate(orderRows, 1); List<OrderRow> last7DaysOrders = filterOrdersByDate(orderRows, 1);
List<OrderRow> todayOrders = filterOrdersByDate(orderRows, 0); List<OrderRow> todayOrders = filterOrdersByDate(orderRows, 0);
sevendayOrders.removeAll(todayOrders); last7DaysOrders.removeAll(todayOrders);
content.append("七日统计:\n"); content.append("七日统计:\n");
content.append("订单总数:").append(sevendayOrders.size()).append("\r"); content.append("订单总数:").append(last7DaysOrders.size()).append("\r");
content.append("已付款").append(sevendayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("订单总数(不含取消)").append(last7DaysOrders.size() - last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已取消:").append(sevendayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已完成:").append(sevendayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r");
content.append("违规:").append(getStreamForWeiGui(sevendayOrders).count()).append("\r");
content.append("已付款佣金:").append(sevendayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).mapToDouble(OrderRow::getEstimateFee).sum()).append("\r");
content.append("已完成佣金:").append(sevendayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).mapToDouble(OrderRow::getEstimateFee).sum());
content.append("\r" + "违规佣金:").append(getStreamForWeiGui(sevendayOrders).mapToDouble(orderRow -> orderRow.getEstimateCosPrice() * orderRow.getCommissionRate() * 0.01).sum());
if(!sevendayOrders.isEmpty()){
orderUtil.orderToWxBatch(sevendayOrders); content.append("已付款:").append(last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r");
content.append("已取消:").append(last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r");
content.append("已完成:").append(last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r");
content.append("违规:").append(getStreamForWeiGui(last7DaysOrders).count()).append("\r");
content.append("已付款佣金:").append(last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).mapToDouble(OrderRow::getEstimateFee).sum()).append("\r");
content.append("已完成佣金:").append(last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).mapToDouble(OrderRow::getEstimateFee).sum());
content.append("\r" + "违规佣金:").append(getStreamForWeiGui(last7DaysOrders).mapToDouble(orderRow -> orderRow.getEstimateCosPrice() * orderRow.getCommissionRate() * 0.01).sum());
if (!last7DaysOrders.isEmpty()) {
orderUtil.orderToWxBatch(last7DaysOrders);
} }
contents.add(content); contents.add(content);
@@ -1178,7 +1207,7 @@ public class JDUtil {
// 新增礼金流程处理方法 // 新增礼金流程处理方法
private void handleGiftMoneyFlow(String fromWxid, String message, UserInteractionState state) { private void handleGiftMoneyFlow(String fromWxid, String message, UserInteractionState state) {
if ("礼金".equals(message)) { if ("礼金".equals(message)) {
state.reset(); // 重置流程 state.reset(); // 重置流程
wxUtil.sendTextMessage(fromWxid, "流程已重置,请重新开始", 1, fromWxid); wxUtil.sendTextMessage(fromWxid, "流程已重置,请重新开始", 1, fromWxid);
return; return;
@@ -1375,7 +1404,6 @@ public class JDUtil {
STEP_CASHBACK_TRACK STEP_CASHBACK_TRACK
} }
private GiftMoneyStep currentStep; // 新增当前步骤字段 private GiftMoneyStep currentStep; // 新增当前步骤字段
private String lastInteractionTime; private String lastInteractionTime;
private ProcessState currentState; private ProcessState currentState;
private Map<String, String> collectedFields; // 用于存储收集到的字段值 private Map<String, String> collectedFields; // 用于存储收集到的字段值
@@ -1402,23 +1430,15 @@ public class JDUtil {
updateLastInteractionTime(); updateLastInteractionTime();
} }
} // 推荐使用枚举管理状态
public enum ProcessState {
// 增强京东链接解析的正则表达式 INIT, GIFT_MONEY_FLOW, DISINFECTANT_CABINET
private String parseSkuFromUrl(String url) {
Pattern pattern = Pattern.compile("/(\\d+)(\\.html|\\?)"); // 支持更多链接格式
Matcher matcher = pattern.matcher(url);
return matcher.find() ? matcher.group(1) : null;
}
// 改进金额验证提示
private boolean isValidAmount(String input) {
String fromWxid = "";
if (!input.matches("^\\d+(\\.\\d{1,2})?$")) {
wxUtil.sendTextMessage(fromWxid, "金额格式错误,请输入数字(可包含两位小数)\n示例50 或 29.9", 1, fromWxid);
return false;
} }
return true;
public enum GiftMoneyStep {
STEP_PRODUCT_LINK, STEP_AMOUNT, STEP_QUANTITY
}
} }
// 限流异常类(需自定义) // 限流异常类(需自定义)

View File

@@ -77,13 +77,9 @@ public class OrderUtil {
&& orderRow.getValidCode() != 3).toList(); && orderRow.getValidCode() != 3).toList();
content.append("移除 拆单或者取消 的订单, 共 ").append(filterList.size()).append("单: \n\r"); content.append("移除 拆单或者取消 的订单, 共 ").append(filterList.size()).append("单: \n\r");
for (OrderRow orderRow : filterList) { for (OrderRow orderRow : filterList) {
String oldValidCode = redisTemplate.opsForValue().get(ORDER_ROW_KEY + orderRow.getId());
// 检查Redis中是否有旧的状态码没有的话赋予默认值
Integer lastValidCode = oldValidCode != null ? Integer.parseInt(oldValidCode) : -100;
content.append("\r\n"); content.append("\r\n");
content.append(i++).append(""); content.append(i++).append("");
content.append(getFormattedOrderInfo(orderRow, lastValidCode)); content.append(getFormattedOrderInfoBatch(orderRow));
} }
if (Util.isNotEmpty(wxId)) { if (Util.isNotEmpty(wxId)) {
@@ -126,6 +122,40 @@ public class OrderUtil {
} }
return orderInfo;
}
/**
* 将数据库订单转化成微信所需要文本 简洁版
*/
public String getFormattedOrderInfoBatch(OrderRow orderRow) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
ValidCodeConverter converter = new ValidCodeConverter();
String orderInfo =
//+ "订单+sku" + orderRow.getId() + "\r"
"订单:" + orderRow.getOrderId() + " (" + (orderRow.getPlus() == 1 ? "plus" : "非plus") + ")\r" +
"状态:" + (converter.getCodeDescription(orderRow.getValidCode())) + "\r"
+ "名称:" + orderRow.getSkuName() + "\r\n"
//+ "商品单价:" + orderRow.getPrice() + "\r"
//+ "商品数量:" + orderRow.getSkuNum() + "\r"
//+ "商品总价:" + (orderRow.getPrice() * orderRow.getSkuNum()) + "\r"
//+ "计佣金额:" + orderRow.getEstimateCosPrice() + "\r"
//+ "金额:" + orderRow.getActualCosPrice() + "\r"
//+ "比例:" + orderRow.getCommissionRate() + "\r"
+ "佣金:" + orderRow.getEstimateFee() + "\r\n"
+ "下单:" + formatter.format(orderRow.getOrderTime()) + "\r"
+ "完成:" + (orderRow.getFinishTime() != null ? formatter.format(orderRow.getFinishTime()) : "未完成") + "\r";
//if (oldValidCode != -100) {
// if (!oldValidCode.equals(orderRow.getValidCode()))
// orderInfo = "从 " + (converter.getCodeDescription(oldValidCode)) + "\r变成 " +
// (converter.getCodeDescription(orderRow.getValidCode())) + "\r\n" + orderInfo;
//}
return orderInfo; return orderInfo;
} }
} }

View File

@@ -137,7 +137,7 @@ public class WXUtil {
//logger.info("发送文本消息 msgType: {} wxid: {} fromwxid: {} content: {}", msgType, wxid, fromwxid, content); //logger.info("发送文本消息 msgType: {} wxid: {} fromwxid: {} content: {}", msgType, wxid, fromwxid, content);
// 先在content顶部插入时间戳 // 先在content顶部插入时间戳
// 因为引入了消息队列,所以在每条消息都加上时间戳 格式化成 yyyy-MM-dd HH:mm:ss // 因为引入了消息队列,所以在每条消息都加上时间戳 格式化成 yyyy-MM-dd HH:mm:ss
content = "[ " + DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss") + " ] \r\n" + content; content = "[ " + DateUtil.format(new Date(), "HH:mm:ss yyyy-MM-dd") + " ] \r\n" + content;
// 如果是自己的微信,所有信息都加上少爷 // 如果是自己的微信,所有信息都加上少爷
//if (wxid.equals(super_admin_wxid) || fromwxid.equals(super_admin_wxid)) { //if (wxid.equals(super_admin_wxid) || fromwxid.equals(super_admin_wxid)) {

View File

@@ -13,7 +13,7 @@ public class Days0007Strategy implements OrderFetchStrategy {
LocalDateTime end = baseTime.truncatedTo(ChronoUnit.HOURS); LocalDateTime end = baseTime.truncatedTo(ChronoUnit.HOURS);
LocalDateTime start = end.minusDays(7).truncatedTo(ChronoUnit.HOURS); LocalDateTime start = end.minusDays(7).truncatedTo(ChronoUnit.HOURS);
if (start.isAfter(end)) { // 防御性校验 if (start.isAfter(end)) { // 防御性校验
throw new IllegalArgumentException("时间范围错误"); throw new IllegalArgumentException(strategyName()+"时间范围错误");
} }
return new TimeRange(start, end); return new TimeRange(start, end);
} }

View File

@@ -12,7 +12,7 @@ public class Days0714Strategy implements OrderFetchStrategy {
LocalDateTime end = baseTime.truncatedTo(ChronoUnit.HOURS).minusDays(7); LocalDateTime end = baseTime.truncatedTo(ChronoUnit.HOURS).minusDays(7);
LocalDateTime start = end.minusDays(14).truncatedTo(ChronoUnit.HOURS); LocalDateTime start = end.minusDays(14).truncatedTo(ChronoUnit.HOURS);
if (start.isAfter(end)) { // 防御性校验 if (start.isAfter(end)) { // 防御性校验
throw new IllegalArgumentException("时间范围错误"); throw new IllegalArgumentException(strategyName()+"时间范围错误");
} }
return new TimeRange(start, end); return new TimeRange(start, end);
} }

View File

@@ -7,10 +7,10 @@ import java.time.temporal.ChronoUnit;
public class Days1430Strategy implements OrderFetchStrategy { public class Days1430Strategy implements OrderFetchStrategy {
@Override @Override
public TimeRange calculateRange(LocalDateTime baseTime) { public TimeRange calculateRange(LocalDateTime baseTime) {
LocalDateTime end = baseTime.minusDays(30).truncatedTo(ChronoUnit.HOURS); LocalDateTime end = baseTime.minusDays(14).truncatedTo(ChronoUnit.HOURS);
LocalDateTime start = baseTime.minusDays(14).truncatedTo(ChronoUnit.HOURS); LocalDateTime start = baseTime.minusDays(30).truncatedTo(ChronoUnit.HOURS);
if (start.isAfter(end)) { // 防御性校验 if (start.isAfter(end)) { // 防御性校验
throw new IllegalArgumentException("时间范围错误"); throw new IllegalArgumentException(strategyName()+"时间范围错误");
} }
return new TimeRange(start, end); return new TimeRange(start, end);
} }

View File

@@ -11,7 +11,7 @@ public class Days3090Strategy implements OrderFetchStrategy {
LocalDateTime end = baseTime.minusMonths(1); LocalDateTime end = baseTime.minusMonths(1);
LocalDateTime start = end.minusMonths(2); LocalDateTime start = end.minusMonths(2);
if (start.isAfter(end)) { // 防御性校验 if (start.isAfter(end)) { // 防御性校验
throw new IllegalArgumentException("时间范围错误"); throw new IllegalArgumentException(strategyName()+"时间范围错误");
} }
return new TimeRange(start, end); return new TimeRange(start, end);
} }