diff --git a/src/main/java/com/example/demo/controller/GoldDetailController.java b/src/main/java/com/example/demo/controller/GoldDetailController.java index dde8d2d..23db9b9 100644 --- a/src/main/java/com/example/demo/controller/GoldDetailController.java +++ b/src/main/java/com/example/demo/controller/GoldDetailController.java @@ -55,8 +55,11 @@ public class GoldDetailController { } } @PostMapping("/getTotal") - public Result getTotal(@RequestBody GoldDetail goldDetail) { - return Result.success(goldDetailService.getTotal(goldDetail)); + public Result getTotal(@RequestBody Page page) { + Integer pageNum = page.getPageNum(); + Integer pageSize = page.getPageSize(); + GoldDetail goldDetail = page.getGoldDetail(); + return Result.success(goldDetailService.sumGold(pageNum,pageSize,goldDetail)); } @PostMapping("/goldTotal") public Result GoldTotal(@RequestBody User user) { diff --git a/src/main/java/com/example/demo/domain/export/Goldmingxi.java b/src/main/java/com/example/demo/domain/export/Goldmingxi.java index a5c0b08..41dd026 100644 --- a/src/main/java/com/example/demo/domain/export/Goldmingxi.java +++ b/src/main/java/com/example/demo/domain/export/Goldmingxi.java @@ -20,7 +20,7 @@ public class Goldmingxi { private String payPlatform; // 支付平台 private Integer type; // 类型 private Integer sumGold; // 总金币 - private Integer permentGold; //永久金币 + private Integer permanentGold; //永久金币 private Integer freeJune; // 免费金币六月到期 private Integer freeDecember; // 免费金币七月到期 private Integer taskGold; // 任务金币 diff --git a/src/main/java/com/example/demo/domain/vo/Gold.java b/src/main/java/com/example/demo/domain/vo/Gold.java index 94119e2..f94ff96 100644 --- a/src/main/java/com/example/demo/domain/vo/Gold.java +++ b/src/main/java/com/example/demo/domain/vo/Gold.java @@ -24,4 +24,5 @@ public class Gold implements Serializable { private Integer permanentGolds; // 永久金币总数 private Integer freeGolds; // 免费金币总数 private Integer taskGolds; // 任务金币总数 + private Integer sumGolds; } diff --git a/src/main/java/com/example/demo/domain/vo/GoldDetail.java b/src/main/java/com/example/demo/domain/vo/GoldDetail.java index bf676f7..afe6f2e 100644 --- a/src/main/java/com/example/demo/domain/vo/GoldDetail.java +++ b/src/main/java/com/example/demo/domain/vo/GoldDetail.java @@ -27,7 +27,7 @@ public class GoldDetail { private String payPlatform; // 支付平台 private Integer type; // 类型 private Integer sumGold; // 总金币 - private Integer permentGold; //永久金币 + private Integer permanentGold; //永久金币 private Integer freeJune; // 免费金币六月到期 private Integer freeDecember; // 免费金币七月到期 private Integer taskGold; // 任务金币 diff --git a/src/main/java/com/example/demo/mapper/GoldDetailMapper.java b/src/main/java/com/example/demo/mapper/GoldDetailMapper.java index 7494332..93fccb9 100644 --- a/src/main/java/com/example/demo/mapper/GoldDetailMapper.java +++ b/src/main/java/com/example/demo/mapper/GoldDetailMapper.java @@ -20,6 +20,9 @@ import java.util.List; @Mapper public interface GoldDetailMapper { List getGoldDetail(GoldDetail goldDetail); + List getGoldDetail1(@Param("pageNum") Integer pageNum, + @Param("pageSize") Integer pageSize, + @Param("goldDetail") GoldDetail goldDetail); Total getTotal(GoldDetail goldDetail); List getGold(User user); Total GoldTotal(User user); diff --git a/src/main/java/com/example/demo/service/GoldDetailService.java b/src/main/java/com/example/demo/service/GoldDetailService.java index 6ac1d18..7ecc838 100644 --- a/src/main/java/com/example/demo/service/GoldDetailService.java +++ b/src/main/java/com/example/demo/service/GoldDetailService.java @@ -3,10 +3,8 @@ package com.example.demo.service; import com.example.demo.domain.DTO.GoldDetailDTO; import com.example.demo.domain.DTO.GoldUserDTO; import com.example.demo.domain.entity.User; -import com.example.demo.domain.vo.GoldDetail; +import com.example.demo.domain.vo.*; -import com.example.demo.domain.vo.Result; -import com.example.demo.domain.vo.Total; import com.github.pagehelper.PageInfo; @@ -24,6 +22,8 @@ public interface GoldDetailService { PageInfo getGold(Integer pageNum, Integer pageSize, User user); Total GoldTotal(User user); + //金币统计 + Gold sumGold(Integer pageNum, Integer pageSize, GoldDetail goldDetail); //异步导出客户明细 Result addExportRecord(GoldDetailDTO dto); //异步导出金币余额 diff --git a/src/main/java/com/example/demo/serviceImpl/GoldDetailServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/GoldDetailServiceImpl.java index 9fb1f91..022c5dc 100644 --- a/src/main/java/com/example/demo/serviceImpl/GoldDetailServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/GoldDetailServiceImpl.java @@ -4,9 +4,7 @@ import com.example.demo.Util.RedisUtil; import com.example.demo.domain.DTO.GoldDetailDTO; import com.example.demo.domain.DTO.GoldUserDTO; import com.example.demo.domain.entity.User; -import com.example.demo.domain.vo.GoldDetail; -import com.example.demo.domain.vo.Result; -import com.example.demo.domain.vo.Total; +import com.example.demo.domain.vo.*; import com.example.demo.exception.SystemException; import com.example.demo.mapper.GoldDetailMapper; import com.example.demo.service.GoldDetailService; @@ -65,6 +63,50 @@ public class GoldDetailServiceImpl implements GoldDetailService { return goldDetailMapper.GoldTotal(user); } + /* + 用户金币合计数 + */ + @Override + public Gold sumGold(Integer pageNum, Integer pageSize, GoldDetail goldDetail) { + Gold gold = new Gold(); + //获取订单列表 + PageHelper.startPage(1, 500000); + List goldDetails = goldDetailMapper.getGoldDetail(goldDetail); + // List goldDetails=goldDetailMapper.getGoldDetail1(1,500000,goldDetail); + + // 初始化累加器 + int totalNum=0; + int permanentGoldSum = 0; + int freeGoldSum = 0; + int taskGoldSum = 0; + +// 遍历消费记录并累加金币 + for (GoldDetail detail : goldDetails) { + // 累加永久金币 + if (detail.getPermanentGold() != null) { + permanentGoldSum += detail.getPermanentGold(); + } + // 累加免费金币 + if (detail.getFreeJune() != null||detail.getFreeDecember() != null) { + freeGoldSum = freeGoldSum+detail.getFreeJune()+detail.getFreeDecember(); + } + // 累加任务金币 + if (detail.getTaskGold() != null) { + taskGoldSum += detail.getTaskGold(); + } + + // 每遍历一条记录,总条数加1 + totalNum++; + } + // 将累加结果设置到Gold对象 + gold.setPermanentGolds(permanentGoldSum); + gold.setFreeGolds(freeGoldSum); + gold.setTotalNum(totalNum); + gold.setTaskGolds(taskGoldSum); + gold.setSumGolds(permanentGoldSum+freeGoldSum+taskGoldSum); + return gold; + } + @Override public Result addExportRecord(GoldDetailDTO dto) { // 获取操作者 jwcode diff --git a/src/main/resources/mapper/AuditMapper.xml b/src/main/resources/mapper/AuditMapper.xml index 3fc612e..0f627ee 100644 --- a/src/main/resources/mapper/AuditMapper.xml +++ b/src/main/resources/mapper/AuditMapper.xml @@ -72,7 +72,7 @@ - ORDER BY #{rechargeAudit.sortField} #{rechargeAudit.sortOrder} + ORDER BY ${rechargeAudit.sortField} ${rechargeAudit.sortOrder} ORDER BY create_time DESC @@ -117,7 +117,7 @@ - ORDER BY #{refundAudit.sortField} #{refundAudit.sortOrder} + ORDER BY ${refundAudit.sortField} ${refundAudit.sortOrder} ORDER BY create_time DESC diff --git a/src/main/resources/mapper/GoldDetailMapper.xml b/src/main/resources/mapper/GoldDetailMapper.xml index cdb9a4e..ecd41fd 100644 --- a/src/main/resources/mapper/GoldDetailMapper.xml +++ b/src/main/resources/mapper/GoldDetailMapper.xml @@ -13,10 +13,10 @@ left join `admin` on `admin`.id = `ugr`.admin_id - and `ugr`.jwcode = #{jwcode} + and ugr.jwcode = #{jwcode} - and `ugr`.pay_platform = #{payPlatform} + and ugr.pay_platform = #{payPlatform} and `ugr`.type = #{type} @@ -95,4 +95,36 @@ +