package com.bonait.bnframework.common.helper;

import com.bonait.bnframework.common.db.res.AlertLogEnum;
import com.bonait.bnframework.common.db.res.UserLogEnum;
import com.bonait.bnframework.common.helper.I.IMessageLogNotify;
import com.bonait.bnframework.common.helper.I.IRun;

import java.text.SimpleDateFormat;
import java.util.Date;

public class MessageLog {
    public static IMessageLogNotify MsgNotify;

    /**
     * 日志触发通知
     */
    public static IRun AddNotify;

    public static String MsgInfo = "";

    public static void ShowInfo(String msg) {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = new Date();
        String tempMsg = formatter.format(date) + "：" + msg;
        if(MsgInfo.length()>=8000)MsgInfo="";
        MsgInfo = tempMsg + "\r\n" + MsgInfo;
        if (MsgNotify != null)
            MsgNotify.InfoMsg(tempMsg);
        if (AddNotify != null) AddNotify.Run();
    }

    public static void ShowWarning(String msg) {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = new Date();
        String tempMsg = formatter.format(date) + "：" + msg;
        if(MsgInfo.length()>=8000)MsgInfo="";
        MsgInfo = tempMsg + "\r\n" + MsgInfo;
        if (MsgNotify != null)
            MsgNotify.WarnMsg(tempMsg);
        if (AddNotify != null) AddNotify.Run();
    }

    public static void ShowError(String msg) {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = new Date();
        String tempMsg = formatter.format(date) + "：" + msg;
        if(MsgInfo.length()>=8000)MsgInfo="";
        MsgInfo = tempMsg + "\r\n" + MsgInfo;
        if (MsgNotify != null)
            MsgNotify.ErrorMsg(tempMsg);
        if (AddNotify != null) AddNotify.Run();
    }

    /**
     * 用户操作日志
     * @param type
     * @param msg
     */
    public static void ShowUserMessage(UserLogEnum type, String msg)
    {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = new Date();
        String tempMsg = formatter.format(date) + "：" + msg;
        if(MsgInfo.length()>=8000)MsgInfo="";
        MsgInfo = tempMsg + "\r\n" + MsgInfo;
        if (MsgNotify != null)
            MsgNotify.UserMsg(type,tempMsg);
        if (AddNotify != null) AddNotify.Run();
    }

    /**
     * 预警日志
     * @param type
     * @param msg
     */
    public static void ShowAlertMessage(AlertLogEnum type, String msg)
    {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = new Date();
        String tempMsg = formatter.format(date) + "：" + msg;
        if(MsgInfo.length()>=8000)MsgInfo="";
        MsgInfo = tempMsg + "\r\n" + MsgInfo;
        if (MsgNotify != null)
            MsgNotify.AlertMsg(type,tempMsg);
        if (AddNotify != null) AddNotify.Run();
    }


}
