From cca5f79b3af36e5a908c5dfecbd30110febe3baa Mon Sep 17 00:00:00 2001
From: 陈力 <chenli@lotaai.com>
Date: 星期五, 09 六月 2023 20:58:09 +0800
Subject: [PATCH] 增加mqtt

---
 app/src/main/java/com/lotaai/canguiayw/MainActivity.java |  154 ++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 115 insertions(+), 39 deletions(-)

diff --git a/app/src/main/java/com/lotaai/canguiayw/MainActivity.java b/app/src/main/java/com/lotaai/canguiayw/MainActivity.java
index 601fa53..ffea3f4 100644
--- a/app/src/main/java/com/lotaai/canguiayw/MainActivity.java
+++ b/app/src/main/java/com/lotaai/canguiayw/MainActivity.java
@@ -8,26 +8,33 @@
 import android.os.Build;
 import android.os.Build.VERSION;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
 import android.util.Log;
 import android.view.View;
 import android.widget.ImageView;
 
+import com.alibaba.fastjson.JSONObject;
+import com.blankj.utilcode.util.CacheDiskUtils;
+import com.blankj.utilcode.util.DeviceUtils;
 import com.blankj.utilcode.util.LogUtils;
-import com.blankj.utilcode.util.TimeUtils;
-import com.lotaai.canguiayw.device.CanGuiCommand;
-import com.lotaai.canguiayw.device.CanguiStatus;
-import com.lotaai.canguiayw.device.DeviceMessage;
-import com.lotaai.canguiayw.device.DeviceType;
-import com.lotaai.canguiayw.device.MessageType;
+import com.lotaai.canguiayw.common.HttpLoggerInterceptor;
+import com.lotaai.canguiayw.common.HttpUrlDefine;
+import com.lotaai.canguiayw.common.SettingConfig;
 import com.lotaai.canguiayw.device.service.CanGuiService;
-import com.lotaai.canguiayw.sqllitedb.Order;
-import com.lotaai.canguiayw.sqllitedb.OrderDetail;
-import com.lotaai.canguiayw.sqllitedb.SqlliteDbManage;
+import com.lotaai.canguiayw.mqtt.MyMQTTService;
+import com.pranavpandey.android.dynamic.toasts.DynamicToast;
 
-import org.greenrobot.eventbus.EventBus;
+import java.io.IOException;
+import java.util.concurrent.TimeUnit;
 
-import java.util.Date;
-import java.util.Random;
+import okhttp3.Call;
+import okhttp3.Callback;
+import okhttp3.FormBody;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.RequestBody;
+import okhttp3.Response;
 
 public class MainActivity extends AppCompatActivity {
     private Context context;
@@ -41,43 +48,48 @@
         context = MainActivity.this;
         Intent startIntent = new Intent(context, CanGuiService.class);
         startService(startIntent);
+        Intent startMqttIntent = new Intent(context, MyMQTTService.class);
+        startService(startMqttIntent);
+
+        login();
+
         logoView.setOnLongClickListener(new View.OnLongClickListener() {
             @Override
             public boolean onLongClick(View view) {
-                Intent intent = new Intent();
-                intent.setClass(MainActivity.this, AdminLoginActivity.class);
-                startActivity(intent);
+//                Intent intent = new Intent();
+//                intent.setClass(MainActivity.this, AdminLoginActivity.class);
+//                startActivity(intent);
                 return true;
             }
         });
-        testData();
+//        testData();
     }
 
-    public void  testData(){
-        Random random = new Random();
-        int rt= random.nextInt(10000-1000+1)  + 1000;
-        Order order = new Order();
-        order.setOrderNo("GB"+ rt);
-        order.setGridNo("1");
-        order.setTakeCode("526895");
-        order.setState(0);
-        Date time = new Date();
-        order.setPutInDate(TimeUtils.date2String(time,"yyyy-MM-dd HH:mm:ss"));
-        SqlliteDbManage.getInstance().insertOrderInfo(order);
-        for (int p = 0; p < 3;p ++){
-            OrderDetail detail = new OrderDetail();
-            detail.setItemName("项目"+p);
-            detail.setNum(p);
-            detail.setOrderNo(order.getOrderNo());
-            SqlliteDbManage.getInstance().insertOrUpdateOrderDetailInfo(detail);
-        }
-        LogUtils.i("插入订单数据:" + order.getOrderNo());
-    }
+//    public void  testData(){
+//        Random random = new Random();
+//        int rt= random.nextInt(10000-1000+1)  + 1000;
+//        Order order = new Order();
+//        order.setOrderNo("GB"+ rt);
+//        order.setGridNo("1");
+//        order.setTakeCode("526895");
+//        order.setState(0);
+//        Date time = new Date();
+//        order.setPutInDate(TimeUtils.date2String(time,"yyyy-MM-dd HH:mm:ss"));
+//        SqlliteDbManage.getInstance().insertOrderInfo(order);
+//        for (int p = 0; p < 3;p ++){
+//            OrderDetail detail = new OrderDetail();
+//            detail.setItemName("项目"+p);
+//            detail.setNum(p);
+//            detail.setOrderNo(order.getOrderNo());
+//            SqlliteDbManage.getInstance().insertOrUpdateOrderDetailInfo(detail);
+//        }
+//        LogUtils.i("插入订单数据:" + order.getOrderNo());
+//    }
 
     public void gotoSetting(View view){
-        Intent intent = new Intent();
-        intent.setClass(MainActivity.this, AdminLoginActivity.class);
-        startActivity(intent);
+//        Intent intent = new Intent();
+//        intent.setClass(MainActivity.this, AdminLoginActivity.class);
+//        startActivity(intent);
     }
 
     public void take(View view){
@@ -92,4 +104,68 @@
         startActivity(intent);
     }
 
+    public void login() {
+        HttpLoggerInterceptor loggingInterceptor = new HttpLoggerInterceptor(true);
+        OkHttpClient client = new OkHttpClient.Builder()
+                .connectTimeout(20, TimeUnit.SECONDS)//响应时间,读取时间
+                .readTimeout(20, TimeUnit.SECONDS)
+                .callTimeout(20, TimeUnit.SECONDS)
+                .addInterceptor(loggingInterceptor)//添加日志拦截器
+                .build();
+
+        RequestBody body = new FormBody.Builder()
+                .add("equipmentUid", DeviceUtils.getUniqueDeviceId()).build();
+        final Request request = new Request.Builder()
+                .url(HttpUrlDefine.equipmentLogin)
+                .addHeader("language", "zh-CN")
+                .post(body)
+                .build();
+        client.newCall(request).enqueue(new Callback() {
+            @Override
+            public void onFailure(Call call, IOException e) {
+                Message msg = new Message();
+                msg.what = 0;
+                msg.obj = "登录失败";
+                showHandler.sendMessage(msg);
+                LogUtils.e(e);
+            }
+
+            @Override
+            public void onResponse(Call call, Response response) throws IOException {
+                String result = response.body().string();
+                LogUtils.i("获取到的数据:"+result);
+                JSONObject obj = JSONObject.parseObject(result);
+                if ("0".equals(obj.getString("code"))) {
+                    JSONObject dataObj = obj.getJSONObject("data");
+                    String name = dataObj.getString("name");
+                    Message msg = new Message();
+                    msg.what = 1;
+                    msg.obj = "登录成功!" + name;
+                    showHandler.sendMessage(msg);
+                    //equipmentCode
+                    String code = dataObj.getString("equipmentCode");
+                    CacheDiskUtils.getInstance().put(SettingConfig.getInstance().Cache_Device_Code, code);
+                } else {
+                    Message msg = new Message();
+                    msg.what = 0;
+                    msg.obj = "登录失败:请重新激活!" ;
+                    showHandler.sendMessage(msg);
+                }
+            }
+        });
+    }
+
+    private Handler showHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            if (msg.what == 0) {
+                DynamicToast.makeError(context, msg.obj.toString(), 3).show();
+            } else if (msg.what == 1) {
+                DynamicToast.makeSuccess(context, msg.obj.toString(), 3).show();
+            } else {
+                DynamicToast.makeWarning(context, msg.obj.toString(), 3).show();
+            }
+        }
+    };
+
 }

--
Gitblit v1.7.1