package com.zy.bms.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zy.bms.common.Constant; import com.zy.bms.common.io.pc.MqttLogsIO; import com.zy.bms.mapper.MqttLogMapper; import com.zy.bms.model.MqttLog; import com.zy.bms.model.MqttMsgDto; import org.springframework.stereotype.Service; /** * MQTT 收发日志 Service * * @author chenyi * Create on 2020/4/10 */ @Service public class MqttLogService extends ServiceImpl { /** * 保存 日志 * * @param topic 主题 * @param payload 消息内容 * @param tag 0收 1发 */ public void saveLog(String topic, String payload, Integer tag) { MqttLog mqttLog = new MqttLog(); mqttLog.setTopic(topic); //mqtt日志类型 mqttLog.setTag(tag); //获取消息解析对象 MqttMsgDto mqttMsgDto = MqttMsgDto.parse(payload); String regTopic = tag == 0 ? Constant.TOPIC_REGISTER_SERVER : Constant.TOPIC_REGISTER_CLIENT; //区分注册报文和普通报文,注册报文取设备随机码 mqttLog.setDeviceId(topic.equals(regTopic) ? mqttMsgDto.getString("regnum") : mqttMsgDto.getDeviceId()); //mqtt 指令 mqttLog.setInstruction(mqttMsgDto.getM()); mqttLog.setContent(payload); baseMapper.insert(mqttLog); } /** * 分页查询日志 * * @param io 查询条件 */ public IPage getListPage(MqttLogsIO io) { Page page = new Page<>(io.getCurrent(), io.getSize()); return baseMapper.getListPage(page, io); } }