package com.diandi.demo.db;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import com.diandi.demo.db.DBHelperC.FavTable;
import com.diandi.demo.model.diandi.DianDi;
import com.diandi.demo.sync.UserHelper;
import com.diandi.demo.util.L;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* *******************************************************************************
* ********* Author : klob(kloblic@gmail.com) .
* ********* Date : 2014-11-29 .
* ********* Time : 11:46 .
* ********* Project name : Diandi1.18 .
* ********* Version : 1.0
* ********* Copyright @ 2014, klob, All Rights Reserved
* *******************************************************************************
*/
public class DatabaseUtilC {
private static final String TAG = "DatabaseUtil";
private static DatabaseUtilC instance;
/**
* 数据库帮助类 *
*/
private DBHelperC mDbHelperC;
/**
* 初始化
*
* @param context
*/
private DatabaseUtilC(Context context) {
mDbHelperC = new DBHelperC(context);
}
public synchronized static DatabaseUtilC getInstance(Context context) {
if (instance == null) {
instance = new DatabaseUtilC(context);
}
return instance;
}
/**
* 销毁
*/
public static void destory() {
if (instance != null) {
instance.onDestory();
}
}
/**
* 销毁
*/
public void onDestory() {
instance = null;
if (mDbHelperC != null) {
mDbHelperC.close();
mDbHelperC = null;
}
}
public void deleteFav(DianDi qy) {
Cursor cursor = null;
String where = FavTable.USER_ID + " = '" + UserHelper.getUserId()
+ "' AND " + FavTable.OBJECT_ID + " = '" + qy.getObjectId() + "'";
cursor = mDbHelperC.query(DBHelperC.TABLE_NAME, null, where, null, null, null, null);
if (cursor != null && cursor.getCount() > 0) {
cursor.moveToFirst();
int isLove = cursor.getInt(cursor.getColumnIndex(FavTable.IS_LOVE));
if (isLove == 0) {
mDbHelperC.delete(DBHelperC.TABLE_NAME, where, null);
} else {
ContentValues cv = new ContentValues();
cv.put(FavTable.IS_FAV, 0);
mDbHelperC.update(DBHelperC.TABLE_NAME, cv, where, null);
}
}
if (cursor != null) {
cursor.close();
mDbHelperC.close();
}
}
public boolean isLoved(DianDi qy) {
Cursor cursor = null;
String where = FavTable.USER_ID + " = '" + UserHelper.getUserId()
+ "' AND " + FavTable.OBJECT_ID + " = '" + qy.getObjectId() + "'";
cursor = mDbHelperC.query(DBHelperC.TABLE_NAME, null, where, null, null, null, null);
if (cursor != null && cursor.getCount() > 0) {
cursor.moveToFirst();
if (cursor.getInt(cursor.getColumnIndex(FavTable.IS_LOVE)) == 1) {
return true;
}
}
return false;
}
public long insertFav(DianDi qy) {
long uri = 0;
Cursor cursor = null;
String where = FavTable.USER_ID + " = '" + UserHelper.getUserId()
+ "' AND " + FavTable.OBJECT_ID + " = '" + qy.getObjectId() + "'";
cursor = mDbHelperC.query(DBHelperC.TABLE_NAME, null, where, null, null, null, null);
if (cursor != null && cursor.getCount() > 0) {
cursor.moveToFirst();
ContentValues conv = new ContentValues();
conv.put(FavTable.IS_FAV, 1);
conv.put(FavTable.IS_LOVE, 1);
mDbHelperC.update(DBHelperC.TABLE_NAME, conv, where, null);
} else {
ContentValues cv = new ContentValues();
cv.put(FavTable.USER_ID, UserHelper.getUserId());
cv.put(FavTable.OBJECT_ID, qy.getObjectId());
cv.put(FavTable.IS_LOVE, qy.getMyLove() == true ? 1 : 0);
cv.put(FavTable.IS_FAV, qy.getMyFav() == true ? 1 : 0);
uri = mDbHelperC.insert(DBHelperC.TABLE_NAME, null, cv);
}
if (cursor != null) {
cursor.close();
mDbHelperC.close();
}
return uri;
}
// public int deleteFav(DianDi qy){
// int row = 0;
// String where = FavTable.USER_ID+" = "+qy.getAuthor().getObjectId()
// +" AND "+FavTable.OBJECT_ID+" = "+qy.getObjectId();
// row = dbHelper.delete(DBHelper.TABLE_NAME, where, null);
// return row;
// }
/**
* 设置内容的收藏状态
*
* @param lists
*/
public List<DianDi> setFav(List<DianDi> lists) {
Cursor cursor = null;
if (lists != null && lists.size() > 0) {
for (Iterator iterator = lists.iterator(); iterator.hasNext(); ) {
DianDi content = (DianDi) iterator.next();
String where = FavTable.USER_ID + " = '" + UserHelper.getUserId()//content.getAuthor().getObjectId()
+ "' AND " + FavTable.OBJECT_ID + " = '" + content.getObjectId() + "'";
cursor = mDbHelperC.query(DBHelperC.TABLE_NAME, null, where, null, null, null, null);
if (cursor != null && cursor.getCount() > 0) {
cursor.moveToFirst();
if (cursor.getInt(cursor.getColumnIndex(FavTable.IS_FAV)) == 1) {
content.setMyFav(true);
} else {
content.setMyFav(false);
}
if (cursor.getInt(cursor.getColumnIndex(FavTable.IS_LOVE)) == 1) {
content.setMyLove(true);
} else {
content.setMyLove(false);
}
}
L.i(TAG, content.getMyFav() + ".." + content.getMyLove());
}
}
if (cursor != null) {
cursor.close();
mDbHelperC.close();
}
return lists;
}
/**
* 设置内容的收藏状态
*
* @param lists
*/
public List<DianDi> setFavInFav(List<DianDi> lists) {
Cursor cursor = null;
if (lists != null && lists.size() > 0) {
for (Iterator iterator = lists.iterator(); iterator.hasNext(); ) {
DianDi content = (DianDi) iterator.next();
content.setMyFav(true);
String where = FavTable.USER_ID + " = '" + UserHelper.getUserId()
+ "' AND " + FavTable.OBJECT_ID + " = '" + content.getObjectId() + "'";
cursor = mDbHelperC.query(DBHelperC.TABLE_NAME, null, where, null, null, null, null);
if (cursor != null && cursor.getCount() > 0) {
cursor.moveToFirst();
if (cursor.getInt(cursor.getColumnIndex(FavTable.IS_LOVE)) == 1) {
content.setMyLove(true);
} else {
content.setMyLove(false);
}
}
L.i(TAG, content.getMyFav() + ".." + content.getMyLove());
}
}
if (cursor != null) {
cursor.close();
mDbHelperC.close();
}
return lists;
}
public ArrayList<DianDi> queryFav() {
ArrayList<DianDi> contents = null;
// ContentResolver resolver = context.getContentResolver();
Cursor cursor = mDbHelperC.query(DBHelperC.TABLE_NAME, null, null, null, null, null, null);
L.i(TAG, cursor.getCount() + "");
if (cursor == null) {
return null;
}
contents = new ArrayList<DianDi>();
for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
DianDi content = new DianDi();
content.setMyFav(cursor.getInt(3) == 1 ? true : false);
content.setMyLove(cursor.getInt(4) == 1 ? true : false);
L.i(TAG, cursor.getColumnIndex("isfav") + ".." + cursor.getColumnIndex("islove") + ".." + content.getMyFav() + "..." + content.getMyLove());
contents.add(content);
}
if (cursor != null) {
cursor.close();
}
// if (contents.size() > 0) {
// return contents;
// }
return contents;
}
}