diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 9127d43cf..de3100f7a 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -6439,7 +6439,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { vo.setCount(stat.getOrderCount()); vo.setOrderCount(stat.getOrderCount()); BigDecimal insuranceAmount = stat.getInsuranceAmount() == null ? BigDecimal.ZERO : stat.getInsuranceAmount(); - vo.setInsuranceAmount(totalInsuranceAmount); + vo.setInsuranceAmount(insuranceAmount); result.add(vo); diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml index 9777ea835..bf3271281 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml @@ -3581,7 +3581,20 @@ SELECT DATE_FORMAT(create_time, '%Y-%m') AS month, COUNT(*) AS orderCount, - IFNULL(SUM(insurance_amount), 0) AS insuranceAmount + IFNULL(SUM( + CASE + WHEN insurance_amount > 0 + AND NOT EXISTS ( + SELECT 1 + FROM order_insurance_info insurance_info + WHERE insurance_info.order_code = order_basic_info.order_code + AND insurance_info.del_flag = '0' + AND insurance_info.refund_status = '1' + ) + THEN insurance_amount + ELSE 0 + END + ), 0) AS insuranceAmount FROM order_basic_info WHERE create_time = ]]> #{dto.startTime} AND create_time #{dto.endTime} @@ -3608,6 +3621,13 @@ WHERE `del_flag` = '0' AND `insurance_amount` > 0 + AND NOT EXISTS ( + SELECT 1 + FROM order_insurance_info insurance_info + WHERE insurance_info.order_code = order_basic_info.order_code + AND insurance_info.del_flag = '0' + AND insurance_info.refund_status = '1' + ) and `settlement_time` BETWEEN #{dto.startTime,jdbcType=VARCHAR} and #{dto.endTime,jdbcType=VARCHAR} group by DATE_FORMAT(settlement_time, '%Y-%m-%d');