package com.ruoyi.sy.service.impl; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ruoyi.common.core.domain.entity.SysConfig; import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.sy.domain.ArdSyCarRtu; import com.ruoyi.sy.mapper.ArdSyCarRtuMapper; import com.ruoyi.sy.service.ArdSyCarRtuService; import com.ruoyi.system.mapper.SysConfigMapper; import com.ruoyi.utils.mqtt.MqttConsumer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.*; /** * @author Administrator */ @Service public class ArdSyCarRtuServiceImpl implements ArdSyCarRtuService { @Autowired private ArdSyCarRtuMapper ardSyCarRtuMapper; @Resource private SysConfigMapper configMapper; @Override public String[] allCarTopic() { List carRtus = ardSyCarRtuMapper.selectList(null); List list = new ArrayList<>(); for (int i = 0; i < carRtus.size(); i++) { list.add(carRtus.get(i).getTopicPublish()); } return list.toArray(new String[list.size()]); } @Override public List allCarTopicList() { return ardSyCarRtuMapper.selectList(null); } @Override public ArdSyCarRtu one(String carId) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("car_id",carId); return ardSyCarRtuMapper.selectOne(queryWrapper); } @Override public String openLock(ArdSyCarRtu ardSyCarRtu) { Map map = new HashMap<>(); // map.put("A01", 110000);//导通第一路继电器 // map.put("A02", 110000);//导通第二路继电器 map.put("res", String.valueOf(System.currentTimeMillis())); MqttConsumer.publish(ardSyCarRtu.getTopicSubscribe(), String.valueOf(new JSONObject(map))); return "已发送开锁指令"; } @Override public ArdSyCarRtu subscribeByCarId(String subscribe) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("topic_subscribe",subscribe); return ardSyCarRtuMapper.selectOne(queryWrapper); } @Override public String url(String key) { // QueryWrapper queryWrapper = new QueryWrapper<>(); // queryWrapper.eq("config_key",key); // SysConfig sysConfig = configMapper.selectOne(queryWrapper); SysConfig sysConfig = configMapper.checkConfigKeyUnique(key); if(sysConfig!=null){ return sysConfig.getConfigValue(); }else { return "配置表无地址数据"; } } }