diff --git a/src/main/java/com/example/demo/domain/vo/RefundA.java b/src/main/java/com/example/demo/domain/vo/RefundA.java index 3d18d5f..d92abfb 100644 --- a/src/main/java/com/example/demo/domain/vo/RefundA.java +++ b/src/main/java/com/example/demo/domain/vo/RefundA.java @@ -41,5 +41,5 @@ public class RefundA implements Serializable { private String category; private BigDecimal amount; private List areas; - + private Boolean hasIndexMatch; } diff --git a/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java index 3bb9a86..0ac46a4 100644 --- a/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java @@ -146,6 +146,12 @@ public class RefundServiceImpl implements RefundService { @Override public List getRefundA(RefundA refundA) { + + // 如果 refundGoods 存在,则判断是否匹配 index 表中的 remark + if (refundA.getRefundGoods() != null && !refundA.getRefundGoods().trim().isEmpty()) { + boolean matchExists = refundMapper.isIndexTypeExist(refundA.getRefundGoods()); + refundA.setHasIndexMatch(matchExists); // 设置标志位 + } // 执行原始查询,获取实际存在的分类及其汇总值 List result = refundMapper.getRefundA(refundA); diff --git a/src/main/resources/mapper/RefundMapper.xml b/src/main/resources/mapper/RefundMapper.xml index 0ef7935..ed20662 100644 --- a/src/main/resources/mapper/RefundMapper.xml +++ b/src/main/resources/mapper/RefundMapper.xml @@ -34,7 +34,21 @@ AND d.create_time BETWEEN #{startDate} AND #{endDate} and user.area=#{area} AND d.refund_type LIKE CONCAT('%', #{refundType}, '%') - AND d.refund_goods LIKE CONCAT('%', #{refundGoods}, '%') + + + + + AND d.refund_goods IN ( + SELECT name FROM `index` + WHERE type = 1 AND remark = #{refundGoods} + ) + + + + AND d.refund_goods LIKE CONCAT('%', #{refundGoods}, '%') + + + AND area IN