Browse Source

7.6token提取用户

huangqizheng/feature-20250707173453-7.7bug修改
huangqizhen 1 month ago
parent
commit
850fb12eb3
  1. 40
      src/main/java/com/example/demo/Export/ExportServiceImpl.java
  2. 2
      src/main/java/com/example/demo/domain/DTO/ConsumeDTO.java
  3. 1
      src/main/java/com/example/demo/domain/export/Goldmingxi.java
  4. 24
      src/main/java/com/example/demo/domain/export/Goldyve.java
  5. 77
      src/main/java/com/example/demo/serviceImpl/ExportExcelServiceImpl.java
  6. 26
      src/main/java/com/example/demo/serviceImpl/GoldDetailServiceImpl.java
  7. 6
      src/main/resources/mapper/PermissionMapper.xml

40
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);

2
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() {

1
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; // 提交时间
}

24
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: 202507-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;
}

77
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);
}
}
}

26
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);

6
src/main/resources/mapper/PermissionMapper.xml

@ -47,13 +47,13 @@
<where>
<if test="account!=null and account.length>0">
admin.account=#{account}
and admin.account=#{account}
</if>
<if test="market!=null and market.length>0">
admin.market=#{market}
and admin.market=#{market}
</if>
<if test="postiton!=null and postiton.length>0">
admin.postiton=#{postiton}
and admin.postiton=#{postiton}
</if>
</where>
order by admin.admin_status desc

Loading…
Cancel
Save