From fe0e61b0f77e83238f7d7a7c135e29d80b9dbc4c Mon Sep 17 00:00:00 2001 From: lijianlin Date: Fri, 22 Aug 2025 16:43:10 +0800 Subject: [PATCH] =?UTF-8?q?8-22=20=E6=9B=B4=E6=96=B0=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=B6=88=E8=B4=B9=E6=AC=A1=E6=95=B0+=E9=80=80=E6=AC=BE?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E4=BF=AE=E6=94=B9=E6=B6=88=E8=B4=B9=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/coin/GoldDetailController.java | 8 ++++++++ .../com/example/demo/mapper/coin/GoldDetailMapper.java | 3 +++ .../com/example/demo/service/coin/GoldDetailService.java | 2 ++ .../example/demo/serviceImpl/coin/AuditServiceImpl.java | 2 +- .../demo/serviceImpl/coin/GoldDetailServiceImpl.java | 5 +++++ src/main/resources/mapper/GoldDetailMapper.xml | 15 +++++++++++++++ 6 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/example/demo/controller/coin/GoldDetailController.java b/src/main/java/com/example/demo/controller/coin/GoldDetailController.java index 77bde91..917a106 100644 --- a/src/main/java/com/example/demo/controller/coin/GoldDetailController.java +++ b/src/main/java/com/example/demo/controller/coin/GoldDetailController.java @@ -9,6 +9,7 @@ import com.example.demo.domain.DTO.GoldUserDTO; import com.example.demo.domain.entity.Admin; import com.example.demo.domain.entity.User; import com.example.demo.domain.vo.coin.GoldDetail; +import com.example.demo.domain.vo.coin.GoldUser; import com.example.demo.domain.vo.coin.Page; import com.example.demo.domain.vo.coin.Result; import com.example.demo.service.coin.GoldDetailService; @@ -284,4 +285,11 @@ public class GoldDetailController { return Result.success(goldDetailService.getGold(page.getPageNum(), page.getPageSize(), page.getUser())); } + /* + 更新用户消费次数 + */ + @PostMapping("/updateConsumeNum") + public Result updateConsumeNum() { + return goldDetailService.updateConsumeNum(); + } } diff --git a/src/main/java/com/example/demo/mapper/coin/GoldDetailMapper.java b/src/main/java/com/example/demo/mapper/coin/GoldDetailMapper.java index a29dbe1..739856f 100644 --- a/src/main/java/com/example/demo/mapper/coin/GoldDetailMapper.java +++ b/src/main/java/com/example/demo/mapper/coin/GoldDetailMapper.java @@ -3,6 +3,7 @@ package com.example.demo.mapper.coin; import com.example.demo.domain.entity.User; import com.example.demo.domain.vo.coin.Gold; import com.example.demo.domain.vo.coin.GoldDetail; +import com.example.demo.domain.vo.coin.Result; import com.example.demo.domain.vo.coin.Total; import lombok.Data; import org.apache.ibatis.annotations.Mapper; @@ -29,6 +30,8 @@ public interface GoldDetailMapper { Total GoldTotal(User user); //获取金币明细合计数 Gold sumGold(@Param("goldDetail") GoldDetail goldDetail); + //更新用户消费次数 + Result updateConsumeNum(); @Data public static class ExportRecordIdHolder{ diff --git a/src/main/java/com/example/demo/service/coin/GoldDetailService.java b/src/main/java/com/example/demo/service/coin/GoldDetailService.java index d944af3..985d374 100644 --- a/src/main/java/com/example/demo/service/coin/GoldDetailService.java +++ b/src/main/java/com/example/demo/service/coin/GoldDetailService.java @@ -27,4 +27,6 @@ public interface GoldDetailService { Result addExportRecord(GoldDetailDTO dto); //异步导出金币余额 Result addExportRecordGold(GoldUserDTO dto); + //更新用户消费次数 + Result updateConsumeNum(); } diff --git a/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java index 804b671..94565b6 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java @@ -67,7 +67,7 @@ public class AuditServiceImpl implements AuditService { if (order.getType()==2) { //退款 //2.获取对应的消费订单(退款订单号去掉开头"TK"即为对应消费订单) - String consumeOrderCode = order.getOrderCode().replaceFirst("TK", ""); + String consumeOrderCode = order.getOrderCode().replaceFirst("TK_", ""); //3.更新消费订单是否已退款状态为0 UserGoldRecord consumeOrder = auditMapper.selectAllOrderByOrderCode(consumeOrderCode); if (consumeOrderCode != null&&consumeOrder.getType()==1){ //确保是消费订单 diff --git a/src/main/java/com/example/demo/serviceImpl/coin/GoldDetailServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/GoldDetailServiceImpl.java index 436db12..3c18f77 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/GoldDetailServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/GoldDetailServiceImpl.java @@ -194,6 +194,11 @@ public class GoldDetailServiceImpl implements GoldDetailService { } return Result.success(); } + //更新用户消费次数 + @Override + public Result updateConsumeNum() { + return goldDetailMapper.updateConsumeNum(); + } } diff --git a/src/main/resources/mapper/GoldDetailMapper.xml b/src/main/resources/mapper/GoldDetailMapper.xml index 8037ab0..1fa24c5 100644 --- a/src/main/resources/mapper/GoldDetailMapper.xml +++ b/src/main/resources/mapper/GoldDetailMapper.xml @@ -5,6 +5,21 @@ insert into export (account,type,state,url,file_name,data_num) values(#{account},#{type},#{state},#{url},#{fileName},#{dataNum}) + + UPDATE user AS u + JOIN ( + SELECT + jwcode, + SUM(CASE WHEN type = 1 THEN 1 ELSE 0 END) AS consume_cnt + FROM user_gold_record + WHERE type IN (0,1) + AND audit_status IN (1,3) + AND flag = 1 + GROUP BY jwcode + ) AS t ON u.jwcode = t.jwcode + SET + u.consume_num = t.consume_cnt; +