MailMessageHelper.java 3.12 KB
package com.wd.room;

import android.content.Context;

import com.wd.room.dao.MailMessageDao;
import com.wd.room.entity.MailMessageModel;

import java.util.List;


/**
 * 需要异步操作数据库
 *
 * @author : wd
 * @since: 2023/3/10
 */
public class MailMessageHelper {


    public static MailMessageHelper instance;
    /**
     * 不对外暴露
     */
    private static MailMessageDao dao;


    public static MailMessageHelper getInstance(Context context){
        if (null == instance){
            synchronized (MailMessageHelper.class){
                if (null == instance){
                    instance = new MailMessageHelper();
                    build(context);
                }
            }
        }
        return instance;
    }


    private static void build(Context context){
        dao = RoomUtils.getInstance().getMailMessageDao(context);
    }


    public void delete(int ids) {
        if (null != dao){
            dao.delete(ids);
        }
    }


    public void deleteByKey(String keys) {
        if (null != dao){
            dao.deleteByKey(keys);
        }
    }


    public MailMessageModel queryByKey(String keys) {
        if (null != dao){
            return dao.queryByKey(keys);
        }
        return null;
    }

    public String queryValueByKey(String keys){
        if (null != dao){
            MailMessageModel model = dao.queryByKey(keys);
            if(model != null){
                return model.values;
            }
        }
        return "";
    }

    public String queryIsReadByNewsTitle(String newsTitle){
        if (null != dao){
            MailMessageModel model = dao.queryByKey(newsTitle);
            if(model != null){
                return model.isread;
            }
        }
        return "";
    }

    public List<MailMessageModel> queryReadList(){
        if (null != dao){
            return dao.queryReadList("1");
        }
        return null;
    }

    public List<MailMessageModel> queryAll(){
        if (null != dao){
            return dao.queryAll();
        }
        return null;
    }

    /**
     * 获取总数
     * */
    public int getTotalUnReadCount(){
        if(null != dao){
//            int count = dao.getTotalCount("0");
//            int counttotal = dao.getTotalCount();
            List<MailMessageModel> models =  dao.queryReadList("0");
            if(models != null){
                return models.size();
            }
        }
        return 0;
    }


    public void insertOrUpdate(MailMessageModel[] model) {
        if (null != dao){
            dao.insertOrUpdate(model);
        }
    }

    public void update(MailMessageModel model) {
        if (null != dao){
            dao.update(model);
        }
    }

    public void updateReadStateByKey(String newsTitle){
        if (null != dao){
            dao.updateReadStateByKey(newsTitle, "1");
        }
    }

    /**
     * 删除所以记录
     */
    public void deleteAll(){
        if (null != dao){
            dao.clear();
        }
    }

    /**
     * 删除所以记录
     */
    public void clear(Context context){
        RoomUtils.getInstance().getMailMessageDao(context).clear();
    }
}