From 6a4a5ce421130fda68e5097a73c3902ffd8fceb7 Mon Sep 17 00:00:00 2001 From: huangqizhen <15552608129@163.com> Date: Fri, 22 Aug 2025 16:35:13 +0800 Subject: [PATCH 1/2] =?UTF-8?q?8.22=E4=BF=AE=E6=94=B9=E9=87=91=E5=B8=81?= =?UTF-8?q?=E6=98=8E=E7=BB=86=E6=98=A0=E5=B0=84=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/demo/Mysql/MysqlServiceImpl.java | 11 ++++++----- .../java/com/example/demo/domain/entity/User.java | 22 ++++++++++++---------- src/main/resources/mapper/GoldDetailMapper.xml | 1 + 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java b/src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java index 09b0920..da86316 100644 --- a/src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java +++ b/src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java @@ -155,6 +155,7 @@ public class MysqlServiceImpl implements MysqlService { } if (validThreeTypes.contains(gtype)) { mysqlStmt.setInt(13, 3); + mysqlStmt.setNull(20, java.sql.Types.INTEGER); mysqlStmt.setString(1, "ERPQT_" + timestampPart + randomNumber); } @@ -171,17 +172,17 @@ public class MysqlServiceImpl implements MysqlService { } mysqlStmt.setInt(7, core_jb); if (operation_platform.equals("1")) { - mysqlStmt.setString(8, "6"); + mysqlStmt.setString(8, "ERP"); } else if (operation_platform.equals("2")) { - mysqlStmt.setString(8, "5"); + mysqlStmt.setString(8, "HomilyLink"); } else if (operation_platform.equals("3")) { - mysqlStmt.setString(8, "3"); + mysqlStmt.setString(8, "HomilyChart"); } else if (operation_platform.equals("4")) { continue; } else if (operation_platform.equals("0")) { - mysqlStmt.setString(8, "4"); + mysqlStmt.setString(8, "初始化金币"); } else { - mysqlStmt.setString(8, "2"); + mysqlStmt.setString(8, "其他"); } mysqlStmt.setString(9, goods_name); mysqlStmt.setString(12, remark); diff --git a/src/main/java/com/example/demo/domain/entity/User.java b/src/main/java/com/example/demo/domain/entity/User.java index b93bd10..84df75d 100644 --- a/src/main/java/com/example/demo/domain/entity/User.java +++ b/src/main/java/com/example/demo/domain/entity/User.java @@ -26,14 +26,16 @@ public class User implements Serializable { private String name; // 客户姓名 @ExcelProperty("所属地区") private String market; // 所属地区 - @ExcelProperty("历史永久金币") + @ExcelIgnore private BigDecimal sumPermanentGold; // 历史永久金币 - @ExcelProperty("历史六月免费金币") + @ExcelIgnore private BigDecimal sumFreeJune; // 历史六月免费金币 - @ExcelProperty("历史十二月免费金币") + @ExcelIgnore private BigDecimal sumFreeDecember; // 历史十二月免费金币 - @ExcelProperty("历史任务金币") + @ExcelIgnore private BigDecimal sumTaskGold; // 历史任务金币 + @ExcelProperty("金币总数") + private BigDecimal sumGold;// 金币总数 @ExcelProperty("当前永久金币") private BigDecimal currentPermanentGold; // 当前永久金币 @ExcelProperty("当前六月免费金币") @@ -42,17 +44,17 @@ public class User implements Serializable { private BigDecimal currentFreeDecember; // 当前十二月免费金币 @ExcelProperty("当前任务金币") private BigDecimal currentTaskGold; // 当前任务金币 - @ExcelProperty("充值次数") + @ExcelProperty("充值次数(25年起)") private Integer rechargeNum; // 充值次数 - @ExcelProperty("历史消费") + @ExcelIgnore private Integer sumConsume; // 历史消费 - @ExcelProperty("历史消费次数") + @ExcelProperty("消费次数(25年起)") private Integer consumeNum; // 消费次数 - @ExcelProperty("历史消费永久金币") + @ExcelIgnore private BigDecimal sumConsumePermanent; - @ExcelProperty("历史消费任务金币") + @ExcelIgnore private BigDecimal sumConsumeTask; - @ExcelProperty("历史消费免费金币") + @ExcelIgnore private BigDecimal sumConsumeFree; @ExcelIgnore private List markets; diff --git a/src/main/resources/mapper/GoldDetailMapper.xml b/src/main/resources/mapper/GoldDetailMapper.xml index e870296..8037ab0 100644 --- a/src/main/resources/mapper/GoldDetailMapper.xml +++ b/src/main/resources/mapper/GoldDetailMapper.xml @@ -101,6 +101,7 @@ u.jwcode, u.name, m.name AS market, + ROUND(IFNULL(u.current_permanent_gold+u.current_free_june+u.current_free_december+u.current_task_gold, 0) / 100.0, 2) AS sumGold, ROUND(IFNULL(u.sum_permanent_gold, 0) / 100.0, 2) AS sumPermanentGold, ROUND(IFNULL(u.sum_free_june, 0) / 100.0, 2) AS sumFreeJune, ROUND(IFNULL(u.sum_free_december, 0) / 100.0, 2) AS sumFreeDecember, From fe0e61b0f77e83238f7d7a7c135e29d80b9dbc4c Mon Sep 17 00:00:00 2001 From: lijianlin Date: Fri, 22 Aug 2025 16:43:10 +0800 Subject: [PATCH 2/2] =?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; +