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();
|
schedule = Math.abs(schedule);
|
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;
|
}
|
}
|
}
|