From 93d13b3bfa70309f4c2c5d15826a5ae737d3be81 Mon Sep 17 00:00:00 2001
From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期三, 19 七月 2017 15:45:40 +0800
Subject: [PATCH] 

---
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java        |   47 +++++++++++++++++++++++
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/BaseApplication.java           |    7 +++
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sqlite/SurveillanceDao.java |   20 +++++++++
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/FileUtil.java                  |    5 ++
 4 files changed, 77 insertions(+), 2 deletions(-)

diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/BaseApplication.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/BaseApplication.java
index 46a461a..a704763 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/BaseApplication.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/BaseApplication.java
@@ -12,6 +12,7 @@
 import cn.com.basic.face.discern.entity.Device;
 import cn.com.basic.face.service.DictionaryMng;
 import cn.com.basic.face.service.DeviceMng;
+import cn.com.basic.face.service.SurveillanceMng;
 import cn.com.basic.face.util.WindowsUtil;
 
 import com.facebook.drawee.backends.pipeline.Fresco;
@@ -95,6 +96,9 @@
                 connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) {
             connected = true;
         }
+        if (connected) {
+            SurveillanceMng.getInstance().sendOfflineUnknownToServer();
+        }
         return !connected;
     }
 
@@ -105,6 +109,9 @@
                 connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) {
             connected = true;
         }
+        if (connected) {
+            SurveillanceMng.getInstance().sendOfflineUnknownToServer();
+        }
         return connected;
     }
 
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java
index 48a117c..19a4315 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java
@@ -100,14 +100,59 @@
         }
     }
 
-    public void sendOfflineUnknownToInternet() {
+    public void sendOfflineUnknownToServer() {
+        if (!BaseApplication.deviceAvailable) {
+            return;
+        }
         UnknownQueryItem item = SurveillanceDao.getInstance().readOfflineUnknownFromLocal();
         if (item == null) {
             return;
         }
+        syncOfflineData(item);
+    }
 
+    private void syncOfflineData(final UnknownQueryItem item) {
+        try {
+            if (fileIndex > 30) {
+                fileIndex = 1;
+            }
+            fileIndex++;
+            RequestParams params = new RequestParams();
 
+            File rawSurveillancePhotoFile = FileUtil.getFile(item.getRawDataPath());
 
+            params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId());
+            params.addBodyParameter("InOrOutCamera", item.getCameraInOrOut() + "");
+            params.addBodyParameter("deviceId", BaseApplication.getInstance().getAndroidDevice().getDeviceId());
+            params.addBodyParameter("rawSurveillancePhoto", rawSurveillancePhotoFile);
+
+            File path = BaseApplication.getInstance().getFilesDir();
+            File f0 = new File(path, "f0");
+            if (!f0.exists()) {
+                f0.createNewFile();
+            }
+
+            FileWriter fw0 = new FileWriter(f0);
+            fw0.write("test1");
+            fw0.close();
+            params.setUri(AppApi.BASE_URL + AppApi.SURVEILLANCE_UPLOAD);
+            params.addBodyParameter("f0", f0);
+            params.addBodyParameter("rawSurveillancePhoto", rawSurveillancePhotoFile);
+            x.http().post(params, new BaseCommonCallBack() {
+                @Override
+                public void success() {
+                    try {
+                        if (1==1) {
+                            SurveillanceDao.getInstance().removeLocalSqliteRecord(item);
+                        }
+                    } catch(Exception e) {
+                        e.printStackTrace();
+                    }
+                }
+            });
+        }catch(Exception e) {
+            e.printStackTrace();
+        }
     }
 
 }
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sqlite/SurveillanceDao.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sqlite/SurveillanceDao.java
index b9b1b38..1ebb548 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sqlite/SurveillanceDao.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sqlite/SurveillanceDao.java
@@ -4,6 +4,7 @@
 import android.database.sqlite.SQLiteDatabase;
 import android.graphics.Bitmap;
 
+import java.io.File;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
@@ -56,7 +57,7 @@
 
     public UnknownQueryItem readOfflineUnknownFromLocal() {
         UnknownQueryItem item = null;
-        String sql = "select raw_data,camera_in_or_out,create_time from offline_unknown order by create_time create_time limit 1";
+        String sql = "select raw_data_path,camera_in_or_out,create_time from offline_unknown order by create_time create_time limit 1";
         SQLiteDatabase db = Config.sqlMap.getDb();
         db.beginTransaction();
         Cursor c = db.rawQuery(sql, new String[]{});
@@ -71,4 +72,21 @@
         return item;
     }
 
+    public void removeLocalSqliteRecord(UnknownQueryItem item) {
+        try {
+            File file = FileUtil.getFile(item.getRawDataPath());
+            if (file.exists()) {
+                file.delete();
+            }
+            String sql = "delete from offline_unknown where raw_data_path='"+item.getRawDataPath()+"'";
+            SQLiteDatabase db = Config.sqlMap.getDb();
+            db.beginTransaction();
+            db.execSQL(sql);
+            db.endTransaction();
+        }
+        catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
 }
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/FileUtil.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/FileUtil.java
index f5b0f29..0bf9b74 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/FileUtil.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/FileUtil.java
@@ -44,6 +44,11 @@
         return null;
     }
 
+    public static File getFile(String shortFileName) {
+        String dir = MainActivity.getInstance().getFilesDir().getAbsolutePath();
+        return new File(dir, shortFileName);
+    }
+
 
     public static byte[] readFile(File file) {
         // Open file

--
Gitblit v1.8.0