package com.zhimai.websocket.db;

import android.content.Context;

import com.zhimai.websocket.bean.MessageSqlBean;
import com.zhimai.websocket.util.SpUtils;
import com.zhimai.websocket.util.TimeUtils;

import org.litepal.LitePal;
import org.litepal.crud.callback.FindMultiCallback;

import java.util.List;

/**
 * Explain：
 * Created on 2020/10/30.
 *
 * @author zhangshenglong
 */
public class MessageDBManager {
    /**
     * 查询是否存在消息记录
     */
    public static boolean isRecieverMessage(String tag) {
        List<MessageSqlBean> lsPrintHistory = LitePal.where("tag=?", tag).find(MessageSqlBean.class);
        if (lsPrintHistory == null || lsPrintHistory.size() == 0) {
            return false;
        } else {
            return true;
        }
    }

    /**
     * 写入记录
     */
    public static void addMessage(String tag) {
        MessageSqlBean messageSqlBean = new MessageSqlBean();
        messageSqlBean.setTag(tag);
        messageSqlBean.save();
    }

    public static void addMessage(String tag, String content) {
        MessageSqlBean messageSqlBean = new MessageSqlBean();
        messageSqlBean.setTag(tag);
        messageSqlBean.setContent(content);
        messageSqlBean.save();
    }

    /**
     * 如果数据量超过一定数额，删除历史数据
     * 可在每次启动的时候调用
     */
    public static void checkHistoryCount(final int maxNum) {
        List<MessageSqlBean> lsPrintHistory = LitePal.findAll(MessageSqlBean.class);
        if (lsPrintHistory.size() > 2000) {
            LitePal.deleteAll(MessageSqlBean.class);
        }
    }

    /**
     * 建议初始化litepal时调用此方法
     * 隔天删除 历史数据
     * 使用本地存储 当天年月日
     */
    public static void deleteYesterdayAllHistory(Context context) {
        //获取当天时间 年月日
        String todyTime = TimeUtils.getTodayTimeStr();
        //获取存储时间 年月日
        String myTime = SpUtils.getInstance(context).getMyTime();
        //比对日期，如果不一致，初始化时 删除所有记录
        if (!todyTime.equals(myTime)) {
            LitePal.deleteAll(MessageSqlBean.class);
            SpUtils.getInstance(context).setMyTime(todyTime);
        }
    }
}
