26 changed files with 493 additions and 1363 deletions
-
1src/main/java/com/example/demo/DemoApplication.java
-
272src/main/java/com/example/demo/Export/ExportServiceImpl.java
-
5src/main/java/com/example/demo/config/Mysql2DataSourceConfig.java
-
57src/main/java/com/example/demo/controller/coin/ConsumeController.java
-
8src/main/java/com/example/demo/controller/coin/GoldDetailController.java
-
51src/main/java/com/example/demo/controller/coin/RechargeController.java
-
52src/main/java/com/example/demo/controller/coin/RefundController.java
-
2src/main/java/com/example/demo/controller/coin/WorkbenchController.java
-
2src/main/java/com/example/demo/domain/vo/coin/ConsumeUser.java
-
2src/main/java/com/example/demo/domain/vo/coin/GoldDetail.java
-
42src/main/java/com/example/demo/domain/vo/coin/RechargeUser.java
-
2src/main/java/com/example/demo/domain/vo/coin/RefundUser.java
-
7src/main/java/com/example/demo/service/coin/ExportExcelService.java
-
66src/main/java/com/example/demo/service/listen/BaseMessageListener.java
-
1211src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java
-
10src/main/java/com/example/demo/serviceImpl/coin/GeneralServiceImpl.java
-
2src/main/java/com/example/demo/serviceImpl/coin/MarketServiceImpl.java
-
4src/main/java/com/example/demo/serviceImpl/coin/PermissionServiceImpl.java
-
6src/main/java/com/example/demo/serviceImpl/coin/WorkbenchServiceImpl.java
-
4src/main/resources/mapper/AuditMapper.xml
-
11src/main/resources/mapper/ConsumeMapper.xml
-
2src/main/resources/mapper/PermissionMapper.xml
-
20src/main/resources/mapper/RechargeMapper.xml
-
11src/main/resources/mapper/RefundMapper.xml
-
4src/main/resources/mapper/RoleMapper.xml
-
2src/main/resources/mapper/UserMapper.xml
@ -0,0 +1,66 @@ |
|||
package com.example.demo.service.listen; |
|||
|
|||
import cn.hutool.core.util.StrUtil; |
|||
import com.example.demo.Util.ExecutionContextUtil; |
|||
import com.example.demo.Util.FeiShuAlertUtil; |
|||
import com.example.demo.Util.RedisUtil; |
|||
import com.example.demo.domain.vo.coin.ExecutionContext; |
|||
import com.example.demo.service.queue.AbstractMessageListener; |
|||
|
|||
public abstract class BaseMessageListener<T> extends AbstractMessageListener<T> { |
|||
|
|||
protected BaseMessageListener(RedisUtil redisQueueUtil, String queueName) { |
|||
super(redisQueueUtil, queueName); |
|||
System.out.println("监听器已启动,队列: " + queueName); |
|||
} |
|||
|
|||
@Override |
|||
protected void handleError(Exception e, T message) { |
|||
handleException(e, message.toString()); // 统一异常处理 |
|||
} |
|||
|
|||
/** |
|||
* 验证消息是否为空 |
|||
*/ |
|||
protected void validateMessage(T message) { |
|||
if (message == null || (message instanceof String && StrUtil.isBlank((String) message))) { |
|||
throw new IllegalArgumentException("Redis消息队列数据为空: " + message); |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 统一异常处理 |
|||
*/ |
|||
protected void handleException(Exception e, String message) { |
|||
logError(e, message); // 记录错误日志 |
|||
sendAlert(e, message); // 发送告警通知 |
|||
throw new RuntimeException("Failed to process message: " + e.getMessage(), e); |
|||
} |
|||
|
|||
/** |
|||
* 记录错误日志 |
|||
*/ |
|||
protected void logError(Exception e, String message) { |
|||
System.err.println("Message listener exception: " + e.getMessage()); |
|||
e.printStackTrace(); |
|||
} |
|||
|
|||
/** |
|||
* 发送告警通知 |
|||
*/ |
|||
protected void sendAlert(Exception e, String message) { |
|||
try { |
|||
ExecutionContext context = ExecutionContextUtil.getExecutionContext(); |
|||
String cause = e.getCause() != null ? e.getCause().getMessage() : ""; |
|||
FeiShuAlertUtil.sendAlertMessage( |
|||
context, |
|||
e.getStackTrace()[0].getFileName(), |
|||
e.getStackTrace()[0].getLineNumber(), |
|||
"Message Listener Error: " + e.getMessage() + " 底层错误: " + cause, |
|||
"Failed message: " + message |
|||
); |
|||
} catch (Exception alertEx) { |
|||
System.err.println("Failed to send Feishu alert: " + alertEx.getMessage()); |
|||
} |
|||
} |
|||
} |
1211
src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
Write
Preview
Loading…
Cancel
Save
Reference in new issue