diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/OrderRowsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/OrderRowsController.java index 5bb80bc..a42c700 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/OrderRowsController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/OrderRowsController.java @@ -218,12 +218,12 @@ public class OrderRowsController extends BaseController Map> groups = new HashMap<>(); groups.put("cancel", Arrays.asList("3")); - groups.put("invalid", Arrays.asList("2","4","5","6","7","8","9","10","11","14","19","20","21","22","23","29","30","31","32","33","34")); + groups.put("invalid", ValidCodeConverter.toCodeStrings(ValidCodeConverter.INVALID_CODES)); groups.put("pending", Arrays.asList("15")); groups.put("paid", Arrays.asList("16")); groups.put("finished", Arrays.asList("17")); groups.put("deposit", Arrays.asList("24")); - groups.put("illegal", Arrays.asList("25","26","27","28")); + groups.put("illegal", ValidCodeConverter.toCodeStrings(ValidCodeConverter.ILLEGAL_CODES)); Map> groupStats = new HashMap<>(); groupStats.put("cancel", createGroupStat("取消", "cancel")); @@ -253,8 +253,7 @@ public class OrderRowsController extends BaseController String validCode = row.getValidCode() != null ? String.valueOf(row.getValidCode()) : null; boolean isCancel = "3".equals(validCode); - boolean isIllegal = "25".equals(validCode) || "26".equals(validCode) - || "27".equals(validCode) || "28".equals(validCode); + boolean isIllegal = ValidCodeConverter.isIllegal(row.getValidCode()); double commissionAmount = 0.0; double actualFeeAmount = 0.0; diff --git a/ruoyi-system/src/main/java/com/ruoyi/jarvis/enums/ValidCodeConverter.java b/ruoyi-system/src/main/java/com/ruoyi/jarvis/enums/ValidCodeConverter.java index bbdcdbf..7b53321 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/jarvis/enums/ValidCodeConverter.java +++ b/ruoyi-system/src/main/java/com/ruoyi/jarvis/enums/ValidCodeConverter.java @@ -1,9 +1,14 @@ package com.ruoyi.jarvis.enums; import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; /** * @author Leo @@ -13,6 +18,16 @@ import java.util.Map; public class ValidCodeConverter { private static final Map codeDescriptions = new HashMap<>(); + /** 违规订单 validCode(13、25-28、36-43) */ + public static final Set ILLEGAL_CODES = Collections.unmodifiableSet(new HashSet<>(Arrays.asList( + 13, 25, 26, 27, 28, 36, 37, 38, 39, 40, 41, 42, 43 + ))); + + /** 无效订单 validCode(不含取消 3) */ + public static final Set INVALID_CODES = Collections.unmodifiableSet(new HashSet<>(Arrays.asList( + 2, 4, 5, 6, 7, 8, 9, 11, 14, 19, 20, 21, 22, 23, 29, 30, 31, 33, 34, 35, 44 + ))); + static { codeDescriptions.put(-100, "无变化"); codeDescriptions.put(-1, "未知"); @@ -45,6 +60,24 @@ public class ValidCodeConverter { codeDescriptions.put(31, "无效-黑名单sku"); codeDescriptions.put(33, "超市卡充值订单"); codeDescriptions.put(34, "无效-推卡订单无效"); + codeDescriptions.put(35, "无效-非CID订单"); + codeDescriptions.put(36, "违规订单-账户绑定有误"); + codeDescriptions.put(37, "违规订单-利用京东域内流量推广"); + codeDescriptions.put(38, "违规订单-利用短信形式推广"); + codeDescriptions.put(39, "违规订单-推广京东首页"); + codeDescriptions.put(40, "违规订单-refer与备案信息不符"); + codeDescriptions.put(41, "违规订单-用户交易异常"); + codeDescriptions.put(42, "违规订单-批量下单"); + codeDescriptions.put(43, "违规订单-超过类目上限"); + codeDescriptions.put(44, "不计佣订单"); + } + + public static boolean isIllegal(Integer code) { + return code != null && ILLEGAL_CODES.contains(code); + } + + public static List toCodeStrings(Set codes) { + return codes.stream().map(String::valueOf).sorted().collect(Collectors.toList()); } /** diff --git a/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/impl/InstructionServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/impl/InstructionServiceImpl.java index b37c738..61dc04b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/impl/InstructionServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/impl/InstructionServiceImpl.java @@ -4,6 +4,7 @@ import com.ruoyi.jarvis.domain.OrderRows; import com.ruoyi.jarvis.domain.JDOrder; import com.ruoyi.jarvis.domain.SuperAdmin; import com.ruoyi.jarvis.domain.WeComShareLinkLogisticsJob; +import com.ruoyi.jarvis.enums.ValidCodeConverter; import com.ruoyi.jarvis.service.IInstructionService; import com.ruoyi.jarvis.service.IOrderRowsService; import com.ruoyi.jarvis.service.IJDOrderService; @@ -2170,11 +2171,11 @@ public class InstructionServiceImpl implements IInstructionService { long pending = rows.stream().filter(o -> Integer.valueOf(15).equals(o.getValidCode())).count(); long completed = rows.stream().filter(o -> Integer.valueOf(17).equals(o.getValidCode())).count(); long canceled = rows.stream().filter(o -> o.getValidCode() != null && o.getValidCode() != 16 && o.getValidCode() != 17).count(); - long violation = rows.stream().filter(o -> o.getValidCode() != null && (o.getValidCode() == 13 || o.getValidCode() == 25 || o.getValidCode() == 26 || o.getValidCode() == 27 || o.getValidCode() == 28 || o.getValidCode() == 29)).count(); + long violation = rows.stream().filter(o -> ValidCodeConverter.isIllegal(o.getValidCode())).count(); double paidCommission = rows.stream().filter(o -> Integer.valueOf(16).equals(o.getValidCode()) && o.getEstimateFee() != null).mapToDouble(OrderRows::getEstimateFee).sum(); double pendingCommission = rows.stream().filter(o -> Integer.valueOf(15).equals(o.getValidCode()) && o.getEstimateFee() != null).mapToDouble(OrderRows::getEstimateFee).sum(); double completedCommission = rows.stream().filter(o -> Integer.valueOf(17).equals(o.getValidCode()) && o.getEstimateFee() != null).mapToDouble(OrderRows::getEstimateFee).sum(); - double violationCommission = rows.stream().filter(o -> o.getValidCode() != null && (o.getValidCode() == 13 || o.getValidCode() == 25 || o.getValidCode() == 26 || o.getValidCode() == 27 || o.getValidCode() == 28 || o.getValidCode() == 29) && o.getEstimateCosPrice() != null && o.getCommissionRate() != null).mapToDouble(o -> o.getEstimateCosPrice() * o.getCommissionRate() * 0.01).sum(); + double violationCommission = rows.stream().filter(o -> ValidCodeConverter.isIllegal(o.getValidCode()) && o.getEstimateCosPrice() != null && o.getCommissionRate() != null).mapToDouble(o -> o.getEstimateCosPrice() * o.getCommissionRate() * 0.01).sum(); StringBuilder sb = new StringBuilder(); sb.append("* ").append(title).append(" *\n").append("━━━━━━━━━━━━\n").append("订单总数:").append(total).append("\n").append("有效订单:").append(total - canceled).append("\n").append("已取消:").append(canceled).append("\n").append("────────────\n").append("已付款:").append(paid).append("\n").append("已付款佣金:").append(fmt(paidCommission)).append("\n").append("────────────\n").append("待付款:").append(pending).append("\n").append("待付款佣金:").append(fmt(pendingCommission)).append("\n").append("────────────\n").append("已完成:").append(completed).append("\n").append("已完成佣金:").append(fmt(completedCommission)).append("\n").append("────────────\n").append("违规订单:").append(violation).append("\n").append("违规佣金:").append(fmt(violationCommission)).append("\n").append("━━━━━━━━━━━━");