zhangnaisong
2024-07-06 06842b9c367083c3bf77b8b54a1e1a32b68a2e5e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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<ArdSyCarRtu> carRtus = ardSyCarRtuMapper.selectList(null);
        List<String> 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<ArdSyCarRtu> allCarTopicList() {
        return ardSyCarRtuMapper.selectList(null);
    }
 
    @Override
    public ArdSyCarRtu one(String carId) {
        QueryWrapper<ArdSyCarRtu> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("car_id",carId);
        return ardSyCarRtuMapper.selectOne(queryWrapper);
    }
 
    @Override
    public String openLock(ArdSyCarRtu ardSyCarRtu) {
            Map<String,Object> 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<ArdSyCarRtu> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("topic_subscribe",subscribe);
        return ardSyCarRtuMapper.selectOne(queryWrapper);
    }
 
    @Override
    public String url(String key) {
//        QueryWrapper<SysConfig> 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 "配置表无地址数据";
        }
    }
 
}