From c8b9a82d339020d6fd6d003c0a794f33422d0cf7 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Mon, 24 Nov 2025 14:23:52 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=AD=97=E6=AE=B5=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../czg/order/entity/ShopProdStatistic.java | 28 ++++++++++--------- .../java/com/czg/order/vo/CountPayTypeVo.java | 17 +++++------ .../mapper/ShopOrderStatisticMapper.java | 4 +-- .../mapper/ShopProdStatisticMapper.xml | 2 ++ 4 files changed, 28 insertions(+), 23 deletions(-) diff --git a/cash-common/cash-common-service/src/main/java/com/czg/order/entity/ShopProdStatistic.java b/cash-common/cash-common-service/src/main/java/com/czg/order/entity/ShopProdStatistic.java index 38ed83197..30a468f9a 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/order/entity/ShopProdStatistic.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/order/entity/ShopProdStatistic.java @@ -78,19 +78,21 @@ public class ShopProdStatistic implements Serializable { * @return true=有效,false=无效 */ public boolean isValid() { - // 1. 校验所有字段是否为 null - if (saleCount == null || saleAmount == null || refundCount == null || refundAmount == null) { - return false; - } - // 2. 校验所有字段是否大于 0(BigDecimal 需用 compareTo 比较,不能直接用 >) - if (saleCount.compareTo(BigDecimal.ZERO) <= 0 || - saleAmount.compareTo(BigDecimal.ZERO) <= 0 || - refundCount.compareTo(BigDecimal.ZERO) <= 0 || - refundAmount.compareTo(BigDecimal.ZERO) <= 0) { - return false; - } - // 3. 所有条件满足,返回 true - return true; + // 定义一个方法,统一校验“字段非空且大于0” + // 避免重复代码,提高可读性 + return isPositive(saleCount) || + isPositive(saleAmount) || + isPositive(refundCount) || + isPositive(refundAmount); } + /** + * 校验 BigDecimal 字段是否非空且大于0 + * @param value 待校验字段 + * @return true=非空且大于0,false=否则 + */ + private boolean isPositive(BigDecimal value) { + // 先判断是否非空,再用 compareTo 比较是否大于0(compareTo 返回 >0 表示当前值大) + return value != null && value.compareTo(BigDecimal.ZERO) > 0; + } } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/order/vo/CountPayTypeVo.java b/cash-common/cash-common-service/src/main/java/com/czg/order/vo/CountPayTypeVo.java index f0c096e96..a18dd697b 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/order/vo/CountPayTypeVo.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/order/vo/CountPayTypeVo.java @@ -4,6 +4,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; @@ -42,8 +43,8 @@ public class CountPayTypeVo { /** * 合并实时数据和历史统计数据 */ - public static List mergePayTypeData(Map realTimeData, - Map historyData) { + public static List mergePayTypeData(Map realTimeData, + Map historyData) { List result = new ArrayList<>(); @@ -51,13 +52,13 @@ public class CountPayTypeVo { String payCode = entry.getKey(); String payName = entry.getValue(); - Integer realTimeCount = getSafeValue(realTimeData, payCode); - Integer historyCount = getSafeValue(historyData, payCode); + BigDecimal realTimeCount = getSafeValue(realTimeData, payCode); + BigDecimal historyCount = getSafeValue(historyData, payCode); - int totalCount = (realTimeCount != null ? realTimeCount : 0) - + (historyCount != null ? historyCount : 0); + BigDecimal totalCount = (realTimeCount != null ? realTimeCount : BigDecimal.ZERO) + .add(historyCount != null ? historyCount : BigDecimal.ZERO); - result.add(new CountPayTypeVo(totalCount, payName)); + result.add(new CountPayTypeVo(totalCount.intValue(), payName)); } @@ -67,7 +68,7 @@ public class CountPayTypeVo { /** * 安全获取Map中的值,处理null情况 */ - private static Integer getSafeValue(Map data, String key) { + private static BigDecimal getSafeValue(Map data, String key) { if (data == null || data.isEmpty()) { return null; } diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/mapper/ShopOrderStatisticMapper.java b/cash-service/order-service/src/main/java/com/czg/service/order/mapper/ShopOrderStatisticMapper.java index 6b99061e6..8b684a033 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/mapper/ShopOrderStatisticMapper.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/mapper/ShopOrderStatisticMapper.java @@ -119,7 +119,7 @@ public interface ShopOrderStatisticMapper extends BaseMapper " shop_id = #{shopId} " + "and trade_day = #{tradeDay} " + "and paid_time is not null ") - Map getOnlinePayTypeDate(Long shopId, LocalDate tradeDay); + Map getOnlinePayTypeDate(Long shopId, LocalDate tradeDay); /** * 订单支付方式统计 按日期范围查询 @@ -136,7 +136,7 @@ public interface ShopOrderStatisticMapper extends BaseMapper " WHERE shop_id = #{shopId} " + " AND statistic_date >= #{start} " + " AND statistic_date <= #{end} ") - Map getPayTypeDateRangeRaw(Long shopId, LocalDate start, LocalDate end); + Map getPayTypeDateRangeRaw(Long shopId, LocalDate start, LocalDate end); //*********************以下为日常统计******************************************************************************** diff --git a/cash-service/order-service/src/main/resources/mapper/ShopProdStatisticMapper.xml b/cash-service/order-service/src/main/resources/mapper/ShopProdStatisticMapper.xml index 2e1e98dbe..ffd7552a9 100644 --- a/cash-service/order-service/src/main/resources/mapper/ShopProdStatisticMapper.xml +++ b/cash-service/order-service/src/main/resources/mapper/ShopProdStatisticMapper.xml @@ -6,6 +6,8 @@