|
|
@@ -8,6 +8,7 @@ import android.database.sqlite.SQLiteDatabase.CursorFactory;
|
|
|
import android.database.sqlite.SQLiteException;
|
|
|
import android.net.Uri;
|
|
|
import android.text.TextUtils;
|
|
|
+import android.text.format.DateFormat;
|
|
|
import android.util.Log;
|
|
|
|
|
|
import com.usai.apex.ApexTrackingApplication;
|
|
|
@@ -380,5 +381,139 @@ public class dbUtil
|
|
|
}
|
|
|
|
|
|
// if(isTableEmpty(db,"block_records"))
|
|
|
+ /**
|
|
|
+ * 2019.1.5 修改将本地用户缓存上传至服务器并删除本地缓存
|
|
|
+ * */
|
|
|
+
|
|
|
+ private static SQLiteDatabase getReadOnlyDatabase(Context context) {
|
|
|
+ SqlOpenHelper dbHelper = new SqlOpenHelper(context, "apex.db", null, 2);
|
|
|
+ return dbHelper.OpenDB(false);
|
|
|
+ }
|
|
|
+
|
|
|
+ private static boolean hasDatabaseFile(Context context) {
|
|
|
+
|
|
|
+ SQLiteDatabase db = getReadOnlyDatabase(context);
|
|
|
+ if (db != null) {
|
|
|
+ CloseDB(db);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static boolean isCachedDataForUser(Context context, String user) {
|
|
|
+ boolean hasFile = hasDatabaseFile(context);
|
|
|
+ if (!hasFile) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ Boolean result = false;
|
|
|
+
|
|
|
+ String sql = String.format("select count(0) from (select user from favorites union all select user from fields_info union all select user from history union all select user from search_history) where user = '%s';",user);
|
|
|
+ SQLiteDatabase db = getReadOnlyDatabase(context);
|
|
|
+ Cursor cursor = db.rawQuery(sql, null);
|
|
|
+ while (cursor.moveToNext()) {
|
|
|
+ int c = cursor.getInt(0);
|
|
|
+ result = c > 0;
|
|
|
+ }
|
|
|
+ CloseCursor(cursor);
|
|
|
+ CloseDB(db);
|
|
|
+
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void cleanCachedDataForUser(Context context, String user) {
|
|
|
+
|
|
|
+ SQLiteDatabase db = OpenDB(context, null, true);
|
|
|
+
|
|
|
+ removeRecords(db, "fields_info", String.format("user = '%s'", user));
|
|
|
+ removeRecords(db, "history", String.format("user = '%s'", user));
|
|
|
+ removeRecords(db, "favorites", String.format("user = '%s'", user));
|
|
|
+ removeRecords(db, "search_history", String.format("user = '%s'", user));
|
|
|
+
|
|
|
+ CloseDB(db);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static String prepareUploadSQLForUser(Context context, String user, String deviceId) {
|
|
|
+
|
|
|
+ StringBuffer sql = new StringBuffer();
|
|
|
+
|
|
|
+ SQLiteDatabase db = OpenDB(context, null, true);
|
|
|
+
|
|
|
+ // favorites
|
|
|
+ String favorites_sql = String.format("select ifnull(name,''), ifnull(params, ''), ifnull(action, ''), ifnull(module_name, ''), ifnull(user, ''), ifnull(create_time, '') from favorites where user = '%s';", user);
|
|
|
+ Cursor favorites_cur = db.rawQuery(favorites_sql, null);
|
|
|
+ while (favorites_cur.moveToNext()) {
|
|
|
+
|
|
|
+ String name = favorites_cur.getString(0);
|
|
|
+ String params = favorites_cur.getString(1);
|
|
|
+ String action = favorites_cur.getString(2);
|
|
|
+ String module_name = favorites_cur.getString(3);
|
|
|
+ String user_name = favorites_cur.getString(4);
|
|
|
+ long create_time_l = favorites_cur.getLong(5);
|
|
|
+ String create_time = DateFormat.format("yyyy-MM-dd HH:mm:ss", create_time_l).toString();
|
|
|
+
|
|
|
+ String insert_sql = String.format("insert into favorites (name, params, action, module_name, user_name, device_id, create_time) values ('%s', '%s', '%s', '%s', '%s', '%s', '%s');", name, params, action, module_name, user_name, deviceId, create_time);
|
|
|
+ sql.append(insert_sql);
|
|
|
+ sql.append("\r\n");
|
|
|
+ }
|
|
|
+ CloseCursor(favorites_cur);
|
|
|
+
|
|
|
+ // fields_info
|
|
|
+ String fieldsSql = String.format("select ifnull(name, ''), ifnull(aname, ''), ifnull(field_type, 0), ifnull(function_name, ''), ifnull(behavior, 0), ifnull(priority, 0), ifnull(show, 0), ifnull(user, '') from fields_info where user = '%s';",user);
|
|
|
+ Cursor fields_cur = db.rawQuery(fieldsSql, null);
|
|
|
+ while (fields_cur.moveToNext()) {
|
|
|
+
|
|
|
+ String name = fields_cur.getString(0);
|
|
|
+ String aname = fields_cur.getColumnName(1);
|
|
|
+ int field_type = fields_cur.getInt(2);
|
|
|
+ String function_name = fields_cur.getString(3);
|
|
|
+ int behavior = fields_cur.getInt(4);
|
|
|
+ int priority = fields_cur.getInt(5);
|
|
|
+ int show = fields_cur.getInt(6);
|
|
|
+ String user_name = fields_cur.getString(7);
|
|
|
+
|
|
|
+ String insert_sql = String.format("insert into fields_info (name, aname, field_type, function_name, behavior, priority, show, user_name, device_id) values ('%s', '%s', %d, '%s', %d, %d, %d, '%s', '%s');", name, aname, field_type, function_name, behavior, priority, show, user_name, deviceId);
|
|
|
+ sql.append(insert_sql);
|
|
|
+ sql.append("\r\n");
|
|
|
+ }
|
|
|
+ CloseCursor(fields_cur);
|
|
|
+
|
|
|
+ // history
|
|
|
+ String historySql = String.format("select ifnull(name, ''), ifnull(params, ''), ifnull(action, ''), ifnull(module_name, ''), ifnull(user, ''), ifnull(create_time, '') from history where user = '%s';",user);
|
|
|
+ Cursor history_cur = db.rawQuery(historySql, null);
|
|
|
+ while (history_cur.moveToNext()) {
|
|
|
+
|
|
|
+ String name = history_cur.getString(0);
|
|
|
+ String params = history_cur.getString(1);
|
|
|
+ String action = history_cur.getString(2);
|
|
|
+ String module_name = history_cur.getString(3);
|
|
|
+ String user_name = history_cur.getString(4);
|
|
|
+ long create_time_l = history_cur.getLong(5);
|
|
|
+ String create_time = DateFormat.format("yyyy-MM-dd HH:mm:ss", create_time_l).toString();
|
|
|
+
|
|
|
+ String insert_sql = String.format("insert into history (name, params, action, module_name, user_name, device_id, create_time) values ('%s', '%s', '%s', '%s', '%s', '%s', '%s');", name, params, action, module_name, user_name, deviceId, create_time);
|
|
|
+ sql.append(insert_sql);
|
|
|
+ sql.append("\r\n");
|
|
|
+ }
|
|
|
+ CloseCursor(history_cur);
|
|
|
+
|
|
|
+ // search history
|
|
|
+ String search_history_sql = String.format("select ifnull(h_val, ''), ifnull(h_field, ''), ifnull(level, 0), ifnull(user, ''), ifnull(h_time, '') from search_history where user = '%s';",user);
|
|
|
+ Cursor search_history_cur = db.rawQuery(search_history_sql, null);
|
|
|
+ while (search_history_cur.moveToNext()) {
|
|
|
+ String h_val = search_history_cur.getString(0);
|
|
|
+ String h_field = search_history_cur.getString(1);
|
|
|
+ int level = search_history_cur.getInt(2);
|
|
|
+ String user_name = search_history_cur.getString(3);
|
|
|
+ String h_time = search_history_cur.getString(4);
|
|
|
+
|
|
|
+ String insert_sql = String.format("insert into search_history (h_val, h_field, level, user_name, device_id, h_time) values ('%s', '%s', %d, '%s', '%s', '%s');",h_val, h_field, level, user_name, deviceId, h_time);
|
|
|
+ sql.append(insert_sql);
|
|
|
+ sql.append("\r\n");
|
|
|
+ }
|
|
|
+ CloseCursor(search_history_cur);
|
|
|
+
|
|
|
+ return sql.toString();
|
|
|
+ }
|
|
|
|
|
|
}
|