From 850fb12eb3e26f0721f17b073de1c6070b09bfcf Mon Sep 17 00:00:00 2001 From: huangqizhen <15552608129@163.com> Date: Mon, 7 Jul 2025 17:35:09 +0800 Subject: [PATCH] =?UTF-8?q?7.6token=E6=8F=90=E5=8F=96=E7=94=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/demo/Export/ExportServiceImpl.java | 40 +++++++++-- .../com/example/demo/domain/DTO/ConsumeDTO.java | 2 + .../com/example/demo/domain/export/Goldmingxi.java | 1 + .../com/example/demo/domain/export/Goldyve.java | 24 +++++++ .../demo/serviceImpl/ExportExcelServiceImpl.java | 77 ++++++++++++++++++++-- .../demo/serviceImpl/GoldDetailServiceImpl.java | 26 +++++++- src/main/resources/mapper/PermissionMapper.xml | 6 +- 7 files changed, 159 insertions(+), 17 deletions(-) create mode 100644 src/main/java/com/example/demo/domain/export/Goldyve.java diff --git a/src/main/java/com/example/demo/Export/ExportServiceImpl.java b/src/main/java/com/example/demo/Export/ExportServiceImpl.java index 2c52080..bdce7f0 100644 --- a/src/main/java/com/example/demo/Export/ExportServiceImpl.java +++ b/src/main/java/com/example/demo/Export/ExportServiceImpl.java @@ -1,15 +1,21 @@ package com.example.demo.Export; +import com.example.demo.Util.JWTUtil; import com.example.demo.domain.DTO.ConsumeDTO; import com.example.demo.domain.DTO.RechargeDTO; import com.example.demo.domain.DTO.RefundDTO; +import com.example.demo.domain.entity.Admin; import com.example.demo.domain.vo.Result; import com.example.demo.exception.SystemException; import com.example.demo.mapper.GoldDetailMapper; import com.example.demo.Util.RedisUtil; import com.fasterxml.jackson.databind.ObjectMapper; +import jakarta.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.userdetails.UserDetails; import org.springframework.stereotype.Service; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -33,13 +39,21 @@ public class ExportServiceImpl implements ExportService{ @Override public Result addExportRecharge(RechargeDTO dto) { + // 获取操作者 jwcode + HttpServletRequest request=((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String token = request.getHeader("token"); + try { + UserDetails token1= JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class); + dto.setAccount(Integer.valueOf(token1.getUsername())); + } catch (Exception e) { + throw new RuntimeException(e.getMessage()); + } // 生成文件名 String fileName = String.format("%s_%s_%s.xlsx", "充值明细", "操作人", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); System.out.println(fileName); - dto.setAccount(123456); dto.setUrl(""); dto.setFileName(fileName); dto.setDataNum(0); @@ -81,13 +95,21 @@ public class ExportServiceImpl implements ExportService{ @Override public Result addExportRefund(RefundDTO dto) { + // 获取操作者 jwcode + HttpServletRequest request=((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String token = request.getHeader("token"); + try { + UserDetails token1= JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class); + dto.setAccount(Integer.valueOf(token1.getUsername())); + } catch (Exception e) { + throw new RuntimeException(e.getMessage()); + } // 生成文件名 String fileName = String.format("%s_%s_%s.xlsx", "退款明细", "操作人", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); System.out.println(fileName); - dto.setAccount(123456); dto.setUrl(""); dto.setFileName(fileName); dto.setDataNum(0); @@ -129,13 +151,21 @@ public class ExportServiceImpl implements ExportService{ @Override public Result addExportConsume(ConsumeDTO dto) { + // 获取操作者 jwcode + HttpServletRequest request=((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String token = request.getHeader("token"); + try { + UserDetails token1= JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class); + dto.setAccount(Integer.valueOf(token1.getUsername())); + } catch (Exception e) { + throw new RuntimeException(e.getMessage()); + } // 生成文件名 String fileName = String.format("%s_%s_%s.xlsx", - "消费明细", + "消耗明细", "操作人", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); System.out.println(fileName); - dto.setAccount(123456); dto.setUrl(""); dto.setFileName(fileName); dto.setDataNum(0); @@ -167,7 +197,7 @@ public class ExportServiceImpl implements ExportService{ // 3. 发送到 Redis 消息队列 String jsonData = new ObjectMapper().writeValueAsString(exportData); - redisUtil.sendMessage("refund:queue:export_queue", jsonData); + redisUtil.sendMessage("consume:queue:export_queue", jsonData); }catch (Exception e){ e.printStackTrace(); throw new SystemException("导出数据异常,请稍后重试", e); diff --git a/src/main/java/com/example/demo/domain/DTO/ConsumeDTO.java b/src/main/java/com/example/demo/domain/DTO/ConsumeDTO.java index d8a7b01..a2eb47a 100644 --- a/src/main/java/com/example/demo/domain/DTO/ConsumeDTO.java +++ b/src/main/java/com/example/demo/domain/DTO/ConsumeDTO.java @@ -1,5 +1,6 @@ package com.example.demo.domain.DTO; +import com.example.demo.domain.vo.ConsumeUser; import jakarta.validation.constraints.NotNull; import lombok.Data; import lombok.NoArgsConstructor; @@ -31,6 +32,7 @@ public class ConsumeDTO { private Integer page = 1; @NotNull(message = "pageSize不能为空") private Integer pageSize = 20; + private ConsumeUser consumeUser; @Override public String toString() { 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 41dd026..5291dc1 100644 --- a/src/main/java/com/example/demo/domain/export/Goldmingxi.java +++ b/src/main/java/com/example/demo/domain/export/Goldmingxi.java @@ -25,4 +25,5 @@ public class Goldmingxi { private Integer freeDecember; // 免费金币七月到期 private Integer taskGold; // 任务金币 private String adminName; //提交人 + private String createTime; // 提交时间 } diff --git a/src/main/java/com/example/demo/domain/export/Goldyve.java b/src/main/java/com/example/demo/domain/export/Goldyve.java new file mode 100644 index 0000000..26f6878 --- /dev/null +++ b/src/main/java/com/example/demo/domain/export/Goldyve.java @@ -0,0 +1,24 @@ +package com.example.demo.domain.export; + +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @program: GOLD + * @ClassName Goldyve + * @description: + * @author: huangqizhen + * @create: 2025−07-07 15:27 + * @Version 1.0 + **/ +@Data +@NoArgsConstructor +public class Goldyve { + private String name; + private Integer jwcode; + private String market; + private String currentPermanentGold ; + private String currentFreeJune; + private String currentFreeDecember; + private String currentTaskGold; +} diff --git a/src/main/java/com/example/demo/serviceImpl/ExportExcelServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/ExportExcelServiceImpl.java index 98efdd1..9e425ed 100644 --- a/src/main/java/com/example/demo/serviceImpl/ExportExcelServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/ExportExcelServiceImpl.java @@ -10,6 +10,7 @@ import com.example.demo.controller.GoldDetailController; import com.example.demo.controller.RechargeController; import com.example.demo.controller.RefundController; import com.example.demo.domain.entity.Export; +import com.example.demo.domain.entity.User; import com.example.demo.domain.export.Goldmingxi; import com.example.demo.domain.vo.*; @@ -294,7 +295,7 @@ public class ExportExcelServiceImpl implements ExportExcelService { try { // 6. 初始化Excel写入器(指向本地文件流) - excelWriter = initExcelWriter(outputStream, "user"); + excelWriter = ExcelWriter(outputStream, "user"); WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").build(); // 7. 分页查询并写入数据 Page page = new Page(); @@ -493,7 +494,7 @@ public class ExportExcelServiceImpl implements ExportExcelService { try { // 6. 初始化Excel写入器(指向本地文件流) - excelWriter = initExcelWriter(outputStream, "user"); + excelWriter = RechargeExcelWriter(outputStream, "user"); WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").build(); // 7. 分页查询并写入数据 Page page = new Page(); @@ -692,7 +693,7 @@ public class ExportExcelServiceImpl implements ExportExcelService { try { // 6. 初始化Excel写入器(指向本地文件流) - excelWriter = initExcelWriter(outputStream, "user"); + excelWriter = ConExcelWriter(outputStream, "user"); WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").build(); // 7. 分页查询并写入数据 Page page = new Page(); @@ -701,7 +702,7 @@ public class ExportExcelServiceImpl implements ExportExcelService { Integer totalCount = 0; boolean hasMore = true; while (hasMore) { - Result pageResult = refundController.selcetBy(page); + Result pageResult = consumeController.selcetBy(page); Integer code = pageResult.getCode(); Object data = pageResult.getData(); @@ -891,7 +892,7 @@ public class ExportExcelServiceImpl implements ExportExcelService { try { // 6. 初始化Excel写入器(指向本地文件流) - excelWriter = initExcelWriter(outputStream, "user"); + excelWriter = RefundExcelWriter(outputStream, "user"); WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").build(); // 7. 分页查询并写入数据 Page page = new Page(); @@ -900,7 +901,7 @@ public class ExportExcelServiceImpl implements ExportExcelService { Integer totalCount = 0; boolean hasMore = true; while (hasMore) { - Result pageResult = consumeController.selcetBy(page); + Result pageResult = refundController.selcetBy(page); Integer code = pageResult.getCode(); Object data = pageResult.getData(); @@ -1099,4 +1100,68 @@ public class ExportExcelServiceImpl implements ExportExcelService { throw new IllegalArgumentException("不支持的导出类型: " + exportType); } } + /** + * 初始化excel文件 + * @param os + * @param exportType + * @return + */ + private ExcelWriter ExcelWriter(OutputStream os, String exportType) { + switch (exportType) { + case "user": + return EasyExcel.write(os, User.class) + .inMemory(Boolean.TRUE) + .build(); + default: + throw new IllegalArgumentException("不支持的导出类型: " + exportType); + } + } + /** + * 初始化excel文件 + * @param os + * @param exportType + * @return + */ + private ExcelWriter RechargeExcelWriter(OutputStream os, String exportType) { + switch (exportType) { + case "user": + return EasyExcel.write(os, RechargeUser.class) + .inMemory(Boolean.TRUE) + .build(); + default: + throw new IllegalArgumentException("不支持的导出类型: " + exportType); + } + } + /** + * 初始化excel文件 + * @param os + * @param exportType + * @return + */ + private ExcelWriter ConExcelWriter(OutputStream os, String exportType) { + switch (exportType) { + case "user": + return EasyExcel.write(os, ConsumeUser.class) + .inMemory(Boolean.TRUE) + .build(); + default: + throw new IllegalArgumentException("不支持的导出类型: " + exportType); + } + }/** + * 初始化excel文件 + * @param os + * @param exportType + * @return + */ + private ExcelWriter RefundExcelWriter(OutputStream os, String exportType) { + switch (exportType) { + case "user": + return EasyExcel.write(os, RefundUser.class) + .inMemory(Boolean.TRUE) + .build(); + default: + throw new IllegalArgumentException("不支持的导出类型: " + exportType); + } + } + } \ No newline at end of file diff --git a/src/main/java/com/example/demo/serviceImpl/GoldDetailServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/GoldDetailServiceImpl.java index 022c5dc..4e73d24 100644 --- a/src/main/java/com/example/demo/serviceImpl/GoldDetailServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/GoldDetailServiceImpl.java @@ -1,8 +1,10 @@ package com.example.demo.serviceImpl; +import com.example.demo.Util.JWTUtil; 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.Admin; import com.example.demo.domain.entity.User; import com.example.demo.domain.vo.*; import com.example.demo.exception.SystemException; @@ -11,8 +13,12 @@ import com.example.demo.service.GoldDetailService; import com.fasterxml.jackson.databind.ObjectMapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import jakarta.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.userdetails.UserDetails; import org.springframework.stereotype.Service; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; import java.io.IOException; import java.time.LocalDateTime; @@ -110,14 +116,20 @@ public class GoldDetailServiceImpl implements GoldDetailService { @Override public Result addExportRecord(GoldDetailDTO dto) { // 获取操作者 jwcode - + HttpServletRequest request=((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String token = request.getHeader("token"); + try { + UserDetails token1= JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class); + dto.setAccount(Integer.valueOf(token1.getUsername())); + } catch (Exception e) { + throw new RuntimeException(e.getMessage()); + } // 生成文件名 String fileName = String.format("%s_%s_%s.xlsx", "客户金币明细", "操作人", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); System.out.println(fileName); - dto.setAccount(123456); dto.setUrl(""); dto.setFileName(fileName); dto.setDataNum(0); @@ -159,13 +171,21 @@ public class GoldDetailServiceImpl implements GoldDetailService { @Override public Result addExportRecordGold(GoldUserDTO dto) { + // 获取操作者 jwcode + HttpServletRequest request=((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String token = request.getHeader("token"); + try { + UserDetails token1= JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class); + dto.setAccount(Integer.valueOf(token1.getUsername())); + } catch (Exception e) { + throw new RuntimeException(e.getMessage()); + } // 生成文件名 String fileName = String.format("%s_%s_%s.xlsx", "金币余额明细", "操作人", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); System.out.println(fileName); - dto.setAccount(123456); dto.setUrl(""); dto.setFileName(fileName); dto.setDataNum(0); diff --git a/src/main/resources/mapper/PermissionMapper.xml b/src/main/resources/mapper/PermissionMapper.xml index 3f2b03e..b75e6d8 100644 --- a/src/main/resources/mapper/PermissionMapper.xml +++ b/src/main/resources/mapper/PermissionMapper.xml @@ -47,13 +47,13 @@ - admin.account=#{account} + and admin.account=#{account} - admin.market=#{market} + and admin.market=#{market} - admin.postiton=#{postiton} + and admin.postiton=#{postiton} order by admin.admin_status desc