MqttApi.java 2.39 KB
package com.diligrp.mqtt.web.api;

import com.diligrp.mqtt.core.model.SendModel;
import com.diligrp.mqtt.core.model.SubscribeModel;
import com.diligrp.mqtt.core.service.MqttMessageService;
import com.diligrp.mqtt.core.service.MqttTopicService;
import com.diligrp.mqtt.web.message.Message;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * 测试接口
 * {
 *     "topic": "/028037/CPS70/910151240930000205/notify",
 *     "qos": 1,
 *     "retained": false,
 *     "payload": {
 *         "rtc": "16697082132620",
 *         "index": "16697082132643219720",
 *         "tts": "你好你好你好",
 *         "print_esc": "G2EAGzMBHFMBAR0hABthAMnMu6ex4LrFo7odIQAbYQA4OTgzMTAwNDQ2ODQwMTAbSgEbYQAbMwEcUwEBHSEAG2EA1tW2y7HgusWjuh0hABthADM0NTY3ODk0G0oBG2EAGzMBHFMBAR0hABthAL3wtu5STUKjuh0hABthADAuMDHUqhtKARthABszARxTAQEdIQAbYQDTxbvdvfC27qO6HSEAG2EAMC4wMNSqG0oBG2EAGzMBHFMBAR0hABthAMq1uLa98Lbuo7odIQAbYQAwLjAx1KobSgEbYQAbMwEcUwEBHSEAG2EAvbvS18qxvOSjuh0hABthADIwMjAtMDktMjcgMTE6MTY6NTYbSgEbYQAbMwEcUwEBHSEAG2EA1qe4tsf+tcCjuh0hABthAM6i0MUbSgEbYQAbMwEcUwEBHSEAG2EAvbvS18Dg0M2juh0hABthALPJuaYbSgEbYQAbMwEcUwEBHSEAG2EAycy7p7aptaW6xaO6HSEAG2EAVUlTV0VCMjAyMDA5MjcxMTE2NDYyNjc3MTg5NDMwG0oBG2EAGzMBHFMBAR0hABthAL270teyzr+8usWjuh0hABthADE3MTg3NzE5MjEzThtKARtKARtKUQ==",
 *         "print_num": 1
 *     },
 *     "charsetType": "GBK",
 *     "sendEventType": "printer"
 * }
 */

/**
 * @Author: zhangmeiyang
 * @CreateTime: 2026-01-14 16:43
 * @Version: todo
 */
@RestController
@RequestMapping("/api/mqtt")
public class MqttApi {

    @Resource
    private MqttTopicService mqttTopicService;

    @Resource
    private MqttMessageService mqttMessageService;

    @RequestMapping("/subscribe")
    public Message<?> subscribe(@RequestBody SubscribeModel subscribeModel) {
        mqttTopicService.subscribeTopic(subscribeModel);
        return Message.success();
    }

    @RequestMapping("/unsubscribe")
    public Message<?> unsubscribe(@RequestBody SubscribeModel subscribeModel) {
        mqttTopicService.unsubscribeTopic(subscribeModel.getTopic());
        return Message.success();
    }

    @RequestMapping("/send")
    public Message<?> send(@RequestBody SendModel sendModel) {
        mqttMessageService.sendMessage(sendModel);
        return Message.success();
    }
}