Browse Source

8月6日金币导出

huangqizheng/feature-20250808172612-bug修复
sunjiabei 2 weeks ago
parent
commit
7ce2c0f9ce
  1. 12
      src/main/java/com/example/demo/controller/coin/ExportController.java
  2. 3
      src/main/java/com/example/demo/controller/coin/RechargeController.java
  3. 15
      src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java
  4. 2
      src/main/resources/application-test.yml
  5. 10
      src/main/resources/application.yml

12
src/main/java/com/example/demo/controller/coin/ExportController.java

@ -10,12 +10,15 @@ import com.example.demo.domain.vo.coin.Result;
import com.example.demo.service.coin.ExportExcelService;
import com.example.demo.service.coin.GoldDetailService;
import com.example.demo.Export.ExportService;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import java.util.UUID;
@ -57,6 +60,9 @@ public class ExportController {
String lockKey = "export:lock:" + dto.getToken(); // 锁的 Key可按用户/业务区分
String requestId = UUID.randomUUID().toString(); // 请求 ID防止误删锁
long expireTime = 5000; // 锁过期时间5秒s
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String token = request.getHeader("token");
dto.setToken(token);
try {
// 尝试获取锁
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) {
@ -74,6 +80,9 @@ public class ExportController {
String lockKey = "export:lock:" + dto.getToken(); // 锁的 Key可按用户/业务区分
String requestId = UUID.randomUUID().toString(); // 请求 ID防止误删锁
long expireTime = 5000; // 锁过期时间5秒s
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String token = request.getHeader("token");
dto.setToken(token);
try {
// 尝试获取锁
if (!redisLockUtil.tryLock(lockKey, requestId, expireTime)) {
@ -91,6 +100,9 @@ public class ExportController {
String lockKey = "export:lock:" + dto.getToken(); // 锁的 Key可按用户/业务区分
String requestId = UUID.randomUUID().toString(); // 请求 ID防止误删锁
long expireTime = 5000; // 锁过期时间5秒s
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String token = request.getHeader("token");
dto.setToken(token);
try {
return exportService.addExportConsume(dto);
} finally {

3
src/main/java/com/example/demo/controller/coin/RechargeController.java

@ -91,6 +91,7 @@ public class RechargeController {
return Result.success(rechargeService.selectBy(page.getPageNum(), page.getPageSize(), page.getRechargeUser()));
}
} catch (Exception e) {
e.printStackTrace();
return Result.error("请检查筛选数据的格式");
}
@ -105,7 +106,7 @@ public class RechargeController {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String token = request.getHeader("token");
Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class);
List<String> markets = Arrays.asList(StringUtils.split(admin.getMarkets(), ","));;
List<String> markets = Arrays.asList(StringUtils.split(admin.getMarkets(), ","));
rechargeUser.setMarkets(markets);
}
Gold gold = rechargeService.statsGold(rechargeUser);

15
src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java

@ -125,7 +125,12 @@ public class ExportExcelServiceImpl implements ExportExcelService {
JsonNode rootNode = objectMapper.readTree(message);
JsonNode requestDataNode = rootNode.path("requestData");
JsonNode rechargeUserNode = requestDataNode.path("rechargeUser");
JsonNode tokenNode = rootNode.path("token");
String token = tokenNode.asText();
RechargeUser rechargeUser = objectMapper.treeToValue(rechargeUserNode, RechargeUser.class);
Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class);
List<String> markets = Arrays.asList(StringUtils.split(admin.getMarkets(), ","));
rechargeUser.setMarkets(markets);
page.setRechargeUser(rechargeUser);
return rechargeController.selcet(page);
} catch (Exception e) {
@ -141,7 +146,12 @@ public class ExportExcelServiceImpl implements ExportExcelService {
JsonNode rootNode = objectMapper.readTree(message);
JsonNode requestDataNode = rootNode.path("requestData");
JsonNode consumeUserNode = requestDataNode.path("consumeUser");
JsonNode tokenNode = rootNode.path("token");
String token = tokenNode.asText();
ConsumeUser consumeUser = objectMapper.treeToValue(consumeUserNode, ConsumeUser.class);
Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class);
List<String> markets = Arrays.asList(StringUtils.split(admin.getMarkets(), ","));
consumeUser.setMarkets(markets);
page.setConsumeUser(consumeUser);
return consumeController.select(page);
} catch (Exception e) {
@ -158,7 +168,12 @@ public class ExportExcelServiceImpl implements ExportExcelService {
JsonNode rootNode = objectMapper.readTree(message);
JsonNode requestDataNode = rootNode.path("requestData");
JsonNode refundUserNode = requestDataNode.path("refundUser");
JsonNode tokenNode = rootNode.path("token");
String token = tokenNode.asText();
RefundUser refundUser = objectMapper.treeToValue(refundUserNode, RefundUser.class);
Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class);
List<String> markets = Arrays.asList(StringUtils.split(admin.getMarkets(), ","));
refundUser.setMarkets(markets);
page.setRefundUser(refundUser);
return refundController.selcet(page);
} catch (Exception e) {

2
src/main/resources/application-test.yml

@ -37,7 +37,7 @@ spring:
database: 0
host: localhost
port: 6379
password: 123456
# password: 123456
lettuce:
pool:

10
src/main/resources/application.yml

@ -68,11 +68,11 @@ spring:
max-request-size: 10MB
data:
redis:
database: 0
host: 18.143.76.3
port: 10703
password: Ngc0FYUTA6h3wC5J
# redis:
# database: 0
# host: 18.143.76.3
# port: 10703
# password: Ngc0FYUTA6h3wC5J
lettuce:
pool:

Loading…
Cancel
Save