lmw
2024-09-04 f4a6d4f0996238f9c85e4986deffe69a1c8256e6
app/src/main/java/com/lotaai/canguiayw/mqtt/MyMQTTService.java
@@ -55,15 +55,19 @@
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        init();
        if (!EventBus.getDefault().isRegistered(MyMQTTService.this)) {
            EventBus.getDefault().register(MyMQTTService.this);
        }
        return super.onStartCommand(intent, flags, startId);
    }
    @Subscribe(threadMode = ThreadMode.ASYNC)
    public static void publish(DeviceMessage message) {
    public  void publish(DeviceMessage message) {
        //需要在这个地方区分是哪种指令
        //才能确定发送到哪个topic
        LogUtils.i("接收到通知",message.getMsgString());
        if (message.getMessageType() == MessageType.MQTT.ordinal()){
            String topic = pubTopic;
            String topic = subTopic_Control +  CacheDiskUtils.getInstance().getString(SettingConfig.getInstance().Cache_Device_Code);
            Integer qos = 2;
            Boolean retained = false;
            String msg = message.getMsgString();
@@ -79,7 +83,7 @@
        // 服务器地址(协议+地址+端口号)
        String uri = "tcp://" + SettingConfig.getInstance().MQTT_IP+":"+SettingConfig.getInstance().MQTT_PORT;;
        LogUtils.i(uri);
        client = new MqttAndroidClient(this, uri, "tests233233232");
        client = new MqttAndroidClient(this, uri, CacheDiskUtils.getInstance().getString(SettingConfig.getInstance().Cache_Device_Code)+"houping");
        // 设置MQTT监听并且接受消息
        client.setCallback(mqttCallback);
        conOpt = new MqttConnectOptions();
@@ -191,18 +195,23 @@
                Order order = new Order();
                JSONObject json = JSONObject.parseObject(messageStr);
                String orderno = json.getString("orderno");
                String orderType = json.getString("orderType");
                if (!"2".equals(orderType)){
                    return;
                }
                //判断这个订单是否已经存在
                Order checkOrder = SqlliteDbManage.getInstance().selectOrtder(orderno);
                if (checkOrder == null){
                    String seqnum = json.getString("seqnum");
                    String orderType = json.getString("orderType");
                    String bookingType = json.getString("bookingType");
                    String orderId = json.getString("orderId");
                    if (json.getString("startTime")!=null) {
                        String startTime = JsonUtils.getString(messageStr, "startTime", "");
                    }
                    String createdTime = json.getString("createdTime");
                    String tableNum = JsonUtils.getString(messageStr,"tableNum","");
                    order.setOrderNo(orderno);
                    order.setOrderId(orderId);
                    order.setState(0);
                    order.setXuHao(seqnum);
                    order.setTakeCode("");
@@ -259,7 +268,7 @@
                    if (dengGuangIsOpen!=null) {
                        crontrolGridModel.setXiaodu(Integer.parseInt(dengGuangIsOpen));
                    }
                    LogUtils.i("控制",crontrolGridModel.getGuiNo(),crontrolGridModel.getGridNo(),crontrolGridModel.getOpenOrNoActon());
                    byte[] command = CanGuiCommand.getInstance().controlGridCommand(crontrolGridModel.getGuiNo() ,
                            crontrolGridModel.getGridNo() , crontrolGridModel.getOpenOrNoActon(),
                            crontrolGridModel.getWendu(), crontrolGridModel.getXiaodu(), crontrolGridModel.getDengGuang(),
@@ -268,7 +277,13 @@
                    dvmessage.setMessageType(MessageType.SENDMESSAGE.ordinal());
                    dvmessage.setDeviceType(DeviceType.CANGUI.ordinal());
                    dvmessage.setMessageByte(command);
                    EventBus.getDefault().post(message);
                    EventBus.getDefault().post(dvmessage);
                    //判断是否是取餐的,如果是取餐的,需要将这个订单从本地删除掉
                    String qucan = json.getString("qucan");
                    if (qucan!=null && "1".equals(qucan)){
                        SqlliteDbManage.getInstance().deleteFromOrderByGridNo(grid);
                        SqlliteDbManage.getInstance().updateGridByStr(grid,0);
                    }
                }
            }
        }
@@ -305,5 +320,4 @@
    public IBinder onBind(Intent intent) {
        return null;
    }
}