From 8167d06346ab00383a7d0c0b6e60951d3c57b255 Mon Sep 17 00:00:00 2001 From: lijianlin Date: Fri, 4 Jul 2025 13:26:47 +0800 Subject: [PATCH 01/14] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E5=8F=B0=E5=85=A8?= =?UTF-8?q?=E5=B9=B4=E6=B6=88=E8=B4=B9bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/example/demo/domain/vo/WorkbenchFullStatistics.java | 1 + src/main/java/com/example/demo/domain/vo/WorkbenchMarketGraph.java | 1 + src/main/java/com/example/demo/serviceImpl/WorkbenchServiceImpl.java | 4 ++++ 3 files changed, 6 insertions(+) diff --git a/src/main/java/com/example/demo/domain/vo/WorkbenchFullStatistics.java b/src/main/java/com/example/demo/domain/vo/WorkbenchFullStatistics.java index 0eefc96..b635966 100644 --- a/src/main/java/com/example/demo/domain/vo/WorkbenchFullStatistics.java +++ b/src/main/java/com/example/demo/domain/vo/WorkbenchFullStatistics.java @@ -24,6 +24,7 @@ public class WorkbenchFullStatistics implements Serializable { private Integer totalConsumePermanent; //总消费-永久金币 private Integer totalConsumeFree; //总消费-免费金币 private Integer totalConsumeTask; //总消费-任务金币 + private Integer totalConsume; //总消费 private Integer totalRefund; //总退款 private Integer totalRechargeNum; //总充值人数 } diff --git a/src/main/java/com/example/demo/domain/vo/WorkbenchMarketGraph.java b/src/main/java/com/example/demo/domain/vo/WorkbenchMarketGraph.java index f2a15b4..32d28df 100644 --- a/src/main/java/com/example/demo/domain/vo/WorkbenchMarketGraph.java +++ b/src/main/java/com/example/demo/domain/vo/WorkbenchMarketGraph.java @@ -26,4 +26,5 @@ public class WorkbenchMarketGraph implements Serializable { private Integer SumConsumePermanent; //合计消费永久金币 private Integer SumConsumeFree; //合计消费免费金币 private Integer SumConsumeTask; //合计消费任务金币 + private Integer SumConsume; //合计消费金币 } diff --git a/src/main/java/com/example/demo/serviceImpl/WorkbenchServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/WorkbenchServiceImpl.java index dc0270b..ee6a562 100644 --- a/src/main/java/com/example/demo/serviceImpl/WorkbenchServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/WorkbenchServiceImpl.java @@ -203,6 +203,7 @@ public class WorkbenchServiceImpl implements WorkbenchService { graphs.setSumConsumePermanent(sums.get("cPermanent")); graphs.setSumConsumeFree(sums.get("cFree")); graphs.setSumConsumeTask(sums.get("cTask")); + graphs.setSumConsume(sums.get("consume")); marketGraphs.add(graphs); } return new WorkbenchCard(token, new ArrayList<>(),marketGraphs,markets,startDate,endDate); @@ -222,6 +223,9 @@ public class WorkbenchServiceImpl implements WorkbenchService { result.put("cPermanent", stats.getTotalConsumePermanent() != null ? stats.getTotalConsumePermanent() : 0); result.put("cFree", stats.getTotalConsumeFree() != null ? stats.getTotalConsumeFree() : 0); result.put("cTask", stats.getTotalConsumeTask() != null ? stats.getTotalConsumeTask() : 0); + result.put("consume",(stats.getTotalConsumePermanent() != null ? stats.getTotalConsumePermanent() : 0) + +(stats.getTotalConsumeFree() != null ? stats.getTotalConsumeFree() : 0) + +(stats.getTotalConsumeTask() != null ? stats.getTotalConsumeTask() : 0)); result.put("refund", stats.getTotalRefund() != null ? stats.getTotalRefund() : 0); result.put("rechargeNum", stats.getTotalRechargeNum() != null ? stats.getTotalRechargeNum() : 0); return result; From ade721ec199a1782b7fd815a296ada141a26f844 Mon Sep 17 00:00:00 2001 From: lijianlin Date: Fri, 4 Jul 2025 13:48:55 +0800 Subject: [PATCH 02/14] =?UTF-8?q?=E6=B1=87=E7=8E=87=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/example/demo/domain/entity/Rate.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/example/demo/domain/entity/Rate.java b/src/main/java/com/example/demo/domain/entity/Rate.java index 14a16b4..0ba7482 100644 --- a/src/main/java/com/example/demo/domain/entity/Rate.java +++ b/src/main/java/com/example/demo/domain/entity/Rate.java @@ -4,8 +4,10 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.Data; import lombok.NoArgsConstructor; +import org.apache.poi.hpsf.Decimal; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; @Data @@ -16,7 +18,7 @@ public class Rate implements Serializable { private Integer id; // 汇率id private String rateName; // 汇率名称 - private Integer num; // 汇率比例 + private BigDecimal num; // 汇率比例 private Integer adminId; // 用户(修改人)id @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") From 64d249961caaed74ba26f5c508c8e674d1627b4c Mon Sep 17 00:00:00 2001 From: huangqizhen <15552608129@163.com> Date: Fri, 4 Jul 2025 13:51:18 +0800 Subject: [PATCH 03/14] =?UTF-8?q?7.4bug=E4=BF=AE=E5=A4=8D=E6=98=8E?= =?UTF-8?q?=E7=BB=86=E9=A1=B5=E9=9D=A2=E6=97=B6=E9=97=B4=EF=BC=8C=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/demo/controller/AdminController.java | 12 +++--------- .../com/example/demo/controller/ExportController.java | 9 +++++++-- .../java/com/example/demo/domain/export/Goldmingxi.java | 2 +- src/main/java/com/example/demo/domain/vo/GoldDetail.java | 4 +++- .../java/com/example/demo/security/SecurityConfig.java | 2 +- src/main/resources/mapper/ExportMapper.xml | 3 +-- src/main/resources/mapper/GoldDetailMapper.xml | 3 ++- src/main/resources/mapper/RateMapper.xml | 16 +++++++++++----- 8 files changed, 29 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/example/demo/controller/AdminController.java b/src/main/java/com/example/demo/controller/AdminController.java index 21294f0..cae0ff5 100644 --- a/src/main/java/com/example/demo/controller/AdminController.java +++ b/src/main/java/com/example/demo/controller/AdminController.java @@ -45,16 +45,10 @@ public class AdminController { } } @PostMapping("/userinfo") - public UserDetails getUserInfo(@RequestBody String requestBody) { - ObjectMapper objectMapper = new ObjectMapper(); - TokenPayload token1; - try { - token1 = objectMapper.readValue(requestBody, TokenPayload.class); - } catch (JsonProcessingException e) { - throw new RuntimeException(e); - } - String token = token1.getToken(); + public UserDetails getUserInfo(@RequestHeader("token") String token1) { + //String token = token1.getToken(); + String token = token1; System.out.println("1/*/*/*/*//*-*-*-*-*-*-1" +token); try { System.out.println("/+/+/+/+/+/+/+//" + JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class)); diff --git a/src/main/java/com/example/demo/controller/ExportController.java b/src/main/java/com/example/demo/controller/ExportController.java index 2269657..b773b02 100644 --- a/src/main/java/com/example/demo/controller/ExportController.java +++ b/src/main/java/com/example/demo/controller/ExportController.java @@ -42,8 +42,13 @@ public class ExportController { @Autowired private ExportService exportService; @PostMapping("/export") - public Result export(@RequestBody Export Export){ - return Result.success(exportExcelService.getExcel(Export)); + public Result export(@RequestBody Export Export)throws Exception{ + try { + return Result.success(exportExcelService.getExcel(Export)); + } catch (Exception e) { + log.error("导出失败", e.getMessage()); + return Result.error("导出失败"+e.getMessage()); + } } @PostMapping("/exportRecharge") public Result export(@Valid @RequestBody RechargeDTO dto) { 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/GoldDetail.java b/src/main/java/com/example/demo/domain/vo/GoldDetail.java index bf676f7..7ed07e8 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; // 任务金币 @@ -38,5 +38,7 @@ public class GoldDetail { private Date endTime; // 结束时间 private String sortField; //排序字段 private String sortOrder; //排序顺序 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private Date auditTime; } diff --git a/src/main/java/com/example/demo/security/SecurityConfig.java b/src/main/java/com/example/demo/security/SecurityConfig.java index 4843f2a..5f0068f 100644 --- a/src/main/java/com/example/demo/security/SecurityConfig.java +++ b/src/main/java/com/example/demo/security/SecurityConfig.java @@ -60,7 +60,7 @@ public class SecurityConfig { request .requestMatchers( HttpMethod.POST, // 用户不登录就可以访问的路径 - "/admin/login","/upload/**","/detailY/ERP","/home/java/haiwaiyanfa/gold1/**","/home/java/haiwaiyanfa/**","/**").permitAll() + "/admin/login","/upload/**","/detailY/ERP","/home/java/haiwaiyanfa/gold1/**","/home/java/haiwaiyanfa/**").permitAll() .requestMatchers( "/error","alipay/**","/upload/**","/home/java/haiwaiyanfa/gold1/**","/home/java/haiwaiyanfa/**" ).permitAll() diff --git a/src/main/resources/mapper/ExportMapper.xml b/src/main/resources/mapper/ExportMapper.xml index f67834b..c9c85bd 100644 --- a/src/main/resources/mapper/ExportMapper.xml +++ b/src/main/resources/mapper/ExportMapper.xml @@ -22,7 +22,6 @@ and account = #{account} + order by create_time desc - - \ No newline at end of file diff --git a/src/main/resources/mapper/GoldDetailMapper.xml b/src/main/resources/mapper/GoldDetailMapper.xml index cdb9a4e..9a7fb63 100644 --- a/src/main/resources/mapper/GoldDetailMapper.xml +++ b/src/main/resources/mapper/GoldDetailMapper.xml @@ -7,7 +7,8 @@ SELECT ugr.*, + (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) AS freeGold, u.name as name, u.market as market, a1.admin_name as adminName, @@ -68,12 +69,20 @@ AND ugr.audit_status = #{rechargeAudit.auditStatus} AND ugr.type = 0 - + + + ORDER BY #{rechargeAudit.sortField} #{rechargeAudit.sortOrder} + + + ORDER BY create_time DESC + + From 6ec338b900104ae38e872486182b7d8c85dc8159 Mon Sep 17 00:00:00 2001 From: lijianlin Date: Fri, 4 Jul 2025 18:29:45 +0800 Subject: [PATCH 10/14] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E5=8F=B0=EF=BC=8C?= =?UTF-8?q?=E5=90=8C=E6=AF=94=E7=8E=AF=E6=AF=94=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 4 +- .../demo/domain/vo/WorkbenchMarketCard.java | 3 + .../com/example/demo/service/WorkbenchService.java | 4 +- .../demo/serviceImpl/WorkbenchServiceImpl.java | 66 ++++++++++++++++------ src/main/resources/mapper/StatisticsMapper.xml | 4 +- 5 files changed, 61 insertions(+), 20 deletions(-) diff --git a/pom.xml b/pom.xml index 8bdb93a..feb0b53 100644 --- a/pom.xml +++ b/pom.xml @@ -175,7 +175,7 @@ - + diff --git a/src/main/java/com/example/demo/domain/vo/WorkbenchMarketCard.java b/src/main/java/com/example/demo/domain/vo/WorkbenchMarketCard.java index 36db07f..5195f5b 100644 --- a/src/main/java/com/example/demo/domain/vo/WorkbenchMarketCard.java +++ b/src/main/java/com/example/demo/domain/vo/WorkbenchMarketCard.java @@ -55,6 +55,9 @@ public class WorkbenchMarketCard implements Serializable { private Integer firstRecharge; // 当日首充人数 private Integer wow; // 周同比(%) private Integer daily; // 日环比(%) + private Integer sumWow; // 总周同比(%) + private Integer sumDaily; // 总日环比(%) + private Integer yearlyRechargeNum; // 全年累计充值人头数 //图表 private Integer SumRechargePermanent; //合计充值永久金币 diff --git a/src/main/java/com/example/demo/service/WorkbenchService.java b/src/main/java/com/example/demo/service/WorkbenchService.java index 406d3e8..35542c3 100644 --- a/src/main/java/com/example/demo/service/WorkbenchService.java +++ b/src/main/java/com/example/demo/service/WorkbenchService.java @@ -30,9 +30,11 @@ public interface WorkbenchService { //获取该日期该市场的日环比 Integer calculateDayOverDay(String market,Date date); //获取总体日环比 - //Integer calculateAllDayOverDay(Date date); + Integer calculateAllDayOverDay(Date date); //获取该日期该市场的周同比 Integer calculateWeekOverWeek(String market, Date date); + //获取该日期总体的周同比 + Integer calculateAllWeekOverWeek( Date date); //获取与传入的日期相差XX天的日期 Date addDays(Date date, int days); //获取传入时间所在周的第一天(周一) diff --git a/src/main/java/com/example/demo/serviceImpl/WorkbenchServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/WorkbenchServiceImpl.java index 5ce282f..e495b0d 100644 --- a/src/main/java/com/example/demo/serviceImpl/WorkbenchServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/WorkbenchServiceImpl.java @@ -184,7 +184,9 @@ public class WorkbenchServiceImpl implements WorkbenchService { // 周环比、日同比 card.setWow(calculateWeekOverWeek(market, currentDate)); + card.setSumWow(calculateAllWeekOverWeek(date)); card.setDaily(calculateDayOverDay(market, currentDate)); + card.setSumDaily(calculateAllDayOverDay(date)); } return card; } @@ -260,28 +262,33 @@ public class WorkbenchServiceImpl implements WorkbenchService { return (int) Math.round(rate); } // 计算所有市场总体日环比 - /* @Override + @Override public Integer calculateAllDayOverDay(Date date) { - //获取起止时间为当天零点与最后一秒 + //获取今天的开始时间和结束时间 LocalDateTime startTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime().with(LocalTime.MIN); LocalDateTime endTime= startTime.plusDays(1).minusSeconds(1); + //获取地区列表 + List markets = generalService.getMarket(); + int currentTotal = 0; //今日所有地区总的充值人数 + int yesterdayTotal = 0; //昨日所有地区总的充值人数 - //int currentTotalRechargeNum = statisticsMapper.countAllMarketRechargeNum( - Date.from(startTime.atZone(ZoneId.systemDefault()).toInstant()), - Date.from(endTime.atZone(ZoneId.systemDefault()).toInstant())); - - if (currentTotalRechargeNum == 0) return 0; // 避免除以零的情况 - - Date yesterday = addDays(date, -1); // 昨天 - int yesterdayTotalRechargeNum = statisticsMapper.countAllMarketRechargeNum( - Date.from(yesterday.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime().with(LocalTime.MIN).atZone(ZoneId.systemDefault()).toInstant()), - Date.from(yesterday.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime().with(LocalTime.MAX).atZone(ZoneId.systemDefault()).toInstant())); - - if (yesterdayTotalRechargeNum == 0) return 0; // 避免除以零的情况 + Date yesterday = addDays(date, -1); + //过去昨天的开始时间和结束时间 + LocalDateTime ydayStartTime = yesterday.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime().with(LocalTime.MIN); + LocalDateTime ydayEndTime= ydayStartTime.plusDays(1).minusSeconds(1); + for (String market : markets) { + currentTotal += statisticsMapper.countRechargeNum(market, + Date.from(startTime.atZone(ZoneId.systemDefault()).toInstant()), + Date.from(endTime.atZone(ZoneId.systemDefault()).toInstant())); + yesterdayTotal += statisticsMapper.countRechargeNum(market, + Date.from(ydayStartTime.atZone(ZoneId.systemDefault()).toInstant()), + Date.from(ydayEndTime.atZone(ZoneId.systemDefault()).toInstant())); + } + if (yesterdayTotal == 0) return 0; // 避免除以零的情况 - double rate = ((double)(currentTotalRechargeNum - yesterdayTotalRechargeNum) / yesterdayTotalRechargeNum) * 100; + double rate = ((double)(currentTotal - yesterdayTotal) / yesterdayTotal) * 100; return (int)Math.round(rate); - }*/ + } /* 获取该日期该市场的周环比 */ @@ -291,6 +298,7 @@ public class WorkbenchServiceImpl implements WorkbenchService { Date thisWeekStart = getStartOfWeek(date); //获取传入日期上一周的周一 Date lastWeekStart = addDays(thisWeekStart, -7); + // 获取本周周一至今天的充值人数总和 int thisWeekTotal = statisticsMapper.countRechargeNum(market, thisWeekStart, date); // 获取上周同一时间段的充值人数总和 @@ -301,6 +309,32 @@ public class WorkbenchServiceImpl implements WorkbenchService { double rate = ((double) (thisWeekTotal - lastWeekTotal) / lastWeekTotal) * 100; return (int) Math.round(rate); } + /* + 获取改天总体的的周环比 + */ + @Override + public Integer calculateAllWeekOverWeek( Date date) { + + List markets = generalService.getMarket(); + int thisWeekTotal = 0; //本周至当天充值人数 + int lastWeekTotal = 0; //上周至当天充值人数 + //获取本周周一 + Date thisWeekStart = getStartOfWeek(date); + //获取传入日期上一周的周一 + Date lastWeekStart = addDays(thisWeekStart, -7); + for (String market : markets) { + // 获取本周周一至今天的充值人数总和 + thisWeekTotal += statisticsMapper.countRechargeNum(market, thisWeekStart, date); + // 获取上周同一时间段的充值人数总和 + lastWeekTotal += statisticsMapper.countRechargeNum(market, lastWeekStart, addDays(date, -7)); + } + + if (lastWeekTotal == 0) { + return 0; // 避免除以零的情况 + } + double rate = ((double) (thisWeekTotal - lastWeekTotal) / lastWeekTotal) * 100; + return (int) Math.round(rate); + } @Override public Date addDays(Date date, int days) { diff --git a/src/main/resources/mapper/StatisticsMapper.xml b/src/main/resources/mapper/StatisticsMapper.xml index 9c7fcfb..99398d7 100644 --- a/src/main/resources/mapper/StatisticsMapper.xml +++ b/src/main/resources/mapper/StatisticsMapper.xml @@ -86,6 +86,7 @@ FROM user_gold_record ugr INNER JOIN user u ON ugr.jwcode = u.jwcode WHERE u.market = #{market} + AND ugr.type=0 AND ugr.audit_status IN (1,3) AND ugr.audit_time BETWEEN #{startTime} AND #{endTime} @@ -95,7 +96,8 @@ FROM user_gold_record ugr INNER JOIN user u ON ugr.jwcode = u.jwcode WHERE u.market = #{market} - AND ugr.audit_status = 1 + AND ugr.type=0 + AND ugr.audit_status IN (1,3) AND ugr.audit_time BETWEEN #{startTime} AND #{endTime} AND u.first_recharge = #{startTime} From 1270c5c74a6abeafe84cfac6de47dd43772c939e Mon Sep 17 00:00:00 2001 From: sunjiabei Date: Sat, 5 Jul 2025 09:56:04 +0800 Subject: [PATCH 11/14] =?UTF-8?q?=E6=A5=BC=E4=B8=8A=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=89=93=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/example/demo/serviceImpl/ConsumeServiceImpl.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java index 34507e8..69baf7e 100644 --- a/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java @@ -163,10 +163,11 @@ public class ConsumeServiceImpl implements ConsumeService { user.setConsumeNum(gold.getConsumeNum() + 1); user.setSumConsume(consumeUser.getPermanentGold() + consumeUser.getFreeGold() + consumeUser.getTaskGold()); userMapper.updateGold(user); - //对接接口 -// GoldTistV2.addCoinNew(userGoldRecord.getJwcode().toString(), 65, -// (double) (userGoldRecord.getPermanentGold() + userGoldRecord.getFreeDecember() + userGoldRecord.getFreeJune() + userGoldRecord.getTaskGold()) /100, -// userGoldRecord.getRemark(),((double) userGoldRecord.getPermanentGold() /100), userGoldRecord.getPayPlatform(), userGoldRecord.getGoodsName()); + if(consumeUser.getJwcode().equals(94226013)){ + GoldTistV2.addCoinNew(userGoldRecord.getJwcode().toString(), 65, + (double) (userGoldRecord.getPermanentGold() + userGoldRecord.getFreeDecember() + userGoldRecord.getFreeJune() + userGoldRecord.getTaskGold()) /100, + userGoldRecord.getRemark(),((double) userGoldRecord.getPermanentGold() /100), userGoldRecord.getPayPlatform(), userGoldRecord.getGoodsName()); + } return Result.success(); } } From f94219757e378d8ea889536554e89a78f0de7dce Mon Sep 17 00:00:00 2001 From: sunjiabei Date: Sat, 5 Jul 2025 11:08:03 +0800 Subject: [PATCH 12/14] =?UTF-8?q?=E9=87=91=E5=B8=81=E7=A9=BA=E5=80=BC?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java | 3 +++ src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java | 3 +++ src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java | 3 +++ 3 files changed, 9 insertions(+) diff --git a/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java index 69baf7e..32a34ac 100644 --- a/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java @@ -96,6 +96,9 @@ public class ConsumeServiceImpl implements ConsumeService { //新增消耗 @Override public Result add(ConsumeUser consumeUser) { + if(consumeUser.getTaskGold()==null||consumeUser.getFreeGold()==null||consumeUser.getPermanentGold()==null){ + return Result.error("金币数量不能为空"); + } if(consumeUser.getTaskGold()<0||consumeUser.getFreeGold()<0||consumeUser.getPermanentGold()<0){ return Result.error("金币不能为负数"); } diff --git a/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java index 9fcb985..81b344c 100644 --- a/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java @@ -83,6 +83,9 @@ public class RechargeServiceImpl implements RechargeService { @Override public Result add(RechargeUser rechargeUser) { + if(rechargeUser.getFreeGold()==null||rechargeUser.getPermanentGold()==null||rechargeUser.getMoney()==null){ + return Result.error("金币和金额不能为空"); + } if(rechargeUser.getFreeGold()<0||rechargeUser.getPermanentGold()<=0||rechargeUser.getMoney()<=0){ return Result.error("充值不能为负数或0"); } diff --git a/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java index d1ae8d0..ffe7dac 100644 --- a/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java @@ -93,6 +93,9 @@ public class RefundServiceImpl implements RefundService { @Transactional @Override public Result add(RefundUser refundUser) { + if(refundUser.getTaskGold()==null||refundUser.getFreeGold()==null||refundUser.getPermanentGold()==null){ + return Result.error("金币不能为空"); + } if(refundUser.getTaskGold()<0||refundUser.getFreeGold()<0||refundUser.getPermanentGold()<0){ return Result.error("金币不能为负数"); } From befc74adb44022885f5c3dccfc4a75f6858f32aa Mon Sep 17 00:00:00 2001 From: sunjiabei Date: Sat, 5 Jul 2025 11:26:06 +0800 Subject: [PATCH 13/14] =?UTF-8?q?=E6=8A=A5=E9=94=99=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/example/demo/controller/ConsumeController.java | 8 ++++---- .../java/com/example/demo/controller/RechargeController.java | 8 ++++---- src/main/java/com/example/demo/controller/RefundController.java | 9 +++++---- src/main/java/com/example/demo/controller/UserController.java | 2 +- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/example/demo/controller/ConsumeController.java b/src/main/java/com/example/demo/controller/ConsumeController.java index 9ddf11b..0914acb 100644 --- a/src/main/java/com/example/demo/controller/ConsumeController.java +++ b/src/main/java/com/example/demo/controller/ConsumeController.java @@ -45,7 +45,7 @@ public class ConsumeController { return Result.success(consumeService.selectAll(page.getPageNum(), page.getPageSize(),page.getConsumeUser())); } } catch (Exception e) { - return Result.error("接口调用失败"); + return Result.error("请检查筛选数据的格式"); } @@ -65,7 +65,7 @@ public class ConsumeController { return Result.success(consumeService.selectBy(page.getPageNum(), page.getPageSize(), page.getConsumeUser())); } } catch (Exception e) { - return Result.error("接口调用失败"); + return Result.error("请检查筛选数据的格式"); } } @@ -77,7 +77,7 @@ public class ConsumeController { Gold gold = consumeService.statsGold(consumeUser); return Result.success(gold); } catch (Exception e) { - return Result.error("接口调用失败"); + return Result.error("请检查数据的格式"); } } @@ -94,7 +94,7 @@ public class ConsumeController { // } // } catch (Exception e) { - return Result.error("接口调用失败"); + return Result.error("请检查数据的格式"); } } diff --git a/src/main/java/com/example/demo/controller/RechargeController.java b/src/main/java/com/example/demo/controller/RechargeController.java index 005e08a..ecd0880 100644 --- a/src/main/java/com/example/demo/controller/RechargeController.java +++ b/src/main/java/com/example/demo/controller/RechargeController.java @@ -42,7 +42,7 @@ public class RechargeController { return Result.success(rechargeService.selectAll(page.getPageNum(), page.getPageSize(),page.getRechargeUser())); } } catch (Exception e) { - return Result.error("接口调用失败"); + return Result.error("请检查筛选数据的格式"); } @@ -62,7 +62,7 @@ public class RechargeController { return Result.success(rechargeService.selectBy(page.getPageNum(), page.getPageSize(), page.getRechargeUser())); } } catch (Exception e) { - return Result.error("接口调用失败"); + return Result.error("请检查筛选数据的格式"); } } @@ -74,7 +74,7 @@ public class RechargeController { Gold gold = rechargeService.statsGold(rechargeUser); return Result.success(gold); } catch (Exception e) { - return Result.error("接口调用失败"); + return Result.error("请检查数据的格式"); } } @@ -84,7 +84,7 @@ public class RechargeController { try { return rechargeService.add(rechargeUser); } catch (Exception e) { - return Result.error("接口调用失败"); + return Result.error("请检查数据的格式"); } } diff --git a/src/main/java/com/example/demo/controller/RefundController.java b/src/main/java/com/example/demo/controller/RefundController.java index edd707b..78b3446 100644 --- a/src/main/java/com/example/demo/controller/RefundController.java +++ b/src/main/java/com/example/demo/controller/RefundController.java @@ -43,7 +43,7 @@ public class RefundController { return Result.success(refundService.selectAll(page.getPageNum(), page.getPageSize(), page.getRefundUser())); } } catch (Exception e) { - return Result.error("接口调用失败"); + return Result.error("请检查筛选数据的格式"); } } @@ -57,10 +57,11 @@ public class RefundController { if (ObjectUtils.isEmpty(page.getPageSize())) { return Result.error("页大小为空!"); } else { + return Result.success(refundService.selectBy(page.getPageNum(), page.getPageSize(), page.getRefundUser())); } } catch (Exception e) { - return Result.error("接口调用失败"); + return Result.error("请检查筛选数据的格式"); } } @@ -71,7 +72,7 @@ public class RefundController { Gold gold = refundService.statsGold(refundUser); return Result.success(gold); } catch (Exception e) { - return Result.error("接口调用失败"); + return Result.error("请检查数据的格式"); } } @@ -95,7 +96,7 @@ public class RefundController { try { return refundService.add(refundUser); } catch (Exception e) { - return Result.error("接口调用失败"); + return Result.error("请检查数据的格式"); } } } diff --git a/src/main/java/com/example/demo/controller/UserController.java b/src/main/java/com/example/demo/controller/UserController.java index 09d3ccf..3f12756 100644 --- a/src/main/java/com/example/demo/controller/UserController.java +++ b/src/main/java/com/example/demo/controller/UserController.java @@ -35,7 +35,7 @@ public class UserController { user = userService.selectUser(user.getJwcode().toString()); return Result.success(user); } catch (Exception e) { - return Result.error("接口调用失败"); + return Result.error("请检查输入精网号"); } } } From a655514f32b9ba48fe5abf7c27425e9ca3430075 Mon Sep 17 00:00:00 2001 From: lijianlin Date: Sat, 5 Jul 2025 11:40:59 +0800 Subject: [PATCH 14/14] =?UTF-8?q?=E5=AE=A2=E6=88=B7=E9=87=91=E5=B8=81?= =?UTF-8?q?=E6=98=8E=E7=BB=86=E4=BC=98=E5=8C=96,=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/GoldDetailController.java | 7 +++- .../com/example/demo/domain/export/Goldmingxi.java | 2 +- src/main/java/com/example/demo/domain/vo/Gold.java | 1 + .../com/example/demo/domain/vo/GoldDetail.java | 2 +- .../com/example/demo/mapper/GoldDetailMapper.java | 3 ++ .../example/demo/service/GoldDetailService.java | 6 +-- .../demo/serviceImpl/GoldDetailServiceImpl.java | 48 ++++++++++++++++++++-- src/main/resources/mapper/AuditMapper.xml | 4 +- src/main/resources/mapper/GoldDetailMapper.xml | 36 +++++++++++++++- 9 files changed, 95 insertions(+), 14 deletions(-) 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 @@ +