diff --git a/src/main/java/com/zcloud/mapper/datasource/mq/MqProductionErrorLogMapper.java b/src/main/java/com/zcloud/mapper/datasource/mq/MqProductionErrorLogMapper.java new file mode 100644 index 00000000..e8f0e92e --- /dev/null +++ b/src/main/java/com/zcloud/mapper/datasource/mq/MqProductionErrorLogMapper.java @@ -0,0 +1,21 @@ +package com.zcloud.mapper.datasource.mq; + +import com.zcloud.entity.PageData; + +/** + * 说明:mq生产者动作错误记录表 + * 作者:LLX + * 时间:2024-01-09 + * 官网:www.zcloudchina.com + */ +public interface MqProductionErrorLogMapper { + + /**新增 + * @param pd + * @throws Exception + */ + void save(PageData pd); + + +} + diff --git a/src/main/java/com/zcloud/mapper/datasource/mq/MqProductionLogMapper.java b/src/main/java/com/zcloud/mapper/datasource/mq/MqProductionLogMapper.java new file mode 100644 index 00000000..5f441f69 --- /dev/null +++ b/src/main/java/com/zcloud/mapper/datasource/mq/MqProductionLogMapper.java @@ -0,0 +1,20 @@ +package com.zcloud.mapper.datasource.mq; + +import com.zcloud.entity.PageData; + +/** + * 说明:mq消费者动作记录表 + * 作者:LLX + * 时间:2024-01-09 + * 官网:www.zcloudchina.com + */ +public interface MqProductionLogMapper { + + /**新增 + * @param pd + * @throws Exception + */ + void save(PageData pd); + +} + diff --git a/src/main/java/com/zcloud/service/mq/impl/DockSendMessageServiceImpl.java b/src/main/java/com/zcloud/service/mq/impl/DockSendMessageServiceImpl.java index 5e40df48..c9b38efe 100644 --- a/src/main/java/com/zcloud/service/mq/impl/DockSendMessageServiceImpl.java +++ b/src/main/java/com/zcloud/service/mq/impl/DockSendMessageServiceImpl.java @@ -5,9 +5,12 @@ import com.zcloud.dto.TenCorpDto; import com.zcloud.entity.PageData; import com.zcloud.mapper.datasource.mq.MqErrorMessageLogMapper; import com.zcloud.mapper.datasource.mq.MqMessageLogMapper; +import com.zcloud.mapper.datasource.mq.MqProductionErrorLogMapper; +import com.zcloud.mapper.datasource.mq.MqProductionLogMapper; import com.zcloud.service.mq.DockSendMessageService; import com.zcloud.service.mq.LogService; import com.zcloud.util.DateUtil; +import com.zcloud.util.StackTraceUtils; import com.zcloud.util.Warden; import com.zcloud.util.mq.MqUtil; import org.apache.rocketmq.client.producer.SendResult; @@ -18,7 +21,6 @@ import org.springframework.messaging.support.GenericMessage; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.Date; @Service public class DockSendMessageServiceImpl implements DockSendMessageService { @@ -39,8 +41,22 @@ public class DockSendMessageServiceImpl implements DockSendMessageService { @Resource private MqMessageLogMapper mqMessageLogMapper; + @Resource + MqProductionErrorLogMapper mqProductionErrorLogMapper; + + @Resource + MqProductionLogMapper mqProductionLogMapper; + @Override - public void sendMessage(TenCorpDto tenCorpDto) throws Exception { + public void sendMessage(TenCorpDto tenCorpDto) { + PageData productionPD = tenCorpDto.getPd(); + productionPD.put("PRODUCTION_ID", Warden.get32UUID()); + productionPD.put("MESSAGE_LOG_ID", tenCorpDto.getMessageLogId()); + productionPD.put("PRODUCTION_TYPE", "DockSendMessageServiceImpl.sendMessage(TenCorpDto tenCorpDto)"); + productionPD.put("PRODUCTION_TIME", DateUtil.getTime()); + productionPD.put("CREATE_TIME", tenCorpDto.getCREATE_TIME()); + productionPD.put("MARK", tenCorpDto.getMark()); + productionPD.putAll(tenCorpDto.getPd()); try { PageData log = tenCorpDto.getPd(); mqMessageLogMapper.save(log); @@ -48,6 +64,9 @@ public class DockSendMessageServiceImpl implements DockSendMessageService { if (!sendResult.getSendStatus().equals(SendStatus.SEND_OK)) { throw new RuntimeException("产品入栈失败"); } + productionPD.put("SUCCESS",'1'); + productionPD.put("ERROR_MESSAGE","SUCCESS"); + mqProductionLogMapper.save(productionPD); } catch (Exception e) { e.printStackTrace(); PageData log = tenCorpDto.getPd(); @@ -57,11 +76,23 @@ public class DockSendMessageServiceImpl implements DockSendMessageService { log.put("TYPE", "0"); log.put("TIME", tenCorpDto.getCREATE_TIME()); mqErrorMessageLogMapper.save(log); + productionPD.put("SUCCESS",'0'); + productionPD.put("ERROR_MESSAGE", StackTraceUtils.printStackTraceToString(e)); + mqProductionErrorLogMapper.save(productionPD); } } @Override - public void sendMessagePicture(TenCorpDto tenCorpDto) throws Exception { + public void sendMessagePicture(TenCorpDto tenCorpDto) { + PageData productionPD = tenCorpDto.getPd(); + productionPD.put("PRODUCTION_ID", Warden.get32UUID()); + productionPD.put("MESSAGE_LOG_ID", tenCorpDto.getMessageLogId()); + productionPD.put("PRODUCTION_TYPE", "DockSendMessageServiceImpl.sendMessagePicture(TenCorpDto tenCorpDto)"); + productionPD.put("PRODUCTION_TIME", DateUtil.getTime()); + productionPD.put("CREATE_TIME", tenCorpDto.getCREATE_TIME()); + productionPD.put("MARK", tenCorpDto.getMark()); + productionPD.putAll(tenCorpDto.getPd()); + try { PageData log = tenCorpDto.getPd(); log.put("MESSAGE_LOG_ID", Warden.get32UUID()); @@ -72,6 +103,9 @@ public class DockSendMessageServiceImpl implements DockSendMessageService { if (!sendResult.getSendStatus().equals(SendStatus.SEND_OK)) { throw new RuntimeException("产品入栈失败"); } + productionPD.put("SUCCESS",'1'); + productionPD.put("ERROR_MESSAGE","SUCCESS"); + mqProductionLogMapper.save(productionPD); } catch (Exception e) { e.printStackTrace(); PageData log = tenCorpDto.getPd(); @@ -80,11 +114,24 @@ public class DockSendMessageServiceImpl implements DockSendMessageService { log.put("TYPE", "0"); log.put("TIME", DateUtil.getTime()); mqErrorMessageLogMapper.save(log); + productionPD.put("SUCCESS",'0'); + productionPD.put("ERROR_MESSAGE", StackTraceUtils.printStackTraceToString(e)); + mqProductionErrorLogMapper.save(productionPD); } } @Override - public void sendMessagePictureDelete(TenCorpDto tenCorpDto) throws Exception { + public void sendMessagePictureDelete(TenCorpDto tenCorpDto) { + PageData productionPD = tenCorpDto.getPd(); + productionPD.put("PRODUCTION_ID", Warden.get32UUID()); + productionPD.put("MESSAGE_LOG_ID", tenCorpDto.getMessageLogId()); + productionPD.put("PRODUCTION_TYPE", "DockSendMessageServiceImpl.sendMessagePictureDelete(TenCorpDto tenCorpDto)"); + productionPD.put("PRODUCTION_TIME", DateUtil.getTime()); + productionPD.put("CREATE_TIME", tenCorpDto.getCREATE_TIME()); + productionPD.put("MARK", tenCorpDto.getMark()); + productionPD.put("DATA", tenCorpDto.getData()); + productionPD.putAll(tenCorpDto.getPd()); + try { PageData log = tenCorpDto.getPd(); log.put("MESSAGE_LOG_ID", Warden.get32UUID()); @@ -95,6 +142,9 @@ public class DockSendMessageServiceImpl implements DockSendMessageService { if (!sendResult.getSendStatus().equals(SendStatus.SEND_OK)) { throw new RuntimeException("产品入栈失败"); } + productionPD.put("SUCCESS",'1'); + productionPD.put("ERROR_MESSAGE","SUCCESS"); + mqProductionLogMapper.save(productionPD); } catch (Exception e) { e.printStackTrace(); PageData log = tenCorpDto.getPd(); @@ -103,11 +153,23 @@ public class DockSendMessageServiceImpl implements DockSendMessageService { log.put("TYPE", "0"); log.put("TIME", DateUtil.getTime()); mqErrorMessageLogMapper.save(log); + productionPD.put("SUCCESS",'0'); + productionPD.put("ERROR_MESSAGE", StackTraceUtils.printStackTraceToString(e)); + mqProductionErrorLogMapper.save(productionPD); } } @Override public void SendDelayQueue(TenCorpDto tenCorpDto) { + PageData productionPD = tenCorpDto.getPd(); + productionPD.put("PRODUCTION_ID", Warden.get32UUID()); + productionPD.put("MESSAGE_LOG_ID", tenCorpDto.getMessageLogId()); + productionPD.put("PRODUCTION_TYPE", "DockSendMessageServiceImpl.SendDelayQueue(TenCorpDto tenCorpDto)"); + productionPD.put("PRODUCTION_TIME", DateUtil.getTime()); + productionPD.put("CREATE_TIME", tenCorpDto.getCREATE_TIME()); + productionPD.put("MARK", tenCorpDto.getMark()); + productionPD.put("DATA", tenCorpDto.getData()); + productionPD.putAll(tenCorpDto.getPd()); PageData log = tenCorpDto.getPd(); log.put("MESSAGE_LOG_ID", Warden.get32UUID()); try { @@ -127,6 +189,9 @@ public class DockSendMessageServiceImpl implements DockSendMessageService { if (!sendResult.getSendStatus().equals(SendStatus.SEND_OK)) { throw new RuntimeException("产品入栈失败"); } + productionPD.put("SUCCESS",'1'); + productionPD.put("ERROR_MESSAGE","SUCCESS"); + mqProductionLogMapper.save(productionPD); } catch (Exception e) { e.printStackTrace(); log.put("ERROR_MESSAGE", e.getMessage()); @@ -134,12 +199,26 @@ public class DockSendMessageServiceImpl implements DockSendMessageService { log.put("TYPE", "0"); log.put("TIME", DateUtil.getTime()); mqErrorMessageLogMapper.save(log); + productionPD.put("SUCCESS",'0'); + productionPD.put("ERROR_MESSAGE", StackTraceUtils.printStackTraceToString(e)); + mqProductionErrorLogMapper.save(productionPD); } } @Override public void SendDelayQueue(String message) { TenCorpDto tenCorpDto = JSONObject.parseObject(message,TenCorpDto.class); + + PageData productionPD = tenCorpDto.getPd(); + productionPD.put("PRODUCTION_ID", Warden.get32UUID()); + productionPD.put("MESSAGE_LOG_ID", tenCorpDto.getMessageLogId()); + productionPD.put("PRODUCTION_TYPE", "DockSendMessageServiceImpl.SendDelayQueue(TenCorpDto tenCorpDto)"); + productionPD.put("PRODUCTION_TIME", DateUtil.getTime()); + productionPD.put("CREATE_TIME", tenCorpDto.getCREATE_TIME()); + productionPD.put("MARK", tenCorpDto.getMark()); + productionPD.put("DATA", tenCorpDto.getData()); + productionPD.putAll(tenCorpDto.getPd()); + try { PageData log = tenCorpDto.getPd(); log.put("CREATE_TIME", DateUtil.getTime()); @@ -157,20 +236,17 @@ public class DockSendMessageServiceImpl implements DockSendMessageService { if (!sendResult.getSendStatus().equals(SendStatus.SEND_OK)) { throw new RuntimeException("产品入栈失败"); } + productionPD.put("SUCCESS",'1'); + productionPD.put("ERROR_MESSAGE","SUCCESS"); + mqProductionLogMapper.save(productionPD); } catch (Exception e) { PageData log = tenCorpDto.getPd(); logService.saveErrorMessage(log,e.getMessage()); e.printStackTrace(); + productionPD.put("SUCCESS",'0'); + productionPD.put("ERROR_MESSAGE", StackTraceUtils.printStackTraceToString(e)); + mqProductionErrorLogMapper.save(productionPD); } } - public static void main(String[] args) { - try { - System.out.println(MqUtil.analysisTime("2023-06-30 14:30:00:000")); - }catch (Exception e){ - e.printStackTrace(); - } - } - - } diff --git a/src/main/java/com/zcloud/util/StackTraceUtils.java b/src/main/java/com/zcloud/util/StackTraceUtils.java new file mode 100644 index 00000000..7c0fc661 --- /dev/null +++ b/src/main/java/com/zcloud/util/StackTraceUtils.java @@ -0,0 +1,12 @@ +package com.zcloud.util; + +import java.io.PrintWriter; +import java.io.StringWriter; + +public class StackTraceUtils { + public static String printStackTraceToString(Throwable t) { + StringWriter sw = new StringWriter(); + t.printStackTrace(new PrintWriter(sw, true)); + return sw.getBuffer().toString(); + } +} diff --git a/src/main/resources/mybatis/datasource/mq/MqProductionErrorLogMapper.xml b/src/main/resources/mybatis/datasource/mq/MqProductionErrorLogMapper.xml new file mode 100644 index 00000000..a23b026e --- /dev/null +++ b/src/main/resources/mybatis/datasource/mq/MqProductionErrorLogMapper.xml @@ -0,0 +1,12 @@ + + + + + + INSERT INTO + `qa-czks-prevention`.`mq_production_error_log` + (`PRODUCTION_ID`, `MARK`, `DATA`, `MESSAGE_LOG_ID`, `SUCCESS`, `CREATE_TIME`, `PRODUCTION_TIME`, `PRODUCTION_TYPE`, `ERROR_MESSAGE`) + VALUES (#{PRODUCTION_ID}, #{MARK}, #{DATA}, #{MESSAGE_LOG_ID}, #{SUCCESS}, #{CREATE_TIME}, #{PRODUCTION_TIME},#{PRODUCTION_TYPE}, #{ERROR_MESSAGE}) + + + diff --git a/src/main/resources/mybatis/datasource/mq/MqProductionLogMapper.xml b/src/main/resources/mybatis/datasource/mq/MqProductionLogMapper.xml new file mode 100644 index 00000000..8d499a23 --- /dev/null +++ b/src/main/resources/mybatis/datasource/mq/MqProductionLogMapper.xml @@ -0,0 +1,12 @@ + + + + + + INSERT INTO + `qa-czks-prevention`.`mq_production_log` + (`PRODUCTION_ID`, `MARK`, `DATA`, `MESSAGE_LOG_ID`, `SUCCESS`, `CREATE_TIME`, `PRODUCTION_TIME`, `PRODUCTION_TYPE`, `ERROR_MESSAGE`) + VALUES (#{PRODUCTION_ID}, #{MARK}, #{DATA}, #{MESSAGE_LOG_ID}, #{SUCCESS}, #{CREATE_TIME}, #{PRODUCTION_TIME},#{PRODUCTION_TYPE}, #{ERROR_MESSAGE}) + + +