package com.highdatas.mdm.util.pool; import com.alibaba.fastjson.JSONObject; import com.highdatas.mdm.entity.SysDispenseLogs; import com.highdatas.mdm.util.Constant; import com.highdatas.mdm.util.DbUtils; import lombok.extern.slf4j.Slf4j; import java.util.Date; import java.util.concurrent.atomic.AtomicInteger; /** * @author kimi * @description * @date 2020-04-20 9:58 */ @Slf4j public class MqEntity { /** * msgTopicName : 消息主题 * msgTagName : 消息主题标签 * msgKey : 消息key * msgBody : {"moduleName":"模块名称","from":"源系统","to":"目标系统","data":"weodfsdfwefsdfwefwef","total":"数据总量","version":"版本号","timestamp":"时间戳"} */ private String msgTopicName; private String msgTagName; private String msgKey; private MsgBodyBean msgBody; private transient String logId; private transient String userId; private transient volatile AtomicInteger pageNo; private transient volatile AtomicInteger pageSize; private transient volatile AtomicInteger pages; private transient volatile AtomicInteger totalSize; private transient String type; private transient String dataId; private transient String maintainId; private Boolean increment; public String getLogId() { return logId; } public void setLogId(String logId) { this.logId = logId; } public String getMsgCode() { return msgTopicName + msgTagName + userId + msgBody.version; } public AtomicInteger getPageNo() { return pageNo; } public void setPageNo(AtomicInteger pageNo) { this.pageNo = pageNo; } public AtomicInteger getPageSize() { return pageSize; } public void setPageSize(AtomicInteger pageSize) { this.pageSize = pageSize; } public AtomicInteger getPages() { return pages; } public void setPages(AtomicInteger pages) { this.pages = pages; } public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getDataId() { return dataId; } public void setDataId(String dataId) { this.dataId = dataId; } public String getMaintainId() { return maintainId; } public void setMaintainId(String maintainId) { this.maintainId = maintainId; } @Override public String toString() { return DbUtils.StrJoin("消息主题:", msgTopicName, "消息主题标签:" ,msgTagName, "消息key:", msgKey , "time:" + msgBody.timestamp); } public MqEntity() { this.msgBody = new MsgBodyBean(); } public String getMsgTopicName() { return msgTopicName; } public void setMsgTopicName(String msgTopicName) { this.msgTopicName = msgTopicName; } public String getMsgTagName() { return msgTagName; } public void setMsgTagName(String msgTagName) { this.msgTagName = msgTagName; } public String getMsgKey() { return msgKey; } public void setMsgKey(String msgKey) { this.msgKey = msgKey; } public MsgBodyBean getMsgBody() { return msgBody; } public void setMsgBody(MsgBodyBean msgBody) { this.msgBody = msgBody; } public void send2Mq() { String s = JSONObject.toJSONString(this); log.info(s); MqResult mqResult = DbUtils.mqClient.syncProduce(this); SysDispenseLogs logByMqEntity = DbUtils.dispenseLogsService.selectById(this.getLogId()); if (logByMqEntity == null) { return; } try{ String code = mqResult.getCode(); logByMqEntity.setKeyId(getMsgKey()); logByMqEntity.setUserId(userId); logByMqEntity.setPageNo(pageNo.get()).setMsgCode(code); logByMqEntity.setPages(pages.get()).setTotal(totalSize.get()).setPageSize(pageSize.get()); if (!code.equalsIgnoreCase(Constant.SUCCESSCODE)) { logByMqEntity.setStatus("false"); } if (code.equalsIgnoreCase(Constant.SUCCESSCODE) && pageNo.get() == pages.get()) { logByMqEntity.setStatus("true"); } MqResult.DataBean data = mqResult.getData(); if (data != null) { String msgId = data.getMsgId(); logByMqEntity.setMsgId(msgId); } Date createTime = logByMqEntity.getCreateTime(); long schedule = new Date().getTime() - createTime.getTime(); logByMqEntity.setSchedule(schedule); logByMqEntity.updateById(); } catch (Exception e) { logByMqEntity.setErrorInfo(e.getMessage()).updateById(); e.printStackTrace(); } } public void setIncrement(Boolean increment) { this.increment = increment; } public Boolean getIncrement() { return increment; } public void setTotalSize(AtomicInteger totalSize) { this.totalSize = totalSize; } public int getTotalSize() { if (totalSize == null) { return 0; } else { return totalSize.get(); } } public static class MsgBodyBean { /** * moduleName : 模块名称 * from : 源系统 * to : 目标系统 * data : weodfsdfwefsdfwefwef * total : 数据总量 * version : 版本号 * timestamp : 时间戳 */ private String moduleName; private String from; private String to; private String data; private int total; private String version; private String timestamp; public MsgBodyBean() { this.moduleName = Constant.MasterDispense; this.from = Constant.Master; this.timestamp = DbUtils.getNowDateStr(); } public String getModuleName() { return moduleName; } public void setModuleName(String moduleName) { this.moduleName = moduleName; } public String getFrom() { return from; } public void setFrom(String from) { this.from = from; } public String getTo() { return to; } public void setTo(String to) { this.to = to; } public String getData() { return data; } public void setData(String data) { this.data = data; } public int getTotal() { return total; } public void setTotal(int total) { this.total = total; } public String getVersion() { return version; } public void setVersion(String version) { this.version = version; } public String getTimestamp() { return timestamp; } public void setTimestamp(String timestamp) { this.timestamp = timestamp; } } }