|
@@ -1,9 +1,17 @@
|
|
|
package cn.gov.customs.wxjy.ibmmq.utils;
|
|
package cn.gov.customs.wxjy.ibmmq.utils;
|
|
|
|
|
|
|
|
|
|
+import cn.gov.customs.cacp.sdks.hgid.HgidGenerator;
|
|
|
|
|
+import cn.gov.customs.wxjy.common.utils.DateUtils;
|
|
|
|
|
+import cn.gov.customs.wxjy.common.utils.StringUtils;
|
|
|
import cn.gov.customs.wxjy.ibmmq.config.PushContext;
|
|
import cn.gov.customs.wxjy.ibmmq.config.PushContext;
|
|
|
|
|
+import cn.gov.customs.wxjy.ibmmq.enums.PushDataStatusEnum;
|
|
|
|
|
+import cn.gov.customs.wxjy.ibmmq.enums.PushDataTypeEnum;
|
|
|
import cn.gov.customs.wxjy.ibmmq.model.DataMessage;
|
|
import cn.gov.customs.wxjy.ibmmq.model.DataMessage;
|
|
|
|
|
+import cn.gov.customs.wxjy.ibmmq.pojo.PushLog;
|
|
|
import cn.gov.customs.wxjy.ibmmq.service.IDataHandlerService;
|
|
import cn.gov.customs.wxjy.ibmmq.service.IDataHandlerService;
|
|
|
import cn.gov.customs.wxjy.ibmmq.service.IFileHandlerService;
|
|
import cn.gov.customs.wxjy.ibmmq.service.IFileHandlerService;
|
|
|
|
|
+import cn.gov.customs.wxjy.ibmmq.service.IPushLogService;
|
|
|
|
|
+import com.alibaba.fastjson2.JSON;
|
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -21,8 +29,11 @@ public class IbmmqSendUtils {
|
|
|
// 注入ibmq模块的推送服务
|
|
// 注入ibmq模块的推送服务
|
|
|
private final IFileHandlerService fileSenderService;
|
|
private final IFileHandlerService fileSenderService;
|
|
|
private final IDataHandlerService dataHandlerService;
|
|
private final IDataHandlerService dataHandlerService;
|
|
|
-// @Autowired
|
|
|
|
|
-// private IPushLogService pushLogService;
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private IPushLogService pushLogService;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private HgidGenerator idHelper;
|
|
|
|
|
+
|
|
|
|
|
|
|
|
@Value("${ibm.mq.file-upload-path:/home/ruoyi/uploadPath}")
|
|
@Value("${ibm.mq.file-upload-path:/home/ruoyi/uploadPath}")
|
|
|
private String fileUploadPath;
|
|
private String fileUploadPath;
|
|
@@ -47,42 +58,53 @@ public class IbmmqSendUtils {
|
|
|
*/
|
|
*/
|
|
|
public static <T> void sendData(DataMessage<T> message, PushContext context) {
|
|
public static <T> void sendData(DataMessage<T> message, PushContext context) {
|
|
|
Date nowDate = new Date();
|
|
Date nowDate = new Date();
|
|
|
-// PushLog pushLog = buildPushLog(context, nowDate);
|
|
|
|
|
-// pushLog.setPushType(PushDataTypeEnum.PUSH_DATA_INFO.getCode());
|
|
|
|
|
|
|
+ PushLog pushLog = buildPushLog(context, nowDate);
|
|
|
|
|
+ pushLog.setPushType(PushDataTypeEnum.PUSH_DATA_INFO.getCode());
|
|
|
try {
|
|
try {
|
|
|
-// pushLog.setPushInfo(JSON.toJSONString(message));
|
|
|
|
|
-// pushLog.setPushTime(nowDate);
|
|
|
|
|
|
|
+ pushLog.setPushInfo(JSON.toJSONString(message));
|
|
|
|
|
+ pushLog.setPushTime(DateUtils.getDate());
|
|
|
message.setMsgId(UUID.randomUUID().toString());
|
|
message.setMsgId(UUID.randomUUID().toString());
|
|
|
message.setSendTime(nowDate);
|
|
message.setSendTime(nowDate);
|
|
|
instance.dataHandlerService.sendDataMessage(message);
|
|
instance.dataHandlerService.sendDataMessage(message);
|
|
|
-// pushLog.setStatus(PushDataStatusEnum.PUSH_STATUS_SUCCESS.getCode());
|
|
|
|
|
|
|
+ pushLog.setStatus(PushDataStatusEnum.PUSH_STATUS_SUCCESS.getCode());
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
logger.error("IBM MQ 推送失败", e);
|
|
logger.error("IBM MQ 推送失败", e);
|
|
|
-// pushLog.setStatus(PushDataStatusEnum.PUSH_STATUS_ERROR.getCode());
|
|
|
|
|
|
|
+ pushLog.setStatus(PushDataStatusEnum.PUSH_STATUS_ERROR.getCode());
|
|
|
} finally {
|
|
} finally {
|
|
|
-// instance.pushLogService.saveOrUpdate(pushLog);
|
|
|
|
|
|
|
+ if(StringUtils.isNotEmpty(pushLog.getLogId())){
|
|
|
|
|
+ instance.pushLogService.update(pushLog);
|
|
|
|
|
+ }else {
|
|
|
|
|
+ pushLog.setLogId(instance.idHelper.nextId());
|
|
|
|
|
+ instance.pushLogService.insert(pushLog);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 单个推送文件
|
|
* 单个推送文件
|
|
|
- * @param message 文件路径:"C:\\Users\\Administrator\\Desktop\1.jpg"
|
|
|
|
|
|
|
+ * @param message
|
|
|
*/
|
|
*/
|
|
|
public static void sendFile(String message, PushContext context) {
|
|
public static void sendFile(String message, PushContext context) {
|
|
|
Date nowDate = new Date();
|
|
Date nowDate = new Date();
|
|
|
-// PushLog pushLog = buildPushLog(context,nowDate);
|
|
|
|
|
-// pushLog.setPushType(PushDataTypeEnum.PUSH_DATA_FILE.getCode());
|
|
|
|
|
|
|
+ PushLog pushLog = buildPushLog(context,nowDate);
|
|
|
|
|
+ pushLog.setPushType(PushDataTypeEnum.PUSH_DATA_FILE.getCode());
|
|
|
try {
|
|
try {
|
|
|
-// pushLog.setPushInfo(message);
|
|
|
|
|
-// pushLog.setPushTime(nowDate);
|
|
|
|
|
|
|
+ pushLog.setPushInfo(message);
|
|
|
|
|
+ pushLog.setPushTime(DateUtils.getDate());
|
|
|
instance.fileSenderService.sendFile(message, instance.fileUploadPath);
|
|
instance.fileSenderService.sendFile(message, instance.fileUploadPath);
|
|
|
-// pushLog.setStatus(PushDataStatusEnum.PUSH_STATUS_SUCCESS.getCode());
|
|
|
|
|
|
|
+ pushLog.setStatus(PushDataStatusEnum.PUSH_STATUS_SUCCESS.getCode());
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
logger.info("推送文件到IBMQ失败: {}", e.getMessage(), e);
|
|
logger.info("推送文件到IBMQ失败: {}", e.getMessage(), e);
|
|
|
-// pushLog.setStatus(PushDataStatusEnum.PUSH_STATUS_ERROR.getCode());
|
|
|
|
|
|
|
+ pushLog.setStatus(PushDataStatusEnum.PUSH_STATUS_ERROR.getCode());
|
|
|
} finally {
|
|
} finally {
|
|
|
-// instance.pushLogService.saveOrUpdate(pushLog);
|
|
|
|
|
|
|
+ if(StringUtils.isNotEmpty(pushLog.getLogId())){
|
|
|
|
|
+ instance.pushLogService.update(pushLog);
|
|
|
|
|
+ }else {
|
|
|
|
|
+ pushLog.setLogId(instance.idHelper.nextId());
|
|
|
|
|
+ instance.pushLogService.insert(pushLog);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -93,23 +115,28 @@ public class IbmmqSendUtils {
|
|
|
*/
|
|
*/
|
|
|
public static void sendFile(List<String> message, PushContext context) {
|
|
public static void sendFile(List<String> message, PushContext context) {
|
|
|
Date nowDate = new Date();
|
|
Date nowDate = new Date();
|
|
|
-// PushLog pushLog = buildPushLog(context,nowDate);
|
|
|
|
|
-// pushLog.setPushType(PushDataTypeEnum.PUSH_DATA_FILE.getCode());
|
|
|
|
|
|
|
+ PushLog pushLog = buildPushLog(context,nowDate);
|
|
|
|
|
+ pushLog.setPushType(PushDataTypeEnum.PUSH_DATA_FILE.getCode());
|
|
|
try {
|
|
try {
|
|
|
-// pushLog.setPushInfo(message.toString());
|
|
|
|
|
-// pushLog.setPushTime(nowDate);
|
|
|
|
|
|
|
+ pushLog.setPushInfo(message.toString());
|
|
|
|
|
+ pushLog.setPushTime(DateUtils.getDate());
|
|
|
instance.fileSenderService.sendFiles(message);
|
|
instance.fileSenderService.sendFiles(message);
|
|
|
-// pushLog.setStatus(PushDataStatusEnum.PUSH_STATUS_SUCCESS.getCode());
|
|
|
|
|
|
|
+ pushLog.setStatus(PushDataStatusEnum.PUSH_STATUS_SUCCESS.getCode());
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
logger.info("批量推送文件到IBMQ失败: {}", e.getMessage(), e);
|
|
logger.info("批量推送文件到IBMQ失败: {}", e.getMessage(), e);
|
|
|
-// pushLog.setStatus(PushDataStatusEnum.PUSH_STATUS_ERROR.getCode());
|
|
|
|
|
|
|
+ pushLog.setStatus(PushDataStatusEnum.PUSH_STATUS_ERROR.getCode());
|
|
|
} finally {
|
|
} finally {
|
|
|
-// instance.pushLogService.saveOrUpdate(pushLog);
|
|
|
|
|
|
|
+ if(StringUtils.isNotEmpty(pushLog.getLogId())){
|
|
|
|
|
+ instance.pushLogService.update(pushLog);
|
|
|
|
|
+ }else {
|
|
|
|
|
+ pushLog.setLogId(instance.idHelper.nextId());
|
|
|
|
|
+ instance.pushLogService.insert(pushLog);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
- /* *//** 日志对象*//*
|
|
|
|
|
|
|
+// 日志对象
|
|
|
private static PushLog buildPushLog(PushContext ctx, Date time) {
|
|
private static PushLog buildPushLog(PushContext ctx, Date time) {
|
|
|
PushLog log = new PushLog();
|
|
PushLog log = new PushLog();
|
|
|
log.setCreateTime(time);
|
|
log.setCreateTime(time);
|
|
@@ -117,6 +144,6 @@ public class IbmmqSendUtils {
|
|
|
log.setBusType(ctx.getBusType());
|
|
log.setBusType(ctx.getBusType());
|
|
|
log.setBusId(ctx.getBusId());
|
|
log.setBusId(ctx.getBusId());
|
|
|
return log;
|
|
return log;
|
|
|
- }*/
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
}
|
|
}
|