国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

物聯(lián)網(wǎng)開發(fā)終端管理篇-java從MQTT獲取設(shè)備數(shù)據(jù),并通過Druid連接池把數(shù)據(jù)寫入MySQL數(shù)據(jù)庫(kù)(Windows系統(tǒng))

這篇具有很好參考價(jià)值的文章主要介紹了物聯(lián)網(wǎng)開發(fā)終端管理篇-java從MQTT獲取設(shè)備數(shù)據(jù),并通過Druid連接池把數(shù)據(jù)寫入MySQL數(shù)據(jù)庫(kù)(Windows系統(tǒng))。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

物聯(lián)網(wǎng)開發(fā)終端管理篇-java從MQTT獲取設(shè)備數(shù)據(jù),并通過Druid連接池把數(shù)據(jù)寫入MySQL數(shù)據(jù)庫(kù)(Windows系統(tǒng))

下面來給大家做個(gè)簡(jiǎn)單的數(shù)據(jù)對(duì)接,也就是通過寫JAVA代碼實(shí)現(xiàn)MQTT協(xié)議

  1. 首頁(yè)我們得搭建一個(gè)簡(jiǎn)單的IDEA項(xiàng)目,這個(gè)我就不做演示了
  2. 搭建完項(xiàng)目,我們需要準(zhǔn)備一些jar包,jar包名如下:
  1. org.eclipse.paho.client.mqttv3-1.1.0.jar
  2. mysql-connector-java-5.1.34.jar
  3. jackson-databind-2.10.0.jar
  4. jackson-core-2.10.0.jar
  5. jackson-annotations-2.10.0.jar
  6. 如果是連接sqlserver數(shù)據(jù)庫(kù) 則用???jtds-1.3.1.jar

下面就是java代碼了

package com.baidai;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.eclipse.paho.client.mqttv3.*;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;

import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 接收訂閱的消息
 */
public class ClientMQTT implements MqttCallback {

    public static final String HOST = "tcp://127.0.0.1:1883";//(127.0.0.1也就是EMQX的ip地址)
    private static final String clientID = "clientXX";//(這個(gè)clientXX 可以隨便寫)
    private String TOPIC= "testtopic";//(這個(gè)testtopic 是EMQX的訂閱主題,如果你對(duì)接別的數(shù)據(jù),別人給了你主題,改這個(gè)就行)
    private MqttClient client;
    private MqttConnectOptions options;
    private String user = "admin";//(連接登錄EMQX的賬號(hào))
    private String password = "xiaofang";//(連接登錄EMQX的密碼)
    private String driverName = "com.mysql.cj.jdbc.Driver";//(連接MySQL數(shù)據(jù)庫(kù))
    //private String driverName = "net.sourceforge.jtds.jdbc.Driver";//(連接SQLServer數(shù)據(jù)庫(kù))
    private String url = "";//根據(jù)不同數(shù)據(jù)庫(kù)填寫自己的數(shù)據(jù)庫(kù)地址
    private String userName = "";//填寫自己的數(shù)據(jù)庫(kù)名稱
    private String userPwd = "";//數(shù)據(jù)庫(kù)對(duì)應(yīng)密碼


    /*連接MQtt*/
    public void clientStart(){
        try {
            client = new MqttClient(HOST,clientID,new MemoryPersistence());
            options = new MqttConnectOptions();
            options.setCleanSession(true);
            options.setKeepAliveInterval(10);
            options.setConnectionTimeout(50);
            options.setUserName(user);
            options.setPassword(password.toCharArray());
            client.setCallback(new ClientMQTT());
            MqttTopic topic = client.getTopic(TOPIC);
            //setWill方法,如果項(xiàng)目中需要知道客戶端是否掉線可以調(diào)用該方法。設(shè)置最終端口的通知消息
            options.setWill(topic,"close".getBytes(),1,true);
            client.connect(options);
            int[] Qos = {1};
            String[] topic1 = {TOPIC};
            client.subscribe(topic1,Qos);
        } catch (MqttException e) {
            e.printStackTrace();
        }
    }

    /**
     * 連接數(shù)據(jù)庫(kù)
     */
    public void connection(){
        try {
            Class.forName(driverName);
            System.out.println("連接成功!!!");

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            System.out.println("驅(qū)動(dòng)加載失敗");
        }

        try {
        	//在這里可以先測(cè)試數(shù)據(jù)庫(kù)能不能連接
            Connection dbcon = DriverManager.getConnection(url,userName,userPwd);
            System.out.println("數(shù)據(jù)庫(kù)連接成功!");

            System.out.println("數(shù)據(jù)庫(kù)連接成功!");
        } catch (SQLException e) {
            e.printStackTrace();
            System.out.println("連接失敗");

        }
    }

    @Override
    public void connectionLost(Throwable throwable) {
        System.out.println(throwable);
        //連接斷掉會(huì)執(zhí)行到這里
        System.out.println("連接以斷,請(qǐng)重新連接?。?!");
    }

	//接收EMQX上訂閱主題的數(shù)據(jù)
    @Override
    public void messageArrived(String s, MqttMessage mqttMessage) throws Exception {

        try {

			//獲取消息返回格式
            String msg = new String(mqttMessage.getPayload());
            if(msg.equals("close")){
                return;
            }
            ObjectMapper objectMapper = new ObjectMapper();
            JsonNode jsonNode = objectMapper.readTree(msg);

            String info= jsonNode.get("info").toString();
            String time= jsonNode.get("time").toString().replaceAll("\"", "").replaceAll("/","");
			//格式化接收過來的時(shí)間
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddhhmmss");
            Date productTime = simpleDateFormat.parse(timeStamp);
            String infoTwo = jsonNode.get("infoTwo ").toString();

			//按照對(duì)方返回過來的格式接收數(shù)據(jù)
            JsonNode infoList = objectMapper.readTree(info);
            JsonNode infoTwoList = objectMapper.readTree(infoTwo);

            for (JsonNode dataJsonNode : infoList) {
                //這里就省略了
            }
            
            for (JsonNode dataJsonNode : infoTwoList) {
                //這里就省略了
            }

			//連接數(shù)據(jù)庫(kù)
            Connection dbcon = DriverManager.getConnection(url,userName,userPwd);
            Statement stmt = dbcon.createStatement();

			//如果是SqlServe不能自動(dòng)生成id,可以用這個(gè)生成一個(gè)隨機(jī)id
            ResultSet rs = stmt.executeQuery("select REPLACE(NEWID(), '-', '') as Id");
            String id="";
            while(rs.next()) {
                id=rs.getString("Id").toString();
            }
            String sql="insert into 表的名稱 (id,name,date,number,totalNumber,nowDate)"+
                    "values(?,?,?,?,?,?)";

            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

            PreparedStatement preparedStatement = dbcon.prepareStatement(sql);//預(yù)編譯下SQL語(yǔ)句
            preparedStatement.setString( 1,id);
            preparedStatement.setString( 2,"測(cè)試");
            preparedStatement.setString( 3, dateFormat.format(time));//獲取時(shí)間
            preparedStatement.setInt( 4,number);//數(shù)量
            preparedStatement.setDouble( 5,totalNumber);//總數(shù)量
            preparedStatement.setString( 6,dateFormat.format(System.currentTimeMillis()));//獲取當(dāng)前時(shí)間
            //這里是執(zhí)行上面的sql語(yǔ)句的方法
            preparedStatement.executeUpdate();
            //subscribe后會(huì)執(zhí)行到這里
            System.out.println("訂閱消息的主題是:"+s);
            System.out.println("消息的ID是:"+mqttMessage.getId());
            System.out.println("添加成功:"+msg);
            System.out.println("添加成功SQl語(yǔ)句:"+preparedStatement);
        }catch (Exception e){
            System.out.println("插入錯(cuò)誤信息:"+e);
        }

    }

    @Override
    public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) {
        //publish可以執(zhí)行到這里
        System.out.println("This is deliveryComplete method----->"+iMqttDeliveryToken.isComplete());
    }

    public static void main(String[] args) {
        ClientMQTT clientMQTT = new ClientMQTT();
        clientMQTT.clientStart();
        //在這里可以先測(cè)試數(shù)據(jù)庫(kù)能不能連接
        //clientMQTT.connection();
    }
}

上面的代碼寫完,下面我們?cè)撛趺醋屔厦娴拇a可以直接在服務(wù)器上面跑,不用自己一直啟動(dòng)idea項(xiàng)目呢???




生成可執(zhí)行jar包, 并安裝運(yùn)行到服務(wù)器

1.停止運(yùn)行

mqtt數(shù)據(jù)如何存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù),java,物聯(lián)網(wǎng)

2.因?yàn)槌绦蛞呀?jīng)設(shè)置過生成jar包,所以用戶直接按照下面操作即可生成可執(zhí)行jar包.

mqtt數(shù)據(jù)如何存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù),java,物聯(lián)網(wǎng)
mqtt數(shù)據(jù)如何存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù),java,物聯(lián)網(wǎng)
mqtt數(shù)據(jù)如何存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù),java,物聯(lián)網(wǎng)
mqtt數(shù)據(jù)如何存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù),java,物聯(lián)網(wǎng)
mqtt數(shù)據(jù)如何存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù),java,物聯(lián)網(wǎng)
mqtt數(shù)據(jù)如何存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù),java,物聯(lián)網(wǎng)
mqtt數(shù)據(jù)如何存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù),java,物聯(lián)網(wǎng)

然后找到idea設(shè)置的Show Excluded Filesmqtt數(shù)據(jù)如何存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù),java,物聯(lián)網(wǎng)

mqtt數(shù)據(jù)如何存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù),java,物聯(lián)網(wǎng)

然后可能就會(huì)生成Out文件或者class文件。文件是橙黃色的,然后右鍵Show in Explorer

mqtt數(shù)據(jù)如何存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù),java,物聯(lián)網(wǎng)

然后找到生成的jar包的位置

mqtt數(shù)據(jù)如何存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù),java,物聯(lián)網(wǎng)

如果服務(wù)器沒有安裝JDK,請(qǐng)用戶先安裝JDK,然后把先前生成的jar包拷貝到服務(wù)器

mqtt數(shù)據(jù)如何存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù),java,物聯(lián)網(wǎng)

下一步就是打開命令窗口 cmd

mqtt數(shù)據(jù)如何存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù),java,物聯(lián)網(wǎng)

進(jìn)入到j(luò)ar包目錄

mqtt數(shù)據(jù)如何存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù),java,物聯(lián)網(wǎng)

執(zhí)行 java -jar MqttDataToMySQL.jar

mqtt數(shù)據(jù)如何存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù),java,物聯(lián)網(wǎng)

打印所有設(shè)備的數(shù)據(jù),說明已經(jīng)運(yùn)行起來了

mqtt數(shù)據(jù)如何存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù),java,物聯(lián)網(wǎng)

讓程序在后臺(tái)運(yùn)行

1. 關(guān)閉

mqtt數(shù)據(jù)如何存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù),java,物聯(lián)網(wǎng)

2. 注意呀!不要犯常識(shí)性錯(cuò)誤!把文件擴(kuò)展名選中!

mqtt數(shù)據(jù)如何存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù),java,物聯(lián)網(wǎng)

3. 在jar包目錄新建一個(gè)后綴名字為.bat的文件

編輯里面的內(nèi)容如下(MqttDataToMySQL.jar 就是jar包的名字)

@echo off
start javaw -jar MqttDataToMySQL.jar
exit

mqtt數(shù)據(jù)如何存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù),java,物聯(lián)網(wǎng)

4. 雙擊運(yùn)行即可

mqtt數(shù)據(jù)如何存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù),java,物聯(lián)網(wǎng)

5. 如果要關(guān)閉,找到任務(wù)管理器java運(yùn)行進(jìn)程,關(guān)閉即可

mqtt數(shù)據(jù)如何存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù),java,物聯(lián)網(wǎng)

6.也可以指定JDK路徑運(yùn)行

C:\java8\jdk1.8.0.131 為JDK的安裝路徑
@echo off
set JAVA_HOME=C:\java8\jdk1.8.0.131
set CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOMe%\lib\tools.jar;
set Path=%JAVA_HOME%\bin;
start javaw -jar MqttDataToMySQL.jar
exit

在服務(wù)器運(yùn)行Jar包可能會(huì)出現(xiàn)的錯(cuò)誤:

“Exception in thread “main” java.lang.SecurityException: Invalid signature file digest for Manifest”

解決辦法

找到你打的jar包META-INF中后綴為.SF和.RSA文件并且刪除,然后重新運(yùn)行,就會(huì)成功?。。?!趕緊去試試吧?。?!

mqtt數(shù)據(jù)如何存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù),java,物聯(lián)網(wǎng)

如果還不可以的話,你可以自行查看別人解決的辦法點(diǎn)擊查看解決方法

如果你想多次運(yùn)行不同的jar包,你得改java代碼的“clientID”,然后再重新打jar包,取不同的jar包名稱,然后放到服務(wù)器上面運(yùn)行

mqtt數(shù)據(jù)如何存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù),java,物聯(lián)網(wǎng)文章來源地址http://www.zghlxwxcb.cn/news/detail-671607.html

到了這里,關(guān)于物聯(lián)網(wǎng)開發(fā)終端管理篇-java從MQTT獲取設(shè)備數(shù)據(jù),并通過Druid連接池把數(shù)據(jù)寫入MySQL數(shù)據(jù)庫(kù)(Windows系統(tǒng))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【探索 Kubernetes|作業(yè)管理篇 系列 9】Pod 的服務(wù)對(duì)象

    【探索 Kubernetes|作業(yè)管理篇 系列 9】Pod 的服務(wù)對(duì)象

    大家好,我是秋意零。 在上一篇中,我們介紹了 Pod 的生命周期以及區(qū)分 Pod 字段的層次級(jí)別,相信你對(duì)此有了充分的認(rèn)識(shí)。 今天,我們還會(huì)接著以 Pod 展開,說說它的 “服務(wù)對(duì)象”,一聽就知道是對(duì) Pod 提供服務(wù)的對(duì)象,接下來就一起來看看, “服務(wù)對(duì)象” 是否有趣吧??!

    2024年02月09日
    瀏覽(27)
  • 【探索 Kubernetes|作業(yè)管理篇 系列 15】DaemonSet 的”過人之處“

    【探索 Kubernetes|作業(yè)管理篇 系列 15】DaemonSet 的”過人之處“

    大家好,我是秋意零。 在上一篇中,我們講解了 StatefulSet 的存儲(chǔ)狀態(tài);我們發(fā)現(xiàn),它的存儲(chǔ)狀態(tài),就是利用了 PV 與 PVC 的設(shè)計(jì)。StatefulSet 自動(dòng)為我們創(chuàng)建 PVC 并且以 pvc-name-pod-name-編號(hào) 命名,從而始終與 Pod 編號(hào)名一致的綁定。 需要注意的是 :StatefulSet 的“滾動(dòng)更新”是從最

    2024年02月11日
    瀏覽(53)
  • 【探索 Kubernetes|作業(yè)管理篇 系列 11】控制器的核心功能

    【探索 Kubernetes|作業(yè)管理篇 系列 11】控制器的核心功能

    大家好,我是秋意零。 上一篇結(jié)束了 Pod 對(duì)象的內(nèi)容。 今天要探討的內(nèi)容是 “控制器”,它是 Kubernetes 編排最核心的功能。理解了 “控制器”,你就能理解 Deployment、StatefulSet、DaemontSet、Job、CroJob 控制器對(duì)象。 最近搞了一個(gè)扣扣群,旨在技術(shù)交流、博客互助,希望各位大佬

    2024年02月11日
    瀏覽(31)
  • 【探索 Kubernetes|作業(yè)管理篇 系列 10】Pod 健康檢查和恢復(fù)機(jī)制

    【探索 Kubernetes|作業(yè)管理篇 系列 10】Pod 健康檢查和恢復(fù)機(jī)制

    大家好,我是秋意零。 上一篇中介紹了,Pod 的服務(wù)對(duì)象,從而對(duì) Pod 有了更深的理解; 今天的主題是 Pod 健康檢查和恢復(fù)機(jī)制,我們將結(jié)束 Pod 的內(nèi)容。 最近搞了一個(gè)扣扣群,旨在技術(shù)交流、博客互助,希望各位大佬多多支持!在我主頁(yè)推廣區(qū)域,如圖: 文章底部推廣區(qū)域

    2024年02月09日
    瀏覽(25)
  • U3D客戶端框架(資源管理篇)之自動(dòng)化打Assetbundle包管理器

    U3D客戶端框架(資源管理篇)之自動(dòng)化打Assetbundle包管理器

    AssetBundle是將資源使用Unity提供的一種用于存儲(chǔ)資源的壓縮格式打包后的集合,它可以存儲(chǔ)任何一種Unity可以識(shí)別的資源,如模型,紋理圖,音頻,場(chǎng)景等資源。也可以加載開發(fā)者自定義的二進(jìn)制文件。他們的文件類型是.assetbundle/.unity3d,他們先前被設(shè)計(jì)好,很容易就下載到我們

    2024年02月09日
    瀏覽(25)
  • 【探索 Kubernetes|作業(yè)管理篇 系列 16】離線業(yè)務(wù) Job、CronJob

    【探索 Kubernetes|作業(yè)管理篇 系列 16】離線業(yè)務(wù) Job、CronJob

    大家好,我是秋意零。 在上一篇中,我們講解了 DaemonSet 控制器,相信你以及理解了其的工作過程,分為三部。一是,獲取所有 Node 節(jié)點(diǎn)中的 Pod;二是,判斷是否有符合 DaemonSet 管理的 Pod;三是,通過“親和性”和“容忍”來精確控制并保證 Pod 在目標(biāo)節(jié)點(diǎn)運(yùn)行。 今天的內(nèi)容

    2024年02月12日
    瀏覽(28)
  • 【管理篇 / 升級(jí)】? 13. FortiOS 7.4固件升級(jí)新規(guī)則 ? FortiGate 防火墻

    【管理篇 / 升級(jí)】? 13. FortiOS 7.4固件升級(jí)新規(guī)則 ? FortiGate 防火墻

    【簡(jiǎn)介】飛塔防火墻的固件升級(jí)一直是所有廠家中最好的。只要有注冊(cè)官方帳號(hào),有注冊(cè)設(shè)備,并且只要有一臺(tái)設(shè)備在服務(wù)期內(nèi),即可下載所有型號(hào)的所有版本的固件。即使其它設(shè)備服務(wù)期已過,也可以通過固件文件手動(dòng)升級(jí),避免防火墻受到漏洞攻擊。但是從7.4版本開始,

    2024年01月17日
    瀏覽(27)
  • 【探索 Kubernetes|作業(yè)管理篇 系列 7】探究 Pod 有什么用,為什么需要它

    【探索 Kubernetes|作業(yè)管理篇 系列 7】探究 Pod 有什么用,為什么需要它

    大家好,我是秋意零。 前一篇,我們介紹了如何從 0 到 1 搭建 Kubernetes 集群。現(xiàn)在我們可以正式了解,Kubernetes 核心特征了。 今天我們來探究 Pod,為什么需要 Pod? ?? 簡(jiǎn)介 ?? 個(gè)人主頁(yè) : 秋意零 ?? 個(gè)人介紹 :在校期間參與眾多云計(jì)算相關(guān)比賽,如:?? “省賽”、“國(guó)

    2024年02月09日
    瀏覽(31)
  • 【探索 Kubernetes|作業(yè)管理篇 系列 8】探究 Pod 的 API 對(duì)象屬性級(jí)別與重要字段用法

    【探索 Kubernetes|作業(yè)管理篇 系列 8】探究 Pod 的 API 對(duì)象屬性級(jí)別與重要字段用法

    大家好,我是秋意零。 本專欄上一篇中,我們介紹了 Pod 的核心思想以及 Pod 的工作原理。今天我們還是探討 Pod ,聊一聊 Pod 的基本概念。 ?? 簡(jiǎn)介 ?? 個(gè)人主頁(yè) : 秋意零 ?? 個(gè)人介紹 :在校期間參與眾多云計(jì)算相關(guān)比賽,如:?? “省賽”、“國(guó)賽” ,并斬獲多項(xiàng)獎(jiǎng)項(xiàng)榮

    2024年02月08日
    瀏覽(27)
  • 【管理篇 / 恢復(fù)】? 08. 文件權(quán)限對(duì)macOS下用命令刷新固件的影響 ? FortiGate 防火墻

    【管理篇 / 恢復(fù)】? 08. 文件權(quán)限對(duì)macOS下用命令刷新固件的影響 ? FortiGate 防火墻

    【簡(jiǎn)介】雖然上篇文章中成功的在macOS下刷新了固件,但是很多小伙伴在實(shí)際操作中碰到了無法成功的狀況,我們來看看最常見的一種。 ?在/private/tftpboot目錄拷貝另一個(gè)版本的固件文件,具體拷貝過程不再詳述。 ?打開終端,輸入命令? sudo launchctl load -F /System/Library/LaunchDa

    2024年02月02日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包