26 changed files with 493 additions and 1363 deletions
-
1src/main/java/com/example/demo/DemoApplication.java
-
252src/main/java/com/example/demo/Export/ExportServiceImpl.java
-
5src/main/java/com/example/demo/config/Mysql2DataSourceConfig.java
-
41src/main/java/com/example/demo/controller/coin/ConsumeController.java
-
8src/main/java/com/example/demo/controller/coin/GoldDetailController.java
-
35src/main/java/com/example/demo/controller/coin/RechargeController.java
-
38src/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
-
1165src/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()); |
||||
|
} |
||||
|
} |
||||
|
} |
1165
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