EvaluationRuleDaoImpl.java 3.43 KB
package com.sunvote.xpadapp.audition.dao;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import com.sunvote.xpadapp.ConstantValues;
import com.sunvote.xpadapp.MyApp;
import com.sunvote.xpadapp.audition.EvaluationRuleInfo;
import com.sunvote.xpadapp.db.DBLocalHelper;

import java.util.ArrayList;
import java.util.List;



/**
 * 评议规则信息
 * Created by wutaian on 2017/11/13.
 */
public class EvaluationRuleDaoImpl implements EvaluationRuleDao {
    private DBLocalHelper helper;
    private SQLiteDatabase db;

    public EvaluationRuleDaoImpl(){
        helper = MyApp.getInstance().getHelper();
        db = MyApp.getInstance().getDb();
    }

    @Override
    public boolean isOpen() {
        if (db == null) {
            return false;
        }
        return true;
    }

    @Override
    public void close() {
//        if (db != null && db.isOpen()) {
//            db.close();
//            db = null;
//        }
    }

    @Override
    public Boolean addEvaluationRuleInfo(EvaluationRuleInfo evaluationRuleInfo) {
        if (evaluationRuleInfo == null) {
            return false;
        }
        boolean flag = true;
        ContentValues values = new ContentValues();
        values.put("ItemNum", evaluationRuleInfo.getItemNum());
        values.put("DefaultValue", evaluationRuleInfo.getDefaultValue());
        values.put("ItemName", evaluationRuleInfo.getItemName());

        if (db == null) {
            db = helper.getWritableDatabase();
        }
        long resultValue = 0;
        if (db.isOpen()) {
            db.beginTransaction(); // 开始事务
            resultValue = db.replace(ConstantValues.TBL_EVALUATION_RULE, null, values);
            flag = (resultValue > 0 ? true : false && flag);
            if (flag) {
                db.setTransactionSuccessful();
            }
            db.endTransaction(); // 结束事务
            close();
        }
        return resultValue > 0 ? true : false;
    }

    @Override
    public void delEvaluationRuleInfo() {
        String sql = "DELETE FROM " + ConstantValues.TBL_EVALUATION_RULE;
        if (db == null) {
            db = helper.getWritableDatabase();
        }
        if (db.isOpen()) {
            db.execSQL(sql);
            close();
        }
    }

    @Override
    public List<EvaluationRuleInfo> findEvaluationRuleInfoAll() {
        List<EvaluationRuleInfo> evaluationRuleInfoLs= new ArrayList<>();
        String sql = "SELECT ItemNum,DefaultValue,ItemName FROM  " + ConstantValues.TBL_EVALUATION_RULE;
        if (db == null) {
            db = helper.getWritableDatabase();
        }
        if (db.isOpen()) {
            Cursor cursor = db.rawQuery(sql, null);
            while (cursor.moveToNext()) {
                EvaluationRuleInfo evaluationRuleInfo = getCursor(cursor);
                evaluationRuleInfoLs.add(evaluationRuleInfo);
            }
            cursor.close();
            close();
        }
        return evaluationRuleInfoLs;
    }

    private EvaluationRuleInfo getCursor(Cursor cursor){
        EvaluationRuleInfo evaluationRuleInfo = new EvaluationRuleInfo();
        evaluationRuleInfo.setItemNum(cursor.getInt(cursor.getColumnIndex("ItemNum")));
        evaluationRuleInfo.setItemName(cursor.getString(cursor.getColumnIndex("ItemName")));
        evaluationRuleInfo.setDefaultValue(cursor.getInt(cursor.getColumnIndex("DefaultValue")));
        return evaluationRuleInfo;
    }
}