No Description

DBService.java 10.0KB

    package ai.pai.lensman.db; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import com.android.common.utils.LogHelper; import java.util.ArrayList; import ai.pai.lensman.App; import ai.pai.lensman.bean.PhotoBean; import ai.pai.lensman.bean.SessionBean; public class DBService { private static DBService instance; private static final Object DB_LOCK = new Object(); private DBHelper dbHelper; private static final String TAG = "DBService"; private DBService(Context context) { dbHelper = DBHelper.getInstance(context); } public static synchronized DBService getInstance() { if (instance == null) { instance = new DBService(App.getAppContext()); } return instance; } private void closeDB(SQLiteDatabase db) { if (db != null) { db.close(); } } private void closeCursorAndDB(Cursor cursor, SQLiteDatabase db) { if (cursor != null && !cursor.isClosed()) { cursor.close(); } if (db != null) { db.close(); } } public void clearDB(){ SQLiteDatabase db = null; try{ db = dbHelper.getReadableDatabase(); db.beginTransaction(); db.execSQL("delete from "+ DBHelper.PHOTO_INFO_TABLE); }catch (Exception e){ LogHelper.e(TAG,"clear db ,error occurs "+e); }finally { try { db.endTransaction(); } catch (Exception e) { e.printStackTrace(); } closeDB(db); } } private PhotoBean cursor2PhotoBean(Cursor c) { PhotoBean item = new PhotoBean(); item.lensmanId = c.getString(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.LENSMAN_ID)); item.sessionId = c.getString(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.SESSION_ID)); item.isRawPhoto =(c.getInt(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.IS_RAW_PHOTO))>0); item.uploadStatus = c.getInt(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.UPLOADED_STATUS)); item.captureTime = c.getLong(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.CAPTURE_TIME)); item.photoId = c.getLong(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.PHOTO_ID)); item.photoName = c.getString(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.PHOTO_NAME)); item.photoPath = c.getString(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.PHOTO_PATH)); item.sessionDate = c.getLong(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.SESSION_DATE)); item.sessionSeq = c.getInt(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.SESSION_SEQ)); return item; } private ContentValues photoBean2ContentValues(PhotoBean item) { ContentValues cv = new ContentValues(); cv.put(DBHelper.PHOTO_INFO_COLUMNS.CAPTURE_TIME, item.captureTime); cv.put(DBHelper.PHOTO_INFO_COLUMNS.IS_RAW_PHOTO, item.isRawPhoto ? 1: 0); cv.put(DBHelper.PHOTO_INFO_COLUMNS.PHOTO_ID, item.photoId); cv.put(DBHelper.PHOTO_INFO_COLUMNS.PHOTO_NAME, item.photoName); cv.put(DBHelper.PHOTO_INFO_COLUMNS.PHOTO_PATH, item.photoPath); cv.put(DBHelper.PHOTO_INFO_COLUMNS.SESSION_ID, item.sessionId); cv.put(DBHelper.PHOTO_INFO_COLUMNS.LENSMAN_ID,item.lensmanId); cv.put(DBHelper.PHOTO_INFO_COLUMNS.UPLOADED_STATUS,item.uploadStatus); cv.put(DBHelper.PHOTO_INFO_COLUMNS.SESSION_DATE,item.sessionDate); cv.put(DBHelper.PHOTO_INFO_COLUMNS.SESSION_SEQ,item.sessionSeq); return cv; } public void addPhotoBean(PhotoBean bean){ SQLiteDatabase db = null; synchronized (DB_LOCK) { LogHelper.d(TAG,"dbservice addUploadPhoto "+bean.photoId); try { db = dbHelper.getWritableDatabase(); db.beginTransaction(); db.insertWithOnConflict(DBHelper.PHOTO_INFO_TABLE, null, photoBean2ContentValues(bean), SQLiteDatabase.CONFLICT_REPLACE); db.setTransactionSuccessful(); } catch (Exception e) { LogHelper.d(TAG, "dbservice addUploadPhoto error happen " + e); } finally { try { db.endTransaction(); } catch (Exception e) { e.printStackTrace(); } closeDB(db); } } } public void updatePhotoBean(PhotoBean bean){ addPhotoBean(bean); } public void deletePhotoBean(PhotoBean bean){ SQLiteDatabase db = null; synchronized (DB_LOCK) { try { LogHelper.d(TAG,"dbservice deletePhotoBean "+bean.photoId); db = dbHelper.getReadableDatabase(); db.beginTransaction(); db.execSQL("delete from " + DBHelper.PHOTO_INFO_TABLE + " where " + DBHelper.PHOTO_INFO_COLUMNS.PHOTO_ID + " = '" + bean.photoId + "'"); db.setTransactionSuccessful(); } catch (Exception e) { LogHelper.d(TAG, "dbservice deleteUploadPhoto error happen " + e); } finally { try { db.endTransaction(); } catch (Exception e) { e.printStackTrace(); } closeCursorAndDB(null, db); } } } public ArrayList<SessionBean> getSessionBeanListByDay(long sessionDate){ ArrayList<SessionBean> sessionBeanArrayList = new ArrayList<>(); SQLiteDatabase db = null; Cursor c = null; synchronized (DB_LOCK) { try { LogHelper.d(TAG,"dbservice getSessionBeanListByDay "); db = dbHelper.getReadableDatabase(); db.beginTransaction(); c = db.rawQuery("select * from " + DBHelper.PHOTO_INFO_TABLE + " where " + DBHelper.PHOTO_INFO_COLUMNS.SESSION_DATE + " = '" + sessionDate + "' order by " + DBHelper.PHOTO_INFO_COLUMNS.SESSION_SEQ + " desc", null); while (c.moveToNext()) { PhotoBean photoBean = cursor2PhotoBean(c); LogHelper.d(TAG,"dbservice getSessionBeanListByDay photo found"+photoBean.photoId); if(sessionBeanArrayList.size()==0 || sessionBeanArrayList.get(sessionBeanArrayList.size()-1).sessionSeq!=photoBean.sessionSeq){ SessionBean sessionBean = new SessionBean(); sessionBean.sessionDate = photoBean.sessionDate; sessionBean.sessionSeq = photoBean.sessionSeq; sessionBean.sessionId = photoBean.sessionId; sessionBean.lensmanId = photoBean.lensmanId; ArrayList<PhotoBean> photoList = new ArrayList<>(); sessionBean.sessionPhotos = photoList; sessionBeanArrayList.add(sessionBean); } sessionBeanArrayList.get(sessionBeanArrayList.size()-1).sessionPhotos.add(photoBean); } db.setTransactionSuccessful(); } catch (Exception e) { LogHelper.d(TAG, "dbservice getSessionBeanListByDay error happen " + e); } finally { try { db.endTransaction(); } catch (Exception e) { e.printStackTrace(); } closeCursorAndDB(c, db); } } return sessionBeanArrayList; } public ArrayList<PhotoBean> getPhotoListBySessionId(String sessionId){ SQLiteDatabase db = null; Cursor c = null; ArrayList<PhotoBean> photoList = new ArrayList<>(); synchronized (DB_LOCK) { try { db = dbHelper.getReadableDatabase(); db.beginTransaction(); c = db.rawQuery("select * from " + DBHelper.PHOTO_INFO_TABLE + " where " + DBHelper.PHOTO_INFO_COLUMNS.SESSION_ID + " = '" + sessionId + "'", null); while (c.moveToNext()) { photoList.add(cursor2PhotoBean(c)); } db.setTransactionSuccessful(); } catch (Exception e) { LogHelper.d(TAG, "dbservice getGroupInfoByGroupId error happen " + e); } finally { try { db.endTransaction(); } catch (Exception e) { e.printStackTrace(); } closeCursorAndDB(c, db); } } return photoList; } public PhotoBean getNextUploadPhoto(){ LogHelper.d(TAG, "dbservice getNextUploadPhotoBean "); PhotoBean photoBean = null; SQLiteDatabase db = null; Cursor c = null; String currentSession = Preferences.getInstance().getCurrentSession(); synchronized (DB_LOCK) { try { db = dbHelper.getReadableDatabase(); db.beginTransaction(); c = db.rawQuery("select * from " + DBHelper.PHOTO_INFO_TABLE + " where " + DBHelper.PHOTO_INFO_COLUMNS.UPLOADED_STATUS + " = '" + 0 + "'" +" and "+DBHelper.PHOTO_INFO_COLUMNS.SESSION_ID+" <>" +"'"+currentSession +"' order by " + DBHelper.PHOTO_INFO_COLUMNS.CAPTURE_TIME + " desc limit 1 ", null); if (c.moveToNext()) { photoBean = cursor2PhotoBean(c); } db.setTransactionSuccessful(); } catch (Exception e) { LogHelper.d(TAG, "dbservice getNextUploadPhotoBean error happen " + e); } finally { try { db.endTransaction(); } catch (Exception e) { e.printStackTrace(); } closeCursorAndDB(c, db); } } return photoBean; } }
kodo - Gogs: Go Git Service

暂无描述

huangqimin: a5595665af :art: Format Codes 6 年之前
..
migrations 212f24c882 MarketCode 6 年之前
__init__.py 212f24c882 MarketCode 6 年之前
admin.py 212f24c882 MarketCode 6 年之前
apps.py 212f24c882 MarketCode 6 年之前
models.py 212f24c882 MarketCode 6 年之前
tests.py a5595665af :art: Format Codes 6 年之前
views.py a5595665af :art: Format Codes 6 年之前