Browse Source

消费,退款,充值导出

huangqizheng/feature-20250718222252-导出修改完毕
sunjiabei 1 month ago
parent
commit
6368800415
  1. 8
      src/main/java/com/example/demo/Export/ExportServiceImpl.java
  2. 16
      src/main/java/com/example/demo/Util/JWTUtil.java
  3. 43
      src/main/java/com/example/demo/serviceImpl/ExportExcelServiceImpl.java
  4. 6
      src/main/resources/application.yml

8
src/main/java/com/example/demo/Export/ExportServiceImpl.java

@ -83,6 +83,8 @@ public class ExportServiceImpl implements ExportService{
// 2. 构造完整的 JSON 数据包含所有请求参数
Map<String, Object> exportData = new HashMap<>();
exportData.put("recordId", recordId);
// 添加 token exportData
exportData.put("token", token);
// 手动构造请求数据避免 toString() 只返回部分字段
Map<String, Object> requestData = new HashMap<>();
@ -120,6 +122,7 @@ public class ExportServiceImpl implements ExportService{
dto.setUrl("");
dto.setFileName(fileName);
dto.setDataNum(0);
try{
// 调用方式
GoldDetailMapper.ExportRecordIdHolder idHolder = new GoldDetailMapper.ExportRecordIdHolder();
@ -137,6 +140,8 @@ public class ExportServiceImpl implements ExportService{
// 2. 构造完整的 JSON 数据包含所有请求参数
Map<String, Object> exportData = new HashMap<>();
exportData.put("recordId", recordId);
// 添加 token exportData
exportData.put("token", token);
// 手动构造请求数据避免 toString() 只返回部分字段
Map<String, Object> requestData = new HashMap<>();
@ -174,6 +179,7 @@ public class ExportServiceImpl implements ExportService{
dto.setUrl("");
dto.setFileName(fileName);
dto.setDataNum(0);
try{
// 调用方式
GoldDetailMapper.ExportRecordIdHolder idHolder = new GoldDetailMapper.ExportRecordIdHolder();
@ -191,6 +197,8 @@ public class ExportServiceImpl implements ExportService{
// 2. 构造完整的 JSON 数据包含所有请求参数
Map<String, Object> exportData = new HashMap<>();
exportData.put("recordId", recordId);
// 添加 token exportData
exportData.put("token", token);
// 手动构造请求数据避免 toString() 只返回部分字段
Map<String, Object> requestData = new HashMap<>();

16
src/main/java/com/example/demo/Util/JWTUtil.java

@ -8,12 +8,16 @@ import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;
import java.util.Collection;
import java.util.Date;
import java.util.UUID;
@ -178,6 +182,18 @@ public class JWTUtil {
return null;
}
/**
* 根据JWT令牌解析出Authentication对象
* @param jwt JWT令牌
* @param cls 用户详情类的Class对象
* @return Authentication对象
* @throws Exception 解析失败时抛出异常
*/
public static Authentication getAuthenticationFromToken(String jwt, Class<? extends UserDetails> cls) throws Exception {
UserDetails userDetails = getUserDetails(jwt, cls);
Collection<? extends GrantedAuthority> authorities = userDetails.getAuthorities();
return new UsernamePasswordAuthenticationToken(userDetails, null, authorities);
}
// public static void main(String[] args) throws Exception {
//

43
src/main/java/com/example/demo/serviceImpl/ExportExcelServiceImpl.java

@ -5,10 +5,12 @@ import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.example.demo.Util.ExcelUploadUtil;
import com.example.demo.Util.JWTUtil;
import com.example.demo.controller.ConsumeController;
import com.example.demo.controller.GoldDetailController;
import com.example.demo.controller.RechargeController;
import com.example.demo.controller.RefundController;
import com.example.demo.domain.entity.Admin;
import com.example.demo.domain.entity.Export;
import com.example.demo.domain.entity.User;
import com.example.demo.domain.export.Goldmingxi;
@ -28,6 +30,11 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -58,7 +65,8 @@ public class ExportExcelServiceImpl implements ExportExcelService {
private RefundController refundController;
@Autowired
private ConsumeController consumeController;
@Autowired
private AuthenticationManager authenticationManager;
// 每页查询的数据量
private static final int PAGE_SIZE = 1000;
@Autowired
@ -507,6 +515,7 @@ public class ExportExcelServiceImpl implements ExportExcelService {
long startTime = System.currentTimeMillis();
Long recordId = null;
String fileName = null;
String token = null;
File tempFile = null;
OutputStream outputStream = null;
ExcelWriter excelWriter = null;
@ -516,6 +525,7 @@ public class ExportExcelServiceImpl implements ExportExcelService {
JsonNode rootNode = objectMapper.readTree(message);
// 2. 获取基本参数
recordId = rootNode.path("recordId").asLong();
token = rootNode.path("token").asText();
JsonNode requestDataNode = rootNode.path("requestData");
JsonNode rechargeNode = requestDataNode.path("rechargeUser");
RechargeUser rechargeUser = objectMapper.treeToValue(rechargeNode, RechargeUser.class);
@ -552,6 +562,15 @@ public class ExportExcelServiceImpl implements ExportExcelService {
page.setRechargeUser(rechargeUser);
boolean hasMore = true;
while (hasMore) {
try {
Authentication authentication = JWTUtil.getAuthenticationFromToken(token, Admin.class);
if (authentication != null) {
System.out.println("Authentication: " + authentication);
SecurityContextHolder.getContext().setAuthentication(authentication); // 存储认证信息
}
} catch (Exception e) {
e.printStackTrace();
}
Result pageResult = rechargeController.selcetBy(page);
Integer code = pageResult.getCode();
Object data = pageResult.getData();
@ -715,6 +734,7 @@ public class ExportExcelServiceImpl implements ExportExcelService {
Long recordId = null;
String fileName = null;
File tempFile = null;
String token = null;
OutputStream outputStream = null;
ExcelWriter excelWriter = null;
@ -724,6 +744,7 @@ public class ExportExcelServiceImpl implements ExportExcelService {
// 2. 获取基本参数
recordId = rootNode.path("recordId").asLong();
JsonNode requestDataNode = rootNode.path("requestData");
token = rootNode.path("token").asText();
JsonNode consumeUserNode = requestDataNode.path("consumeUser");
ConsumeUser consumeUser = objectMapper.treeToValue(consumeUserNode, ConsumeUser.class);
// 3. 验证导出记录
@ -752,6 +773,15 @@ public class ExportExcelServiceImpl implements ExportExcelService {
Integer totalCount = 0;
boolean hasMore = true;
while (hasMore) {
try {
Authentication authentication = JWTUtil.getAuthenticationFromToken(token, Admin.class);
if (authentication != null) {
System.out.println("Authentication: " + authentication);
SecurityContextHolder.getContext().setAuthentication(authentication); // 存储认证信息
}
} catch (Exception e) {
e.printStackTrace();
}
Result pageResult = consumeController.selcetBy(page);
Integer code = pageResult.getCode();
Object data = pageResult.getData();
@ -914,6 +944,7 @@ public class ExportExcelServiceImpl implements ExportExcelService {
long startTime = System.currentTimeMillis();
Long recordId = null;
String fileName = null;
String token = null;
File tempFile = null;
OutputStream outputStream = null;
ExcelWriter excelWriter = null;
@ -923,6 +954,7 @@ public class ExportExcelServiceImpl implements ExportExcelService {
JsonNode rootNode = objectMapper.readTree(message);
// 2. 获取基本参数
recordId = rootNode.path("recordId").asLong();
token = rootNode.path("token").asText();
JsonNode requestDataNode = rootNode.path("requestData");
JsonNode refundUserNode = requestDataNode.path("refundUser");
RefundUser refundUser = objectMapper.treeToValue(refundUserNode, RefundUser.class);
@ -954,6 +986,15 @@ public class ExportExcelServiceImpl implements ExportExcelService {
Integer totalCount = 0;
boolean hasMore = true;
while (hasMore) {
try {
Authentication authentication = JWTUtil.getAuthenticationFromToken(token, Admin.class);
if (authentication != null) {
System.out.println("Authentication: " + authentication);
SecurityContextHolder.getContext().setAuthentication(authentication); // 存储认证信息
}
} catch (Exception e) {
e.printStackTrace();
}
Result pageResult = refundController.selcetBy(page);
Integer code = pageResult.getCode();
Object data = pageResult.getData();

6
src/main/resources/application.yml

@ -67,9 +67,9 @@ spring:
data:
redis:
database: 0
host: 18.143.76.3
port: 10703
password: Ngc0FYUTA6h3wC5J
host: localhost
port: 6379
# password: Ngc0FYUTA6h3wC5J
lettuce:
pool:

Loading…
Cancel
Save