From 8d88222359a6541d3645c0fd6bbddd5c3bb24001 Mon Sep 17 00:00:00 2001 From: lijianlin Date: Wed, 14 Jan 2026 10:17:03 +0800 Subject: [PATCH 1/2] =?UTF-8?q?01-14=20=E6=B6=88=E8=80=97=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=EF=BC=8C=E9=87=91=E5=B8=81=E6=95=B0=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=80=BC0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/mapper/ConsumeMapper.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/resources/mapper/ConsumeMapper.xml b/src/main/resources/mapper/ConsumeMapper.xml index a13af6b..451cb86 100644 --- a/src/main/resources/mapper/ConsumeMapper.xml +++ b/src/main/resources/mapper/ConsumeMapper.xml @@ -80,19 +80,19 @@ m.name as market, ugr.goods_name AS goodsName, ugr.pay_platform AS payPlatform, - ugr.sum_gold/100 AS sumGold, - ugr.permanent_gold/100 AS permanentGold, + COALESCE(ugr.sum_gold, 0)/100 AS sumGold, + COALESCE(ugr.permanent_gold, 0)/100 AS permanentGold, (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))/100 AS freeGold, - ugr.task_gold/100 AS taskGold, + COALESCE(ugr.task_gold, 0)/100 AS taskGold, ugr.remark AS remark, a.admin_name AS adminName, ugr.create_time AS createTime, ugr.is_refund AS isRefund, -- 关联退款订单信息 - ugr1.sum_gold/100 AS refundSumGold, - ugr1.permanent_gold/100 AS refundPermanentGold, + COALESCE(ugr1.sum_gold, 0)/100 AS refundSumGold, + COALESCE(ugr1.permanent_gold, 0)/100 AS refundPermanentGold, (COALESCE(ugr1.free_june, 0) + COALESCE(ugr1.free_december, 0))/100 AS refundFreeGold, - ugr1.task_gold/100 AS refundTaskGold, + COALESCE(ugr1.task_gold, 0)/100 AS refundTaskGold, ugr1.refund_model AS refundModel FROM user_gold_record ugr left JOIN From fc5bff56b6b206693b80042271a594c484546f98 Mon Sep 17 00:00:00 2001 From: lijianlin Date: Wed, 14 Jan 2026 11:01:41 +0800 Subject: [PATCH 2/2] =?UTF-8?q?01-14=20=E4=BF=AE=E6=94=B9=E6=B6=88?= =?UTF-8?q?=E8=80=97=E6=9F=A5=E8=AF=A2=EF=BC=8C=E4=B8=8D=E5=86=8D=E8=81=94?= =?UTF-8?q?=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/demo/domain/vo/coin/ConsumeUser.java | 2 +- .../example/demo/mapper/coin/ConsumeMapper.java | 2 + .../demo/serviceImpl/coin/ConsumeServiceImpl.java | 45 +++++++++++++++++++--- src/main/resources/mapper/ConsumeMapper.xml | 27 ++++++++----- 4 files changed, 60 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/example/demo/domain/vo/coin/ConsumeUser.java b/src/main/java/com/example/demo/domain/vo/coin/ConsumeUser.java index 4840303..b4a0b29 100644 --- a/src/main/java/com/example/demo/domain/vo/coin/ConsumeUser.java +++ b/src/main/java/com/example/demo/domain/vo/coin/ConsumeUser.java @@ -47,7 +47,7 @@ public class ConsumeUser implements Serializable { private BigDecimal refundPermanentGold;// 退款永久金币 private BigDecimal refundFreeGold;// 退款免费金币 private BigDecimal refundTaskGold;// 退款任务金币 - private String refundModel;// 退款类型 0全部退款 1部分退款 + private Integer refundModel;// 退款类型 0全部退款 1部分退款 @ExcelIgnore private Integer adminId; //提交人Id private String adminName; //提交人姓名 diff --git a/src/main/java/com/example/demo/mapper/coin/ConsumeMapper.java b/src/main/java/com/example/demo/mapper/coin/ConsumeMapper.java index 6b34369..2514452 100644 --- a/src/main/java/com/example/demo/mapper/coin/ConsumeMapper.java +++ b/src/main/java/com/example/demo/mapper/coin/ConsumeMapper.java @@ -25,6 +25,8 @@ public interface ConsumeMapper { //查找经过筛选后的订单 List selectBy(ConsumeUser consumeUser); + //查询退款的消费订单 + List selectRefund(List refundOrderCodes); //添加消费订单 diff --git a/src/main/java/com/example/demo/serviceImpl/coin/ConsumeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/ConsumeServiceImpl.java index 12fcd25..c3ac8f1 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/ConsumeServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/ConsumeServiceImpl.java @@ -27,10 +27,9 @@ import java.math.RoundingMode; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.Date; -import java.util.List; -import java.util.Random; -import java.util.UUID; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; /** * @program: gold-java @@ -90,8 +89,42 @@ public class ConsumeServiceImpl implements ConsumeService { } consumeUser.setMarkets(markets); PageHelper.startPage(pageNum, pageSize); //必须要直接跟mapper - List consumeUsers = consumeMapper.selectBy(consumeUser); - return new PageInfo<>(consumeUsers); + List list = consumeMapper.selectBy(consumeUser); + // 构造退款订单号 + List refundOrderCodes = list.stream() + .map(ConsumeUser::getOrderCode) + .filter(Objects::nonNull) + .map(code -> "TK_" + code) + .collect(Collectors.toList()); + + // 查询退款订单 + List refundList = consumeMapper.selectRefund(refundOrderCodes); + + // 退款订单转 Map(order_code → refund) + Map refundMap = refundList.stream() + .collect(Collectors.toMap( + ConsumeUser::getOrderCode, + Function.identity(), + (a, b) -> a + )); + + // 组装退款信息 + for (ConsumeUser vo : list) { + ConsumeUser refund = refundMap.get("TK_" + vo.getOrderCode()); + if (refund != null) { + vo.setRefundSumGold(refund.getSumGold()); + vo.setRefundPermanentGold(refund.getPermanentGold()); + BigDecimal refundFree = + (refund.getFreeGold() == null ? BigDecimal.ZERO : refund.getFreeGold()); + vo.setRefundFreeGold(refundFree); + + vo.setRefundTaskGold(refund.getTaskGold()); + vo.setRefundModel(refund.getRefundModel()); + } + } + + + return new PageInfo<>(list); } //新增消耗 diff --git a/src/main/resources/mapper/ConsumeMapper.xml b/src/main/resources/mapper/ConsumeMapper.xml index 451cb86..6e97d61 100644 --- a/src/main/resources/mapper/ConsumeMapper.xml +++ b/src/main/resources/mapper/ConsumeMapper.xml @@ -87,21 +87,13 @@ ugr.remark AS remark, a.admin_name AS adminName, ugr.create_time AS createTime, - ugr.is_refund AS isRefund, - -- 关联退款订单信息 - COALESCE(ugr1.sum_gold, 0)/100 AS refundSumGold, - COALESCE(ugr1.permanent_gold, 0)/100 AS refundPermanentGold, - (COALESCE(ugr1.free_june, 0) + COALESCE(ugr1.free_december, 0))/100 AS refundFreeGold, - COALESCE(ugr1.task_gold, 0)/100 AS refundTaskGold, - ugr1.refund_model AS refundModel + ugr.is_refund AS isRefund FROM user_gold_record ugr left JOIN user u ON u.jwcode = ugr.jwcode left JOIN admin a ON ugr.admin_id = a.id left join market m ON u.market = m.id - -- 关联退款订单 - left JOIN user_gold_record ugr1 ON ugr1.order_code = CONCAT('TK_', ugr.order_code ) ugr.type = 1 AND ugr.flag = 1 @@ -170,7 +162,23 @@ + + + INSERT INTO user_gold_record