package com.uas.eis.utils;

import com.uas.eis.dao.EdiLogDao;
import com.uas.eis.dao.EdiPostLogDao;
import com.uas.eis.entity.EdiLog;
import com.uas.eis.entity.EdiPostLog;
import com.uas.eis.entity.EdiSuccessLog;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.Map;

/**
 * Created by luhg on 2018/4/26.
 * 日志记录工具类
 */
public class LogUtil {

    public static EdiSuccessLog getLogToAvoidRepeatPost(String code, String type){
        EdiSuccessLog ediSuccessLog = new EdiSuccessLog();
        ediSuccessLog.setCode(code);
        ediSuccessLog.setType(type);
        return ediSuccessLog;
    }

    public static EdiLog getPostSuccessLog(String code,String responseText){
        EdiLog ediLog = new EdiLog();
        ediLog.setKeyValue(code);
        ediLog.setData(responseText);
        ediLog.setStatus("success");
        ediLog.setType("post");
        return ediLog;
    }

    public static EdiLog getSendSuccessLog(String outerNo,String data,String type){
        EdiLog ediLog = new EdiLog();
        ediLog.setKeyValue(outerNo);
        ediLog.setData(data);
        ediLog.setStatus("success");
        ediLog.setType(type);
        return ediLog;
    }

    public static EdiLog getPostFailLog(String code,String responseText,String errMsg){
        EdiLog ediLog = new EdiLog();
        ediLog.setKeyValue(code);
        ediLog.setData(responseText);
        ediLog.setErrorMsg(errMsg);
        ediLog.setErrorCode("uas post fail");
        ediLog.setStatus("fail");
        ediLog.setType("post");
        return ediLog;
    }

    public static EdiLog getSaleFailLog(String code,String responseText,String errMsg){
        EdiLog ediLog = new EdiLog();
        ediLog.setKeyValue(code);
        ediLog.setData(responseText);
        ediLog.setErrorMsg(errMsg);
        ediLog.setErrorCode("uas create sale fail");
        ediLog.setStatus("fail");
        ediLog.setType("sale");
        return ediLog;
    }

    public static EdiLog getSaleReturnFailLog(String code,String responseText,String errMsg){
        EdiLog ediLog = new EdiLog();
        ediLog.setKeyValue(code);
        ediLog.setData(responseText);
        ediLog.setErrorMsg(errMsg);
        ediLog.setErrorCode("uas create salereturn fail");
        ediLog.setStatus("fail");
        ediLog.setType("sale_return");
        return ediLog;
    }

    public static EdiLog getSaleSuccessLog(String code,String responseText){
        EdiLog ediLog = new EdiLog();
        ediLog.setKeyValue(code);
        ediLog.setData(responseText);
        ediLog.setStatus("success");
        ediLog.setType("sale");
        return ediLog;
    }

    public static EdiLog getSaleReturnSuccessLog(String code,String responseText){
        EdiLog ediLog = new EdiLog();
        ediLog.setKeyValue(code);
        ediLog.setData(responseText);
        ediLog.setStatus("success");
        ediLog.setType("sale_return");
        return ediLog;
    }

    public static EdiLog getPostFailLog(String responseText,String errMsg){
        EdiLog ediLog = new EdiLog();
        ediLog.setData(responseText);
        ediLog.setErrorMsg(errMsg);
        ediLog.setErrorCode("uas post fail");
        ediLog.setStatus("fail");
        ediLog.setType("post fail");
        return ediLog;
    }

    public static EdiLog getSaleFailLog(String responseText,String errMsg){
        EdiLog ediLog = new EdiLog();
        ediLog.setData(responseText);
        ediLog.setErrorMsg(errMsg);
        ediLog.setErrorCode("uas create sale fail");
        ediLog.setStatus("fail");
        ediLog.setType("sale fail");
        return ediLog;
    }

    public static EdiLog getRequestFailLog(String responseText){
        Map<String,Object> responseMap = JacksonUtil.fromJson(responseText);
        EdiLog ediLog = new EdiLog();
        ediLog.setData(responseText);
        ediLog.setErrorCode(String.valueOf(responseMap.get("code")));
        ediLog.setErrorMsg(String.valueOf(responseMap.get("message")));
        ediLog.setStatus("fail");
        ediLog.setType("request");
        return ediLog;
    }
}
