package com.yn.bftl.thirdparty.modules.log.service;

import com.yn.bftl.common.modules.company.entity.Company;
import com.yn.bftl.thirdparty.modules.log.dto.EasemobCallbackDTO;

import java.util.Map;

/**
 * 日志记录
 * 有关的操作都记录
 *
 * @author chendehuihuo
 * @date 2021/11/16
 */
public interface LoggerService {

    /**
     * 支付日志
     *
     * @param message
     * @param attachment
     * @param className
     * @param functionName
     * @param logType
     * @author chendehuihuo
     * @date 2021-11-16
     */
    void pay(String message, Map<String, Object> attachment, String className, String functionName, String logType);

    /**
     * 服务费日志
     *
     * @param message
     * @param attachment
     * @param className
     * @param functionName
     * @param logType
     * @author chendehuihuo
     * @date 2021-11-22
     */
    void commission(String message, Map<String, Object> attachment, String className, String functionName, String logType);

    /**
     * 分账日志
     *
     * @param message
     * @param attachment
     * @param className
     * @param functionName
     * @param logType
     * @author chendehuihuo
     * @date 2021-11-24
     */
    void separate(String message, Map<String, Object> attachment, String className, String functionName, String logType);

    /**
     * 用户日志
     *
     * @param message
     * @param attachment
     * @param className
     * @param functionName
     * @param logType
     * @author chendehuihuo
     * @date 2021-11-22
     */
    void user(String message, Map<String, Object> attachment, String className, String functionName, String logType);

    /**
     * 订单日志
     *
     * @param message
     * @param attachment
     * @param className
     * @param functionName
     * @param logType
     * @author chendehuihuo
     * @date 2021-11-22
     */
    void order(String message, Map<String, Object> attachment, String className, String functionName, String logType);

    /**
     * 操作日志
     *
     * @param message
     * @param attachment
     * @param className
     * @param functionName
     * @param logType
     * @author chendehuihuo
     * @date 2021-11-22
     */
    void operation(String message, Map<String, Object> attachment, String className, String functionName, String logType);

    /**
     * 银联日志-创建
     *
     * @param message:消息
     * @param attachment:
     * @param className:类名
     * @param functionName:方法名
     * @param logChildType:
     * @return
     * @description
     * @author huabiao
     * @create 2022/9/6  9:10
     */
    void unionpay(String message, Map<String, Object> attachment, String className, String functionName, String logChildType);

    /**
     * 银联日志-创建
     *
     * @param message:消息
     * @param attachment:
     * @param className:类名
     * @param functionName:方法名
     * @param logChildType:
     * @return
     * @description
     * @author huabiao
     * @create 2022/9/6  9:10
     */
    void unionpay(String message, String attachmentStr, String className, String functionName, String logChildType);

    /**
     * 充值转账
     *
     * @param message 消息
     * @param attachment 请求or响应参数
     * @param className 类名
     * @param functionName 方法名
     * @param logType 日志类型
     * @param company 企业
     */
    void rechargeTransfer(String message, Object attachment, String className, String functionName, String logType, Company company);
}
