package com.highdatas.mdm.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.highdatas.mdm.entity.SysDispenseLogs;
import com.highdatas.mdm.mapper.SysDispenseLogsMapper;
import com.highdatas.mdm.service.IMaintainService;
import com.highdatas.mdm.service.ISysDispenseLogsService;
import com.highdatas.mdm.util.Constant;
import com.highdatas.mdm.util.DbUtils;
import com.highdatas.mdm.util.pool.MqEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.concurrent.atomic.AtomicInteger;
/**
*
* 服务实现类
*
*
* @author kimi
* @since 2020-04-21
*/
@Service
public class SysDispenseLogsServiceImpl extends ServiceImpl implements ISysDispenseLogsService {
@Autowired
IMaintainService maintainService;
@Override
public SysDispenseLogs getLogByMqEntity(MqEntity mqEntity) {
String type = mqEntity.getType();
Wrapper sysDispenseLogsWrapper = new EntityWrapper()
.eq("topic_id", mqEntity.getMsgTopicName())
.eq("tag_id", mqEntity.getMsgTagName())
.eq("key_id", mqEntity.getMsgKey())
.orderBy("create_time desc");
if (Constant.Master.equalsIgnoreCase(type)) {
sysDispenseLogsWrapper.eq("maintain_id", mqEntity.getMaintainId());
}
SysDispenseLogs sysDispenseLogs = selectOne(sysDispenseLogsWrapper);
return sysDispenseLogs;
}
@Override
public SysDispenseLogs getPreUnSuccessByMqEntity(MqEntity mqEntity) {
Wrapper sysDispenseLogsWrapper = new EntityWrapper()
.eq("topic_id", mqEntity.getMsgTopicName())
.eq("tag_id", mqEntity.getMsgTagName())
.eq("user_id", mqEntity.getUserId())
.isNotNull("pages")
.eq("status", "fail")
.orderBy("create_time desc");
SysDispenseLogs sysDispenseLogs = selectOne(sysDispenseLogsWrapper);
return sysDispenseLogs;
}
@Override
public SysDispenseLogs createLogByMqEntity(MqEntity mqEntity) {
SysDispenseLogs sysDispenseLogs = new SysDispenseLogs()
.setId(DbUtils.getUUID())
.setCreateTime(new Date())
.setUserId(mqEntity.getUserId())
.setMaintainId(mqEntity.getMaintainId())
.setDataType(mqEntity.getType())
.setTopicId(mqEntity.getMsgTopicName())
.setTagId(mqEntity.getMsgTagName())
.setKeyId(mqEntity.getMsgKey());
int totalSize = mqEntity.getTotalSize();
if (totalSize > 0) {
sysDispenseLogs.setTotal(totalSize);
}
AtomicInteger pageNo = mqEntity.getPageNo();
if (pageNo != null) {
sysDispenseLogs.setPageNo(pageNo.get());
}
AtomicInteger pages = mqEntity.getPages();
if (pages != null) {
sysDispenseLogs.setPages(pages.get());
}
sysDispenseLogs.insert();
return sysDispenseLogs;
}
}