package com.yeetou.xinyongkaguanjia.db.service;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.yeetou.xinyongkaguanjia.db.DBHelper;
import com.yeetou.xinyongkaguanjia.db.base.DbCardToBills;
import com.yeetou.xinyongkaguanjia.db.dao.DbCardToBillInterface;
public class DbCardToBillService implements DbCardToBillInterface {
private DBHelper dbHelper;
private DbCardToBillService() {
}
public DbCardToBillService(Context mContext) {
DBHelper.init(mContext);
this.dbHelper = DBHelper.dbHelper();
}
private void deleteOne(int id) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.execSQL("delete from card_to_bills where _id=?", new Integer[] { id });
}
private void delete() {
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.delete("card_to_bills", null, null);
}
@Override
public List<DbCardToBills> getAll() {
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.rawQuery("select * from card_to_bills order by created_at desc", new String[] {});
List<DbCardToBills> dbCardToBills = new ArrayList<DbCardToBills>();
while (cursor.moveToNext()) {
DbCardToBills cardtobill = new DbCardToBills();
cardtobill.setId(cursor.getInt(0));
cardtobill.setBank_card_id(cursor.getInt(1));
cardtobill.setBill_id(cursor.getInt(2));
cardtobill.setCreated_at(cursor.getLong(3));
cardtobill.setUpdated_at(cursor.getLong(4));
dbCardToBills.add(cardtobill);
}
cursor.close();
return dbCardToBills;
}
@Override
public void synSave(List<DbCardToBills> cardtobills) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
for (DbCardToBills temp : cardtobills) {
ContentValues values = new ContentValues();
deleteOne(temp.getId());
values.put("_id", temp.getId());
values.put("bank_card_id", temp.getBank_card_id());
values.put("bill_id", temp.getBill_id());
values.put("created_at", temp.getCreated_at());
values.put("updated_at", temp.getUpdated_at());
db.insert("card_to_bills", null, values);
}
}
@Override
public List<Integer> getBillIdS(String bankCardId) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.rawQuery("select bill_id from card_to_bills where bank_card_id=? order by created_at desc", new String[] {String.valueOf(bankCardId)});
List<Integer> result = new ArrayList<Integer>();
while (cursor.moveToNext()) {
result.add(cursor.getInt(0));
}
cursor.close();
return result;
}
@Override
public List<Integer> getCardIdS(int billId) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.rawQuery("select bank_card_id from card_to_bills where bill_id=?", new String[] {String.valueOf(billId)});
List<Integer> result = new ArrayList<Integer>();
while (cursor.moveToNext()) {
result.add(cursor.getInt(0));
}
cursor.close();
return result;
}
//若是没有账单,则返回null
@Override
public Integer getLastBillId(int bankCardId) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.rawQuery("select bill_id from card_to_bills where bank_card_id=? order by created_at desc limit 1", new String[] {String.valueOf(bankCardId)});
Integer result = null;
if (cursor.moveToFirst()) {
result = cursor.getInt(0);
}
cursor.close();
return result;
}
}