package com.xzx.log.runner;
|
|
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.json.JSONObject;
|
import cn.hutool.json.JSONUtil;
|
import com.xzx.log.constants.MqConstants;
|
import com.xzx.log.entity.IntefaceAdminLog;
|
import com.xzx.log.entity.OperationAppLog;
|
import com.xzx.log.entity.SysProgramLog;
|
import com.xzx.log.mapper.IntefaceAdminLogMapper;
|
import com.xzx.log.mapper.OperationAppLogMapper;
|
import com.xzx.log.mapper.SysProgramLogMapper;
|
import com.xzx.log.service.MailService;
|
import com.xzx.log.util.RedisUtil;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.amqp.core.Message;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.boot.CommandLineRunner;
|
import org.springframework.core.annotation.Order;
|
import org.springframework.stereotype.Component;
|
|
import java.io.UnsupportedEncodingException;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
@Component
|
@Order(0)
|
@Slf4j
|
public class SystemRunner implements CommandLineRunner {
|
|
|
@Autowired
|
private RedisUtil redisUtil;
|
|
@Autowired
|
private MailService mailService;
|
|
@Autowired
|
private IntefaceAdminLogMapper intefaceAdminLogMapper;
|
|
@Autowired
|
private OperationAppLogMapper operationAppLogMapper;
|
|
@Autowired
|
private SysProgramLogMapper sysProgramLogMapper;
|
|
@Override
|
public void run(String... args) {
|
log.info("日志服务启动中。。。。");
|
List<String> errQueueList = redisUtil.lrange(MqConstants.ERR_QUEUE_REDIS, 0, -1);
|
if(CollUtil.isNotEmpty(errQueueList)){
|
log.info("修复队列中....");
|
|
|
List<IntefaceAdminLog> intefaceAdminLogList=new ArrayList<>();
|
List<OperationAppLog> operationAppLogList=new ArrayList<>();
|
List<SysProgramLog> sysProgramLogList=new ArrayList<>();
|
|
for (String s : errQueueList) {
|
JSONObject jsonObject = JSONUtil.parseObj(s);
|
String queueName=jsonObject.getStr("queueName");
|
if(queueName.equals(MqConstants.INTEFACE_ADMIN_LOG_QUEUE)){
|
IntefaceAdminLog intefaceAdminLog = jsonObject.toBean( IntefaceAdminLog.class);
|
intefaceAdminLogList.add(intefaceAdminLog);
|
}else if(queueName.equals(MqConstants.OPERATION_APP_LOG_QUEUE)){
|
OperationAppLog operationAppLog = jsonObject.toBean(OperationAppLog.class);
|
operationAppLogList.add(operationAppLog);
|
}else if(queueName.equals(MqConstants.SYS_PROGRAM_LOG_QUEUE)){
|
SysProgramLog sysProgramLog = jsonObject.toBean(SysProgramLog.class);
|
sysProgramLogList.add(sysProgramLog);
|
}
|
}
|
|
if(CollUtil.isNotEmpty(intefaceAdminLogList)){
|
intefaceAdminLogMapper.saveAll(intefaceAdminLogList);
|
mailService.sendEmail(intefaceAdminLogList);
|
}
|
|
if(CollUtil.isNotEmpty(operationAppLogList)){
|
operationAppLogMapper.saveAll(operationAppLogList);
|
}
|
|
if(CollUtil.isNotEmpty(sysProgramLogList)){
|
sysProgramLogMapper.saveAll(sysProgramLogList);
|
}
|
|
|
log.info("修复队列完成");
|
|
redisUtil.del(MqConstants.ERR_QUEUE_REDIS);
|
}
|
|
|
log.info("日志服务启动成功");
|
|
|
|
}
|
}
|